I started this project with a Raspberry Pi, but realized that the Banana's hardware set is a much better fit for what I'm doing. Unfortunately, it appears that, even though LeMaker (the group behind the BPi) offers just about every OS imaginable pre-optimized for the Banana, only Bananian supports all the hardware that I need, and it doesn't come with a GUI of any kind.
So, given a Debian-derivative on an ARM chip that will never see a physical display and has root SSH functional by default, how can I make it boot to an auto-logged-in VNC server?
Here's what I've done so far, as root over SSH:
# bananian-config
# bananian-update
# apt-get update
# apt-get upgrade
# adduser pi
# passwd root
# apt-get install task-lxde-desktop
(the first two are announced in the SSH welcome message and are used to initially setup the generic image for this variation of the board)
Then I uncommented these lines in /etc/lightdm/lightdm.conf:
autologin-user=pi
autologin-user-timeout=0
[VNCServer]
enabled=true
command=Xvnc
port=5900
width=1024
height=768
depth=8
At this point, I rebooted and tried to connect with VNC, but the client gave the same error as when the server doesn't exist. SSH still works as root and now the "pi" user also, except that the "pi" user doesn't know sudo.
At this point, I'm lost. I don't know if there's a desktop waiting for me on the HDMI plug or not, or whether I need an explicit VNC server like x11vnc or tightvnc, or if there's something else wrong.
This is all I've done so far. I can re-flash the image if needed; I want to make this part work before adding anything project-specific.
Okay, I noticed in LeMaker's own instructions to make Wifi work that they included Android and Lubuntu too, and that someone on their forum had made VNC work on Lubuntu. I didn't see before that some other OS's would support the WiFi chip.
So I switched to Lubuntu, which already has a working desktop, installed x11vnc per its instructions, and it basically just worked.
Then I backed up the SD card and spent all of Saturday trying different ways to make it a WiFi access point, which usually resulted in kicking myself out and restoring the backup to try again. And finally that works too. So I backed up the card again and now I can work on the real functionality.