Debian 9 - Automatické spuštění scriptu (startx...) po startu (přihlášení)

Zdravím,
ke svoji 3D tiskárně Rebel II jsme is pořídil "mini" PC [ur=http://www.pipo.com/product.php?id=186l]Pipo X8[/url] ve variantě s Intel Atom x5-Z3850 , mám tam nainstalovaný Debian 9 a Repetier-Server pro "obsluhu" tiskárny, kdy v podstatě po větších peripetiích jsem se dostal do stavu že je vše nainstalované, Debain se po startu se mi automatický přihlásí, otočí se obraz na správnou orientaci, Repetiaer-Server funguje, ale potřebuju aby mi automaticky nastartovalo dotykové UI toho Repetier-Sereveru. Mám napsané dva bash scripty pro "manuální" start, které fungují ok:

chromiumTouchUi.sh:
Kód: [Vybrat]
#!/bin/sh
matchbox-window-manager -use_cursor no&
xrandr --output DSI-1 --auto --rotate left --pos 0x0
xinput set-prop 14 --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1
chromium --start-maximized --kiosk http://localhost:3344/modules/front2/www/app.html

startTouchUi.sh:
Kód: [Vybrat]
#!/bin/bash
startx ./chromiumTouchUi.sh

Ale nedaří se mi "donutit" ho aby startovaly automaticky po startu a přihlášení, zkoušel jsme to pomocí crontab -e a v poslední variantě přes systemd.service: /etc/systemd/system/startTouchUi.service
Kód: [Vybrat]
[Unit]
Description=Start Repetier Server Touch UI.
After=getty@tty1.service

[Service]
Type=simple
ExecStart=/home/rambo/startTouchUi.sh
Restart=no
StandartOutput=syslog
StandartError=syslog
SyslogIdentifier=RepetierServerTouchUi
User=rambo
Group=rambo
WorkingDirectory=/home/rambo/

[Install]
WantedBy=multi-user.target

Přikládám Xorg.0.log:
Kód: [Vybrat]
[    11.879]
X.Org X Server 1.19.2
Release Date: 2017-03-02
[    11.879] X Protocol Version 11, Revision 0
[    11.879] Build Operating System: Linux 4.9.0-4-amd64 x86_64 Debian
[    11.879] Current Operating System: Linux pipo-x8-3d-printer-server 4.16.0-0.bpo.2-amd64 #1 SMP Debian 4.16.16-2~bpo9+1 (2018-06-26) x86_64
[    11.879] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.16.0-0.bpo.2-amd64 root=UUID=54ae16aa-8c63-4595-959b-9af307686f3b ro fbcon=rotate:3 quiet
[    11.880] Build Date: 16 October 2017  08:19:45AM
[    11.880] xorg-server 2:1.19.2-1+deb9u2 (https://www.debian.org/support)
[    11.880] Current version of pixman: 0.34.0
[    11.880] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[    11.880] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    11.880] (==) Log file: "/home/rambo/.local/share/xorg/Xorg.0.log", Time: Wed Jul  4 18:53:19 2018
[    11.886] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    11.888] (==) No Layout section.  Using the first Screen section.
[    11.888] (==) No screen section available. Using defaults.
[    11.889] (**) |-->Screen "Default Screen Section" (0)
[    11.889] (**) |   |-->Monitor "<default monitor>"
[    11.890] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[    11.890] (==) Automatically adding devices
[    11.890] (==) Automatically enabling devices
[    11.890] (==) Automatically adding GPU devices
[    11.890] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    11.892] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    11.892] Entry deleted from font path.
[    11.892] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    11.892] Entry deleted from font path.
[    11.892] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    11.892] Entry deleted from font path.
[    11.892] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist.
[    11.892] Entry deleted from font path.
[    11.892] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[    11.892] Entry deleted from font path.
[    11.892] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[    11.892] Entry deleted from font path.
[    11.892] (==) FontPath set to:
/usr/share/fonts/X11/misc,
built-ins
[    11.892] (==) ModulePath set to "/usr/lib/xorg/modules"
[    11.892] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[    11.892] (II) Loader magic: 0x55b737037e00
[    11.892] (II) Module ABI versions:
[    11.892] X.Org ANSI C Emulation: 0.4
[    11.892] X.Org Video Driver: 23.0
[    11.892] X.Org XInput driver : 24.1
[    11.892] X.Org Server Extension : 10.0
[    11.896] (--) using VT number 2

