Personal tools
You are here: Home Howtos Debian GNU/Linux Debian 5.0 "Lenny" auf Linksys NSLU2 Howto
Debian Howtos
 

Debian 5.0 "Lenny" auf Linksys NSLU2 Howto


Anmerkung: dieses Howto steht auch in einer Kurzfassung zur Verfügung, die lediglich die einzelnen Schritte erläutert und nicht auf weitere Details eingeht.

Immer mehr Hersteller entwickeln NAS Geräte, die den Privatanwender als Kunden fokussieren. So hat u.a. die Firma Linksys bereits vor geraumer Zeit ein solches Gerät Namens NSLU2 (Network Storage Link for USB 2.0) auf den Markt gebracht. Dabei handelt es sich um ein NAS Device, das selbst keine internen Platten verwaltet, sondern diese über zwei USB 2.0 Anschlüsse angeschlossen werden können.

Einleitung

Da die NSLU2 dem Anwender es ermöglicht, das vorinstallierte Embedded Linux gegen eine vollwertige Linux-Distribution seiner Wahl zu tauschen, ergeben sich bei diesem Gerät vielfältige Möglichkeiten, was den Einsatz der Linksys NSLU2 (umgangssprachlich auch "Slug" genannt) als vollwertigen Server betrifft.

Die NSLU2 basiert auf folgender Hardware:

  • CPU: ARM Prozessor (Intel XScale IXP420, 266 MHz, frühere Versionen waren künstlich auf 133 MHz gedrosselt)
  • RAM: 32 MB
  • Flashspeicher: 8 MB (reserviert für das Betriebssystem)
  • USB Anschlüsse: zwei Anschlüsse (USB 2.0)
  • Netzwerkinterface: 100 MBit/s
  • Zusätzliche Anschlüsse: RS-232 (standardmäßig nicht nach außen geführt)

Durch den Einsatz eines USB-Hubs können beliebig viele USB Geräte (Festplatten, Speichersticks, Drucker, Webcams etc.) an die NSLU2 angeschlossen werden. Ein wichtiger Vorteil bei der Verwendung der NSLU2 als Server ist vor allem dessen geringe Stromaufnahme und der geräuschlose Betrieb des Geräts.

In diesem Howto erklären wir Schritt für Schritt die Installation und Konfiguration eines vollwertigen Debian GNU/Linux 5.0 (aka "Lenny") Systems auf der NSLU2. Das Howto basiert zum größten Teil auf der erstklassigen Arbeit von Martin Michlmayr, einem der Hauptentwickler der Portierung von Debian auf die ARM-Architektur, sowie seiner exzellenten Dokumentation. Martin, an dieser Stelle sei dir für deine hervorragende Arbeit nochmals gedankt.

Vorbereitung der USB-Sticks (System)

Zunächst partitionieren und formatieren wir den USB-Stick, auf dem später das gesamte Betriebssystem seinen Platz findet, indem wir diesen an einen beliebigen Linux Rechner anschließen. In unserem Fall verwenden wir statt einer USB-Festplatte einen 2 GB großen USB-Stick, da wir auf unserer NSLU2 lediglich einige grundlegende Netzwerkdienste betreiben wollen. Möchte man die NSLU2 als File- bzw. Media-Server verwenden, bietet sich dieses Vorgehen ebenfalls an. Hat man zunächst das System nach den eigenen Vorstellungen auf dem USB-Stick installiert und konfiguriert, können jederzeit weitere USB-Speichermedien, wie bspw. externe Festplatten an die NSLU2 angeschlossen werden.

In unserem Fall verwenden wir auf dem USB-Stick jeweils eine eigene Partition für /boot, / und /home sowie eine Swap-Partition. Das von uns verwendete Partitionsschema sieht dabei folgendermaßen aus (ausgehend von dem Fall, daß der Stick als /dev/sdb auf unserem Linux-System erkannt wird!):

