Tinkering with docker-chromium-armhf to use any armhf program e.g. vncviewer
I was struggling to connect to my Raspberry Pi VNC server, it's impossible without RealVNC Viewer, even with turned off encryption. There is vncviewer for Raspbian, but it's for armhf architecture (and for Debian) and is proprietary. The chromium-docker uses Chromium for armhf architecture in docker and it works perfectly on Manjaro, so I've decided to tinker with it.
First you need to download code from @hthiemann docker-chromium-armhf using your favourite method.
Then you will need to modify Dockerfile and dependencies folder to your needs. I would recommend to change ubuntu image to debian by changing FROM line:
FROM docker.io/arm32v7/debian:latest
You can change the MAINTAINER line too. Then add desired packages, in case of vncviewer you will need:
openssh-client xterm qemu binfmt-support qemu-user-static
SSH client is optional, e.g. if you have to ssh to RPi from docker to check connectivity.
Then you will need to download vncviewer deb for Raspberry Pi from RealVNC site, place it in dependencies folder and change ADD and RUN lines which installed Chromium so they'll install vncviewer deb file, instead.
Lastly you will need to change 'mediaguy' to something else, e.g. 'andy' and CMD line to start "/usr/bin/xterm".
Save Dockerfile, then run command to build docker container (just follow README instructions from docker-chromium-armhf but create different volume for home and use different tag).
Last thing, you need to change 'chromium-armhf', copy this file to 'xterm-armhf', change volume name to the volume you have just created and change the line with DOCKER_IMAGE_ID (put your tag followed by ':latest' instead of 'hthiemann/chromium-armhf:latest').
Start xterm-armhf script, go to your home dir and start:
qemu-arm-static /usr/bin/vncviewer <enter ip>
I had to use qemu-user-static because vncviewer always crushes with illegal instruction. It runs with qemu, but it's not connecting (it probably tries to open new vncviewer and fails), so I had to connect immediately.
It's killing fly with a sledgehammer but works.
Have fun.

PS. If you need to access your VNC server through a SSH tunnel, you will need to adjust the -L option parameter:
where is docker0 interface address. If you've enabled firewall, then allow TCP connections from addresses to port 5901, then you can connect - run in xterm window:
qemu-arm-static /usr/bin/vncviewer
In case of using socks5 proxy, configure proxy server to listen on address (its docker0 address in my case, but I don't know if all docker use the same address), then allow TCP connections from above subnet to the proxy posrt, e.g. 9050. Then use ProxyServer parameter:
qemu-arm-static /usr/bin/vncviewer -ProxyServer socks:// <here put VNC server address>
I don't want to tell which socks proxy I've in mind and what kind of address is in above command, but you can guess.

Possibly Related Threads…
Thread Author Replies Views Last Post
  Program SPI NOR Flash on Pinebook Pro with u-boot on micro SD Card hmuller 0 2,654 09-21-2020, 10:02 AM
Last Post: hmuller
  Citrix Receiver / ICAClient install for armhf Arwen 7 12,042 09-14-2020, 11:02 PM
Last Post: vb_linux
  Installing Docker on Pinebook Pro - update 1/18/20 SuperXkoodA 4 5,862 03-24-2020, 03:19 PM
Last Post: chaoskampf
  Widevine-flash on Chromium-SD Card mamboman777 3 4,922 01-20-2020, 04:00 PM
Last Post: tophneal

Forum Jump:

Users browsing this thread: 1 Guest(s)