dopo aver realizzato il contenitore box per il raspberry con display touch da mettere accanto alla stampante dove far girare OCTOPI, avevo bisogno di lanciare firefox ma non volevo installare nessun Desktop environment per risparmiare RAM e potenza computazionale, tanto deve solo mostrare una pagina internet e basta ...
il primo scoglio da superare è stato che il display non mi mostrava niente completamente, come se fosse guasto .... una veloce ricerca e ho scoperto che il display non viene rilevato dal raspberry quindi il raspi non sa a che risoluzione settarsi e non si vede niente .... va modificato il file /boot/config.txt aggiungendo le seguenti righe
hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=87 hdmi_cvt=800 480 60 6 0 0 0 hdmi_drive=1 max_usb_current=1
cosi il raspberry si avvia, non si vede la prima schermata multicolor ma poi si vede il boot e si arriva al login
avevo gia visto in precedenza https://support.mozilla.org/en-US/questions/1294382 come far avviare firefox senza la necessita di installare tutto il DE (attenzione al claim di originalita piu' sotto nei post :
The above post was copy+pasted from https://linuxconfig.org/how-to-run-x-applications-without-a-desktop-or-a-wm)
basta installare solo Xorg
sudo apt-get install xorg
e quindi da consolle lanciare il comandi
come utente normale
$ xinit firefox $* -- :0 vt$XDG_VTNR
o come utente root
sudo xinit firefox $* -- :1
entrambi funzionano (devi avere xinit installato e sul raspberry lo è , su una ubuntu che avevo provato in precedenza no)
cosi facendo si, funziona ma non parte in full screen mode e occupa solo una parte del display .. cerco e trovo
/usr/bin/firefox --kiosk http://127.0.0.1
quindi provo ad inserire questa riga in uno dei comandi di sopra ...
pi@octopi:~ $ xinit firefox --kiosk http://127.0.0.1 $* -- :0 vt$XDG_VTNR /usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server ^Cxinit: giving up xinit: unable to connect to X server: Connection refused xinit: unexpected signal 2
nell' altro comando
pi@octopi:~ $ sudo xinit firefox --kiosk http://127.0.0.1 $* -- :1 X.Org X Server 1.20.4 X Protocol Version 11, Revision 0 Build Operating System: Linux 5.4.0-72-generic armv8l Raspbian Current Operating System: Linux octopi 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=800 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=3e4cf0df-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait Build Date: 04 January 2022 10:05:34AM xorg-server 2:1.20.4-1+rpt4+deb10u4 (https://www.debian.org/support) Current version of pixman: 0.36.0 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.2.log", Time: Mon Apr 11 21:40:05 2022 (==) Using config directory: "/etc/X11/xorg.conf.d" (==) Using system config directory "/usr/share/X11/xorg.conf.d" xterm: bad command line option "--kiosk" usage: xterm [-/+132] [-C] [-Sccn] [-T string] [-/+ah] [-/+ai] [-/+aw] [-b number] [-baudrate rate] [-/+bc] [-bcf milliseconds] [-bcn milliseconds] [-bd color] [-/+bdc] [-bg color] [-bw number] [-/+cb] [-cc classrange] [-/+cjk_width] [-class string] [-/+cm] [-/+cn] [-cr color] [-/+cu] [-/+dc] [-display displayname] [-e command args ...] [-fa pattern] [-fb fontname] [-/+fbb] [-/+fbx] [-fd pattern] [-fg color] [-fi fontname] [-fn fontname] [-fs size] [-/+fullscreen] [-fw fontname] [-fwb fontname] [-fx fontname] [%geom] [#geom] [-geometry geom] [-help] [-/+hm] [-/+hold] [-iconic] [-/+ie] [-/+im] [-into windowId] [-/+itc] [-/+j] [-/+k8] [-kt keyboardtype] [-/+l] [-/+lc] [-lcc path] [-leftbar] [-lf filename] [-/+ls] [-/+maximized] [-/+mb] [-mc milliseconds] [-/+mesg] [-/+mk_width] [-ms color] [-n string] [-name string] [-nb number] [-/+nul] [-/+pc] [-/+pob] [-report-charclass] [-report-colors] [-report-fonts] [-rightbar] [-/+rv] [-/+rvc] [-/+rw] [-/+s] [-/+samename] [-/+sb] [-selbg color] [-selfg color] [-/+sf] [-sh number] [-/+si] [-/+sk] [-sl number] [-/+sm] [-/+sp] [-/+t] [-ti termid] [-title string] [-tm string] [-tn name] [-/+u8] [-/+uc] [-/+ulc] [-/+ulit] [-/+ut] [-/+vb] [-version] [-/+wc] [-/+wf] [-xrm resourcestring] [-ziconbeep percent] Type xterm -help for a full description. xinit: connection to X server lost waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.
non ne vuole sapere ...
decido di seguire un altra strada ... dire a firefox quali sono le dimensioni della finestra, cerco e trovo che dentro al file
nano /root/.mozilla/firefox/k6batsk6.default-esr/xulstore.json
(ognuno di noi ha una directory diversa dove è contenuto il file xulstore.json)
si puo' indicare le dimensioni della finestra da aprire ...
{"chrome://browser/content/browser.xhtml":{"main-window":{"sizemode":"maximized","width":"800","height":"480"}}}
pensavo che il problema dell' errore di xinit fosse dovuto alla modalita kiosk di firefox ed invece mi rendo conto che è dovuto all esistenza di parametri sulla riga di comando, la cosa è evidente quando ora che ho settato le dimensioni provo a passare un url all avvio di firefox .... ed ottengo lo stesso errore di sopra
anche qui, se ho un problema sicuramentequalcuno ha avuto lo stesso problema prima di me ... basta solo capire come descrivere il problema ... ed ecco la soluzione
https://stackoverflow.com/questions/42844931/launch-program-with-xinit-with-parameters
in pratica va lanciato un singolo file/comando/script e dentro allo script ci possono essere tutti i parametri che vogliamo , quindi creo un file
firefox.sh (ovviamente eseguibile)
/usr/bin/firefox --kiosk http://127.0.0.1
e lo avvio
sudo xinit /home/pi/firefox.sh $* -- :1
e funziona .... ora rimane l' ultima cosa da fare , eseguirlo in automatico al' avvio ... decido di farlo tramite una unit di systemd
sudo nano /lib/systemd/system/firefox.service
[Unit] Description=start firefox without WD After=multi-user.target [Service] user=root ExecStart=xinit /home/pi/firefox.sh $* -- :1 [Install] WantedBy=multi-user.target
riavvio systemd e avvio la unit
sudo systemctl daemon-reload sudo systemctl start firefox
vado a controllare sul display e trovo il mio bel firefox in kiosk mode (full screen + qualcos altro) che mi chiede di effettuare il login su octopi ... quasi ci siamo
dal pc, accedo alla pagina di octopi sul raspberry, menu (il logo della chiave in alto a destra), plugin manager e installo il plugin autologin
riavvio del server , quindi configurazione (abbastanza semplice)
riavvio nuovamente il tutto, ed ecco che mi ritrovo col raspberry avviato, il display acceso, firefox avviato a schermo intero octopi gia col login fatto ... unica cosa che devo capire da che dipende è che il touch screen non mi funziona nell' ultimo mezzo cm in alto quello dove octopi ha il pulsante di spegnimento ....