Disk /dev/sdb: 2004 MB, 2004877312 bytes
129 heads, 32 sectors/track, 948 cylinders
Units = cylinders of 4128 * 512 = 2113536 bytes
Disk identifier: 0xc3072e18

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          33       68096   83  Linux
/dev/sdb2              34         788     1558320   83  Linux
/dev/sdb3             789         948      330240    5  Extended
/dev/sdb5             789         869      167168   82  Linux swap / Solaris
/dev/sdb6             870         948      163040   83  Linux

Anmerkung: aufgrund des verwendeten, speziell für die NSLU2 erstellten Debian Images, das wir zur Installation verwenden werden, muss die Reihenfolge und die Zuordnung der Partitionen diesem Schema entsprechen! Die Größe des Mediums und der einzelnen Partitionen ist dabei beliebig wählbar. Wichtig an dieser Stelle ist, dass die erste Partition als bootbar markiert wird.

Den einzelnen Partitionen werden später die folgenden Moountpoints zugewiesen:

  • /dev/sda1 wird zu /boot (in unserem Fall 64 MB)
  • /dev/sda2 wird zu / (in unserem Fall 1,7 GB)
  • /dev/sda3 wird eine erweiterte Partition
  • /dev/sda5 wird zu Swap (in unserem Fall 128 MB)
  • /dev/sda6 wird zu /home (in unserem Fall 128 MB)

Wichtig: alle Daten auf USB-Stick bzw. der USB-Festplatte gehen dabei verloren! Daher unbedingt vorher ein Backup des Sticks erstellen und mehrmals kontrollieren, ob wir an dieser Stelle tatsächlich den USB-Stick partitionieren und formatieren und nicht ein anderes Speichermedium!

Anschliessend formatieren wir die einzelnen Partitionen mittels:

# mkfs.ext2 /dev/sdb1

# mkfs.ext3 /dev/sdb2

# mkfs.ext3 /dev/sdb6

# mkswap /dev/sdb5

Nun mounten wir die Root-Partition mittels:

# mount /dev/sdb2 /mnt

Anschließend erstellen wir einen Mountpoint für die Partition /boot und mounten diese:

# mkdir /mnt/boot

# mount /dev/sdb1 /mnt/boot

Anschliessend laden wir das Debian GNU/Linux 5.0 (aka "Lenny") Basissystem herunter, das in einer komprimierten Version vorliegt (Dateigröße ca. 108 MB). Das Archiv wurde ebenfalls von Martin Michlmayr erstellt und wird von ihm gepflegt. Es enthält alle Standardpakete von Lenny. Zusätzlich laden wir die zu dem Archiv zugehörige PGP Signatur herunter:

# cd /mnt

# wget http://people.debian.org/~tbm/nslu2/lenny/base.tar.bz2

# wget http://people.debian.org/~tbm/nslu2/lenny/base.tar.bz2.asc

Anmerkung: Es ist ebenfalls möglich Debian per Installer auf der NSLU2 direkt zu installieren. Seit der Debian Version 5.0 (aka "Lenny") unterstützt dieser die direkte Installation auf der NSLU2. Diese beansprucht jedoch durch die geringe CPU-Leistung ca. 4 Stunden. Daher installieren wir hier das fertige Image von Martin Michlmayr.

Nun überprüfen wir die Authentizität des heruntergeladenen Archivs. Dazu importieren wir zunächst die GPG-Schlüssel des Entwicklers Martin Michlmayr:

# gpg --keyserver subkeys.pgp.net --recv-keys 68FD549F

Daraufhin quittiert uns das System den Erhalt des GPG-Schlüssels, indem es die folgende Meldung generiert:

gpg: requesting key 68FD549F from hkp server subkeys.pgp.net
gpg: key 68FD549F: public key "Martin Michlmayr <tbm@cyrius.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

Anschließend überprüfen wir die Signatur des heruntergeladenen Archivs mittels:

# gpg --verify base.tar.bz2.asc base.tar.bz2

Die Unversehrtheit des Archivs quittiert das System mit der folgenden Ausgabe:

gpg: Signature made Mon 18 Feb 2008 11:38:05 AM CET using DSA key ID 68FD549F
gpg: Good signature from "Martin Michlmayr <tbm@cyrius.com>"
gpg:                 aka "Martin Michlmayr <tbm@debian.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: F849 E202 5D1C 194D E62B  C6C8 29BE 5D22 68FD 549F

