TrueNAS SCALE: HDD Standby

Seit mitt­ler­wei­le über einem Jahr mit Erschei­nen der Release Can­di­da­tes von True­NAS 25.10 funk­tio­niert das Ver­set­zen von Fest­plat­ten in den Stand­by nicht mehr. Die Ver­sio­nen bis 25.04 hat­ten die­ses Pro­blem nicht. Im True­NAS-Forum fin­det sich ein lan­ger Thread über die­ses Pro­blem und eini­ge Posts waren bei der Lösung des Pro­blems eine gro­ße Hil­fe. Aller­dings sind die vor­ge­schla­ge­nen Lösun­gen für mich nicht ganz zufrie­den­stel­lend, erwar­tet man von einer Appli­ance doch einen mög­lichst gerin­gen Auf­wand bei Betrieb und Wartung.

Die Patch­lö­sung lässt sich spe­zi­fisch anwen­den und geht bei der Pro­blem­lö­sung gezielt und sau­ber vor. Bei mei­nen Tests zeig­te sich aber, dass eini­ge der Angriffs­punk­te zumin­dest bei Con­su­mer-Plat­ten nicht not­wen­dig sind.
Das Ent­la­den eines Ker­nel­mo­duls mit­sammt der Deak­ti­vie­rung des Aus­le­sens aller SMART-Wer­te kommt eben­falls nicht in Fra­ge. Jedoch ent­hält die­se Vari­an­te einen Hin­weis auf eine upgrade­taug­li­che Dau­er­lö­sung, indem Post-Init-Skrip­te vor­ge­schla­gen werden.

In bei­den Vari­an­ten wird jedoch kom­plett ver­nach­läs­sigt, dass der inzwi­schen stan­dard­mä­ßig akti­ve Sys­temd-Ser­vice smartmontools.service eben­falls den Stand­by der Fest­plat­ten ver­hin­dert, da regel­mä­ßig der Plat­ten­zu­stand aus­ge­le­sen wird. Mei­nen Ana­ly­sen nach han­delt es sich um fol­gen­de Zugrif­fe. Der Schlüs­sel-Sync, wel­cher alle 24 Stun­den durch­ge­führt wird, führ­te bei mei­nen unver­schlüs­sel­ten ZFS-Pools nicht zum Auf­we­cken der Platten.

  • Pol­ling der Tem­pe­ra­tur alle 5 Minu­ten bei bestimm­ten Festplattentypen
  • smartctl-Call ohne "-n stand­by" alle 90 Minuten
  • Sys­temd-Ser­vice smartmontools.service Pol­ling alle 30 Minuten

Die kon­kre­te Kon­fi­gu­ra­ti­on sieht z.B. vor, dass die Fest­plat­ten nach 30 Minu­ten in den Stand­by gehen sol­len. Dies wird bei den jewei­li­gen Disks kon­fi­gu­riert. Das Advanced Power Management kann deak­ti­viert blei­ben.
Nun ist dafür zu sor­gen, dass smartmontools.service in einem grö­ße­ren Inter­vall (z.B. 90 Minu­ten) die Plat­ten scannt. Das kann in den Para­me­tern des Ser­vices auf /etc per­sis­tent erfol­gen. Ob dies nach einem Update zu wie­der­ho­len ist, muss sich zeigen.

smartd_cfg_env=/etc/default/smartmontools
smartd_opts='smartd_opts="--interval=5400"'
if ! grep -Fqx -- "$smartd_opts" "$smartd_cfg_env"; then print -r -- "$smartd_opts" >> "$smartd_cfg_env"; fi

Es muss eben­falls dafür gesorgt wer­den, dass, wie bei den vori­gen Ver­sio­nen, der Stand­by-Para­me­ter bei den Midd­le­wa­re-Calls von smartctl der Stand­by-Para­me­ter mit­ver­wen­det wird. Dies lässt sich mit einem Wrap­per lösen, wel­cher mit­tels Post-Init-Skript beim Sys­tem­start erzeugt wird.

