Stránka 4 z 6
Napsal: 29 črc 2025, 21:35
od rnbw
Ked uz sme pri busyboxe, tak som nieco objavil:
https://wiki.alpinelinux.org/wiki/Power ... ybox_acpid
Zdrojak acpid.c v busyboxe:
Kód: Vybrat vše
//config: acpid listens to ACPI events coming either in textual form from
//config: /proc/acpi/event (though it is marked deprecated it is still widely
//config: used and _is_ a standard) or in binary form from specified evdevs
//config: (just use /dev/input/event*).
//config:
//config: It parses the event to retrieve ACTION and a possible PARAMETER.
//config: It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
//config: (if the resulting path is a directory) or directly as an executable.
Takze asi by stacilo spustit "busybox acpid" a mal by pri stlaceni power spustit /etc/acpi/power.
Napsal: 29 črc 2025, 22:09
od lesana87
To je zajímavý, ale nějak se mi to nedaří rozchodit. Nic to nedělá. Když ho spustím -f, aby běžel na popředí, tak za chvíli spadne na segmentation fault. Spouštím ho s parametrem -e /dev/input/event0 a v adresáři /etc/acpi mám skript power. Nevím, jestli je potřeba ten acpid.conf a acpi.map a co v nich má být.
Kód: Vybrat vše
root@nas326:~# busybox acpid --help
BusyBox v1.35.0 (Debian 1:1.35.0-4+b4) multi-call binary.
Usage: acpid [-df] [-c CONFDIR] [-l LOGFILE] [-a ACTIONFILE] [-M MAPFILE] [-e PROC_EVENT_FILE] [-p PIDFILE]
Listen to ACPI events and spawn specific helpers on event arrival
-d Log to stderr, not log file (implies -f)
-f Run in foreground
-c DIR Config directory [/etc/acpi]
-e FILE /proc event file [/proc/acpi/event]
-l FILE Log file [/var/log/acpid.log]
-p FILE Pid file [/var/run/acpid.pid]
-a FILE Action file [/etc/acpid.conf]
-M FILE Map file [/etc/acpi.map]
Accept and ignore compatibility options -g -m -s -S -v
Edit: Aha, ono je to popsané v tom odkazu.
Moc moudrá z toho ale nejsem, jednou píšou, že to spustí /etc/acpi/power, podruhý /etc/acpi/PWRF/00000080. Mám tam obojí a stejně to nic nedělá. A po chvíli ten busybox z paměti zmizí, asi spadne na ten SF.
Napsal: 31 črc 2025, 09:16
od Mahoney
lesana87 píše:
Nesnáším linux.

Linux je výbornej, jen s Debianem už je to delší dobu špatný.
Napsal: 31 črc 2025, 09:50
od rnbw
Obcas sa vyskytne nejaky bug alebo problem, ale lepsia distribucia neexistuje.
Napsal: 31 črc 2025, 15:36
od Mahoney
Ať si každý vybere podle svého gusta, mě se sestavy s Debian/Ubuntu pokaždé sesypaly na nějaký bug, zatímco distribuce, kterou dlouhodobě používám, mi to nikdy neudělala. Nejhorší to bylo s Ubuntu tuším 10(.04, .10 nebo 11.04? Tam někde to bylo), tam byl nějaký bug v bootloaderu/filesystému a vzalo mi to komplet celý disk; nejhorší na tom bylo, že to zrovna byl disk s fotkami u známých, které jsem přesvědčoval že Linux je fajn, a samozřejmě je neměli nikde zálohované.
Mě nebaví řešit dependency hell a různé errory přesně jak píše Lesana, navíc se to pokaždé "vyroluje" na nejnovější verzi i když třeba nechci. Používám je jako live distribuce na práci (hlavně starší verze Ubuntu), tam jsou výborné .
Je pravda, že občas mají balíčky, které jinde moc nejsou (např arm-none-eabi), pak kompiluju na tom.
Napsal: 31 črc 2025, 16:27
od asdf
Mahoney píše:... a vzalo mi to komplet celý disk; nejhorší na tom bylo, že to zrovna byl disk s fotkami u známých, které jsem přesvědčoval že Linux je fajn, a samozřejmě je neměli nikde zálohované.
Hmm, to zamrzí.
Napsal: 31 črc 2025, 17:43
od lesana87
Mahoney píše:Linux je výbornej, jen s Debianem už je to delší dobu špatný.
Linux je výbornej na hraní, jako os na práci, nic moc. Ze 4 tiskáren se mi povedlo rozchodit 1 a půl, ze 4 scanerů ani jeden, ve windows XP jsem rozchodila všechny. Taky jsem nikdy ve windows neřešila, že mi nefungujou tlačítka nebo uspávání disků. V linuxu je na to potřeba vysoká linuxová a tu já nemám i když si s linuxem hraju s přestávkama od roku 1996, pořád jsem spíš lama. A s Debianem si nerozumím, v něm jsem nerozchodila ani tu půlku tiskárny.
Napsal: 31 črc 2025, 18:04
od asdf
Ono je to taky i tím, že ne všechny firmy dodávají pro Linux ovladače. Já to zatím vyřešil tím, že mám Windows a k tomu virtuální počítač s Linuxem. Tak mám obojí. Akorát mám jen 4GB paměti, tak mi to občas zatuhne.