[    11.896] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    11.900] (II) xfree86: Adding drm device (/dev/dri/card0)
[    11.911] (--) PCI:*(0:0:2:0) 8086:22b0:8086:7270 rev 54, Mem @ 0x90000000/16777216, 0x80000000/268435456, I/O @ 0x0000f000/64, BIOS @ 0x????????/131072
[    11.912] (II) LoadModule: "glx"
[    11.914] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    11.933] (II) Module glx: vendor="X.Org Foundation"
[    11.933] compiled for 1.19.2, module version = 1.0.0
[    11.933] ABI class: X.Org Server Extension, version 10.0
[    11.933] (==) Matched modesetting as autoconfigured driver 0
[    11.933] (==) Matched fbdev as autoconfigured driver 1
[    11.933] (==) Matched vesa as autoconfigured driver 2
[    11.933] (==) Assigned the driver to the xf86ConfigLayout
[    11.933] (II) LoadModule: "modesetting"
[    11.933] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[    11.935] (II) Module modesetting: vendor="X.Org Foundation"
[    11.935] compiled for 1.19.2, module version = 1.19.2
[    11.935] Module class: X.Org Video Driver
[    11.935] ABI class: X.Org Video Driver, version 23.0
[    11.935] (II) LoadModule: "fbdev"
[    11.935] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[    11.937] (II) Module fbdev: vendor="X.Org Foundation"
[    11.937] compiled for 1.19.0, module version = 0.4.4
[    11.937] Module class: X.Org Video Driver
[    11.937] ABI class: X.Org Video Driver, version 23.0
[    11.937] (II) LoadModule: "vesa"
[    11.937] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[    11.938] (II) Module vesa: vendor="X.Org Foundation"
[    11.938] compiled for 1.19.0, module version = 2.3.4
[    11.938] Module class: X.Org Video Driver
[    11.938] ABI class: X.Org Video Driver, version 23.0
[    11.938] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    11.938] (II) FBDEV: driver for framebuffer: fbdev
[    11.939] (II) VESA: driver for VESA chipsets: vesa
[    11.939] (EE)
Fatal server error:
[    11.939] (EE) xf86OpenConsole: Cannot open virtual console 2 (Permission denied)
[    11.939] (EE)
[    11.939] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
 for help.
[    11.939] (EE) Please also check the log file at "/home/rambo/.local/share/xorg/Xorg.0.log" for additional information.
[    11.939] (EE)
[    11.939] (WW) xf86CloseConsole: KDSETMODE failed: Bad file descriptor
[    11.939] (WW) xf86CloseConsole: VT_GETMODE failed: Bad file descriptor
[    11.939] (EE) Server terminated with error (1). Closing log file.

A pak možná ještě jedna "drbka" nevíte někdo jestli se dá obraz otočit už v GRUBu? Protože momentálně se otočí až při najíždění systému.

Díky.


Jenda

Já tohle dělám tak, že nainstaluju lightdm a do souboru /etc/lightdm/lightdm.conf.d/12-autologin.conf napíšu
Kód: [Vybrat]
[SeatDefaults]
autologin-user=youruser

Autologin jsem už dříve vyřešil pomocí:
/etc/systemd/system/getty@tty1.service.d/override.conf
Kód: [Vybrat]
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin <user-name> --noclear %I 38400 linux

Zdroj: https://askubuntu.com/questions/819117/autologin-at-startup-to-ubuntu-server-16-04-1-lts

Věci, které se mají automaticky startovat při přihlášení do X, patří IMO do $HOME/.xsession .
Zrovna si s tím hraju na kombinaci Debian 9, Lightdm a Matchbox (právě Matchbox je první věc, která startuje z .xsession).

Rotovat kernelový framebuffer? Byl jsem skeptický, ale ono to možná funguje. Hmm... koukám Zetkový ATOM, ovšem s Intelskou grafikou? Možná dost klika že to není PowerVR :-)

Věci, které se mají automaticky startovat při přihlášení do X, patří IMO do $HOME/.xsession .
Zrovna si s tím hraju na kombinaci Debian 9, Lightdm a Matchbox (právě Matchbox je první věc, která startuje z .xsession).

Rotovat kernelový framebuffer? Byl jsem skeptický, ale ono to možná funguje. Hmm... koukám Zetkový ATOM, ovšem s Intelskou grafikou? Možná dost klika že to není PowerVR :-)
Tady se přiznám že z toho $HOME/.xsession nejsme zrovna chytrý, protože já v Home nemám žádnou složku .xsession, protože ty Xka tam mám nainstalované (aspoň jsem se o to snažil) jen v nezbyteném minimu pro to chromium a ty schrpity když spustím z klávensice v "terminálu" co se mi automatický přihlásí, tak fungují v pořádku, jen chci aby se to spouštělo automaticky, z důvodu jednak pohodlí a taky abych nemusel mít připojenou klávesnici.

