Jak rozchodit tlačítka na Zyxel NAS326

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

Jak rozchodit tlačítka na Zyxel NAS326

#1 Příspěvek od lesana87 »

Ahoj.
Dostala jsem od kolegy v práci Zyxel NAS326 s tím, že už pro něj není podpora. Chtěla jsem na něm rozběhnout NFS a použít ho jako úložiště. Jenže ten původní systém (linux) měl NFS jako instalovatelnou aplikaci a ta už nejde stáhnout. Podařilo se mi podle návodu na netu nainstalovat na něj Debian 6.6.2 (ARMHF) a rozchodit NFS. Přišla jsem tak ale o pár funkcí, které měl původní systém. Například zastavování disků při nečinnosti, ale hlavně nefungují tlačítka na panelu. NAS se tak nedá řízeně vypnout jinak, než že se na něj připojím přes ssh a dám shutdown. Potřebovala bych poradit, jak aspoň to POWER tlačítko rozchodit, aby se dal udělat shutdown tlačítkem jako původně. Na netu jsem našla návody, jak to nastavit pro systemd, ale tady systemd neběží. Poradí, prosím, někdo z místních linuxáků?
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#2 Příspěvek od asdf »

Zkusil bych:

Kód: Vybrat vše

cd /dev/input
ls -l
A jestli tam bude zařízení event0, tak spustit

Kód: Vybrat vše

sudo cat event0
a mačkat to vypínací tlačítko. Jestli to bude něco vypisovat.
Případně zkusit jiná ta zařízení. Mně to vypisuje při tom event0.
Uživatelský avatar
DedVseved
Příspěvky: 960
Registrován: 01 črc 2019, 00:00

#3 Příspěvek od DedVseved »

Na FTP Zyxelu jsou stále firmwary pro NAS326 viz. textový soubor.

Pro uspávání disků slouží příkaz hdparm, ale osobně používám zkompilovaný hd-idle https://github.com/adelolmo/hd-idle z Githubu.

Co se týče tlačítek, tak jestli něco existuje pro systemd, tak určitě je Debian se systemd pro ARMHF.
Přílohy
NAS326.txt
(3.31 KiB) Staženo 81 x
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#4 Příspěvek od lesana87 »

Poslední firmware byl z loňska a ten tam je nahraný, ale už není podpora aplikací, takže tam nejde dostat podpora NFS. A nejde tam dát víc než asi 8 TB disky, proto mi ho kolega dal.

asdf: Tlačítka na event0 něco generují, ale jak na to pověsit ten shutdown?
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#5 Příspěvek od asdf »

Zkusil jsem udělat jednoduchý program. Co ti vypisuje?

Kód: Vybrat vše

#include <linux/input.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char **argv)
{
	FILE *file;
	struct input_event event;
	int result;
	
	file = fopen("/dev/input/event0", "r");
	if ( ! file )
	{
		fprintf(stderr, "Cannot open device.\n");
		exit(1);
	}
	
	while ( 1 )
	{
		result = fread(&event, sizeof(event), 1, file);
		if ( ! result ) continue;
		
		printf("* %d %d %d\n", (int) event.type, (int) event.code, (int) event.value);
		if ( event.type == EV_KEY && event.code == KEY_POWER && event.value )
		{
			printf("POWER\n");
		}
	}
	
	fclose(file);
	
	return 0;
}

Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#6 Příspěvek od lesana87 »

Nemám to jak přeložit.
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#7 Příspěvek od asdf »

Hmm, tak to je blbý.
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#8 Příspěvek od rnbw »

Skompilovat to pre spravnu architekturu nie je uplne trivialne. Pouzivam schroot a qemu-user-static. Vytvorim chroot a nainstalujem do neho debootstrapom Debian pre cielovu architekturu. qemu-user-static zabezpeci, ze binarky pre iny procesor sa daju normalne spustit akoby boli nativne.

Skusil by som nieco taketo:

Kód: Vybrat vše

cat /dev/input/event0 | xxd -g 1
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#9 Příspěvek od lesana87 »

Mění se to. První dvě řádky jsou stisk tlačítka, druhé dvě uvolnění tlačítka, pak znovu stisk a uvolnění.

Kód: Vybrat vše

root@nas326:/dev/input# cat /dev/input/event0 | xxd -g 1
00000000: 21 6f 86 68 63 1d 0b 00 01 00 74 00 01 00 00 00  !o.hc.....t.....
00000010: 21 6f 86 68 63 1d 0b 00 00 00 00 00 00 00 00 00  !o.hc...........
00000020: 23 6f 86 68 0f cf 07 00 01 00 74 00 00 00 00 00  #o.h......t.....
00000030: 23 6f 86 68 0f cf 07 00 00 00 00 00 00 00 00 00  #o.h............
00000040: 28 6f 86 68 ef 35 06 00 01 00 74 00 01 00 00 00  (o.h.5....t.....
00000050: 28 6f 86 68 ef 35 06 00 00 00 00 00 00 00 00 00  (o.h.5..........
00000060: 29 6f 86 68 90 6a 09 00 01 00 74 00 00 00 00 00  )o.h.j....t.....
00000070: 29 6f 86 68 90 6a 09 00 00 00 00 00 00 00 00 00  )o.h.j..........
Uživatelský avatar
DedVseved
Příspěvky: 960
Registrován: 01 črc 2019, 00:00

