P89626/usb key func

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Über die "USB Key Function" des MEDION LIFE P89626 (MD 86407) NAS.

<< zurück zur Hauptseite 'P89626'

Information

Mit einem USB-Stick und bestimmten Dateien darauf, kann man recht frühzeitig im Bootprozess eigene Aktionen per Skript starten. Den Bootprozess weiter führen oder abbrechen...

Link zum Thema: http://zyxel.nas-central.org/wiki/Usb_key_func.sh

Vorlage Dateien findet man hier: https://github.com/jedie/NAS7820-Tools/tree/master/usb_key_func

Stick Formatieren

Dazu braucht man einen Stick mit vFat. Diese läßt sich z.B. auf der Box so einrichten:

/ # mkdosfs /dev/sda1 -v -n USB_vFAT -i 12345678
mkdosfs 2.11 (12 Mar 2005)
/dev/sda1 has 255 heads and 63 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 1028096 sectors;
file system has 2 16-bit FATs and 16 sectors per cluster.
FAT size is 251 sectors, and provides 64222 clusters.
Root directory contains 512 slots.
Volume ID is 12345678, volume label USB_vFAT   .

Ein anderes Dateisystem geht wegen einem Bug (weil iocharset=utf8 beim mounten genutzt wird) nicht, siehe http://www.mikrocontroller.net/topic/240238?page=2#2452052

Einrichten

Auf den Stick legt man folgende Dateien (jeweils im root Verzeichnis) an:

usb_key_func.sh

#!/bin/sh
echo "Hello from usb_key_func.sh !!!"
exit 1

(Info: Beendet sich das Skript mit exit 1, wird der Bootprozess fortgesetzt. Andernfalls nicht.

STG212_check_file

/mnt/parnerkey/usb_key_func.sh
/mnt/parnerkey/usb_key_func.md5

usb_key_func.md5 Diese Datei muß man auf der Box erstellen und enthält die Ausgabe von md5sum. z.B.:

~ # cd /e-data/XXX/ # <- XXX ist irgendeine ID deines Sticks!
/e-data/XXX/ # cat /etc/Zy_Private usb_key_func.sh | md5sum > usb_key_func.md5

alternative usb_key_func.sh

Hier eine Alternative Version von usb_key_func.sh, die nicht weiter bootet, aber die Box per telnet erreichbar macht:

#!/bin/sh
echo "Hello from usb_key_func.sh !!!"
# IP mittels DHCP setzten
/sbin/udhcpc -i egiga0

telnetd -l /bin/sh &

Möchte man dann normal starten kann man den Stick ziehen und neustarten, oder per Telnet den Stick "deaktivieren" das machen:

/ # mount -o remount,rw /mnt/parnerkey
/ # mv /mnt/parnerkey/STG212_check_file /mnt/parnerkey/_STG212_check_file

Nun kann man mit "reboot" natürlich neu starten, oder quasi den init Fortsetzten mit:

 / # /etc/init.d/rcS

Hintergrund Info

Auf der Box ist die Datei /etc/init.d/rcS für die Aktion zuständig. Kurz zusammengefasst:

Es wird versucht jeden USB Stick nach /mnt/parnerkey zu mounten. Ist dies Erfolgreich und befindet sich dann die Datei STG212_check_file drauf, wird mit /sbin/check_key die "Integrität" überprüft. Ist alles ok, wird letztlich /mnt/parnerkey/usb_key_func.sh Ausgeführt.

Der Inhalt der Datei /etc/Zy_Private ist anscheinend auf allen Boxen gleich. Er ist sogar der selbe, wie auf den Zyxel NSA

Ausblick

Nützlich ist das ganze Prozedur, um ein Debian vom USB Stick zu starten, ohne uBoot/Kernel im Flash ändern zu müssen. Siehe: http://zyxel.nas-central.org/wiki/Debian_without_need_to_flash

Jedoch ist dazu reloaded-2.6.31.14_SMP_820.ko nötig, siehe: http://www.mikrocontroller.net/topic/240238?goto=2452465#2452465 um den Kernel komplett zu tauschen.

Ohne reloaded könnte man versuchen über chroot ein Debian System zu erhalten. Das klappt allerdings noch nicht, siehe: http://www.mikrocontroller.net/topic/240238?goto=2452465#2452369

Forum Links

<< zurück zur Hauptseite 'P89626'