How to revamp an outdated chromebook into an up to date multimedia machine

I have here a left over 4 year old Acer Chromebook 14 (CB3-431) here that nobody wanted to buy even for 20€ on the flea market. It was running under Chrome OS Edgar 2016 Intel Braswell where software support expired recently. So I decided to refresh it with a modern Ubuntu/Debian version as there are many positive reports out there, that it will run even even better than before.

As recommended I installed Gallium OS 3.1. Bismuth as a dual boot system with 22 GB of 24 GB for the new operating system (Gallium takes about 3,5 GB while my 1 TB external SSD works flawless with this setup). https://chrx.org has step by step instructions  for a dual boot system.

This takes about 2 hours as this is a long and complicated process: resetting the Chromebook to developer mode (ESC + F3/circle + power), followed by  firmware update and fresh  partitioning.

Now the machine boots into a white OS verification screen from where CTRL+D goes into ChromeOS (as before) while CTRL+L leads to Gallium (user chrx, password chrx). Sounds perfect but on the second day I accidentally hit a wrong key deleting everything. So I removed now also the hardware boot lock and restarted the firmware utility script a second time for setting the GBB flag to boot directly to Gallium OS without delay.

 

removing the Acer Chromebook hardware lock, screwdriver pointing to it

 

Next I installed OBS to connecting my DSLR  cameras for streaming a Christmas service. Took me some time to figure out which OBS version was working with NDI. I can recommend NDI Plugin 4.9.1 and  PTZ Plugin 0.10.2 that work with OBS 25.0.8. (OBS 28 had issues with NDI).

# system
sudo apt-get install libusb-1.0-0 gparted ufw gufw

# php
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.4-cli php7.4-fpm php7.4-opcache php7.4-sqlite3 php7.0-gd
sudo php -S 0.0.0.0:80 -t /home/chrx/Downloads/phpserver

# camera control
sudo apt-get install exiftool gphoto2 v4l2loopback-dkms

# streaming
git clone https://github.com/puhitaku/mtplvcap.git
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update
sudo apt-get install obs-studio

# selphy printer
sudo apt-get install printer-driver-gutenprint cheese photoprint

# nextcloud
sudo add-apt-repository ppa:nextcloud-devs/client
sudo apt install nextcloud-client

Connecting to an iPhone Wifi Hotspot running the EpoCam App works with NDI. Also the Atem Mini is recognized in the LAN as a video source. Tested also Millumin 2 as NDI feed while Magic Music Visuals needs NDISyphon as MMV has no native NDI output…

The USB connection of Nikon Z cameraw was a bit more difficult, so I went back to a trusted D.

Gphoto2 sees the camera, but unfortunately FFMPEG has no more NDI support since 2019 – fresh compile, patches or downgrading did not work for me. v4l2loopback recommended elsewhere also failed due to some kernel issues. The only strategy that worked is mtplvcap. It provides an output that can be accessed via a web URL in OBS.

As USB was frozen from time to time, I wrote a shell script that could quickly resetting the port when necessary. Finally I added also PHP 7 as a server (and nextcloud as online backup) for my photobooth. And well, also the trusted Selphy 800 is working after fiddling around with CUPS.

The old chromebook is now a great multimedia machine, it can stream from various sources and can also run a photobooth with image download and printing.

So far it is running stable with many hours of low power consumption. At 20€, I believe it is now worth  the twentyfold price competing even with a Macbook in this price range.