Als Nächstes entpacken wir das Archiv:

# tar xjvf base.tar.bz2

# rm base.tar.bz2

Das Archiv besitzt ca. 27.800 Dateien, die nun entpackt im Verzeichnis /mnt liegen.

Zuletzt hängen wir den USB-Stick aus unserem Dateisystem wieder aus:

# cd /

# umount /mnt/boot

# umount /mnt

Flashen der neuen NSLU2 Firmware

Nun benötigen wir noch auf einem lokalen Linux-PC die Applikation upslug2, mit deren Hilfe wir das Firmware-Image einspielen werden. Zudem brauchen wir das Tool arpwatch, um die IP-Adresse, die die NSLU2 in unserem Fall via DHCP bezieht, zu erfahren. Beide Applikationen können wir z.B. auf einem Linux-PC, auf dem Debian läuft, installieren mittels:

# aptitude install upslug2 arpwatch

Anmerkung: sollten wir Ubuntu als lokales Linux-System verwenden, müssen wir das obige Kommando mit einem vorangestelltem sudo ausführen, d.h.:

$ sudo aptitude install upslug2 arpwatch

Bevor wir die neue Firmware flashen, öffnen wir zunächst auf unserem lokalen Rechner ein Terminalfenster und geben folgendes Kommando ein, um die IP Adresse, die die NSLU2 von unserem DHCP-Server bezieht, zu ermitteln (ein DHCP-Server in unserem LAN ist Voraussetzung für die hier beschriebene Installation!):

# arpwatch -dN -i eth0

Nun laden wir das Debian Etch Firmware-Image herunter, das in den folgenden Schritten die Original-Firmware der NSLU2 ersetzen wird:

# cd /tmp

# wget http://www.cyrius.com/debian/nslu2/files/armel/sda2-2.6.26-19

Anschliessend verbinden wir die NSLU2 über einen Netzwerkswitch (wichtig später für die Ermittlung der via DHCP bezogenen IP-Adresse) mit unserem lokalen Linux-Rechner und versetzen diese in den Upgrade-Modus:

  • Alle USB Geräte, die an den USB Ports angeschlossen sind, entfernen.
  • Die NSLU2 ausschalten.
  • Den Reset-Schalter (kleines Loch auf der Rückseite über dem Stromanschluss) drücken und gedrückt halten.
  • Den Ein-/Ausschalter drücken und loslassen (dabei den Reset-Schalter weiterhin gedrückt halten).
  • Die Status-LED beobachten. Nach ca. 10 Sekunden wechselt die Status-LED die Farbe von Orange nach Rot. Ist dies der Fall, den Reset-Schalter sofort loslassen.
  • Die Status-LED wechselt nun permament ihre Farbe zwischen Rot und Grün. Damit befindet sich die NSLU2 nun im Upgrade Modus.

Nun spielen das neue Firmware-Image ein mittels:

# upslug2 -i sda2-2.6.26-19

Auch diesen Vorgang quittiert das System mit einer entsprechenden Meldung. Dabei läßt sich der Vorgang des Flashens beobachten:

LKG7E9672 00:0f:66:7e:96:72 Product ID: 1 Protocol ID:0 Firmware Version: R23V63 [0x2363]
Upgrading LKG7E9672 00:0f:66:7e:96:72
    . original flash contents  * packet timed out
    ! being erased             - erased
    u being upgraded           U upgraded
    v being verified           V verified

  Display:
    <status> <address completed>+<bytes transmitted but not completed>
  Status:
    * timeout occured          + sequence error detected

  4a02ff+000000 ...UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUu--------------------------

Sobald der Vorgang des Flashens abgeschlossen ist (die obige Ausgabe endet mit der Meldung Rebooting... done), schliessen wir den vorhin von uns vorbereiteten USB-Stick an. Von nun an sollte unsere NSLU2 von diesem booten.

