A very specific tutorial: Functioning desktop on Armbian RK322x boxes!

Hello to all,

I have a lot of old TV boxes around, most being RK3229/variants that spawn in Japan just like rabbits in a rabbit farm. You can buy them for just around $8 depending on where you live. This is my tutorial on how to get a functioning (decent!) desktop on RK322x boxes by converting them to Armbian.

These boxes operate on 5V/2A peak, though they can comfortably run on the power of a simple iPhone power brick at 5V/1A, you can even strip the cable that comes with it and hook it to a USB port and it will work just fine. With this in mind, they are extremely power efficient, with video output.

First up, you must follow this amazing tutorial provided by jock at https://forum.armbian.com/topic/34923-csc-armbian-for-rk322x-tv-box-boards/ in order to patch your old most-likely-chineseware-infected RK322x box with a nice fresh installation of Armbian!

After following the tutorial, you will be greeted with:


_ _ _ _ _ /_\ _ _ _ __ | |__(_)__ _ _ _ __ ___ _ __ _ __ _ _ _ _ (_) |_ _ _ / _ \| '_| ' \| '_ \ / _` | ' \ / _/ _ \ ' \| ' \ || | ' \| | _| || | /_/ \_\_| |_|_|_|_.__/_\__,_|_||_|_\__\___/_|_|_|_|_|_\_,_|_||_|_|\__|\_, | |___| |__/ v26.8 rolling for rk322x-box running Armbian Linux 6.18.16-current-rockchip Packages: Debian stable (trixie) Support: for advanced users (rolling release) IPv4: (LAN) 10.0.0.141 (WAN) xxx.xxx.xxx.xxx IPv6: (LAN) 2400:2651:2a21:fc00:: (WAN) 2400:2651:2a21:fc00:: Performance: Load: 60% Uptime: 2m Local users: 1 Memory usage: 27% of 970M CPU temp: 67Β°C Usage of /: 39% of 7.0G Commands: Configuration: armbian-config Upgrade : armbian-upgrade Monitoring : htop

With 1GB of RAM (gladly zswapped by default thanks to the optimized armbian config) and the Mali-400MP2 GPU, full DEs like XFCE or KDE will make this cry and die. To get a somewhat responsive desktop, we need to go far away from simple one-liner DEs and find their lighter relatives instead.

With this in mind, my most optimized shot at this, while keeping usefulness, was a X server with OpenBox, picom (for screen tearing) and tint2:

sudo apt update
sudo apt install xserver-xorg xinit openbox lxterminal picom tint2 -y

After that, we need to make it useful

I initially intended to only use Dillo, but as testing went, it turns out a LOT of websites (including Google) completely killed their non-Javascript browser support, and yeah, you could use DuckDuckGo Lite, but that defeats the practicality of this box on anything else other than web browsing. So, relying on zswap, we'll use Firefox for modern web browsing, Dillo for ultra-lightweight work, and VLC for local media playback. Just for the ones that need it, I have also included LibreOffice, but I am not part of that group:

sudo apt install firefox-esr dillo vlc libreoffice -y

After installing all of these, you must tell your system you're intending to use Openbox, so:
Create or edit your .xinitrc file:

echo "exec openbox-session" > ~/.xinitrc

Next, copy up the Openbox autostart script. This is where we launch our compositor and define how the desktop is meant to be, you can go crazy on this file after the next step:

mkdir -p ~/.config/openbox
cp /etc/xdg/openbox/autostart ~/.config/openbox/

Lastly, but very importantly:

As previously mentioned, this device has an awfully weak Mali-400MP2 GPU, where, depending on the compositor action (such as glx), it will terribly choke and the screen will tear.. For this, and with a lot of testing, xrender offered me the best performance-cost ratio, so for that:

Edit ~/.config/openbox/autostart and add this to the very bottom:

picom --backend xrender &

And then, embrace it:

startx

Enjoy your desk :) I can run this comfortably with 2-3 browser tabs on Firefox (or just 1, if you're using an Electron-based horribly optimized website)

Thanked by (3)AnthonySmith skorous oloke
Tagged:

Comments

Sign In or Register to comment.