Bohužel ty Windowsy jsou 10-ky, tak se budu muset rozhodnout, co s tím dál.
Napsal: 31 črc 2025, 21:34
od lesana87
Tak jsem u toho vypínacího tlačítka ještě pořešila, aby fungovalo jen na dlouhý stisk a finální skript vypadá následovně:
Kód: Vybrat vše
#!/bin/bash
while true
do
readarray -d\ event < <(od -A n -t u2 -N 16 /dev/input/event0 | awk '{print $1, $2, $5, $6, $7}')
time=$((65536 * ${event[1]} + ${event[0]}))
# echo $time ${event[2]} ${event[3]} ${event[4]}
if [ ${event[2]} = 1 -a ${event[3]} = 116 ]
then
# echo "Power button"
if [ ${event[4]} = 1 ]
then
# echo "Power button pressed."
time_start=$time
fi
if [ ${event[4]} = 0 ]
then
time_on=$(($time - $time_start))
# echo "Power button released after $time_on s."
if [ ${time_on} -ge 2 ]
then
beep1
sleep 2
halt
fi
fi
fi
done
Nevidí tam někdo nějakou chybu?
Napsal: 31 črc 2025, 22:04
od asdf
Mně se to líbí. Myslím, že by to mělo fungovat.
Napsal: 31 črc 2025, 22:15
od lesana87
V testovacím provozu to funguje. Díky asdf a rnbw za podnětné rady, vůbec by mě nenapadlo, že se něco takového dá napsat v shell scriptu. Jo bash je mocný nástroj mocného linuxu.

Napsal: 31 črc 2025, 22:26
od asdf
lesana87 píše:... mocného linuxu.

Tak je to správné.

Napsal: 31 črc 2025, 23:09
od asdf
Ještě mě napadlo: Když ti mezi stisknutím a puštěním tlačítka přeteče ten čas, tak ti ten time_on vyjde záporný. Tak možná k němu (když bude záporný) přičíst 65536*65536. Ale ono se to nestane. Tak asi nic.
Edit: Oni píšou, že "Evaluation is done in fixed-width integers with no check for overflow...". Tak jestli to je 32-bitový integer, tak to je takhle v pohodě.
Napsal: 01 srp 2025, 08:28
od lesana87
Až to počítadlo sekund od 1.1.1970 přeteče, tak už budu řešit jiný věci, než jestli se mi vypnul NAS.

Napsal: 01 srp 2025, 15:09
od asdf
A u té NASky není taková funkce, že když se vypínací tlačítko podrží déle (možná tak 5 sekund), tak se to vypne natvrdo i bez skriptu?