midclt call initshutdownscript.create '{"type":"COMMAND","when":"POSTINIT","comment":"Wrap smartctl with standby parameter","command":"mkdir -p /run/hdd_standby && mount -t tmpfs -o size=16m,mode=755,exec tmpfs /run/hdd_standby && cp /usr/sbin/smartctl /run/hdd_standby/smartctl.real && printf \"%s\\n\" \"#!/bin/sh\" \"exec /run/hdd_standby/smartctl.real -n standby \\\"\\$@\\\"\" > /run/hdd_standby/smartctl && chmod 755 /run/hdd_standby/smartctl && mount --bind /run/hdd_standby/smartctl /usr/sbin/smartctl"}'

Zuletzt gibt es noch das Pro­blem, dass das Tem­pe­ra­tur­pol­ling alle fünf Minu­ten man­che Plat­ten am Stand­by hin­dert. Dies lässt sich ein­fach ver­hin­dern, wenn man die Zugriffs­rech­te auf den Tem­pe­ra­tur­wert ent­zieht. Im Ide­al­fall passt man dies ledig­lich an die Fest­plat­ten­mo­del­le an, wel­che davon betrof­fen sind. Im Fol­gen­den das Fest­plat­ten­mo­dell ST4000DM000. Meh­re­re Model­le kön­nen leer­zei­chen­ge­trennt ange­ge­ben werden.

midclt call initshutdownscript.create '{"type":"COMMAND","when":"POSTINIT","comment":"Block drivetemp on unsupported disks","command":"MODELS=\"ST4000DM000\"; for model in /sys/block/sd*/device/model; do [ -f \"$model\" ] || continue; read -r name < \"$model\"; for unsupported in $MODELS; do case \"$name\" in \"$unsupported\"*) chmod 000 \"${model%/device/model}\"/device/hwmon/hwmon*/temp1_input 2>/dev/null; break ;; esac; done; done"}'

Benö­tigt man die Tem­pe­ra­tu­ren gene­rell nicht, kann man das Modul beim Sys­tem­start auch kom­plett entladen.

midclt call initshutdownscript.create '{"type":"COMMAND","when":"POSTINIT","comment":"Unload drivetemp hwmon driver","command":"modprobe -r drivetemp"}'

OpenWRT für ASUS RT-N16

Was Leis­tung, Sta­bi­li­tät und Zuver­läs­sig­keit betrifft, ver­rich­tet der ASUS RT-N16 auch nach mehr als fünf Jah­ren vie­ler­orts gute Diens­te. Ledig­lich einer der Kon­den­sa­to­ren im Bereich der Buch­se für die Span­nungs­ver­sor­gung (vio­let­tes Gehäu­se, 680µF) soll­te prä­ven­tiv gegen einen mit höhe­rer Span­nungs­fes­tig­keit getauscht werden.

Doch gera­de für ein Embedded-Gerät, das mit 32MB Flash­spei­cher und 128MB RAM ver­hält­nis­mä­ßig üppig aus­ge­stat­tet ist, lohnt es sich, des­sen Leis­tungs­re­ser­ven mit Open­WRT und den dort zur Ver­fü­gung ste­hen­den Pake­ten auch zu nutzen.

Um sich ein pas­sen­des Image zu bau­en, nutzt man am Bes­ten den Image­Buil­der, mit wel­chem der pro­prie­tä­re und dadurch die höchs­te Leis­tung bereit­stel­len­de SoC/­Wi­Fi-Trei­ber vor­ab inte­griert wer­den kann. Für den ASUS RT-N16 ist die­ser im Ord­ner brcm47xx/generic des jeweils aktu­el­len Open­WRTs zu finden.

Ein Image mit Web­in­ter­face baut der Befehl:

make image PROFILE=Broadcom-wl PACKAGES="luci"

Das fer­ti­ge Image mit dem Namen "openwrt-<version>-brcm47xx-generic-squashfs" fin­det sich anschlie­ßend im Unter­ver­zeich­nis ./bin.

 

FritzBox VoIP-Anmeldedaten auslesen

Vie­le Anbie­ter geben die Anmel­de­da­ten für die VoIP-Anmel­dung (noch) nicht her­aus. Wur­den die Daten per TR-069 vom Anbie­ter auto­ma­ti­siert in eine Fritz­Box ein­ge­tra­gen, gibt es jedoch eine brauch­ba­re Lösung. Hier­für wird das in der Fritz­Box ent­hal­te­ne Tool "all­cfgconv" ver­wen­det, das jedoch von AVM in der Funk­tio­na­li­tät beschnit­ten wur­de.
Das Erset­zen der "all­cfgconv", um den not­wen­di­gen decrypt-Para­me­ter wie­der­her­zu­stel­len wur­de inzwi­schen durch etli­che Ände­run­gen an den Abhän­gig­kei­ten der auf­ge­ru­fe­nen Diens­te deut­lich erschwert. Deren Wie­der­her­stel­lung ist sehr zeit­auf­wän­dig.
Die schnells­te und unpro­ble­ma­tischs­te Mög­lich­keit ist der Export der Daten und der Import auf eine mit Firm­ware­stand vor v6.20 down­ge­gra­de­te Fritz­Box. Am Ein­fachs­ten geht dies durch Aus­wahl der Firm­ware und Kom­pi­lie­rung eines ent­spre­chen­den Freetz-Images. Auf die­se Wei­se kann auch bequem der Tel­net-Dae­mon gestar­tet und dort die Daten aus­ge­le­sen werden.

Zum Auf­spie­len des Freetz-Images soll­te unter allen Umstän­den die Web­ober­flä­che genutzt wer­den, da das "push_firmware"-Tool von Freetz bei man­chen Boxen nicht mehr wie vor­ge­se­hen funk­tio­niert und die Box anschlie­ßend nicht mehr boo­tet. Die­ses Pro­blem lässt sich durch ein pas­sen­des Reco­ver-Tool vom AVM-FTP behe­ben. Doch auch hier gibt es einen Stol­per­stein: Zwar las­sen die Ober­flä­chen der vom Pro­vi­der gelie­fer­ten Fritz­Bo­xen oft kein Bran­ding mehr erken­nen, jedoch ist in der Regel eine "Urla­der-Envi­ron­ment-Varia­ble" gesetzt, durch wel­che das Reco­ver-Tool die Funk­ti­on ver­wei­gert. Im ADAM2-Boot­loa­der kann die­se jedoch gelöscht wer­den. Ein­schrän­kun­gen (auch die TR-069-Kom­pa­ti­bi­li­tät bleibt erhal­ten) konn­te ich kei­ne feststellen.

Vor­ge­hens­wei­se zur Her­stel­lung der Reco­ver-Tool-Kom­pa­ti­bi­li­tät:
Benut­zer­na­me & Pass­wort für den ADAM2-Boot­loa­der: "adam2"

quote GETENV provider   # diesen Wert notieren
quote UNSETENV provider
quote REBOOT

Anschlie­ßend funk­tio­niert das Reco­ver-Tool wie gewünscht.

Raspberry Pi im Serverbetrieb mit Zusatzhardware

Um ein mög­lichst sau­be­res Debi­an mit Hard­ware Floa­ting Point Unit Unter­stüt­zung auf dem Raspber­ry Pi ein­zu­set­zen, emp­fiehlt sich die Nut­zung des "Raspbi­an (mini­mal) unat­ten­ded net­in­stal­ler". Dabei wer­den jedoch auch vie­le Ker­nel-Modu­le und Firm­ware-Pake­te nicht mitinstalliert.

Um Sys­tem­kom­po­nen­ten zur Unter­stüt­zung wei­te­rer Hard­ware nach­zu­in­stal­lie­ren soll dies am Bei­spiel des WiFi-Chip­sat­zes RTL8191SU auf­ge­zeigt werden.

  • Zunächst sind die Quel­len der Paket­ver­wal­tung in der Datei "/etc/apt/sources.list" zu ergänzen:
deb http://mirrordirector.raspbian.org/raspbian wheezy main contrib non-free firmware
deb http://archive.raspberrypi.org/debian wheezy main
  • Anschlie­ßend wird das Update-Skript "rpi-update" instal­liert:
apt-get update && apt-get install rpi-update
  • Mit dem Aus­füh­ren von "rpi-update" wer­den dann unter ande­rem die feh­len­den Ker­nel­mo­du­le nachgeladen.
  • Jetzt fehlt nur noch die Firm­ware für den hier ver­wen­de­ten WiFi-Chipsatz:
apt-get install firmware-realtek

Nach einem Neu­start des Raspber­ry Pi ist der Adap­ter nun in Funk­ti­on. Veri­fi­ziert wer­den kann dies zum Bei­spiel mit:

ip link show

Mit dem oben erwähn­ten "Raspbi­an (mini­mal) unat­ten­ded net­in­stal­ler" ist der Raspber­ry Pi im Ver­gleich zum Stan­dard-Raspbi­an zum Bei­spiel als klei­ner und schnell star­ten­der WiFi-Acces­s­Point, Paket­fil­ter oder Pro­xy ver­wend­bar.
Über­flüs­si­ge Pake­te müs­sen bei der Ein­rich­tung nicht auf­wen­dig gesucht und ent­fernt wer­den — man lädt sich nur das in die Instal­la­ti­on, was wirk­lich benö­tigt wird.

Anmer­kung:
Der WiFi-Chipsatz(treiber) des RTL8191SU läuft mit den aktu­el­len Ker­neln nicht beson­ders schnell. Mit der Abschal­tung des IEEE 802.11n kön­nen aber wenigs­tens die 54 MBit/s von IEEE 802.11g erreicht wer­den. Dazu ein­fach die Opti­on des Ker­nel­mo­duls anpas­sen und neu starten:

echo "options r8712u ht_enable=0" | tee /etc/modprobe.d/r8712u.conf

LAN über Telefonleitung

In einem Ein­fa­mi­li­en­haus müs­sen bestehen­de Lei­tun­gen, wel­che Kel­ler und Ober­ge­schoss ver­bin­den für eine Netz­werk­ver­bin­dung genutzt werden.

Bei den vor­han­de­nen Kabeln han­delt es sich um drei J‑Y(St)Y 10×2×0,6.
Die Ader­paa­re konn­ten im Kel­ler bereits sepa­rat iden­ti­fi­ziert werden.

Hilf­rei­che Infor­ma­tio­nen gibt es hier:
Wel­len­wi­der­stand (Impe­danz) von Telefon-Doppeladern

Es gilt nun, die am wei­tes­ten von­ein­an­der ent­fern­ten Ader­paa­re zu sepa­rie­ren und zu jeweils 2x8 und 1x4 Adern auf ein Patch­pa­nel aufzulegen.

Anschlie­ßend müs­sen noch die in Leer­do­sen lie­gen­den ande­ren Enden iden­ti­fi­ziert und auf Netz­werk­do­sen auf­ge­legt wer­den. Die Schwie­rig­keit ist, dort die rich­ti­gen Adern zuzu­ord­nen, da die­se 2–10fach dop­pelt farb­lich kodiert sind.

Der anschlie­ßen­de Geschwin­dig­keits­test wird zei­gen, wel­che Über­tra­gungs­ra­ten damit mög­lich sind…

Ergeb­nis
Durch Ver­wen­dung von abwech­selnd einem Ader­paar für die ers­te und dem nächs­ten für die zwei­te Buch­se konn­te im Durch­schnitt eine Band­brei­te von 899,4 MBit/s gemes­sen werden!

(Mes­sung erfolg­te mit NetIO)

Galaxy Nexus: Jelly Bean

Gera­de lese ich noch bei Hei­se, dass Goog­le das neue Android zuerst für ihr neu­es Tablet aus­rol­len will, schon gibt es das Jel­ly Bean Image als Over-The-Air-Update (OTA) für mein Gala­xy Nexus.

Das Roo­ten war etwas kom­pli­zier­ter, da mein ursprüng­li­cher Root-Mana­ger nicht mit den für Jel­ly Bean ange­pass­ten su-Bina­ries klar kam und letzt­lich doch ein Fac­to­ry Reset nötig war, doch letzt­end­lich läuft gera­de die GSM-Ver­bin­dung nun zu 100% sta­bil (es gab seit v4.0.4 1‑Se­kun­den-Aus­set­zer im Stand­by auf­grund eines Feh­lers in der Energieverwaltung).

Fol­gen­de Ein­schrän­kun­gen müs­sen jedoch in Kauf genom­men werden:

  1. Der LBE Pri­va­cy Guard v3.0.1009 funk­tio­niert nicht mehr. (hot reboot cycle)
  2. Der Dienst von Noti­fi­ca­ti­on Togg­le v2.3.2 in den Bedie­nungs­hil­fen (acces­si­bi­li­ty) fehlt.
    UPDATE: Noti­fi­ca­ti­on Togg­le v2.1.5 hat das Ver­hal­ten nicht. Die Ver­si­on ist hier erhält­lich. Ein Fix für die neue Ver­si­on ist bereits in Arbeit und kann hier her­un­ter­ge­la­den wer­den (Ver­si­ons­num­mer ist die sel­be). Bei mir läuft sie ein­wand­frei!

    UPDATE:
    fixed

Da dies Pro­ble­me von viel­ge­nutz­ten Apps sind, rech­ne ich mit bal­di­gen Updates. In der Zwi­schen­zeit kann man auf jeden Fall auch ohne den LBE Pri­va­cy Guard leben und die Kom­mu­ni­ka­ti­on der Apps statt­des­sen tem­po­rär blockieren.

Eine genaue Anlei­tung auf­grund des von mir emp­foh­le­nen ROM-Wech­sels von yak­ju (ohne Wal­let) auf tak­ju (mit Wal­let) folgt.

Das OTA auf 4.1.1 ist seit heu­te auch für die in Deutsch­land ver­trie­be­nen yak­ju-Gerä­te ver­füg­bar und wird bereits ausgerollt.

Toshiba TV: Kanallisten

Sel­ten habe ich so einen Mist an Usa­bi­li­ty gese­hen, wie bei der Kanal­sor­tie­rung von Toshi­bas Flach­bild­fern­se­hern. Gehen wir von 400 vor­han­de­nen Kanä­len und den für Nor­mal­sterb­li­che ver­füg­ba­ren Metho­den aus, die 400 Kanä­le zu sor­tie­ren von denen wir eigent­lich nur 40 wirk­lich wollen:

  • Sen­der­such­lauf (5 Minuten)
  • die 40 Kanä­le ein­zeln suchen und durch ver­schie­ben an die ers­ten 40 Plät­ze set­zen (25 Minu­ten) — dabei ändern sich die Kanal­num­mern nicht, nur die Reihenfolge!
  • die alten 40 Kanä­le ein­zeln auf nicht beleg­te Kanal­num­mern set­zen (15 Minuten)
  • die neu­en 40 Kanä­le ein­zeln auf die Kanal­num­mern 1 bis 40 set­zen (15 Minuten)

Wir haben also eine gan­ze Stun­de mit Sen­der­sor­tie­rung ver­bracht. Der Gip­fel ist jedoch, dass beim nächs­ten Sen­der­such­lauf das Spiel von vor­ne beginnt, da die alte Kanal­lis­te ein­fach über­schrie­ben wird. Je nach Ver­tei­lung der Sen­der ist die­se Stun­de Arbeit sogar noch deut­lich zu tief gegrif­fen! Außer­dem sind die uner­wünsch­ten oder ver­schlüs­sel­ten Pro­gram­me auch nicht löschbar.

Damit schlägt die Bedien­freund­lich­keit die­ser Gerä­te sogar noch die von Sam­sung… Dafür stimmt jedoch das Preis-/Leis­tungs­ver­hält­nis. Auf­grund der Mise­re mit Sam­sungs soge­nann­tem "FullHD-3D" bin ich auf deren TV-Gerä­te sowie­so nicht mehr so scharf.

Ges­tern habe ich des­halb ein klei­nes Pro­grämm­chen geschrie­ben, wel­ches die Kanal­lis­te mit einem CSV-File abgleicht und die gan­ze Arbeit in einer Minu­te erle­digt — zudem wird der Müll entsorgt.

Bei Inter­es­se kann man mir ger­ne eine Nach­richt zukom­men lassen.

Bye Windows Mobile!

Kurzmitteilung

Nach­dem ich seit Mona­ten am Roo­ten und Auf­spie­len von Cus­tom ROMs auf Android Smart­phones und Tablets bin, habe ich mich end­lich ent­schie­den, mein uraltes HTC Touch Dual in Ren­te zu schi­cken und mir end­lich selbst ein "moder­nes" Smart­phone zuzulegen.

Nach­fol­ger wird das Gala­xy S3 wer­den, da es das momen­tan ein­zi­ge aktu­el­le Gerät mit SD-Slot ist, dem auch eine gro­ße Com­mu­ni­ty folgt bzw. fol­gen wird.
Bis in drei Wochen, soll­te ich es in der Hand haben.

Man hat mich davon über­zeugt, das Sam­sung Gala­xy Nexus zu wäh­len. In Anbe­tracht der Update­po­li­tik von "ech­ten" Sam­sung-Gerä­ten scheint mir das eine ver­nünf­ti­ge Alter­na­ti­ve zu sein. Dumm nur, dass kein SD-Slot an Bord ist…