Ten /etc/default/grub mám "zeditovaný" na GRUB_CMDLINE_LINUX="fbcon=rotate:3" a ono to neotočí přímo GRUB, ale až pak jak začne najíždět systém tak se obraz otočí, takže "terminál" mám pak ve správně orientaci, proto mě to tak "tak nepálí" to otáčet, ale bylo by to fajn, protože by to vypadalo líp :D. Zkusím to zítra natočit na video, jak to vypadá.
Kdyby to nemělo Intelovskou grafiku ale PowerVR, tak jsem to nepořizoval, už tak jsem měl obavy z toho co tam číňani vymyslí za čáry a máry a jestli na tom vůbec linux bude fungovat, ale vypadá to ok.


Jenda

Autologin jsem už dříve vyřešil
Ano, ale to je autologin na konzoli. Tohle spustí display manager (a tedy Xka) a do nich to uživatele přihlásí.

nobody(ten pravej)

Tady se přiznám že z toho $HOME/.xsession nejsme zrovna chytrý, protože já v Home nemám žádnou složku .xsession
NEjde o slozku, ale o soubor... kdyz nemas, nevadi (jako u vetsiny (do)konfiguracnich souboru) proste ho vytvoris ;-)

Tady se přiznám že z toho $HOME/.xsession nejsem zrovna chytrý, protože já v Home nemám žádnou složku .xsession

.xsession (nebo postaru .xinitrc, patrně deprecated) je skript, resp. možná by tak šel pojmenovat i ELFový binár.

Tuším jsem si všiml, že mi tam nechodí správně hranatá závorková konvence if []; then, ale příkaz "test" ano = patrně to bylo tím, že jsem neměl na prvním řádku zadaný #!/bin/sh   (= konkrétní interpreter).

Zadání "minimalistické X jenom jako podvozek pod browser" je zřejmě ultra-klasické :-)  Chrome / chromium mají parametr --kiosk, a jak jim tak firefoxu lze alternativně poslat F11 přes "xdotool". Klasický obsah .xsession v tom případě je něco jako

xset -dpms
xset s off
xset s noblank
matchbox-window-manager &

while true; do
    chromium-browser --kiosk http://moje.url   
done


nepoviem

ked je tam autologin, neslo by dat spustenie toho skriptu rovno do .bashrc?

ked je tam autologin, neslo by dat spustenie toho skriptu rovno do .bashrc?

.bashrc se provádí po přihlášení na textovou konzolu.

.xsession se provádí po přihlášení do X, tzn. "v grafickém kontextu".

Nakonec jsem to vyřešil tím lightdm, sice jsem chvíli bojoval s otáčením displaye a dotykové vrstvy, hlavně proto že kdyžj sme odpojil klávesnicí tak se mi zmenily IDčka a dotyková vrstva se o5 neotáčela, ale vyřšil jsem to tak je to ok, ještě chci nastudovat a pořešit aby se mi "nevypínal display", ale zatím jsem neměl čas to řešit a není to vůbec nic kritického.

Tady přikládám slíbené video bootu: https://photos.app.goo.gl/8qQnyuCkYDrLpNj76 kde je vidět kdy se "otáčí obraz" až "po" GRUBu.

ještě chci nastudovat a pořešit aby se mi "nevypínal display"

Jako že aby "nemrkal" při přechodech Grub -> Plymouth -> X ? To je zřejmě dost obtížné.

Nebo aby jenom neusínal při nečinnosti?

Druhá varianta by měla jít zařídit tímto v .xsession:
xset -dpms
xset s off
xset s noblank

Ledaže pak ještě najede v desktopovém prostředí nějaké klikací udělátko, které si toto překonfiguruje. Ale pokud máte jenom matchbox nebo co, tak by tam snad nic dalšího startovat nemělo...

Druhá varianta, aby neusínal při nečinnosti, ale jak říkám, zatím jsem to neřešil, neměl jsme na to čas, protože to pro mě teď není kritické a tisknout  to tiskne :).

Předtím jsem tam měl RPi 2 později 3 bez dotykového displaye, kdy jsme měl problémy s kamerou, která mi restartartovala RPi. Celkově to prostředi bylo mnohem línější, tady ten Atom funguje super a můžu jen doporučit.