After a lot of headscratching, I got Octoprint running on an ODROID C4 to connect to my Ender 3. The C4 is similar to a Raspberry Pi 4 in specs. I'm posting what I did here in case anyone else needs help (It won't let me post a new topic in guides).
The ODROID came pre-installed with Ubuntu MATE 20.04.6 on an eMMC.
- Logged in and connected to local wifi.
- Setup an ssh server.
- Set the server to load into a terminal rather than MATE since it will run headless:
sudo systemctl set-default multi-user.target
- Rebooted and logged into server over SSH
Installed OctoPrint using this excellent guide
- Followed the steps for Basic Installation and Automatic Start Up
- Followed the steps for Optional: Webcam with slight changes. The last three needed to be installed individually.
sudo apt install subversion libjpeg62-dev imagemagick libv4l-dev cmake sudo apt install ffmpeg sudo apt install libsdl2-2.0-0 sudo apt install libavdevice58
Octoprint loaded in the browser and connected at 115200 baud, but the Terminal window showed garbage coming from the printer.
blrttyas this guide mentions it can interfere with serial connections. This did not fix the problem so I can't say if this step was necessary in the end.
dmesgshowed that my Ender 3 is using a CH341 UART bridge chip.
- This link explains how to install a new CH341 driver on Linux.
makefailed when building the driver:
make failed: make: *** /lib/modules/4.9.337-90/build: No such file or directory. Stop. directory exists but build is broken symbolic link to ../../../../../src/linux-4.9.337-90
- Guides online explain that this problem can be fixed by installing kernel headers, but
apt search linux-headers-showed only headers for 5.x and nothing for 4.9.337-90. The directory /usr/src/linux-4.9.337-90 appears to already contain headers.
- Saved broken build symlink just in case
cd /lib/modules/4.9.337-90/ mv build build.old
- Updated symlink
cd /lib/modules/4.9.337-90/ sudo ln -sfn /usr/src/linux-4.9.337-90/ . sudo mv linux-4.9.337-90 build
- Finished building and installing driver. OctoPrint connects at 115200 baud and works correctly. Terminal shows expected output rather than garbage.