Updating SqueezeplayOS
Posted: Fri Jul 07, 2023 6:21 pm
I've been running SqueezeplayOS (viewtopic.php?f=2&t=14) on the internal flash of several Jogglers for many years now. It works really well, but does hang from time to time, and is now getting very (VERY) old. I would like to update everything to newer software versions. I noticed @Roobarb! is now building i386 headless Debian Bookworm images for the Joggler, and after talking to @Man in a van I'm quite interested in adding just javalite and squeezelite to it, to keep everything as lightweight as possible.
So far, I've got Debian Bookworm from @Roobarb installed on a USB flash key installed in the side of an O2 Joggler. It works nicely.
Next I wanted to add javalite. So I followed the instructions on post 3 of this thead https://forums.slimdevices.com/forum/us ... pplication to add javalite.
SSH into the running debian install, and install build tools, git and SDL:
Install luajit. Unfortunately the luajit v2.1 in the Debian repositories can't compile the javalite code (and I couldn't work out why not!) so we need to install the old 2.0 version from the lua website instead:
Now install jivelite:
Now try running jivelite:
The result is that the framebuffer and touchscreen are detected, and the GUI comes straight up. Nice. The cursor tracks finger movement on the touchscreen, but is significantly offset from my actual finger position (half a screen to the left, and half a screen above my actual finger position). This makes a lot of the UI unusable, but it looks like I just need to calibrate the touchscreen. How hard can that be? 
I've seen comments claiming calibration success from people using TSLib, so:
I then calibrated the touchscreen using ts_calibrate:
Confguration data is also written into /etc/pointercal so it can be automatically used from now on. I then tested the calibration using ts_test:
The result of this was apparently perfect; very accurate and precise tracking of the cursor to my finger on the screen. But when I tried to do the same with jivelite:
The result was initially exactly as if I had no calibrated the touchscreen at all. However, as I continued to use it, it seemed to get somewhat more accurate. Which makes no sense. And even at its best, it was still a very clunky experience. So, how have other people succeeded with this? Did you all install X Windows (which provides calibration of the touchscreen, albeit at the price of loading a lot more software onto the machine) or did you find a better solutiion?
So far, I've got Debian Bookworm from @Roobarb installed on a USB flash key installed in the side of an O2 Joggler. It works nicely.
Next I wanted to add javalite. So I followed the instructions on post 3 of this thead https://forums.slimdevices.com/forum/us ... pplication to add javalite.
SSH into the running debian install, and install build tools, git and SDL:
Code: Select all
sudo apt update
sudo apt upgrade
sudo apt install build-essential git libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libexpat1-dev
Code: Select all
git clone https://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
sudo ldconfig
cd ..
Code: Select all
git clone https://github.com/ralph-irving/jivelite.git
cd jivelite
make
Code: Select all
sudo /home/of/javalite/bin/javalite

I've seen comments claiming calibration success from people using TSLib, so:
Code: Select all
sudo apt install libts0 libts-bin
Code: Select all
sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=/etc/ts.conf TSLIB_PLUGINDIR=/usr/lib/i386-linux-gnu/ts0 /usr/bin/ts_calibrate
xres = 800, yres = 480
Took 1 samples...
Top left : X = 2336 Y = 3808
Took 2 samples...
Top right : X = 30464 Y = 3936
Took 3 samples...
Bot right : X = 30592 Y = 29536
Took 1 samples...
Bot left : X = 2208 Y = 29824
Took 4 samples...
Center : X = 16528 Y = 16976
-6.908454 0.024773 0.000000
-8.259348 0.000042 0.014722
Calibration constants: -452752 1623 0 -541284 2 964 65536
Code: Select all
sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=/etc/ts.conf TSLIB_PLUGINDIR=/usr/lib/i386-linux-gnu/ts0 /usr/bin/ts_test
Code: Select all
sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=/etc/ts.conf TSLIB_PLUGINDIR=/usr/lib/i386-linux-gnu/ts0 /home/of/jivelite/bin/jivelite