#!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin . /usr/lib/libmodcgi.sh # radio group dis-/enable if [ "$USBROOT_ENABLED" == "yes" ]; then e1_chk=' checked="checked"'; e2_chk='' else e1_chk=''; e2_chk=' checked="checked"' fi # current state if [ "$(/etc/init.d/rc.usbroot status)" == "running" ]; then cur_state="$(lang de:"Aktiviert" en:"Active")" else cur_state="$(lang de:"Inaktiv" en:"Inactive")" fi # radio group unmound old root if [ "$USBROOT_UNMOUNTOLDROOT" == 'yes' ]; then y1_chk=' checked="checked"'; n1_chk='' else y1_chk=''; n1_chk=' checked="checked"' fi # check if kernel modules are available for i in ext2 ext3; do if [ -f "/lib/modules/$(uname -r)/kernel/fs/$i/$i.ko" ]; then eval $i=y else eval $i=n fi done # html output sec_begin '$(lang de:"USB Root aktivieren/deaktivieren" en:"Enable/Disable USB root")' cat << EOF

$(lang de:"Aktueller Status:" en:"Current state:") $cur_state

EOF sec_end sec_begin '$(lang de:"Gerät- und Partitionswahl" en:"Device and partition selection")' cat << EOF EOF i=1 awk '/^ 8 +.*sd[a-z][0-9]/ { print $4, int($3/1024) }' /proc/partitions | while read DEVPART SIZE; do # filter partition number, get vendor and model string from sysfs, guess filesystem type dev="$(echo $DEVPART | sed 's/[0-9]//g')" vendor="$(cat /sys/block/$dev/device/vendor)" model="$(cat /sys/block/$dev/device/model)" fs="$([ -x /usr/bin/fstyp ] && fstyp "/dev/$DEVPART" || echo "$(lang de:"unbekannt" en:"unknown")")" mountastyp="$fs" html_devpart="$(html "$DEVPART")" # set radio button states checked=''; disabled=''; if [ "$USBROOT_DEVICE" == "/dev/$DEVPART" ]; then checked=' checked="checked"' mediafs="$fs" fi # only allow filesystems with kernel module support [ "$(eval echo \$$fs)" != 'y' ] && disabled=' disabled="disabled"' # but allow ext3 to be mounted as ext2 [ "$fs:$ext2:$ext3" == 'ext3:y:n' ] && { disabled=''; mountastyp='ext2'; } cat << EOF EOF i=$((i + 1)) done cat << EOF
  $(lang de:"Gerät" en:"Device") $(lang de:"Partition" en:"Partition") $(lang de:"Größe" en:"Size") $(lang de:"Dateisystem" en:"Filesystem")
$(html "$SIZE") MiB $(html "$fs")

$(lang de:"Hinweis: Es können nur Partitionen mit Dateisystemtyp ext2 oder ext3 ausgewählt werden. Außerdem muss das jeweilige Kernelmodul vorhanden sein. Eine Ausnahme bildet ext3, welches ggf. als ext2 (ohne Journaling-Funktionalität) gemountet werden kann. Dazu muss der Wert von „Dateisystem mounten als” entsprechend gesetzt sein." en:"Hint: Only partitions of typ ext2 or ext3 are selectable. Also the corresponding kernel module has to be available. An exception is ext3 with can be mounted as ext2 (without the journaling functionality). Check setting 'Mount filesystem as' below .")

EOF sec_end sec_begin '$(lang de:"Einstellungen" en:"Settings")' cat << EOF

$(lang de:"Root-Verzeichnis" en:"Root directory"):
$(lang de:"Geben Sie hier den vollen Ordnernamen innerhalb der Ordner-Hierarchie des USB-Gerätes an, welcher als Root-Verzeichnis verwendet werden soll, z.B. /mein/avmroot. Der Ordnername darf keine Leerzeichen enthalten." en:"Enter the full path name of the directory which should be used as root directory, e.g. /my/avmroot. The name must not contain blanks.")

$(lang de:"Mount Optionen" en:"Mount options"):
$(lang de:"Geben Sie hier kommagetrennte Optionen an, welche beim Mounten des Dateisystems verwendet werden (siehe Man-Pages von mount). Beispiel: rw,noatime,nodiratime" en:"Enter a comma-seperated list of options which are used when the filesystem is mounted. E.g.: rw,noatime,nodiratime")

$(lang de:"Altes Root-Filesystem (Flashspeicher) unmounten:" en:"Unmount old root filesystem (flash memory):")

EOF sec_end cat << EOF

$(lang de:"Änderungen werden erst nach einem Neustart aktiv, auch wenn hier bereits die neuen Werte angezeigt werden." en:"Changes will take effect after a reboot, even if new settings will already be displayed here.")

EOF