www.mikrocontroller.net

P89626/usb key func

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

<< zurück zur Hauptseite 'P89626'

Inhaltsverzeichnis

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] 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

[Bearbeiten] Forum Links


<< zurück zur Hauptseite 'P89626'

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net