Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
systemctl status bumblebeed
● bumblebeed.service - Bumblebee C Daemon
Loaded: loaded (/usr/lib/systemd/system/bumblebeed.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-07-22 10:33:32 CEST; 1 day 13h ago
Main PID: 656 (bumblebeed)
Tasks: 1 (limit: 18816)
Memory: 17.2M
CGroup: /system.slice/bumblebeed.service
└─656 /usr/bin/bumblebeed --use-syslog
Ta služba si spouští další proces "Xorg :8 -config...", takže výpis pak vypadá takto:
systemctl status bumblebeed
● bumblebeed.service - Bumblebee C Daemon
Loaded: loaded (/usr/lib/systemd/system/bumblebeed.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-07-22 10:33:32 CEST; 1 day 11h ago
Main PID: 656 (bumblebeed)
Tasks: 2 (limit: 18816)
Memory: 30.6M
CGroup: /system.slice/bumblebeed.service
├─ 656 /usr/bin/bumblebeed --use-syslog
└─52090 /usr/lib/Xorg :8 -config ...
Já bych potřeboval spustit svůj bash script ve chvíli kdy si služba bumblebeed spustí proces "Xorg :8 -config...". Existuje nějaká taková možnost v systemd? Vím, že existuje "Before", "After", ale to v tomto případě asi nepomůže.
Řešení dotazu:
Ten hlavní proces bumblebeed (nastartovaný systemd) zůstává pořád běžet?Ano, zůstává pořád běžet. Výpis služby vypadá takto:
systemctl cat bumblebeed # /usr/lib/systemd/system/bumblebeed.service [Unit] Description=Bumblebee C Daemon [Service] Type=simple ExecStart=/usr/bin/bumblebeed --use-syslog Restart=always RestartSec=60 [Install] WantedBy=multi-user.target
Potřebuji tudíž ihned po spuštění nové instance Xorg :8 spustit můj script, který na něm vypne klávesnci a myš.To vypadá jako rovnák na ohejbák. Nešlo by zařídit, aby se tam ta klávesnice a myš vůbec nepřipojila?
# If you connect a display to one of the outputs wired to the Nvidia card, you
# have to comment this whole file. Note that you can leave it commented even
# without currently attached monitor, at the cost of greater optirun startup
# time.
Section "InputClass"
Identifier "IgnoreDevices"
MatchDevicePath "/dev/input/event*|/dev/input/mouse*|/dev/input/js*|/dev/input/mice*"
Option "Ignore" "true"
EndSection
Jenomže, pak nefunguje klávesnice a myš na "Xorg :8" vůbec a nevím o tom, že by šla nějak zapnout bez resetu Xka. Já potřebuji přehazovat jednu klávesnici a jednu myš mezi oběma Xkama. Script na přepínání už mám hotový (řešil jsem v tom vedlejším vlákně). Jedině, že by existoval nějaký parametr při spuštění Xorg, něco jako "/usr/lib/Xorg :8 -disable input ...", ale jak jsem googlil, tak jsem nic takového nenašel. Všichni vypínají klávesnice, myši a touchpady pomocí xinput. Takže z toho mně vyplývá, že jediná varianta je:
- nejdřív musím zapnout "Xorg :8",
- potom pomocí xinput vypnout klávesnici a myš.
Myslel jsem, že jsem se spletl a ty znáš nějaké řešení.
Jde o to, že když vytvoříš ten conf soubor co je i v tom tvém odkazu, tak tím řekneš Xku, aby vůbec nenačetl vstupní zařízení. Takže výpis ukazuje toto:
DISPLAY=:8 xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Tudíž tam není načtena žádná klávesnice ani myš a proto nemohu příkazem xinput --enable žádné zařízení zapnout.
startx ale přímo příkaz "/usr/lib/Xorg :8 ..." - viz níže v diskuzi.
DE na "Xorg :8" nespouštím. Spouštím tam jen windows managera (xfwm4) a daný program si spustím z "Xorg :0". Jako trochu jsem uvažoval, že na :8 spustím DE, ale:
za a) to teď nepotřebuji
za b) XFCE mi běží na "Xorg :0" a nejsem si jistý jestli je správné (bezpečné) spouštět XFCE ve druhé instanci na "Xorg :8" pod stejným uživatelem. Znamenalo by to, že obě instance budou používat stejné konfiguráky a nerad bych si XFCE rozhodil. Mohl bych použít jiný DE, ale zase mít 2 různé prostředí mně nepřijde moc přívětivé.
startx nebo xinit nebo si je spouští display manager. Samotný proces /usr/lib/Xorg je nenačítá.
xinitrc přidat něco jako
PROCS=$(ps -aux);
TEST=$(echo -n "$PROCS" | grep "Xorg :8");
if [ -n "$TEST" ]; then
transfer_input.sh
fi
ale je to taky docela hack.
$HOME/.xinitrc i do /etc/X11/xinit/xinitrc. Nenačítá se xinitrc náhodou jen když se Xko startuje příkazem startx? Bumblebee si dané Xko spouští napřímo, takto:
/usr/lib/Xorg :8 -config /etc/bumblebee/xorg.conf.nvidia \ -configdir /etc/bumblebee/xorg.conf.d -sharevts -nolisten tcp \ -noreset -verbose 3 -isolateDevice PCI:01:00:0 \ -modulepath /usr/lib/nvidia/xorg,/usr/lib/xorg/modules
To jsem psal o komentáře výše, že jsem "Zkoušel jsem dát do $HOME/.xinitrc i do /etc/X11/xinit/xinitrc."
ExecStartPost pustít skript, který počká, dokud druhý Xorg nenastartuje a pak překonfiguruje vstupní zařízení.
ps aux | grep "Xorg :8", tak to mi moc nepomůže, protože služba bumblebeed.service se spouští hned při startu PC takže to bych ten script, který bude ve smyčce kontrolovat mohl zrovna spustit po nabootování a vyšlo by to nastejno.
Asi to udělám tak, že vytvořím wraper "muj_optirun.sh" o kterém jsem psal navrchu téhle diskuze. Stejně potřebuji při prvním spuštění "Xorg :8" spustit i windows manager, tak to dám všechno do toho wraperu. Zdá se mi to asi nejelegantnější řešení pokud to pomocí systemd nejde.
<fuj>optirun taky dělá že bumblebeed votevře socket byse toho možná dalo využít :O :O
ss | grep bum u_str ESTAB 0 0 /var/run/bumblebee.socket
</fuj>
[Unit] ConditionPathExists=/etc/sysconfig/cloudformationale mělo by to ověřovat jen při startu služby a přidávat k tomu timery bych dosáhl stejného efektu jako kdyby to kontroloval bash script ve smyčce. Ale existuje Path unit , která interně využívá inotify. Tohle se mi nezdá být až tak fuj. Nebo je na inotify (Path_unit) něco špatného?
/var/run/bumblebee.socket nebo ps aux | grep "Xorg :8", tak to vyjde nastejno.
/tmp/.X11-unix/X8. Jo to už *.path (inotify) zachytí a funguje to. Pokud se na jméno tohoto souboru dá spolehnout, tak takhle by to šlo.
$ cat ~/.config/systemd/user/bumblebee.path
[Unit] Description=Monitors whether /tmp/.X11-unix/X8 file (socket) exists. [Path] PathExists=/tmp/.X11-unix/X8 Unit=bumblebee-disable-kbd-mouse.service [Install] WantedBy=multi-user.target
$ cat ~/.config/systemd/user/bumblebee-disable-keyb-mouse.service
[Unit] Description=Executes script when a file (/tmp/.X11-unix/X8) defined in the bumblebee.path file exists. [Service] Type=simple ExecStartPre=/bin/sleep 1 ExecStart=/path/to/script/disable-kbd-mouse-xorg-8.sh [Install] WantedBy=multi-user.target
$ systemctl --user enable bumblebee.path
Tiskni
Sdílej: