Firmware-Infos und Updates
Aus NAS-4220
Inhaltsverzeichnis |
Hersteller-Support
Der deutsche Hersteller Raidsonic bietet auf seiner Homepage unter Service - Treiber Download die aktuellste Firmware inklusive diverser Erweiterungstools wie zum Beispiel einen SSH Server an.
Liste der Firmware-Updates
- 2.6.0.IB.1.RS.1 vom 26.10.2007 IB-NAS4220 Ver.2.6.0
- 2.6.3.IB.1.RS.1 vom 29.09.2008 IB-NAS4220 Ver.2.6.3
Aufbau der Firmware-Updates
Die Firmware-Update-Dateien sind bisher so aufgebaut, dass man sie theoretisch ändern könnte, um eigene Updates einzuspielen.
Der Aufbau wird hier am Beispiel Update-Datei IB-NAS4220fw.zip erläutert.
- Die Datei selbst ist ein ZIP-Archiv und lässt sich einfach entpacken.
- Die enthaltene Datei 2.6.0.IB.1.RS.1-webup-20071026.tgz wird zum Installieren des Updates nicht entpackt, kann für eigene Untersuchungen aber gut entpackt werden.
- In diesem Archiv stecken zwei Dateien:
ImageInfo enthält Basis-Informationen zur Firmware:
UpgradeImages="rd.gz" productName="IB-NAS4200-B" hardwareName="SL3516 Verification Board" productVendor="StorLink Semiconductors, Inc." manufacturerURL="http://www.storlinksemi.com" Description="IB-NAS4200-B" hostname="IB-NAS4200-B" softwareVersion="2.6.0.IB.1.RS.1" TSS="enabled" DIRECT_MODE="disabled" Raid_Support="raid0_raid1_linear" RaidTestDiskSize="0" DEFAULT_LAN_IPADDR="192.168.1.1" DEFAULT_LAN_NETMASK="255.255.255.0" DEFAULT_LAN_BOOTPROTO="dhcp" DEFAULT_WAN_BOOTPROTO="none" DEFAULT_WAN_ENABLED="no" DEFAULT_WLAN_DEVICENAME="ra0" DEFAULT_LAN_DEVICENAME="eth0" DEFAULT_HW_LAN_DEVICENAME="eth0" DEFAULT_WAN_DEVICENAME="eth1" DEFAULT_HW_WAN_DEVICENAME="eth1" SUPPORT_FILESYSTEM="ext2_ext3_fat32" SUPPORT_ENCRYPT_FILESYSTEM="ext2" DEFAULT_DHCP_ENABLED="0" SUPPORT_CODEPAGE="CP437_CP950_CP936_CP1145_CP1250_CP1252_CP932_CP949" DEFAULT_SERVER_CODEPAGE="CP950" FACTORY_RESET_ADMIN="0" BUILD_DATE=�g�| 8�� 9 16:23:28 CST 2007
rd.gz ist ein Archiv, das eine Image-Datei (new_Ramdisk) enthält.
- Die Image-Datei enthält ein Datei-System im EXT2-Format und kann gemountet werden:
gunzip rd.gz
mkdir /mnt/tmp
mount -t ext2 -o loop rd /mnt/tmp
Ein ll /mnt/tmp zeigt folgenden Inhalt:
ll /mnt/tmp drwxr-xr-x 2 root root 1024 Aug 9 10:23 volume2 drwxr-xr-x 2 root root 1024 Aug 9 10:23 volume1 drwxr-xr-x 8 root root 1024 Aug 9 10:23 var drwxr-xr-x 9 root root 1024 Aug 9 10:24 usr drwxrwxrwx 2 root root 1024 Aug 9 10:23 tmp drwxr-xr-x 2 root root 1024 Sep 10 15:13 sbin drwxr-xr-x 2 root root 1024 Aug 9 10:24 root drwxr-xr-x 2 root root 1024 Aug 9 10:23 proc drwxr-xr-x 2 root root 1024 Aug 9 10:23 mnt lrwxrwxrwx 1 root root 11 Oct 26 11:27 linuxrc -> bin/busybox drwxr-xr-x 3 root root 1024 Aug 9 10:24 lib drwxr-xr-x 2 root root 1024 Aug 9 10:23 initrd drwxrwxrwx 2 root root 1024 Aug 9 10:23 home drwxr-xr-x 5 root root 1024 Oct 26 11:27 etc drwxr-xr-x 3 root root 4096 Aug 9 10:23 dev drwxr-xr-x 2 root root 1024 Aug 9 10:23 bin drwx------ 2 root root 12288 Aug 9 10:24 lost+found drwxr-xr-x 4 root root 1024 Jan 1 17:21 .. drwxr-xr-x 18 root root 1024 Oct 26 11:27 .
An dieser Stelle könnte man einzelne Dateien austauschen, einfügen oder ändern, um sich eine angepasst "Firmware-Version" zu erstellen. Danach sollte man auch die Zeile softwareVersion in ImageInfo und /mnt/tmp/etc/ImageInfo anpassen. Nach dem umount der Ramdisk sind die gemachten Änderungen automatisch in der Datei rd enthalten und das ganze kann wieder zu einem Image verpackt werden:
umount /mnt/tmp gzip rd tar cvzf MyNewImage.tgz rd.gz ImageInfo
Das neue Image kann genauso wie das Originalimage installiert werden. Eine Sicherung durch eine Checksumme gibt es meines Wissens nicht.
Quelle: Holgers Web
Ein Beispiel für eine neue Ramdisk mit erweiterter Busybox im Forum
Allgemeines zur Firmware
Embedded Linux
Auf dem NAS-4220 läuft ein Embedded Linux.
Der Quellcode kann beim Hersteller heruntergeladen werden unter IB-NAS4220 Sources.
Als Boot-Loader kommt anscheinend das frei verfügbare RedBoot zum Einsatz, wie man mit folgendem Kommando in der SSH-Konsole erfahren kann:
cat /proc/mtd
Zeigt folgende Infos an (bei der Firmware 2.6.0.IB.1.RS.1):
dev: size erasesize name mtd0: 00020000 00020000 "RedBoot" mtd1: 00300000 00020000 "Kernel" mtd2: 00600000 00020000 "Ramdisk" mtd3: 00600000 00020000 "Application" mtd4: 00020000 00020000 "VCTL" mtd5: 000a0000 00020000 "CurConf" mtd6: 00020000 00020000 "FIS directory"
Mehr Infos zu RedBoot gibt es auch bei WikiPedia.
Die einzelnen Firmwarebestandteile kann man auslesen mit folgendem Befehl:
for i in 0 1 2 3 4 5 6; do dd if=/dev/mtd$i of=<Ausgabeverzeichnis>/mtd$i.bin; done
Diese Dateien kann man dann z.B. mit einem Hexeditor analysieren. Der Inhalt von /dev/mtd2 ist genau die Datei "rd.gz" aus dem Firmwareupdate (aufgefüllt mit 0xFF), /dev/mtd3 ist eine bzip2-komprimierte tar-Datei (aufgefüllt mit 0x00), die das Verzeichnis /system/hddapp enthält.
BusyBox Kommandozeilen-Tools
Das Embedded Linux stellt eine reduzierte Menge der Standard-LINUX-Kommandozeilen-Tools mit Hilfe von BusyBox (GNU General Public License) bereit.
BusyBox vereint die vielen Kommandozeilen-Tools in eine ausführbare Datei
/bin/busybox
Ein Kommando wird als Aufruf-Parameter an diese ausführbare Datei übergeben, z. B.
/bin/busybox ls
Damit die ausführbare Datei nicht immer angegeben werden muss, wurden bei der NAS-4220B symbolische Links angelegt, die auf die ausführbare Binärdatei von BusyBox zeigen, z. B.
ln -s /bin/busybox ls
So könnte man wahrscheinlich auch wichtige Kommandos aufrufen, die (absichtlich?) fehlen (z. B. chroot, su).
Mehr Infos zu den Kommandos gibt es auf der Website der BusyBox.
Weitere Infos zu BusyBox im Internet gibt es hier:
Eigene Firmware-Erweiterungen
Applets
BusyBox kann durch sog. Applets erweitert werden. Eine Anleitung könnt Ihr euch HIER runterladen.
Manipulierte Firmware-Update-Dateien
Eigene angepasste Firmware-Updates könnte man auch durch eine manipulierte Firmware-Update-Datei erstellen.
Siehe: Modifizierte Firmware (dort auch: "Kernel im debian-chroot auf der Box kompilieren")
Firmware Features und Buglist
Alle Bugs und Fehler aus der Firmware 2.6.3 vom 29.9.2008 die auftreten oder festgestellt werden,
bitte hier in der Liste eintragen! Vielen Dank!
Firmware 2.6.3 Buglist
- Samba vergisst den Workgroup-Namen nach dem Spindown der HDD´s ( statt z.B. den eingegebenen Namen "Arbeitsgruppe" steht´s bis zum Neustart der NAS wieder auf "WORKGROUP" )
- Spindown noch nicht fehlerfrei: Der samba server smbd greift alle 30 Minuten auf /system/hddapp/etc/samba/secrets.tdb zu. siehe auch hier.
- telnet-Server lässt sich nicht aktivieren.
(Bzw. wer von der alten 2.6.1 mit aktiviertem Telnet updatet, bei dem bleibt Telnet aktiv, läßt sich dann aber nicht mehr per Web ausschalten, )
- Menübaum im webinterface ist nach dem update nicht sichtbar.
Abhilfe verschafft üblicherweise ein Leeren des Browser-cache. Falls das auch nichts nützt, hilft ev. diese Vorgehensweise (bitte noch bestätigen).
- Torrent-Client arbeitet immer noch nicht fehlerfrei (Portänderung etc. werden nicht oder nur manchmal übernommen).
- Weiterhin - bei vereinzelten usern - das Problem mit Aussetzern beim Streamen von Multimedia-Files (Filme, Musik,etc...), das unabhängig vom verwendeten Raid-Modi oder Netzwerkaufbau auftritt!
- Festplatten werden in JBOD-Konfiguration und mit neuem Kernel als ide3 und ide4 eingebunden (in der alten fw hießen sie ide1 und ide2), dies verursacht Probleme bei der Installation von Zusatzpaketen über "new software"
Dieses Problem tritt nur dann auf, wenn vor 2.6.3 eine Testvariante benutzt wurde. (z.B. wenn RS die firmware im Zuge eines board Tauschs gleich mit auslieferte, im Zeitraum vor der Veröffentlichung von 2.6.3). Diese Testvariante tauschte auch den Kernel aus, der nun die Laufwerke als ide3 und ide4 anspricht. User die von der alten fw auf 2.6.3 direkt umstiegen, sollten dieses Problem nicht haben, da mit dem final release von 2.6.3 der kernel nicht geflasht wird
Betroffene Pakete (bitte erweitern):- ssh-server. (Das ssh-server Paket funktioniert bei RAID-Konfigurationen übrigens schon (Laufwerksbezeichnung md1))
- Es können auch andere Pakete betroffen sein die nicht mit IDE3/4 klar kommen. Pakete die Probleme machen bitte hier Posten.
Firmware 2.6.3.1 Features
Verbesserungen der Firmware 2.6.3.1 vom November 2008 laut Raidsonic:
- Festplattenkompatibilität wurde weiter verbessert. Mit 1.5TB und 1TB Laufwerken aufgetretene Probleme sind behoben
- SSH Server Paket kann jetzt auch wieder im JBOD-Modus installiert und verwendet werden, eine Korrektur der Laufwerksbenennung wurde durchgeführt
- Produktname auf der Verwaltungsoberfläche wurde auf IB-NAS4220-B eingestellt, vorher wurde IB-NAS4200-B verwendet
- Für klarere Kommunikation wird eine neue Versionsinfo verwendet
- Firmware wurde für die Anwendungsentwicklung und Verwendung existierende Anwendungen geöffnet
Firmware 2.6.3.1 Buglist
Festgestellte Mängel nach einer Diskussion im Forum bitte hier eintragen
- Die eingebaute Versionskontrolle verhindert einen Downgrade auf eine ältere FW-Version.
Lösung: in /usr/sausalito/handlers/base/upgrade2/CheckImage.sh vor dem Up- oder Downgrade die folgenden Zeilen mit # auskommentieren oder entfernen:
...
if [ $Vendor_local != $Vendor_now ]; then
echo "Error:The VendorID is wrong."
exit 4
fi
...
- Der Telnet-Server läuft nicht und lässt sich auch über den bekannten Link http://ip-adresse/cgi/telnet/telnet.cgi nicht aktivieren.
Ursache: Im Verzeichnis /system/codb/objects/1 fehlt ggf. die Datei Telnet.enabled und der zugehörige Eintrag in /system/codb/objects/1/_SCALARS.
Lösung 1 (mit ssh-Package und putty):
echo -n 1 > /system/codb/objects/1/Telnet.enabled echo "Telnet.enabled," >> /system/codb/objects/1/_SCALARS
Lösung 2 (mit userscript; als Datei "init" auf public-Share, z.B. unter applications/bugfixes):
#!/bin/sh killall inetd echo "telnet stream tcp nowait root /usr/sbin/telnetd telnetd" >> /etc/inetd.conf /usr/sbin/inetd
Die Datei muss mit einem "Unix-fähigen" Editor (z.B. Notepad++) erstellt werden (also nur LF am Zeilenende, nicht CR,LF)
In beiden Fällen sollte die Box dann nach einem Reboot wieder über telnet erreichbar sein.
