Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

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 ....