In dem Moment, in dem die NSLU2 eine IP-Adresse via DHCP bezieht (u.U. müssen wir einige Minuten warten, bis die Box hochgefahren ist), protokolliert arpwatch in dem von uns vorher geöffneten Terminalfenster (s.o.) das Erscheinen eines neuen Netzwerkknotens mit einer entsprechende Meldung. In unserem Fall lautet diese:

From: arpwatch (Arpwatch turing)
To: root
Subject: new station eth0

            hostname: <unknown>
          ip address: 192.168.1.4
           interface: eth0
    ethernet address: 0:f:66:7e:96:72
     ethernet vendor: Cisco-Linksys
           timestamp: Thursday, March 5, 2009 16:39:18 +0100

Dabei verwendet das Debian Image folgende Default-Einstellungen:

  • Root-Passwort: root
  • IP-Adresse: wird per DHCP bezogen (s.o., in unserem Fall also 192.168.1.4)
  • Hostname: foobar
  • DNS Domain Name: cyrius.com
  • SSH Server ist aktiviert / Root Zugriff per SSH ist aktiviert

Nacharbeiten

Nachdem unsere neu geflashte NSLU2 ordnungsgemäß gebootet hat, loggen wir uns per SSH auf dieser ein (IP-Adresse s. obige Ausgabe des Kommandos arpwatch). Einige Einstellungen sollten direkt im Anschluss an den ersten Start der NSLU2 vorgenommen werden, um die Sicherheit des Systems zu erhöhen. Nach dem direkten Einspielen der Firmware haben alle damit geflashten Geräte bspw. die gleichen, mit der Firmware ausgelieferten Passwörter und SSH-Schlüssel gesetzt, was ein erhebliches Sicherheitsrisiko darstellt.

Root Passwort ändern

Zunächst ändern wir das Root-Passwort mittels:

# passwd

Neue SSH Schlüsselpaare generieren

Anschließend generieren wir zwei neue Schlüsselpaare für unseren SSH Server (DSA und RSA). Da der private Schlüssel in dem Debian Image abgelegt ist, ist er für jeden, der das Image heruntergeladen hat gleich! Dieser muss so schnell, wie möglich nach der Installation neu generiert werden.

# rm /etc/ssh/ssh_host*

# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""

# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""

Dabei benötigt das Programm einige Zeit, um die entsprechenden Schlüsselpaare zu erzeugen.

Host- und Domainnamen setzen

Nun setzen wir den Hostnamen für unsere NSLU2 neu (in unserem Fall boole):

# echo boole > /etc/hostname

Zudem ersetzen wir in der Konfigurationsdatei /etc/hosts die Zeile

127.0.1.1       foobar.example.org foobar

durch

127.0.1.1       boole.asconix.lan boole

Dabei ist asconix.lan durch den Namen der eigenen, zumeist lokalen, Domain zu ersetzen.

Zuletzt aktivieren wir den neuen Host- und Domainnamen mittels:

# /etc/init.d/hostname.sh stop && /etc/init.d/hostname.sh start

Die Konfiguration des Host- und des Domainnamens können wir überprüfen mittels:

  • Hostnamen ermitteln:

# hostname

boole
  • Hostnamen samt Domainnamen ermitteln:

# hostname -f

boole.asconix.lan

Debian Paket-Repository anpassen

Nun modifizieren wir die Konfigurationsdatei /etc/apt/sources.list, indem wir darin einen in der Nähe liegenden Debian-Mirror eintragen. Zum anderen wollen wir aber auch neben main die beiden Zweige contrib und non-free verwenden, so dass die Konfigurationsdatei schlußendlich folgendes Aussehen hat:

deb http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main contrib non-free
deb-src http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

Update des gesamten Systems

Zunächst einmal führen wir ein Update der dpkg Datenbank durch:

# aptitude update

Anschließend bringen wir das gesamte System auf den neuesten Stand:

# aptitude safe-upgrade

U.U. nehmen die beiden letzten Schritte einige Zeit in Anspruch, da je nach Aktualität des Systems viele Softwarepakete geupdatet werden müssen.

Synchronisation der CMOS Uhr