#10 Příspěvek od DedVseved »

Možná by to bez systemd šlo přes ACPI.
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#11 Příspěvek od lesana87 »

To jsem taky našla na netu, jako variantu k systemd, ale ono tam /etc/acpi není.
0x74 je KEY_POWER, tlačítko Copy generuje 0x85 KEY_COPY a tlačítko Reset generuje 0x198 KEY_RESTART.
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#12 Příspěvek od rnbw »

Ano, bez systemd to na x86 Debiane riesi acpid, ale bez ACPI sa pouzit neda. Chcelo by to nejaky jednoduchy daemon. Dalo by sa to nudzovo zlepit aj v bashi.

[edit]
Mozno triggerhappy.
Uživatelský avatar
asdf
Příspěvky: 707
Registrován: 06 říj 2022, 00:00
Kontaktovat uživatele:

#13 Příspěvek od asdf »

Co takhle?

Kód: Vybrat vše

#!/bin/bash
while true
do
	head -c 16 /dev/input/event0 >data
	type=$(od -A n -t u1 -N 1 -j 8 data)
	code=$(od -A n -t u1 -N 1 -j 10 data)
	value=$(od -A n -t u1 -N 1 -j 12 data)
	echo $type $code $value
done
Ale bere to z těch čtyř zpráv vždycky jen tu první. Naštěstí je to zrovna ta, co nás zajímá.
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#14 Příspěvek od lesana87 »

Mám doma dost omezený připojení na internet, tak jsem si v práci stáhla první instalační DVD Debianu. Přidala jsem ho do apt místo internetových repozitářů. Ale hlásilo to při pokusu něco instalovat, že DVD je insecure. To jsem vyřešila přepínačem trusted=yes v sources.list. Pak se třeba mc nainstaloval bez problémů. Ale při pokusu instalovat něco dalšího, co chtělo víc balíků, to vyhodilo u všech balíků error, že na disku nejsou. Přitom tam jsou a jsou čitelné. Částečně pomohl přepínač --fix-missing, pak se naistaloval první balík ze seznamu, ostatní zase error, takže opakovaným spouštěním apt install se mi povedlo něco naistalovat. Ale u GCC to selhalo, nainstalovalo se jen pár knihoven a binutils, ale dál nic, pořád errory, že soubory na disku nejsou. Už si s tím nevím rady. :(

Teď se mi ještě v mc místo rámečků začaly zobrazovat textový znaky.

Kód: Vybrat vše

  Left     File     Command     Options     Right
l<q ~ qqqqqqqqqqqqqqqqqqqqqqqqqqqq.[^]>kl<q ~ qqqqqqqqqqqqqqqqqqqqqqqqqqqq.[^]>k
x.n     Name      x Size  xModify time xx.n     Name      x Size  xModify time x
x/..              xUP--DIRxJun 29 18:37xx/..              xUP--DIRxJun 29 18:37x
x/.cache          x   4096xJul  2 22:09xx/.cache          x   4096xJul  2 22:09x
x/.config         x   4096xJul  4 22:22xx/.config         x   4096xJul  4 22:22x
x/.local          x   4096xJul  2 22:09xx/.local          x   4096xJul  2 22:09x
x/.nano           x   4096xSep 24  2021xx/.nano           x   4096xSep 24  2021x
x/.ssh            x   4096xDec 12  2023xx/.ssh            x   4096xDec 12  2023x
x .bash_history   x   4368xJul 27 21:19xx .bash_history   x   4368xJul 27 21:19x
x .bashrc         x    570xJan 31  2010xx .bashrc         x    570xJan 31  2010x
x .lesshst        x     78xJul 27 21:29xx .lesshst        x     78xJul 27 21:29x
x .profile        x    906xJun 29 19:45xx .profile        x    906xJun 29 19:45x
x .selected_editorx     74xJul  2 21:40xx .selected_editorx     74xJul  2 21:40x
x*myip.get        x    113xJul  2 22:21xx*myip.get        x    113xJul  2 22:21x
x*set_pers~addressx    814xSep  7  2019xx*set_pers~addressx    814xSep  7  2019x
x                 x       x            xx                 x       x            x
x                 x       x            xx                 x       x            x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqutqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
xUP--DIR                               xxUP--DIR                               x
mqqqqqqqqqqqqqqqq 1306M / 1949M (67%) qjmqqqqqqqqqqqqqqqq 1306M / 1949M (67%) qj
Hint: Tab changes your current panel.
root@nas326:~#                                                               [^]
 1Help   2Menu   3View   4Edit   5Copy   6RenMov 7Mkdir  8Delete 9PullDn10Quit
Nesnáším linux. :(
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#15 Příspěvek od lesana87 »

asdf píše:Co takhle?
Jo, to funguje, ale nevím, co s tím dál.
Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“