Misc-Notes.md 6.8 KB

Misc. Notes

2019-11-01

Custom Splash Screen

src

In /boot/config.txt, add:

disable_spash=1

optionally:

disable_overscan=1

In /boot/cmdline.txt, add:

logo.nologo consoleblank=0 loglevel=1 quiet

By hand run

systemctl disable getty@tty1

apt install fbi

Create /etc/systemd/system/splashscreen.service:

[Unit]
Description=Splash screen
DefaultDependencies=no
After=local-fs.target

[Service]
ExecStart=/usr/bin/fbi -d /dev/fb0 --noverbose -a /opt/splash.png
StandardInput=tty
StandardOutput=tty

[Install]
WantedBy=sysinit.target

With /opt/splash.png


Might need to kill fbi when starting the kiosk.


update

using this guide instead, you can change the splash screen in:

/usr/share/plymouth/themes/pix/splash.png

to something custom.

Custumizing X

src and src

apt-get install matchbox-window-manager

into somthing like start-kiosk.sh

#!/bin/sh

export BASEDIR=/home/pi

/usr/bin/matchbox-window-manager -use_cursor no -use_titlebar no & 

#/usr/bin/chromium-browser  --no-sandbox

# clear out warning bar on chromium
#
tmpfn=`mktemp`
jq '.profile.exited_cleanly = true' $BASEDIR/.config/chromium/Preferences | jq '.profile.exit_type = "Normal"' > $tmpfn
mv $tmpfn $BASEDIR/.config/chromium/Preferences

# start chromium in kiosk mode
#

xset s noblank
xset s off
xset -dpms
unclutter -idle 0.05 -root &

#/usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk ./html/index.html
#
#  --no-sandbox \
#  --disable-application-cache \
/usr/bin/chromium-browser \
  --test-type \
  --no-sandbox \
  --noerrdialogs \
  --disable-infobars \
  --aggressive-cache-discard \
  --incognito \
  --disable-pinch \
  --overscroll-history-navigation=0 \
  --kiosk \
  'http://localhost:60535'

--test-type is needed to get rid of the --no-sandbox warning and the --no-sandbox is needed or else chromium crashes when being used by xinit (see here).


update-alternatives --config x-window-manager
update-alternatives --display x-window-manager

Note I was having problems with the 'dim' function as it wasn't executing correctly (needed to be root instead of pi) and the display was wrong.

One way to discover which display is being used is:

# ps aux | grep xserver
root       808  0.0  0.0   3872   704 ?        S    Jan30   0:00 xinit /home/bus/bin/start-kiosk.sh -- /etc/X11/xinit/xserverrc :0 -auth /tmp/serverauth.vJgHr6zsRs
root      3354  0.0  0.0   3872   788 tty1     S+   Jan30   0:00 xinit /home/bus/bin/start-kiosk.sh -- /etc/X11/xinit/xserverrc :1 vt1 -keeptty -auth /tmp/serverauth.HSj8JTM2IM
root     27449  0.0  0.0   7348   524 pts/1    S+   05:48   0:00 grep xserver

From an SO answer, need to load the 'magic cookie' for X communication:

su - <otheruser> -c "unset XAUTHORITY; xauth add $(xauth list)"

Packages

sudo apt install -y sox espeak mplayer ffmpeg alsa-utils

Sound

Use raspi-config to force audio through the 3.5mm audio jack.

There's an issue with the HDMI 'going to sleep' and cutting off the first two seconds of the audio if nothing is being played through it. The 3.5mm jack seems to not have that issue.


The 3.5mm jack has a lot of noise on the line. The fix looks to be using a USB speaker. For now we'll go with the 3.5mm jack but this will eventually need replacement.

Monitor

To get monitor resolution:

fbset -s

System Setup

Make sure the following are installed:

apt install -y espeak mplayer

Enable ssh server (for debugging and setup):

systemctl enable ssh
systemctl start ssh

Run raspi-config and select option 4 for the screen (640x480 @ 60Hz):

raspi-config

Make sure to manually set volume on the waveshare screen (default is set at 50) from the buttons provided on the left.


Remove libreoffice to free up space (around 0.5Gb):

apt remove -y libreoffice libreoffice-base-core libreoffice-common libreoffice-core libreoffice-help-common libreoffice-help-en-gb libreoffice-help-en-us libreoffice-l10n-en-gb libreoffice-style-colibre libreoffice-style-tango
apt autoremove -y --purge

apt-get purge wolfram-engine scratch scratch2

Disable bluetooth:

echo 'dtoverlay=pi3-disable-bt >> /boot/config.txt

and related services (from here):

systemctl disable hciuart.service
systemctl disable bluealsa.service
systemctl disable bluetooth.service

GPRS fiddling

I'm still trying to get GPRS to work consistently.

Once the system is setup, it seems like it's pretty consistent, but getting /dev/ttyGPRS to be consistently tied to the appropriate device is proving difficult...sometimes /dev/ttyAMA0 works, sometimes it's /dev/serial0, sometimes it's /dev/ttyUSB0, othertimes it looks like /dev/ttyUSB2 works.

I notice messages of this sort happening most recently which could or could not be related to the the GPRS not working (/var/log/syslog):

Jan 30 11:56:23 raspberrypi systemd[1]: serial-getty@ttyAMA0.service: Succeeded.
Jan 30 11:56:23 raspberrypi systemd[1]: serial-getty@ttyAMA0.service: Service RestartSec=100ms expired, scheduling restart.
Jan 30 11:56:23 raspberrypi systemd[1]: serial-getty@ttyAMA0.service: Scheduled restart job, restart counter is at 198.
Jan 30 11:56:23 raspberrypi systemd[1]: Stopped Serial Getty on ttyAMA0.
Jan 30 11:56:23 raspberrypi systemd[1]: Started Serial Getty on ttyAMA0.

I followed this:

systemctl stop serial-getty@ttyAMA0.service

Disable permanently (SO answer suggested the 'mask'):

systemctl disable serial-getty@ttyAMA0.service
systemctl mask serial-getty@ttyAMA0.service

Other References