Um eine konsistene Zeit im gesamten Netzwerk zu erhalten, verwenden wir an dieser Stelle eine netzbasierte Zeitsynchronisation mit den NTP-Servern der Physikalisch-Technischen Bundesanstalt (PTB) in Braunschweig. Um die interne Uhr mit den entsprechenden Zeitservern zu synchronisieren, installieren wir zunächt das Paket ntp aus dem Debian-Repository:

# aptitude install ntp

Anschließend konfigurieren wir den NTP Daemon, indem wir die Konfigurationsdatei /etc/ntp.conf folgendermaßen modifizieren:

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server ptbtime1.ptb.de version 3
server ptbtime2.ptb.de version 3
server ntps1-0.cs.tu-berlin.de version 3
server ntps1-0.uni-erlangen.de version 3
server ntp0.fau.de version 3

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

Anschließend starten wir den NTP Daemon einmal neu, damit dieser die Zeit der NSLU2 zum ersten Mal synchronisiert:

# /etc/init.d/ntp restart

Zeitzone anpassen

Zuletzt passen wir die Zeitzone, in der wir uns befinden an. Dazu verwenden wir folgendes Kommando:

# dpkg-reconfigure tzdata

Daraufhin setzen wir die Zeitzone auf Europe => Berlin

Reboot

Nachdem wir nun unser System diesem Howto folgend installiert und konfiguriert haben, starten wir es neu mittels:

# reboot

Document Actions

Fehlendes Image

Avatar Posted by Maddin at Jan 13, 2010 10:44 AM
Großes Kompliment an die Anleitung. Nachdem ich mich auch einmal versucht habe ist mir aufgefallen das unter dem angegeben Link (http://www.cyrius.com/[…]/sda2-2.6.26-12) das Image nicht mehr vorhanden ist. Schade! Auch anderweitig habe ich es nirgends gefunden. Gibt es da eine aktuallisierte Version oder könntest du es noch anders zur Verfügung stellen?
Thx Maddin

Re: Fehlendes Image

Avatar Posted by Christoph Pilka at Jan 15, 2010 04:08 PM
Hallo Maddin,

du findest das Image unter http://www.cyrius.com/[…]/sda2-2.6.26-19
Ist nun auch in dem Howto korrigiert.

Gruss,
Chris

Super!

Avatar Posted by Stefan at Jan 19, 2010 03:41 PM
Ganz große Klasse! Tolle Anleitung. Einzig und allein das Aufschalten per SSH hätte genauer beschrieben werden können, obwohl das schnell rauszufinden war. War mir nicht ganz sicher, wozu ich einen Domainnamen brauche, daher fehlt der nun erstmal.

Danke, danke ;-)

Avatar Posted by Christoph Pilka at Jan 21, 2010 01:48 AM
Hallo Stefan,

schön, dass Dir das Howto weitergeholfen hat. Den Hostnamen setze ich immer im Anschluss an die Installation direkt auf der Box mit dem obigen Bedehl. Nötig ist er nicht, ein FQHN gehört aber auf jeden Linux-Rechner IMHO ;-)

Gruss,
Christoph

timeout beim flashen

Avatar Posted by Martin at Feb 03, 2010 08:05 PM
#03.02.2010
bekomme beim flashen mit "upslug2 -i sda2-2.6.26-12" die fehlermeldung
message too long: transmit error [std::exception]

habe bereits das ganze internet nach Hilfe abgesucht, leider nichts wirksames gefunden.

Habe NSLU2 direkt an einen debian pc angeschlossen und auch über einen switch probiert, leider ohne erfolg.

Kann jemand helfen ?

Re: timeout beim Flashen

Avatar Posted by Christoph Pilka at Feb 03, 2010 08:08 PM
Hallo Martin,

hmhm, manchmal sieht man echt skurile Fehler ;-) Zumindest ist mir dieser noch nie untergekommen, wobei wir hier schon sicherlich mehr als 100 Boxen geflasht haben. Kannst du mal die letzten 10-20 Zeilen von dem folgenden Kommando hier mal posten? Als Root einmal ausführen:

strace upslug2 -i sda2-2.6.26-12

Gruss,
Chris

timeout beim Flashen

Avatar Posted by Martin at Feb 04, 2010 04:02 PM
Hi Chris,
vielen Dank für den Tip.
Ich habe sicherheitshalber Debian komplett neu aufgesetzt und alles neu installiert, trotzdem immer noch das time-out.
Folgenden Kernel habe ich installiert:
Linux debian 2.6.26-2-686 #1 SMP Wed Nov 4 20:45:37 UTC 2009 i686 GNU/Linux

Hier mal alles was das Kommando hergibt, ich hoffe es macht Dich schlauer, mir sagt das leider weniger, im Vorraus vielen Dank für die Unterstützung, Gruss Martin:
PS: Übrigens musste ich sda2-2.6.26-19 eingeben anstatt wie im Text beschrieben sda2-2.6.26-12

debian:/# strace upslug2 -i sda2-2.6.26-19
execve("/usr/sbin/upslug2", ["upslug2", "-i", "sda2-2.6.26-19"], [/* 33 vars */]) = 0
brk(0) = 0x877e000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd5000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=45356, ...}) = 0
mmap2(NULL, 45356, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc9000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`A\4\0004\0\0\0\240"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=946216, ...}) = 0
mmap2(NULL, 972972, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7edb000
mmap2(0xb7fbe000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe2) = 0xb7fbe000
mmap2(0xb7fc3000, 22700, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fc3000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@4\0\0004\0\0\0P"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=149328, ...}) = 0
mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7eb5000
mmap2(0xb7ed9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xb7ed9000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\34\0\0004\0\0\0\324"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=49676, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7eb4000
mmap2(NULL, 52808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ea7000
mmap2(0xb7eb3000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb) = 0xb7eb3000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1\0004\0\0\0\4"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1413540, ...}) = 0
mmap2(NULL, 1418864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d4c000
mmap2(0xb7ea1000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x155) = 0xb7ea1000
mmap2(0xb7ea4000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ea4000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d4b000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7d4b6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7ea1000, 4096, PROT_READ) = 0
mprotect(0xb7fbe000, 12288, PROT_READ) = 0
munmap(0xb7fc9000, 45356) = 0
geteuid32() = 0
getuid32() = 0
setresuid32(-1, 0, -1) = 0
geteuid32() = 0
setresuid32(-1, 0, -1) = 0
socket(PF_PACKET, SOCK_DGRAM, 34952) = 3
ioctl(3, SIOCGIFINDEX, {ifr_name="eth0", ifr_index=2}) = 0
setresuid32(-1, 0, -1) = 0
brk(0) = 0x877e000
brk(0x879f000) = 0x879f000
sendto(3, "\0\0004\22\0\0\0\0008\0\374c\377\277\340d\377\277\0\0\0\0\0\0\0\0\0\0\0\0eth"..., 66, 0, {sa_family=AF_PACKET, proto=0x8888, if2, pkttype=PACKET_BROADCAST, addr(6)={6, ffffffffffff}, 20) = 66
select(4, [3], NULL, NULL, {0, 65536}) = 1 (in [3], left {0, 65536})
recvfrom(3, "\0\0004\22\0\0\0\0008\0\0\1\0\0\4p1\225X\20\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1526, 0, {sa_family=AF_PACKET, proto=0x8888, if2, pkttype=PACKET_HOST, addr(6)={1, 001839a069a0}, [18]) = 80
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fd4000
write(1, "NSLU2 00:18:39:a0:69:a0 Produ"..., 99NSLU2 00:18:39:a0:69:a0 Product ID: 65535 Protocol ID: 65535 Firmware Version: RFFVFF [0xFFFF]
) = 99
select(4, [3], NULL, NULL, {0, 65536}) = 0 (Timeout)
close(3) = 0
geteuid32() = 0
setresuid32(-1, 0, -1) = 0
socket(PF_PACKET, SOCK_DGRAM, 34952) = 3
ioctl(3, SIOCGIFINDEX, {ifr_name="eth0", ifr_index=2}) = 0
setresuid32(-1, 0, -1) = 0
open("sda2-2.6.26-19", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
close(3) = 0
write(2, "sda2-2.6.26-19: failed to open fi"..., 80sda2-2.6.26-19: failed to open file: No such file or directory [std::exception]
) = 80
exit_group(1) = ?
debian:/#

Imagedatei fehlt

Avatar Posted by Christoph Pilka at Feb 04, 2010 04:07 PM
Grüss Dich Martin,

der Fehler ist eindeutig ;-) Du hast in /tmp deine Image-Datei liegen, richtig? Von welchem Verzeichnis führst du upslug2 aus? Also, entweder aus dem gleichen Verzeichnis, in dem das Image liegt:

upslug2 -i sda2-2.6.26-19

oder aus einem beliebigen Verzeichnis:

upslug2 -i /pfad/zu/deinem/sda2-2.6.26-12

Dann sollte alles funktionieren ;-)

Imagedatei fehlt

Avatar Posted by Martin at Feb 06, 2010 07:50 PM
Hi Chris,
bin immer noch am probieren,
jetzt stelle ich fest, dass die Datei sda2-2.6.26-19 8388608 Byte ist. Das Flash hat 8MB.
Kann es sein dass die Datei für das Flash zu gross ist und deshalb die Meldung "Message too long" kommt ?

Gruss
Martin

Imagedatei fehlt

Avatar Posted by Martin at Feb 06, 2010 07:51 PM
Hi Chris,
vielen Dank für Deinen Input.
Du hast recht, meine Image-Datei liegt in /tmp.
Ich habe beide, von Dir vorgeschlagene Varianten probiert.
Schlechte Nachricht ! Das Problem ist immer noch gleich. "Timeout" hält sich hartnäckig.
Leider bin ich nicht "der Linux Crack" und stehe noch am Anfang meiner Linux Karriere.

Ich hoffe inständig, dass Du noch eine Idee hast, sonst weiss ich nicht weiter.
Muss ich das Ding in Tonne Klopfen ?

Danke
Gruss
Martin



Re: Imagedatei fehlt

Avatar Posted by Christoph Pilka at Feb 06, 2010 07:56 PM
Hallo Martin,

also, das hier muss auf jeden fall funktionieren:

1.) ins /tmp wechseln: cd /tmp

2.) in /tmp das Image schreiben: upslug2 -i sda2-2.6.26-19

Wenn es Probleme gibt poste bitte nocheinmal die Ausgabe des strace Durchlaufs hierhin. Laut dem letzten hast du aus einem anderen Verzeichnis, als dem wo dein Image liegt, versucht das Image zu brennen. Zudem bitte einmal die Ausgabe von

ls -la /tmp/sda*

hierhin posten. U.U hast du keine Leserechte auf das Image?

Gruss,
Chris

Imagedatei fehlt

Avatar Posted by Martin at Feb 10, 2010 09:56 PM
Hi Chris,
vielen Dank nochmals für Deine Hilfe.
Also ich habe alle Rechte, bin als root im /tmp ... und es geht immer noch nicht.
In der Zwischenzeit habe ich eine andere SLUG von einem Bekannten bekommen.
Der Bekannte hat seine SLUG geopfert und konnte seine SLUG flashen.
Seine SLUG habe ich jetzt hier und damit den Memory Stick vollendet, eigentlich geht alles.
PS: Ich habe es allerdings noch nicht geschafft ddie SLUG nach dem booten wiedermit dem "Aus-Schalter" herunterzufahren, vielleicht hast Du ne Idee, ich muss immer den Netzsstecker ziehen.

Ich werde meine SLUG meinem Bekannten geben, um zu probieren, ob er den flash nochmal nachvollziehen kann.
Sollte das beim Bekannten nicht funktionieren gehe ich davon aus, das entweder meine SLUG gestorben ist oder irgend ein Durcheinander passiert ist. Evtl. kann ich meine SLU nochmal retten, wenn ich über die serielle Schnittstelle auf der Platine direkt irgenwie flashe.... mal sehen.
Ich werde berichten...

Vielen Dank und Grüsse
Martin

Danke

Avatar Posted by Dirk at Feb 03, 2010 08:09 PM
Super Anleitung!

Eine Kleinigkeit:
Im SSH Kapitel felht ein "*"
# rm /etc/ssh/ssh_host*


Grüße, Dirk

Re: Danke

Avatar Posted by Christoph Pilka at Feb 03, 2010 08:11 PM
Immer wieder schön, Feedback zu bekommen ;-) Habe den Vertipper nun im Howto korrigiert.

Gruss,
Christoph

"Message too long"

Avatar Posted by utas at Feb 17, 2010 06:47 PM
Diesen Fehler kommt n.m.M wenn per W-Lan geflasht wird.
   

Re: Message too lang

Avatar Posted by Christoph Pilka at Feb 17, 2010 06:53 PM
Hallo utas,

in dem Fall wurde per LAN geflasht (s. erster Post). Ehrlich gesagt, habe ich aber selbst noch nie über WLAN versucht zu flashen. Funktioniert das überhaupt? Die NSLU2 bekommt dann einen USB-WLAN-Stick? Es hört sich zumindest recht abenteuerlich an ;-) Ich vermute eher, dass entweder der Flash-Chip defekt war (bei einer anderen Box funktionierte ja das Flashen) oder, dass das Image nicht gefunden wurde (war mein erster Blick in die Kristallkugel). Nunja, scheint ja jetzt alles wieder zu laufen.

Gruss,
Chris

Image erstellen

Avatar Posted by Stefan at Feb 18, 2010 09:52 PM
Hallo,

musste gerade den Server neu aufsetzen (es leuchtete nur noch das zweite Lämpchen von oben, SSH funktioniert nicht mehr) und würde nun gerne für das nächste Mal eine Sicherung von den Daten auf dem USB-Stick erstellen. Welchen Weg geht ihr um euren Stick zu sichern?

Viele Grüße
Stefan

Re: Image erstellen

Avatar Posted by Christoph Pilka at Feb 18, 2010 09:57 PM
Hallo Stefan,

den Stick zu sichern ist recht einfach:

1.) Sicherung des Sticks: if=/dev/sda of=~/stick.img bs=1m
2.) Zurückspielen des Backups: dd if=~/stick.img of=/dev/sda bs=1m

Natürlich musst du /dev/sda durch die Gerätedatei, unter der dein Stick verwaltet wird tauschen ;-)

Gruss,
Chris

Danke!!

Avatar Posted by Stefan at Feb 18, 2010 10:08 PM
Hi Chris,

das ging ja fix! Vielen Dank für den Tipp! Eine Sicherung ist schon was feines, bis man sich Apache, FTP, Mediacenter, usw. zurecht gebastelt hat, vergeht ja doch einiges an Zeit.

Vielen Dank für die tollen Tipps!

Stefan

Re: Danke!!

Avatar Posted by Christoph Pilka at Feb 18, 2010 10:09 PM
Kein Problem ;-) Die NSLU2 finde ich genau aus diesem Grunde so cool. Alles konfigurieren, Stick sichern, rein und gut ist ;-)

Gruss,
Chris

Hat nix gebracht

Avatar Posted by Stefan at Feb 18, 2010 11:57 PM
Hi,

leider hat hat mir die Neuinstallation nicht weitergeholfen. Ich habe den selben Fehler wie vorher. Nach einem Reboot nach der Installation kann ich die NSLU2 mit ping/SSH nicht mehr ansprechen. Die Ehternet-LED blinkt unregelmäßig. Bin scheinbar nicht alleine damit:
http://nslu2-info.de/[…]/#post36723

:(

SuFu

Avatar Posted by Stefan at Feb 19, 2010 08:34 AM
Habe ein bisschen im Form http://nslu2-info.de gesucht und ein paar Tipps gefunden. Werde ich heute Abend ausprobieren. Ich glaube die Neuinstallation war gar nicht nötig. :/

USB-Stick kaputt

Avatar Posted by Stefan at Feb 21, 2010 03:55 AM
;(

Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
Bitte geben Sie Ihren Namen ein.
(Required)
(Required)
(Required)
Enter the word