Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
embedded-gentoo auf einer Linksys NSLU2
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9  Next  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Wed Dec 28, 2005 1:08 pm    Post subject: embedded-gentoo auf einer Linksys NSLU2 Reply with quote

Linksys, eine Tochterfirma von Cisco Systems hat vor einiger Zeit ein kleines Maschinchen basierend auf der embedded-arm Architektur herausgebracht, welches sich "NSLU2" nennt. Darauf lässt sich mit Sicherheit wunderbar ein Gentoo zum Laufen bringen. Dies möchte ich versuchen und hier dokumentieren.


Features:
  • Gerade mal ein bisschen kleiner als eine 3,5" Festplatte
  • 100mbit Netzwerkschnittstelle
  • 2 USB-Ports
  • 266 mhz Prozessor
  • 8 mb Flashspeicher
  • 32 mb SD-Ram
  • Unschlagbarer Preis von gerade mal 75€
  • Sieht nicht schlecht aus
Bild des Geräts | Bild der Platine | Detailliertes Bild der Platine

Linksys liefert das gerät mit einem 2.4er kernel, Samba und einem entsprechenden Webinterface aus, damit man USB-platten anschliessen kann, und diese per Webinterface-konfiguration über den Samba im Netzwerk freigeben kann. Das ist zwar schön, reicht mir jedoch nicht. Ich will eine vollwertige Distribution darauf. Somit habe ich den Thread hier gestartet um gentoo darauf zum laufen zu bekommen, dies zu Dokumentieren, euch Fragen zu stellen, und schliesslich zu vesuchen, eine Schritt für Schritt Dokumentation für alle gentoo-user hier im Forum, im gentoo-wiki, oder auf den webseiten des embedded-gentoo projektes zur verfügung zu stellen. Ich hoffe, dass sich hier ein paar Leute finden, die selbst daran interessiert sind, gentoo darauf zum laufen zu bekommen :)

Hier im Startthread sammle ich Arbeitsschritte und Informationen. Ich werde sie wahrscheinlich nicht sofort beim posten ausformulieren, werde mir jedoch Mühe geben, zumindest halbwegs verständlich zu sein. Früher oder später werde ich das ganze mit ssicherheit mal ausformulieren.




Das Gerät:

- Die CPU:
Die NSLU2 wird mit einem Intel IXP420 als Prozessor ausgelifert. Der XScale-Kern basiert auf der ARMv5TE Architektur und ist auf 266Mhz ausgelegt. Nichts desto trotz wird er in diesem Gerät nur mit 133 getaktet. Durch eine sehr einfache Modifikation kann man den Prozessor "deunderclocken". Wie man es anstellt ist hier zu sehen.

- Speicher:
Die CPU ist angeschlossen an 8mb Flash-Speicher(0x50000000 - 0x50800000) Die 8MB Flash sind folgendermaßen aufgebaut:
  • Start: 0x50000000, Länge: 0x40000 (256K) - der Bootcode
  • Start: 0x50040000, Länge: 0x20000 (128K) - Systemkonfiguration (ich glaube für den bootmanager)
  • Start: 0x50060000, Länge: 0x100000 (1MB) - Platz für den Kernel
  • Start: 0x50160000, Länge: 0x6A0000 (6.625MB) - Das /-Dateisystem
Zudem gibt es 32MB SD-Ram, die unter folgender Adressspanne erreichbar sind: 0x00000000 bis 0x02000000. Es gibt die Möglichkeit, von ganz normalen SD-Ram Modulen, die Bausteine zu nutzen um damit den Speicher der NSLU2 aufzurüsen. Wie dies geht, sehr ihr hier.

- USB-Controller:
Das Gerät selbst hat 2 USB-Ports nach außen laufen. Der USB-Controller meldet sich in lspci als "USB Controller: NEC Corporation USB 2.0 (rev 04)"und wird problemlos von ohci/uhci unterstützt. Problemlos lässt sich auch ein aktiver USB-Hub anschliessen - aktiv daher, weil ich nicht glaube, dass der eigene USB der NSLU2 genügend Strom für viele Geräte liefert.
Getestet habe ich den USB-Controller bisher mit 4 Festplatten im USB-Gehäuse und einem RFID-Reader welcher an einem Serial2USB-Converter hängt. Alles lief Problemlos, auch gleichzeitig.

- Netzwerk:
Die Netzwerkschnittstelle wird direkt vom Prozessor bereitgestellt, und basiert damit auf dem IXP420 Chip, zu welchem man hier genauere Informationen findet. der Proprietäre Treiber dafür ist in Portage vorhanden und kann gegen den 2.6er Kernel gebaut werden.

- Bootloader:
Ausgeliefert wird das Gerät mit dem Bootloader namens "RedBoot". Dieser genügt auch für unsere Zwecke und wir lassen ihn drauf. Obgleich es möglich ist, diesen durch den APEX Bootloader zu ersetzen.





Gentoo installieren:
Auf los gehts los :)

  1. Wir brauchen ein Installationssystem

    • Die Maschine in den Updatemodus bringen
    • upslug2 emergen und testen
    • Openslug installieren

  2. Gentoo Stage3 auf eine Festplatte

    • Festplatte einrichten
    • Stage-tarball herunterladen und entpacken
    • Portagesnapshot herunterladen und entpacken
    • chrooten
    • Portage-tree snchronisieren

  3. Profil auswählen und testen

    • Arm-Profil verlinken
    • linux-headers updaten
    • screen emergen

  4. Einrichten einer Crosscomplile-Umgebung

    • Crossdev emergen
    • Stage4 umgebung für die Target-Architektur einrichten

  5. Kernel installieren

    • Kernelquellen besorgen
    • Kernel patchen
    • Cross-kompilieren
    • Module auf die NSLU übertragen
    • Kernelimage bearbeiten
    • Netzwerktreiber crossscompilen

  6. Nötige Systemtools installieren und Konfigurationen bearbeiten

    • Devfs raus, udev rein!
    • Systemlogger
    • Cron
    • Netzwerkconfiguration
    • /etc/fstab editieren
    • /etc/conf.d/* editieren

  7. Kernelimage auf die NSLU übertragen und rebooten



Anmerkung 1: Keine Garantie, kein Garnichts! Es ist euer Gerät und euer Bier, was ihr damit macht! Mit dem, was ich euch hier beschreibe, könnt ihr _nichts_ kaputt machen und ihr könnt alles wieder rückgängig machen: wenn die original Linksysfirmware wieder aufgespielt wird, könnt ihr das Gerät sogar zurückgeben. Dannn gilt jedoch: Finger weg vom Deunderclocken, Finger weg vom Bootloader, Finger weg von der Platine! Wer jetzt noch weiterliest: viel Spaß :)

Anmerkung 2: Das Howto schliesst zwar im Großen und Ganzen alles ein, jedoch ist es nicht vollständig. Copy&Paste funktioniert also _nicht_! Ich werde es weiter korrigieren und verbessern, Grundkenntnisse und Verständnis sollten jedoch bei jedem zu genüge vorhanden sein, der die Absicht hat, sich an diesem Howto zu orientieren.


  1. Wir brauchen ein Installationssystem
    Linksys liefert die Maschine zwar mit einem 2.4er Linux aus, dieses ist jedoch nicht ausreichend um von dort aus Gentoo zu installieren (kein ssh, nicht alle Werkzeuge etc.). Also müssen wir uns eines besseren bedienen, damit wir ein Grundsystem haben, womit wir eine Festplatte partitionieren können, den Stage-tarball herunterladen und entpacken können, sowie einige Dateien editieren können und schliesslich in unser neues Root-System chrooten.
    Hierfür benutzen wir die Distribution Openslug, welche komplett auf den Flash-speicher passt.

    • Die Maschine in den Updatemodus bringen
      Zuerst sollten wir überprüfen, ob das Gerät überhaupt funktioniert. Dafür verbinden wir es mit unserem Switch und schalten es ein, ohne dabei irgendwelche Festplatten oder sonstiges angeschlossen zu haben. Wenn nach ca 1-2 Minuten die Ready/Status Lampe auf Grün wechselt, und wir das Gerät anpingen können, oder sogar auf das Webinterface (IP steht in der Dokumentation) kommen, ist schon alles geritzt und wir können wieder getrost den Stecker ziehen.
      Nun bringen wir das Gerät auf folgendem Weg in den Update-Modus:

      • Darauf achten, dass nichts ausser dem Netzteil und einem Netzwekkabel angeschlossen ist
      • Mit einem Kugelschreiber oder sonstigem an der Hinterseite das Reset-knöpfchen drücken und weiterhin gedrückt halten.
      • Nun auf der Vorderseite den Power-on-button einmal drücken (den Reset-knopf weiterhin gedrückt halten)
      • Nach ca. 10 Sekunden, sofort in dem Moment, wo die Ready/Status-Lampe auf Rot wechselt - den Reset-knopf loslassen. Dafür hast man ca. eine halbe Sekunde Zeit, danach ist es schon zu spät.
      • Wenn die Ready/Status-Lampe abwechselnd Rot und Grün blinkt, befindet sich die NSLU im Update-Modus.

    • upslug2 emergen und testen
      Um die NSLU mit einer anderen Firmware zu bestücken, benötigen wir das tool Upslug2. Mike Frysinger vom embedded-gentoo Projekt hat dieses Tool bereits in Portage gestellt, somit können wir es bequem auf unserem Arbeitsplatzrechner, von dem aus wir die Gentoo-installation betreuen installieren:
      Code:
      [13:57:39]|[chilla@chucky]|~/nslu/openslug-bin$ sudo emerge upslug2

      Vorrausgesetzt, die NSLU ist im Upgrademodus und hängt im gleichen Supnetz wie wir und hat entsprechend keinen IP-Konflikt etc. können wir sie sehen, indem wir nach der Installation auf unserem Arbeitsplatzrechner ein simples "upslug2" in die shell werfen. Die Ausgabe sollte wie folgt aussehen:
      Code:
      [13:40:26]|[chilla@chucky]|~$ upslug2
      NSLU2     00:13:10:d6:1d:f2 Product ID: 1 Protocol ID: 0 Firmware Version: R23V29 [0x2329]
      Damit wissen wir, dass die NSLU im Upgrademodus ist und unser upslug2 funktioniert. Ausserdem wissen wir die MAC-Addresse der NSLU, welche wir benötigen um die Firmware zu flashen.
      Achtung: Dieser Output erscheint NUR, wenn die originale Linksysfirmware noch installiert ist. Sobald mal ein anderer Kernel drauf ist, findet man die NSLU nicht mehr auf diese weise. Schreibt euch also die MAC-Adresse auf (alternativ steht sie auch nochmal auf der Unterseite des Geräts aufgedruckt)

    • Openslug installieren
      Nun, da das Maschinchen im Upgrade-Modus ist und unser upslug2 funktioniert, können wir Openslug auf dem zielsystem installieren. Dazu holen wir uns das binäre Image von Openslug und flashen es mittels upslug auf das Zielsystem. (Nach wie vor dürfen noch keine anderen Geräte an das Gerät angeschlossen sein!) Danach bootet das Gerät automatisch durch und wir können uns per SSH einloggen:
      • Openslug hier herunterladen.
      • entpacken:
        Code:
        [13:57:39]|[chilla@chucky]|~/nslu/openslug-bin$ unzip OpenSlug-2.7-beta-firmware.zip

      • Auf das Zielsystem übertragen:
        Code:
        [13:57:39]|[chilla@chucky]|~/nslu/openslug-bin$ upslug2 --target=00:13:10:d6:1d:f2 --image=openslug-2.7-beta.bin
      • Wenn alles geklappt hat, bootet die NSLU nun automatisch neu. Falls ihr einen dchp-Server im Netzwerk habt, bekommt sie nun von diesem eine. Ansonsten sollte die IP 192.168.1.77 sein. Was nun wirklich die IP der NSLU ist verrät uns ein Blick auf
        Code:
        ping -b 192.168.1.255

      • Schliesslich loggen wir uns auf dem Zielsystem ein (das standard-root-pw lautet "opeNSLUg") und initialisieren es:
        Code:
        ssh root@192.168.1.77

      • Und initialisieren das Grundsystem:
        Code:
        turnup init
        Der command "turnup init" fragt uns nach einigen Einstellungen, die wir setzen möchten - erklärt sich eigentlich alles von alleine.
      Nun rebooten wir die NSLU nocheinmal - wenn wir uns danach mit dem (bei "turnup init" gesetzten) Rootpasswort unter der eingestellten IP einloggen können, hat alles geklappt und wir sind mit der Installation von Openslug fertig. Von hier aus können wir gentoo installieren.






  2. Gentoo Stage3 auf eine Festplatte
    Die folgenden Schritte sind eigentlich in der offiziellen offiziellen Gentoo-installations-doku besser und ausführlicher beschrieben als hier. Der Vollständigkeit halber und da ich ein anderes Stage-tarball verwende, schreibe ich sie hier trotzdem nieder.

    • Festplatte einrichten
      Nun ist es an der Zeit, eine Festplatte anzuschliessen, zu partitionieren und zu formatieren. In meinem Fall habe ich eine 200GB Platte vo Samsung in ein billiges USB-Gehäuse gesteckt, das ich für 20€ bei Arlt um die Ecke gekauft habe.
      • Die Festplatte wird angschlossen und mit dem command "dmesg" wird überprüft, ob sie richtig erkannt wurde:
        Code:
        root@sluggy:~# dmesg 
        [...]
          Vendor: SAMSUNG   Model: SP2014N           Rev: 0000
          Type:   Direct-Access                      ANSI SCSI revision: 00
        SCSI device sda: 390721968 512-byte hdwr sectors (200050 MB)
        [...]
      • Mittels "fdisk" wird nun die Platte partitioniert. Für den Anfang erstelle ich nur eine 20GB große /-Partition und nochmal 500MB Swap.
        Code:
        root@sluggy:~# fdisk /dev/sda
        Wer nicht weiss, wie das geht, kann dies hier nachschauen.
        Schliesslich sieht meine Partitionierung folgendermaßen aus:
        Code:
        root@sluggy:~# fdisk -l /dev/sda

        Disk /dev/sda: 200.0 GB, 200049647616 bytes
        255 heads, 63 sectors/track, 24321 cylinders
        Units = cylinders of 16065 * 512 = 8225280 bytes

           Device Boot    Start       End    Blocks   Id  System
        /dev/sda1               1        1825    14659312   83  Linux
        /dev/sda2            1826        1887      498015   82  Linux swap
      • Nun werden beide Partitionen formatiert:
        Code:
        root@sluggy:~# mkfs.ext3 /dev/sda1
        root@sluggy:~# mkswap /dev/sda2
        root@sluggy:~# swapon /dev/sda2
      • Und schliesslich erstellen wir uns einen Mount-punkt und mounten unsere zukünftige /-Partition dorthin:
        Code:
        root@sluggy:~# mkdir /mnt/gentoo
        root@sluggy:~# mount -t ext3 /dev/sda1 /mnt/gentoo/

    • Stage-tarball herunterladen und entpacken
      Die netten Jungs vom embedded-gentoo Projekt haben schon das schwierigste bereits für uns erledigt: Sie haben einen Stage3-Tarball für embedded-arm Systeme mit softfloat und der uclib erstellt, dessen wir uns bedienen können. Wir befinden uns also per ssh als root auf dem Zielsystem und haben eine fertig eingerichtete und formatierte, sowie genügend große Partition nach /mnt/gentoo gemountet. Dorthin wechseln wir nun und laden uns das Stage3-Archiv von dieser Seite herunter:
      Code:
      root@sluggy:~# cd /mnt/gentoo/
      root@sluggy:/mnt/gentoo# wget http://ftp.uoi.gr/mirror/OS/gentoo/experimental/arm/embedded/stages/stage3-armeb-uclibc-softfloat-2005.1.tar.bz2
      root@sluggy:/mnt/gentoo# tar xvjpf stage3-armeb-uclibc-softfloat-2005.1.tar.bz2

    • Portagesnapshot herunterladen und entpacken
      Nun laden wir uns auch einen aktuellen Portage-snapshot herunter unt entpacken ihn:
      Code:
      root@sluggy:/mnt/gentoo# wget http://ftp.uoi.gr/mirror/OS/gentoo/snapshots/portage-latest.tar.bz2 
      root@sluggy:/mnt/gentoo# tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr

    • chrooten
      Da wir nun ein Grundsystem in /mnt/gentoo liegen haben, können wir auch schon reincrhooten, nachdem wir noch einige notwendige Dinge gemountet haben:
      Code:
      root@sluggy:~# mount -o bind /dev /mnt/gentoo/dev
      root@sluggy:~# mount -o bind /dev/pts /mnt/gentoo/dev/pts
      root@sluggy:~# mount -t proc none /mnt/gentoo/proc
      chroot /mnt/gentoo /bin/bash
      Geschafft: wir befinden uns in Gentoo Linux auf einem embedded-arm Maschinchen :)

    • Portage-tree snchronisieren
      Nun synchronisieren wir noch den Portage-tree.
      Code:
      sluggy / # emerge --sync







  3. Profil auswählen und testen
    Das Standardprofil des benutzten Stage3-Tarballs ist ein 2.4er. Da ich aber ein 2.6er Kernel verwenden möchte, ändere ich dies um, installiere die neuen linux-headers des 2.6er kernels und emerge Screeen um das Profil zu testen

    • /etc/make.conf editieren
      Zuerst schaue wird nachgeschaut, was noch in der /etc/make.conf zu machen ist. Morfic hat mir seine passende make.conf gegeben und ich habe noch der Sicherheit halber (ich habe nicht in die defaults geschaut) ein paar Useflags gesetzt. Nun sieht die make.conf so aus:
      Code:
      CFLAGS="-march=armv5t -Os"
      CHOST="armeb-softfloat-linux-uclibc"
      CXXFLAGS="-march=armv5t -Os"
      USE="-opengl -qt -gtk -gtk2 -kde -gnome -motif -X -arts -oss -alsa -esd -ipv6 apache2"

    • Arm-Profil verlinken
      Nun löschen wir den derzeitigen Link zum 2.4er Profil und verlinken unser gewünsches 2.6er Profil:
      Code:
      sluggy / # rm /etc/make.profile
      sluggy / # ln -s /usr/portage/profiles/uclibc/arm /etc/make.profile

    • linux-headers updaten
      Nun ist es notwendig, dass wir die Linux-headers updaten:
      Code:
      sluggy / # emerge -u linux-headers

    • screen emergen
      Um zu sehen, ob die Einstellungen korrekt sind, und von unserem nativen gcc richtig ausführbare dateien erstellt werden, emerge ich mir screen, da ich es gerade während solcher installationen gerne verwende.
      Code:
      sluggy / # emerge screen







  4. Einrichten einer Crosscomplile-Umgebung
    Die NSLU wird standardmäßig mit 133 Mhz betrieben. Das ist für heutige Verhältnisse wirklich nicht viel. Selbst wenn man die Sperre wie hier beschrieben rausnimmt, und damit den Takt auf 266Mhz anhebt (wofür der Prozessor übrigens eigentlich ausgelegt ist), hat man immernoch nicht die Performance um genussvoll mit gentoo zu arbeiten. Schon am Beispiel von screen, welches ich ein paar Zeilen weiter oben zum Testene emerged habe, hat man deutlich gesehen, wie lahm die kiste eigentlich ist. Ich werde mit Sicherheit einen großen Teil der Software nativ auf dem System emergen - dafür ist gentoo schliesslich gemacht -, aber im Moment habe ich keine große Lust drauf, so lange zu warten, bis mein Kernel gebaut ist. Zumal ich sowieso das kernelimage von außen per upslug2 wieder auf die Maschine schieben möchte.
    Also setze ich mir eine Crosscompile-umgebung auf, damit ich nachher den Kernel auf meinem schnellen Arbeitsplatzrechner bauen kann. Dies ist leichter als es sich anhört:

    • Crossdev emergen
      Crossdev ist ein geniales tool. Erstellt uns compiler, toolchains, uclibcs und binutils, welche auf unserem Arbeitsplatzrechner laufen, jedoch für unsere Zielarchitektiv (embedded-arm) kompilieren. Nurnochmal um sicherzugehen: Wir führen das Folgende auf unserem Arbeitsplatzrechner aus, nicht auf der NSLU!
      Code:
      sudo emerge crossdev

    • Stage4 umgebung für die Target-Architektur einrichten
      Nun benötigen wir alles für die Kompilierung von ARM-Programmen. Falls wir es noch nicht drin haben, müssen wir folgende Zeile in die /etc/make.conf unseres Arbeitsplatzrechners eintragen:
      Code:
      PORTDIR_OVERLAY="/usr/local/portage"
      Nun können wir ganz einfach unsere Crosscompile-umgebung erstellen:
      Code:
      [16:15:30]|[chilla@chucky]|~$ sudo crossdev armeb-softfloat-linux-uclibc






  5. Einen Kernel installieren
    Jetzt gehts ans eingemachte. Einige eeigenschaften der NSLU2 sind nicht vom vanilla-kernel unterstütz, zudem verwenden wir noch die uclibc statt der glibc, da hilft nur eins: kernel patchen. Als Grundlage nutzen wir einen halbwegs aktuellen 2.6.14.3, den wir uns zu beginn von kernel.org herunterladen werden. Danach jagen wir ein paar patches drüber und cross-kompilieren ihn auf unserem Arbeitsplatzrechner. Danach wird das erstelle Kernelimage noch ein wenig bearbeitet, damit der bootloader unseres Zielsystems es laden kann, und die kompilierten Module werden auf unseren Zielrechner übertragen. Das Kernelimage wird erst ganz zum Schluss übertragen, da wir dafür die NSLU neu booten müssen.

    • Kernelquellen besorgen
      Ich erstelle mir ein Arbeitsverzeichnis für die Kernel-geschichte und lade mir die 2.6.14.3er Quellen runter:
      Code:
      [17:11:43]|[chilla@chucky]|~/nslu$ mkdir nslu2-kernel
      [17:11:43]|[chilla@chucky]|~/nslu$ cd nslu2-kernel/
      [17:12:28]|[chilla@chucky]|~/nslu/nslu2-kernel$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.3.tar.bz2
      [17:13:50]|[chilla@chucky]|~/nslu/nslu2-kernel$ tar xjf linux-2.6.14.3.tar.bz2

    • Kernel patchen
      Die Patches hat morfic glaube ich alle von Openslug zusammengesucht, ich habe noch einen hinzugefügt. Das gesamte paket lade ich mir runter, entpacke es und patche damit die Kernelquellen:
      Code:
      [17:14:37]|[chilla@chucky]|~/nslu/nslu2-kernel$ wget http://chilla.biz/projekte/gentoo-slug/files/nslu2-patches-2.6.14.3.tar.bz2
      [17:16:48]|[chilla@chucky]|~/nslu/nslu2-kernel$ tar xjf nslu2-patches-2.6.14.3.tar.bz2
      [17:17:11]|[chilla@chucky]|~/nslu/nslu2-kernel$ mv patches/ linux-2.6.14.3
      [17:17:21]|[chilla@chucky]|~/nslu/nslu2-kernel$ cd linux-2.6.14.3
      [17:17:36]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ for i in `cat patches/nslu2-patches.list` ; do patch -p1 < patches/$i ; done

      Nun hole ich mir noch morvic's config:
      Code:
      [17:18:10]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ wget http://dev.gentoo.org/~morfic/nslu2/nslu2-2.6.14.3.config
      [17:22:08]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ mv nslu2-2.6.14.3.config .config
      [17:22:22]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ make ARCH=arm CROSS_COMPILE=armeb-softfloat-linux-uclibc- oldconfig dep

    • Cross-kompilieren
      Nun wird der Kernel kompiliert. Ich befinde mich die ganze Zeit auf meinem Arbeitsplatzrechner, da ich keine Lust habe, das auf der langsamen NSLU zu machen. Da ich vorhin meine Crosscompile-Umgebung mit crossdev gebaut habe, kann ich nun ganz einfach darauf zurückgreifen und den Kernel für eine andere Architektur kompilieren:
      Code:
      make ARCH=arm CROSS_COMPILE=armeb-softfloat-linux-uclibc-

      Damit wir die Module noch separat bekommen, erstellen wir uns dafür noch schnell ein verzeichnis und lassen uns die Module dort hineininstallieren:
      Code:
      [17:30:46]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ mkdir /home/chilla/nslu/nslu2-2.6.14.3-modules/
      [17:30:54]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ make INSTALL_MOD_PATH=/home/chilla/nslu/nslu2-2.6.14.3-modules/ DEPMOD=/bin/true modules_install

    • Module auf die NSLU übertragen
      Die kompilierten module können wir schonmal packenn und auf die NSLU übertragen und nebenbei erstellen wir schonmal das Verzeichnis, wo später das Modul für die Netzwerkschnittstelle liegt.
      Code:
      [17:44:26]|[chilla@chucky]|~/nslu/nslu2-kernel/linux-2.6.14.3$ cd ../../
      [17:33:05]|[chilla@chucky]|~/nslu$ tar cjf nslu2-2.6.14.3-modules.tar.bz2 nslu2-2.6.14.3-modules
      [17:35:21]|[chilla@chucky]|~/nslu$ scp nslu2-2.6.14.3-modules.tar.bz2 root@192.168.1.77:/mnt/gentoo/root/
      [17:35:40]|[chilla@chucky]|~/nslu$ ssh root@192.168.1.77
      root@sluggy:~# chroot /mnt/gentoo/ /bin/bash
      sluggy / # cd /root/
      sluggy ~ # tar xjf nslu2-2.6.14.3-modules.tar.bz2
      sluggy ~ # cp -r nslu2-2.6.14.3-modules/lib/modules/2.6.14.3 /lib/modules/
      sluggy ~ # mkdir /lib/modules/2.6.14.3/kernel/drivers/ixp400/
      sluggy ~ # exit
      root@sluggy:~# exit
      Damit hätten wir schon mal die Kernelmodule auf dem Zielrechner.

    • Kernelimage bearbeiten
      Auch wenn das Image erst später installiert wird, so machen wir es trotzdem jetzt noch "ready to be slugged". Damit der Bootloader das image laden kann, muss es noch leicht modifiziert werden - dies erledigt ein kleines script für uns:
      Code:
      [17:51:46]|[chilla@chucky]|~/nslu$ cd nslu2-kernel/
      [17:51:49]|[chilla@chucky]|~/nslu/nslu2-kernel$ wget http://dev.gentoo.org/~morfic/nslu2/prepimage
      [17:56:21]|[chilla@chucky]|~/nslu/nslu2-kernel$ chmod +x prepimage
      [17:55:37]|[chilla@chucky]|~/nslu/nslu2-kernel$ cp linux-2.6.14.3/arch/arm/boot/zImage .
      [17:55:53]|[chilla@chucky]|~/nslu/nslu2-kernel$ ./prepimage
      Damit haben wir nun ein Kernel-image erhalten, wechles von der NSLU2 gebootet werden kann.
    • Netzwerktreiber kompilieren
      Glücklicherweise steht der Netzwertreiber in Portage. Diesen können wir bequem auf unserem Arbeitsplatz kompilieren - dort haben wir ja auch noch die kernel-sourcen abgelegt. Schliesslich schieben wir das entstandene Modul noch auf die NSLU, dann hätten wir auf Seiten des Kernels im Prinzip alles fertig.
      • Aus irgendeinem Grund müssen bei mir die Kernelquellen nach /usr/src/linux gelinkt werden.
        Code:
        [21:45:05]|[chilla@chucky]|~$ su
        chucky chilla # rm /usr/src/linux

      • Nun demaskieren wir noch den Netzwerktreiber und kompilieren ihn schliesslich:
        Code:

        chucky chilla # ln -s /home/chilla/nslu/nslu2-kernel/linux-2.6.14.3 /usr/src/linux
        chucky ~ # echo "net-misc/ixp4xx arm" >> /etc/portage/package.keywords
        chucky ~ # CHOST=armeb-softfloat-linux-uclibc emerge ixp4xx

      • Nun schieben wir noch die Kernelmodule auf die NSLU:
        Code:
        chucky ~ # scp /lib/modules/2.6.14.3/kernel/drivers/net/ixp400_eth.ko root@192.168.1.77:/mnt/gentoo/lib/modules/2.6.14.3/kernel/drivers/net/ixp400_eth.ko
        chucky ~ # ssh root@192.168.1.77
        root@sluggy:~# mkdir /mnt/gentoo/lib/modules/2.6.14.3/kernel/drivers/ixp400/
        root@sluggy:~# exit
        chucky ~ # scp /lib/modules/2.6.14.3/kernel/drivers/ixp400/ixp400.ko root@192.168.1.77:/mnt/gentoo/lib/modules/2.6.14.3/kernel/drivers/ixp400/ixp400.ko


    • Netzwerktreiber crosscompilen
      Ich weiss zwar nicht den Grund, doch leider lässt sich der Netzwerktreiber nicht nativ kompilieren. Daher müssen wir auch ihn auf unserem Arbeitsplatzrechner kompilieren und danach die Module auf das Zielsystem übertragen:
      Code:

      # echo "net-misc/ixp4xx arm" >> /etc/portage/package.keywords 
      # CHOST=armeb-softfloat-linux-uclibc emerge ixp4xx
      # scp /lib/modules/2.6.14.3/kernel/drivers/net/ixp400_eth.ko root@192.168.1.77:/mnt/gentoo/lib/modules/2.6.14.3/kernel/drivers/net/
      # scp /lib/modules/2.6.14.3/kernel/drivers/ixp400/ixp400.ko root@192.168.1.77:/mnt/gentoo/lib/modules/2.6.14.3/kernel/drivers/ixp400/







  6. Nötige Systemtools installieren und Konfigurationen bearbeiten

    • Devfs raus, udev rein!
      Der Stagetarball kommt mit devsd daher. Wir benutzen jedoch einen 2.6.14er kernel, welcher kein devfs mehr unterstützt. Somit steigen wir auf udev um:
      Code:
      sluggy / # emerge udev && emerge -C devfsd

    • Systemlogger
      Syslog-ng ist zwar schon ein sehr ausgewachsener Syslogger, aber ich verwende ihn trotzdem, da die NSLU bei mir die Systemlogs von anderen Rechnern empfangen soll.
      Code:
      sluggy / # emerge syslog-ng
      sluggy / # rc-update add syslog-ng default

    • Cron
      Und einen Cron-jobber brauchen wir ebenso:
      Code:
      # emerge vixie-cron
      # rc-update add vixie-cron default

    • Cron
      Falls benötigt, installiert man noch dhcpcd:
      Code:
      # emerge dhcpcd

    • Netzwerkconfiguration
      Meine Netzwerkkonfiguration sieht folgendermaßen aus:
      Code:
      sluggy / # nano -w /etc/conf.d/net
      config_eth0=( "192.168.1.77 netmask 255.255.255.0 broadcast 192.168.1.255" )
      routes_eth0=( "default via 192.168.1.1" )

    • /etc/fstab editieren. Meine sieht folgendermaßen aus:
      Code:

      sluggy / # cat /etc/fstab
      /dev/sda1       /               ext3    defaults        1  1
      /dev/sda2       swap            swap    defaults        0  0
      proc            /proc           proc    defaults        0  0
      usbfs           /proc/bus/usb   usbfs   defaults        0  0

    • Nun noch ein paar andere Konfigurationsdateien editieren:
      Code:
      sluggy / # nano -w /etc/conf.d/hostname
      sluggy / # nano -w /etc/conf.d/domainname

      Wir sollten auch noch unser rootpassswort festplagen:
      Code:
      # passwd

      Und ausserdem darauf achten, dass der ssh-server, sowie System-logger etc. beim Booten gestartet werden:
      Code:
      # rc-update add dropbear default
      # rc-update add net.eth0 default
      # rc-update add domainname default

      Und ausserdem müssen wir noch die Module in die /etc/modules.autoload/kernel-2.6 eintragen:
      Code:
      # echo "ixp400" >> /etc/modules.autoload/kernel-2.6
      # echo "ixp400_eth0" >> /etc/modules.autoload/kernel-2.6






  7. Kernelimage auf die NSLU übertragen und booten
    Nun ist es fast geschafft. Es fehlt nurnoch der wichtigste Schritt: das Installieren des Kernels. Um dies zu tun, muss man die NSLU herunterfahren und wieder in den Upgrade-modus bringen. Wichtig ist hierbei wieder: Alle zusätzliche Hardware wie Festplatten, USB-Sticks oder sonstiges abklemmen. Am Gerät dürfen nurnoch Netzwerk und Strom angeschlossen sein. Wie ihr dann die NSLU in den Upgrade-Modus bringt ist bereits bei 1. beschrieben worden. Wenn sich das Gerät im Upgrademodus befindet (die Ready/Status Lampe rot-grün blinkt), dann setzen wir uns wieder an unseren Arbeitsplatz und führen folgendes (natürlich mit der Mac-adresse eurer NSLU) aus:
    Code:

    upslug2 --target=00:13:10:d6:1d:f2  --kernel=/home/roman/nslu/nslu-kernel/linux-2.6.14.3/zImake.ok

    Es ist geschafft. Nachdem das Kernelimage auf die NSLU übertragen wurde, sollte sie automatisch durchbooten, und unser Gentoo sollte per ssh erreichbar sein.





Möchte mich noch bedanken:

  • Bei den Jungs von openembedded, bzw openslug. Ohne deren Infos wäre ich nich so weit gekommen
  • ganz großes Tennis von den embedded-gentoo-jungs. Das sie nerds*geeks² - sie haben nich zu letzt den stagetarball geschaffen :)
  • Im speziellen möchte ich Vapier und SpankY aus #embedded-gentoo danken, beide machen sehr gute Pakete ohne die ich aufgschmossen wäre (stage3-arm-tarball, crossdev, ixp4xx etc.)
  • Und noch ein besonderer dank zuletzt and Morfic aus #gentoo-embedded. Er hat mir vieles Schritt für Schritt erklärt und viele Sachen (gerade der kernel mit den patches und der config) in diesem howto kommen von ihm!


Eigentlich sind sie alle klasse Jungs - waren nur zu faul, das mal Niederzuschreiben, was sie gemach haben :)
Links zu den ganzen Seiten, wo ich mir infos geholt habe kommen in den nächsten Tagen.. nu wüsch ich euch allen erstma n guten rutsch :)




was geht und was nich geht:

  • Nativ kompilieren funzt logischerweise - aber es is laaaaaaaangsaaaaaaam:
    [code]
    sluggy dev # genlop -t sudo vim
    * app-admin/sudo

    Mon Jan 2 16:53:18 2006 >>> app-admin/sudo-1.6.8_p9-r2
    merge time: 12 minutes and 52 seconds.

    * app-editors/vim

    Mon Jan 2 06:36:51 2006 >>> app-editors/vim-6.4
    merge time: 46 minutes and 56 seconds.













---------------------------------------------------------------------
totes & todo & misc
---------------------------------------------------------------------

todo:

  • CONFIG_CMDLINE in der kernelconfig um darin rootfs und sonstiges festzulegen
  • netzerkkarte ist ixp0 und nicht eth0
  • 2.6.15 + patches von openembedded?
  • Blinklichter ebuild
  • fotos
  • anderes Gehäuse?
  • fest installierte serielle Schnittstelle
  • lcd von usblcd.de (mit lcdproc?)
  • übersetzung ins englische
  • Kernel kompilieren richtigstellen (nach /usr/src/linux)


Last edited by chilla on Sun Jan 08, 2006 2:44 pm; edited 41 times in total
Back to top
View user's profile Send private message
nic0000
l33t
l33t


Joined: 25 Sep 2005
Posts: 658

PostPosted: Fri Dec 30, 2005 5:39 am    Post subject: Re: embedded-gentoo auf einer Linksys NSLU2 Reply with quote

chilla wrote:
Linksys, eine Tochterfirma von Cisco Systems hat vor einiger Zeit ein kleines Maschinchen basierend auf der embedded-arm Architektur herausgebracht, welches sich "NSLU2" nennt. Darauf lässt sich mit Sicherheit wunderbar ein Gentoo zum Laufen bringen.

Die haben auch einen Wlan-Router rausgebracht der auch unter Linux laufen kann:
Quote:
wrt54g(s)

http://openwrt.org
Leider sind da so viele verschiedene Modelle unterwegs, das es keinen Spaß mehr macht ;-(
Ist das bei dem "NSLU2" genauso?
Wo kriege ich _garantiert_ die "richtige" (deine) Version von dem Gerät?
_________________
grüße
nico
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Fri Dec 30, 2005 11:58 am    Post subject: Reply with quote

Jup. Den wrt-router habe ich auch. Die revisionen der wrt-router sind jedoch relativ gut zu unterscheiden, und ich glaube sogar, dass die unten auf so ner kleinen plakette drauf stehen.

Bei der NSLU2 habe ich jedoch noch nie davon gehört, dass es unterschiedliche Versionen gibt. Kauf dir einfach eine, dann wirst du es sehen ;) Zur not kannst du immernoch die Linksys Firmware zurückflashen und das Gerät innerhalb 14 Tagen zurückgeben. Nur solche Spielchen wie das deuncerclocken solltest du innerhalb der 14 Tage lieber erstmal sein lassen ;)
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
tioan
n00b
n00b


Joined: 02 Nov 2005
Posts: 26
Location: ~Paderborn

PostPosted: Fri Dec 30, 2005 3:31 pm    Post subject: Reply with quote

chilla wrote:
Jup. Den wrt-router habe ich auch. Die revisionen der wrt-router sind jedoch relativ gut zu unterscheiden, und ich glaube sogar, dass die unten auf so ner kleinen plakette drauf stehen.


Hba hier auch einen Wrt54GS revision 1.2, und es ist definitv so das untem auf dme Gerät ein Aufkleber ist wo die genau Revision drauf steht.
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Fri Dec 30, 2005 6:07 pm    Post subject: Reply with quote

hm wobei ich finde dass openwrt ebenso wie openslug irgendwie komisch ist. Mir fehlt bei solchen Mini-sachen immer das Gefühl an einem Linux zu sitzen, wie ich es von einem soliden x86 Arbeitsplatzrechner mit 2.6er kernel, udev und einem guten paketmanagement her kenne. Das is auch einer der Gründe, warum ich hier auf die nslu ein gentoo bratzen möchte :)
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
nic0000
l33t
l33t


Joined: 25 Sep 2005
Posts: 658

PostPosted: Sat Dec 31, 2005 2:13 am    Post subject: Reply with quote

tioan wrote:
chilla wrote:
Jup. Den wrt-router habe ich auch. Die revisionen der wrt-router sind jedoch relativ gut zu unterscheiden, und ich glaube sogar, dass die unten auf so ner kleinen plakette drauf stehen.


Hba hier auch einen Wrt54GS revision 1.2, und es ist definitv so das untem auf dme Gerät ein Aufkleber ist wo die genau Revision drauf steht.

Unterscheiden kann ich die Teile auch von einander, so Blöd bin ich dann ja doch noch nicht ;-)
Aaaaber, ich habe in Hamburg keinen Laden mit Wrt54GS gesehen. Alle habe nur den Wrt54G, den ich doch nicht so Prall finde (halbes RAM/Halber Flash).
Also muss ich die GS Version über I-Net bestellen, glaub mal nicht die hätten auch nur ein mal das richtige (wie vorher erkundigt UND zugesagt) geschickt!
Verschieden Läden, selbes Scenario. Dabei bestelle ich als Geschäftskunde und in der Regel mehrere auf einmal.
Die Systeme der I-Net Läden halten anscheinend solche Details nicht fest wie Revison Nr.
Naja, mittlerweile ist die neuste GS Version auch nur eine G, daher ist das eh lattex. Vielleicht sollte ich mal einen ASUS Delux mit 2xUSB2.0 antesten ;-)
Der hat aber leider keinen Jtag und dieses Feature hat mir schon so manchen WRT gerettet ;-) Ich weiß noch nicht ob ich so mutig bin.

Zurück zum Thema:
@Chilla
Ok, ich werde es so machen wie du mir es empfohlen hast (und mich mit dem modden zurückhalten ;-))
Ich werde mich dann wider melden 8)
_________________
grüße
nico
Back to top
View user's profile Send private message
tioan
n00b
n00b


Joined: 02 Nov 2005
Posts: 26
Location: ~Paderborn

PostPosted: Sat Dec 31, 2005 12:31 pm    Post subject: Reply with quote

HI,
also die neuste GS version nutzt vxworks und kein Linux mehr hat deshalb deutlich wneiger flash, nach protesten aus der openwrt szene, gibt es nun WRT54GL was eigentlich ncihts anderes als ein früherer GS ist ist also wieder mit 6 mb flash und 32 mb ram.
Zu Openwrt, also die packet verwaltung ist an apt angelehnt, da openwrt ipkg nutzt und apt ja auch auf ipkg basiert.
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Sat Dec 31, 2005 12:53 pm    Post subject: Reply with quote

apt basiert auf ipkg? ich dachte umgekehrt. Zumindest scheint es mir so..

Naja aber ehrlichgesagt.. 6mb flash sind ein bisschen arg wenig, wenn man sich anschaut, was der speicher kostet. Ich sehs hier auch bei der NSLU: 8mb.. was zum teufel will man mit 8mb? Wenn die ihre firmware aufstocken wollenn, n paar plugins reinbasteln wollen, das webinterface erweiterln wollen oder was auch immer: keine chance - da is einfach kaum mehr platz.

Wenn sie schon ein extra Gerät mit mehr flash rausbringen - wieso dann nicht gleich mit 16 oder 32mb flash?

Ebenso limitieren sie auf der NSLU den Bereich für den Kernel auf 1mb.. als wärn wir n paar jahre zurück. 2-4 mb sollten heutzutage für nen kernel schon drin sein - gerade wenn die Geräte wirklich hochfunktional werden.
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
nic0000
l33t
l33t


Joined: 25 Sep 2005
Posts: 658

PostPosted: Mon Jan 02, 2006 12:06 am    Post subject: Reply with quote

tioan wrote:
HI,
also die neuste GS version nutzt vxworks und kein Linux mehr hat deshalb deutlich wneiger flash, nach protesten aus der openwrt szene, gibt es nun WRT54GL was eigentlich ncihts anderes als ein früherer GS ist ist also wieder mit 6 mb flash und 32 mb ram.

Ich lese immer wieder wiedersprüchliches von der GL Version. Laut Openwrt Beschreibung ist es aber nur eine G Version:
http://wiki.openwrt.org/TableOfHardware#head-6b2369a6aabba3642915213936b680fdedcffe0d
WRT54GL
Broadcom 5352 @ 200MHz
4MB
16MB
Broadcom (integrated)

chilla wrote:
Naja aber ehrlichgesagt.. 6mb flash sind ein bisschen arg wenig, wenn man sich anschaut, was der speicher kostet. Ich sehs hier auch bei der NSLU: 8mb.. was zum teufel will man mit 8mb?

Damit geht schon eine Menge. Es gab ja auch mal Zeiten da hatten die Computer 512 KB siehe Amiga 500. Ich kann nicht behaupten damit keinen spaß gehabt zu haben ;-)
Zum Thema Preis kann ich dir allerdings zustimmen.

chilla wrote:
Wenn sie schon ein extra Gerät mit mehr flash rausbringen - wieso dann nicht gleich mit 16 oder 32mb flash?

Es geht darum das Cisco auch bessere Geräte im Angebot hat. Sie wollen sich den Markt nicht dadurch kaputt machen das irgendwelche Freaks aus ihren "billig" Routern/NAS irgendwelchen Ersatz für teure Lösungen basteln.

chilla wrote:
Ebenso limitieren sie auf der NSLU den Bereich für den Kernel auf 1mb.. als wärn wir n paar jahre zurück. 2-4 mb sollten heutzutage für nen kernel schon drin sein - gerade wenn die Geräte wirklich hochfunktional werden.

Typische Beschränkung halt. Es geht immer darum guten Willen zu zeigen aber anderseits dem Kunden nicht zu viel für sein Geld zu geben. Immerhin darf man nicht vergessen das Linksys und Linux nur ein Betriebsunfall war. Sie dachten das merkt keiner wenn sie mal schnell eine Firmware auf einer GPL Software entwickeln. Die User haben es aber gemerkt und jetzt ist Linksys und ein paar andere Firmen unter Druck geraten. Jetzt wo es "rauskam" das es sehr Wohl möglich ist Linux für so etwas zu benutzen würde es einen enormen Image Schaden und Vertrauensverlust in die Marke bedeuten sich da wieder zurück zu ziehen.
Die Industrie will immer nur _und_ immer wieder verkaufen. Ich habe hier ein paar DSL-Modems auseinandner gebaut und sich mal im Netz nach den Bausteinen "erkundigt". Ein NEOTEC Modem von Hansenet hat 64MB Ram und 16MB Flash! Ist also in Wirklichkeit garantiert ein Router. Nur wie flasche ich das Teil?
Egal, die Industrie ist nicht unser Freund und wenn wir mehr wollen als sie uns geben, dann müssen wir uns das schon selbst holen! :arrow: openWRT/openNSLU
_________________
grüße
nico
Back to top
View user's profile Send private message
Aproxx
Apprentice
Apprentice


Joined: 25 Jul 2003
Posts: 272

PostPosted: Wed Jan 04, 2006 7:16 pm    Post subject: Reply with quote

Hast du vielleicht auch einen Link wo man das Teil herbekommt? (Am besten in Österreich) Is ja richtig schnukelig das Baby. Auf jeden Fall schonmal Vielen Dank für das Howto, werde darauf zurückkommen wenn ein paar von den Dingern es sich bei mir gemütlich gemacht haben.
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Wed Jan 04, 2006 9:09 pm    Post subject: Reply with quote

hmm ich weiss leider nicht, wo wir die gekauft haben. Mein chef hat ein paar davon gekauft und mir auch eine zu weihnachten geschenkt.. ich hab mich natürlich gleich verliebt ;)

Wenn ich mal wieder im büro bin, frag ich mal nach, denn er hatte ne relativ günstige quelle dafür. vielleicht schreibt er es dir auch selbst, ich habe ihm das howto gezeigt, er wird hier sicherlich noch reinschauen - er is auch verliebt in das ding, wenn auch als suse-nutzer nur sehr unglücklich :D.


edit: guenstiger.at, erster link:
http://www.peluga.at/main.php?action=78&ARANUMMER=13068
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
Aproxx
Apprentice
Apprentice


Joined: 25 Jul 2003
Posts: 272

PostPosted: Fri Jan 06, 2006 3:11 pm    Post subject: Reply with quote

chilla wrote:
hmm ich weiss leider nicht, wo wir die gekauft haben. Mein chef hat ein paar davon gekauft und mir auch eine zu weihnachten geschenkt.. ich hab mich natürlich gleich verliebt ;)

Wenn ich mal wieder im büro bin, frag ich mal nach, denn er hatte ne relativ günstige quelle dafür. vielleicht schreibt er es dir auch selbst, ich habe ihm das howto gezeigt, er wird hier sicherlich noch reinschauen - er is auch verliebt in das ding, wenn auch als suse-nutzer nur sehr unglücklich :D.


edit: guenstiger.at, erster link:
http://www.peluga.at/main.php?action=78&ARANUMMER=13068


Vielen Dank, die erste wird sichs bald bei mir gemütlich machen :)
Back to top
View user's profile Send private message
Frankieboy
n00b
n00b


Joined: 11 Jun 2004
Posts: 14

PostPosted: Thu Jan 26, 2006 12:04 am    Post subject: Re: embedded-gentoo auf einer Linksys NSLU2 Reply with quote

Hi,

danke für die tolle Howto! Ich würde gerne gentoo auf meiner NSLU2 zum Laufen bringen. Ich bin dem howto gefolgt, lief alles soweit ohne Probleme, das Booten klappt aber irgendwie nicht. Es sieht so aus als würde er die root Partition finden und davon booten (Festplattenzugriff etc.). Allerdings bin ich auch nach längerer Zeit nicht in der Lage dann zu connecten. Irgendeine Idee wie ich rausbekommen kann woran es liegt? Ich sehe ja leider nicht wo er hängt. ;-)

Eventuell ein Problem mit dem Netzwerktreiber (ixp400)? Ich habe schon versucht USB_NET in den Kernel zu kompilieren, um meinen Linksys USB200M zum Laufen zu bringen, aber dann will der Kernel nicht mehr kompilieren. Idee wie das geht, eventuell vor dem Patchen die .config ändern?

Kann man vielleicht irgendwo einen compiliertes zImage.ok laden, damit ich ausschließen kann, dass beim kernel kompilieren was schief gelaufen ist?

Wäre für ein paar anregende Tipps woran es liegen könnte dankbar. :-)

Grüße
Frank

PS. Noch ein kleine Korrekturen zur Howto:

Beim Module entpacken auf der NSLU2 muss das

Code:
cp -r nslu2-2.6.14.3-modules/lib/modules/2.6.14.3 /lib/modules/


wohl cp -R (ein großes R sein damit er das 2.6.14.3 erstellt? Oder?

Hier ist beim Kernel upsluggen ein Tippfehler

Quote:
--kernel=/home/roman/nslu/nslu-kernel/linux-2.6.14.3/zImake.ok


nslu2-kernel muss es wohl sein.

Und noch ein Tipp. Ich hatte Probleme mit dem Datum, weil es in der Vergangenheit lag, so ging das emergen in eine Endlosschleife. Man sollte also das Datum nach dem chroot auf jeden Fall setzen.
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Fri Jan 27, 2006 11:29 am    Post subject: Reply with quote

schön, dass du es ausprobiert hast :)

was ich noch nich reingeschreiben habe: wenn du ixp4xx emergest und die treiber rüberkopierst, dann nennt sich die karte nicht eth0 sondern ixp0. Daran kann es liegen.

Ich empfehle dir, einfach in boot und default jeweils ein paar kleine sripte reinzuschieben, die dir dmesg und vielleicht den output von ifconfig -a und ifconfig in irgendeine datei auf der platte schreiben. Wenn du merkst, dass der ssh nich online kommt, kannst du einfach die platte abstöpseln, an einen anderen rechner hängen und die schnell die dateien anschauen und entsprechend handeln.
... Ich weis, das is eigentlich vollkommen hirnrissig - es bleibvt einem jedoch nich allzuviel anderes übrig, wenn man sich die serielle schnittstelle noch nich drangefummelt hat. Was meinst du, wie oft ich die platte umgehängt und die slug neu gebootet habe :P

Ansonsten kannst du ja nochmal schauen, ob openssh oder dropbear, was auch immer du nimmst ordentlich gestartet wird etc. vielleicht hast du ja auch einfach "net.bla" nich im runlevel drin ;)

Ein tipp noch: wenn du das gentoo nich booten kannst, aber trotzdem die arm-binaries auf der platte ausführen möchtest: einfach die slug in dem upgrademodues bringen und nochmal openslug2 draufnudeln (dabei unbedingt die usb-platte vorher abhängen). Das dauert zwar so 2-3 minuten, danach kannst du jedoch openslug booten, dich einloggen und auf die gentoo-platte chrooten um dort irgendwelche arm-programme auszuführen :)



Das mit dem kernel ist momentan alles noch ein bisschen fricklig. Es wird demnächst ein paket namens "embedded-sources" erscheinen. Dies wird einen useflag namens "+nslu2" haben. Diese kann man sichdann einfach nativ auf dem gerät kompilieren, wobei für die nslu2 schon alles fertig und bereit, sowie alles notwendige fest drin ist.
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
MadEagle
n00b
n00b


Joined: 03 Jun 2002
Posts: 59
Location: Hamburg, Germany

PostPosted: Fri Jan 27, 2006 11:37 am    Post subject: Kein Zugriff auf Platte Reply with quote

Moin zusammen!

Dieses How-To ist genau das, was ich gesucht habe, leider funktioniert es bei mir nicht. Ich meine, daß ich den Anweisungen genau gefolgt bin und habe alles relevante (Kernel, Module, Netzwerkeinstellungen etc) mehrfach kontrolliert. Das Problem ist, daß es trotzdem nicht funktioniert. Vielleicht hat ja jemand eine Idee:

Nach dem Upload des Kernels schließe ich die Platte wieder an und boote das System neu. Das geht sehr schnell, die beiden oberen LEDs leuchten dann auch grün aber nicht die LED des USB-Ports. Damit ist natürlich kein Zugriff auf die Platte möglich und das Netzwerk startet nicht.

Irgendwelche Ideen?

MadEagle
Back to top
View user's profile Send private message
lolly83
n00b
n00b


Joined: 12 Feb 2005
Posts: 12
Location: Wildberg, Germany

PostPosted: Fri Jan 27, 2006 10:49 pm    Post subject: rote led... Reply with quote

Hallo zusammen, und hallo chilla,

danke für das howto! ich hab heute den nachmittag damit verbracht gentoo auf meine slug zu bauen.
alles ist gut gegangen bis ich zum booten gekommen bin.. Mein bootvorgang sieht momentan bei angeschlossener Festplatte genauso aus wie ohne:
Grüne Ready- und Ethernet-Led, Beide DISK-Leds bleiben aus. Ready wechselt dann ein paar mal kurz auf orange und rot, dann gibts zwei mal kurz festplattenzugriff (wenn sie dran ist...), beim zweiten mal springt dann ready auf rot und das wars. Für mich sieht das so aus, als ob er die Festplatte/(npartition) nicht findet... In der Kernel-Config steht ja die Console auf /ttyS? hat da schon jemand versucht was anzuschließen? kommt da was raus, was nach kernel-boot-infos aussieht? laut nslu2-linux.org braucht man ja auch jeden fall einen max232 um es an einen normalen com-port anzuschließen. würde ungern das aufbauen und dann merken, dass da garnix kommt. In der Kernel-Konfig steht auch root-fs-typ sei ext2... wär es evtl ratsam das auf ext3 zu ändern?

Gruß, Lolly
_________________
There's no place like 127.0.0.1
Back to top
View user's profile Send private message
lolly83
n00b
n00b


Joined: 12 Feb 2005
Posts: 12
Location: Wildberg, Germany

PostPosted: Fri Jan 27, 2006 11:16 pm    Post subject: einen schritt weiter... Reply with quote

Hallo nochmal,

ich hatte noch eine fertige schaltung mit einem max232 rumliegen... und siehe da da kommt was.. und zwar richtig viel!
den fehler werde ich morgen suchen, aber so kann man doch schon viel besser damit arbeiten :-)

das sieht doch alles sehr vertraut aus.. bis auf den fehler natürlich aber darum kümmere ich mich morgen:

Quote:


+Ethernet eth0: MAC address 00:14:bf:62:cb:4f
IP: 192.168.0.1/255.255.255.0, Gateway: 192.168.0.1
Default server: 0.0.0.0, DNS server IP: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004

Platform: IXDP425 Development Platform (XScale)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available
FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
RedBoot> boot;exec 0x01d00000
have eRcOmM
copy kernel code from flash to RAM
copy ramdisk file from flash to RAM
run kernel
Using base address 0x01d00000 and length 0x000f6228
Uncompressing Linux.............................................................
....... done, booting the kernel.
Linux version 2.6.14.3 (openslug@openslug.org) (gcc version 3.4.5 (Gentoo 3.4.5,
ssp-3.4.5-1.0, pie-8.7.9)) #2 PREEMPT Fri Jan 27 23:52:47 CET 2006
CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE)
Machine: Linksys NSLU2
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists
Kernel command line: console=ttyS0,115200,8n root=/dev/sda1 rootfstype=ext4 roo
delay=15 noirqdebug mem=32M@0x00000000 reboot=s x1205.hctosys=1
PID hash table entries: 256 (order: 8, 4096 bytes)
IXP4xx: FREQ=66666600 COUNT=666665
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 30232KB available (1740K code, 315K data, 68K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
PCI: IXP4xx is host
PCI: IXP4xx Using indirect a
PCI: bus0: Fast back to back transfers disabled
dmabounce: registered device 0000:00:01.0 on pci bus
dmabounce: registered device 0000:00:01.1 on pci bus
dmabounce: registered device 0000:00:01.2 on pci bus
IXP4xx: FREQ=66000000 COUNT=660001
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NSLU2: rtc
NSLU2: i/o, 0.1.7
NSLU2: leds
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Initializing Cryptograph
IXP4xx Watchdog Timer: heartbeat 60 sec
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
ttyS0 at MMIO 0xc8000000 (irq = 15) is a XScale
ttyS1 at MMIO 0xc8001000 (irq = 13) is a XScale
io scheduler noop registered
io scheduler deadline registered
loop: loaded (max 8 devices)
IXP4XX-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
Searching for RedBoot partition table in
6 RedBoot partitions found on MTD device IXP4XX-Flash.0
Creating 6 MTD partitions on "IXP4XX-Flash.0":
0x00000000-0x00040000 : "RedBoot"
NSLU2 MAC: 00:14:bf:62:cb:4f
0x00040000-0x00060000 : "SysConf"
0x00060000-0x00160000 : "Kernel"
0x00160000-0x00180000 : "Ramdisk"
0x00180000-0x007e0000 : "unallocated"
0x007e0000-0x00800000 : "FIS directory"
PCI: enabling device 0000:00:01.2 (0140 -> 0142)
ehci_hcd 0000:00:01.2: EHCI Host Controller
ehci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:01.2: irq 26, io mem 0x48002000
ehci_hcd 0000:00:01.2: park 0
ehci_hcd 0000:00:01.2: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 5 ports detected
Initializing USB Mass Storage driver...
usb 1-1: new high speed USB device using ehci_hcd and address 2
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
i2c /dev entries driver
i2c_adapter i2c-0: x1205: Chip found, driver 0.9
i2c_adapter i2c-0: x1205: Setting the system clock to 2000-4-20 0:31:51
IP: 192.168.0.1/255.255.255.0, Gateway: 192.168.0.1
NET: Registered protocol family 2
Default server:
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes) Hat certified release, version 1.92 - built 15:16:07, Feb 3 2
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)opyright (C) 2000, 2001, 2002, Red Hat, Inc.
TCP reno registered
RAM:
TCP bic registered000, 0x000723a0-0x
NET: Registered protocol family 1
NET: Registered protocol family 17800000, 64 blocks of 0x00020000 by
Waiting 15sec before mounting root device...
sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0slug.org) (gcc version 3.4.5 (Gentoo 3.4.5,
VFS: Cannot open root device "sda1" or unknown-block(8,1)

_________________
There's no place like 127.0.0.1
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Sat Jan 28, 2006 11:34 am    Post subject: Re: Kein Zugriff auf Platte Reply with quote

MadEagle wrote:
Moin zusammen!

Dieses How-To ist genau das, was ich gesucht habe, leider funktioniert es bei mir nicht. Ich meine, daß ich den Anweisungen genau gefolgt bin und habe alles relevante (Kernel, Module, Netzwerkeinstellungen etc) mehrfach kontrolliert. Das Problem ist, daß es trotzdem nicht funktioniert. Vielleicht hat ja jemand eine Idee:

Nach dem Upload des Kernels schließe ich die Platte wieder an und boote das System neu. Das geht sehr schnell, die beiden oberen LEDs leuchten dann auch grün aber nicht die LED des USB-Ports. Damit ist natürlich kein Zugriff auf die Platte möglich und das Netzwerk startet nicht.

Irgendwelche Ideen?

MadEagle


Die Lämpchen des USB-ports zeigen auch nicht mehr den durchsatz vom usb an :) Es ist in diesem falle sinnvoll, das ohr auf die platte zu legen, damit du hörst, ob die platte rattert. Wenn die platte richtig rattert, dann bedeutet das, dass der kernel geladen und das rootfs gemountet wurde, und dass das meiste schon erledigt ist.

Ich wiederhole mich gerne: wenn ihr keinen usb2serial converter habt, und auch nicht den nativen seriellen port nutzt, schreibt euch ein paar kleine sachen in die initscripte rein: beispielsweise dass dmesg und ifconfig-a und ps aux in eine datei geschrieben werden. Dann könnt ihr ganz einfach die festplatte schnell an einen anderen rechner hängen, und nachschauen, was in diesen dateien drin steht.
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Sat Jan 28, 2006 11:41 am    Post subject: Re: rote led... Reply with quote

lolly83 wrote:
Hallo zusammen, und hallo chilla,

danke für das howto! ich hab heute den nachmittag damit verbracht gentoo auf meine slug zu bauen.
alles ist gut gegangen bis ich zum booten gekommen bin.. Mein bootvorgang sieht momentan bei angeschlossener Festplatte genauso aus wie ohne:
Grüne Ready- und Ethernet-Led, Beide DISK-Leds bleiben aus. Ready wechselt dann ein paar mal kurz auf orange und rot, dann gibts zwei mal kurz festplattenzugriff (wenn sie dran ist...), beim zweiten mal springt dann ready auf rot und das wars. Für mich sieht das so aus, als ob er die Festplatte/(npartition) nicht findet... In der Kernel-Config steht ja die Console auf /ttyS? hat da schon jemand versucht was anzuschließen? kommt da was raus, was nach kernel-boot-infos aussieht? laut nslu2-linux.org braucht man ja auch jeden fall einen max232 um es an einen normalen com-port anzuschließen. würde ungern das aufbauen und dann merken, dass da garnix kommt. In der Kernel-Konfig steht auch root-fs-typ sei ext2... wär es evtl ratsam das auf ext3 zu ändern?

Gruß, Lolly


Die 2 kurzen festplattenzugriffe sind glaube ich nur vom controller und werden nicht von der software gesteuert. ich habe das gefühl, dein kernel ist nicht richtig. Entweder er ist zu groß (größer als 1 mb), im falschen format (nicht für arm kompiliert) oder du hast ihn nicht mit "prepimage" bearbeitet. Versuche einfach mal meinen hier:
http://chilla.biz/projekte/gentoo-slug/files/zImage.ok <- das kannst du einfach mit upslug2 --taget=bla --kernel=zImage.ok hochladen.




Und zum ttyS: Wie im howto obenbeschrieben: die slug hat eine native serielle schnittstelle. Da muss jedoch noch ein kleiner rs232 chip und ein stecker ran, das wars - dafür habe ich auch den bootparameter rangehängt. Da du den rs232chip jedoch mit sicherheit noch nicht drangelötet hast bringt dir der parameter leider nichts :(
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
lolly83
n00b
n00b


Joined: 12 Feb 2005
Posts: 12
Location: Wildberg, Germany

PostPosted: Sat Jan 28, 2006 12:08 pm    Post subject: kernel bootet Reply with quote

Hallo chilla,

danke für deine antwort.. ich hatte deine config-file genommen und das ganze auch schön cross-compiliert. wie auf meinem letzten post hat er dann auch gebootet, aber die partition nicht gemountet. ich hab dann ein bisschen an den parametern vom usb-controller rumgespielt:
Device Drivers>USB->EHCI HDC (USB2.0) support
und da drunter die optionen Fullspeed ISO Transaction sowie Root Hub Transaction abgeschaltet, compiliert und siehe da es geht! Aber der clou ist: danach habe ich die optionen wieder reingemacht und es geht immernoch!? allerdings ohne ein make clean vorher... evtl macht das dann irgendwas komisch.
Im moment bügle ich noch ein paar tippfehler aus, aber mein gentoo bootet schon brav :-)
achja was ich noch gebraucht habe war folgendes:
da mir das gentoo-boot-script fehlermeldungen um die ohren geschlagen hat, dass die modules.dep fehlen würde musste ich die noch anlegen.

Openslug gebootet, übertragen der System.map aus dem nslu-kernel-dir auf die slug.
Da Openslug den 2.7beta? den kernel 2.6.12.2 verwendet habe ich dann
Code:
cd /lib/modules
ln -s 2.6.14.3 2.6.12.2
depmod -a -F System.map

gemacht und dann in nano die datei /lib/modules/2.6.14.3/modules.dep editiert und alle "2.6.12.2" strings in "2.6.14.3" geändert.

Gerade läuft noch ein e2fsck auf meinem Client aber ich bin guter dinge, dass ich innerhalb der nächsten stunde ein laufendes gentoo haben werde :-)

Gruß, Lolly
_________________
There's no place like 127.0.0.1
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Sat Jan 28, 2006 12:21 pm    Post subject: Reply with quote

herzlichen glückwunsch :) Dann hast du das meiste schon hinter dir. Wahrscheinlich wird dir noch messages mit allen möglichen fehlermeldungen von der inittab zugespammt, da es keine konsolen gibt (musste sie aus platzgründen aus dem kernel nehmen). Udev legt die dateien trotzdem an, aber nich als characterdevices... ich hab die dinger jetz einfach aus der inittab auskommentiert.

Werde mich jedoch die tage mal ranmachen und ne ordentlichen 2.6.15er zum laufen bringen.

läuft denn auch das netzwerk schon?
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
MadEagle
n00b
n00b


Joined: 03 Jun 2002
Posts: 59
Location: Hamburg, Germany

PostPosted: Sat Jan 28, 2006 6:38 pm    Post subject: Reply with quote

Soderle ... nach den Anweisungen auf dem Gentoo-Wiki habe ich ein Gentoo-System zum Kaufen gebracht, das aber noch den OpenSlug 2.7-Kernel verwendet und dabei viel über OpenSlug und Gentoo gelernt (so soll das ja auch sein, oder? ;-))

Jetzt wird das System erstmal rund gemacht (screen, ufed, cfg-update ... was man so braucht), und dann mache ich mich an den Kernel.

Noch ein paar Hinweise zum How-To:

- Irgendwie fehlt mir die Anweisung, am Ende ein "turnup disk /dev/sda1" zu machen, damit das System das rootfs der Platte nimmt. Oder steht das in der Kernel-Config drin?
- Es geht viel schneller, eine stage und den portage-Snapshot auf das System zu bringen, wenn man die Platte an seinem Arbeitsrechner vorbereitet (partitionieren, formatieren, stage3 und Snaphsot drauf).
- Unter der zitierten Wiki-URL gibt es noch ein paar gute Hinweise auf Nacharbeiten (Anpassungen der inittab bzgl. Terminals, Anpassung Netzkonfig bzgl. MAC-Adresse, Beschleunigung "emerge sync" etc.), kann man vielleicht hier übernehmen?

Bin gespannt, wie das mit dem 2.6.15er Kernel wird, dann werde ich das nochmal probieren.

MadEagle
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Sat Jan 28, 2006 9:13 pm    Post subject: Reply with quote

MadEagle wrote:
[...]
- Irgendwie fehlt mir die Anweisung, am Ende ein "turnup disk /dev/sda1" zu machen, damit das System das rootfs der Platte nimmt. Oder steht das in der Kernel-Config drin?

Das brauch/kann man nur machen, wenn man openslug im flash hat und dieses auch bootet. So wird das beispielsweise im Wikiartikel gemacht. Der Weg, den ich hier beschrieben habe, verwendet jedoch garkein openslug mehr. Wenn gentoo mal auf der platte ist, ist im flash des Geräts nurnoch das Kernelimage - kein openslug und auch keine andere ramdisk.
Bei dem System im wikiartikel kann man grob sagen, dass openslug gebootet wird, und dann nach gentoo gechrootet wird. Das fällt bei meinem Weg weg. Daher boote ich auch nicht vom flash sondern von der festplatte. Der rootfs-parameter wird in der kernelconfig festgelegt.

Quote:

- Es geht viel schneller, eine stage und den portage-Snapshot auf das System zu bringen, wenn man die Platte an seinem Arbeitsrechner vorbereitet (partitionieren, formatieren, stage3 und Snaphsot drauf).

Da hast du recht :)

Quote:

- Unter der zitierten Wiki-URL gibt es noch ein paar gute Hinweise auf Nacharbeiten (Anpassungen der inittab bzgl. Terminals, Anpassung Netzkonfig bzgl. MAC-Adresse, Beschleunigung "emerge sync" etc.), kann man vielleicht hier übernehmen?
Ja. Aber ich denke, ich werde auch mal einen Artikel ins deutsche wiki schreiben, damit ihr alle was reinschreiben könnt. Alleine an so einem howto zu arbeiten is irgendwie doof :)

Quote:
Bin gespannt, wie das mit dem 2.6.15er Kernel wird, dann werde ich das nochmal probieren.
Das wird nicht anders werden als mim 2.6.14er auch ;)

MadEagle[/quote]
_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
lolly83
n00b
n00b


Joined: 12 Feb 2005
Posts: 12
Location: Wildberg, Germany

PostPosted: Sat Jan 28, 2006 10:19 pm    Post subject: es tutet :-) Reply with quote

Hallo chilla und der ganze rest,

ja so siehts aus :-) es tut.. mit alles und scharf! :lol:
unten hängt ein log vom bootup

Kernel-Flash via RedBoot und upslug2:
Quote:
+Ethernet eth0: MAC address 00:14:bf:6f
IP: 192.168.0.1/255.255.255.0, Gateway: 192.168.0.1
Default server: 0.0.0.0, DNS server IP: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004

Platform: IXDP425 Development Platform (XScale)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available
FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
RedBoot> boot;exec 0x01d00000
have eRcOmM
push button
Entry to download
download: DOWN_REQUEST normal
... Erase from 0x50060000-0x50800000: .............................................................
download: DOWN_RESET
... Resetting.


RedBoot durchlauf mit geflashtem Linux-Kernel:
Quote:

+Ethernet eth0: MAC address 00:14:bf:62:cb:4f
IP: 192.168.0.1/255.255.255.0, Gateway: 192.168.0.1
Default server: 0.0.0.0, DNS server IP: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Red Hat certified release, versionCopyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available
FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
RedBoot> boot;exec 0x01d00000
have eRcOmM
copy kernel code from flash to RAM
copy ramdisk file from flash to RAM
run kernel
Using base address 0x01d00000 and length 0x000f6254


Und ab gehts: (Die stellen bei denen sich bei mir noch ein paar Nackenhaare aufstellen hab ich mal markiert)
Quote:

Uncompressing Linux.................................................................... done, booting the kernel.
Linux version 2.6.14.3 (openslug@openslug.org) (gcc version 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9)) #7 PREEMPT Sat Jan 28 11:25:07 CET 2006
CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE)
Machine: Linksys NSLU2
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists
Kernel command line: console=ttyS0,115200,8n root=/dev/sda1 rootfstype=ext2 rootdelay=15 noirqdebug mem=32M@0x00000000 reboot=s x1205.hctosys=1
PID hash table entries: 256 (order: 8, 4096 bytes)
IXP4xx: FREQ=66666600 COUNT=666665
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 30232KB available (1740K code, 315K data, 68K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
PCI: IXP4xx is host
PCI: IXP4xx Using indirect access for memory space
PCI: bus0: Fast back to back transfers disabled
1.92 - built 15:16:07, Feb 3 2004
dmabounce: registered device 0000:00:01.0 on pci bus
dmabounce: registered device 0000:00:01.1 on pci bus
dmabounce: registered device 0000:00:01.2 on pci bus
IXP4xx: FREQ=66000000 COUNT=660001
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NSLU2: rtc
NSLU2: i/o, 0.1.7
NSLU2: leds
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Initializing Cryptographic API
IXP4xx Watchdog Timer: heartbeat 60 sec
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
ttyS0 at MMIO 0xc8000000 (irq = 15) is a XScale
ttyS1 at MMIO 0xc8001000 (irq = 13) is a XScale
io scheduler noop registered
io scheduler deadline registered
loop: loaded (max 8 devices)
IXP4XX-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0x7e0000
6 RedBoot partitions found on MTD device IXP4XX-Flash.0
Creating 6 MTD partitions on "IXP4XX-Flash.0":
0x00000000-0x00040000 : "RedBoot"
NSLU2 MAC: 00:14:bf:62:cb:4f
0x00040000-0x00060000 : "SysConf"
0x00060000-0x00160000 : "Kernel"
0x00160000-0x00180000 : "Ramdisk"
0x00180000-0x007e0000 : "unallocated"
0x007e0000-0x00800000 : "FIS directory"
PCI: enabling device 0000:00:01.2 (0140 -> 0142)
ehci_hcd 0000:00:01.2: EHCI Host Controller
ehci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:01.2: irq 26, io mem 0x48002000
ehci_hcd 0000:00:01.2: park 0
ehci_hcd 0000:00:01.2: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 5 ports detected
Initializing USB Mass Storage driver...
usb 1-1: new high speed USB device using ehci_hcd and address 2
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
i2c /dev entries driver
i2c_adapter i2c-0: x1205: Chip found, driver 0.9.6
i2c_adapter i2c-0: x1205: Setting the system clock to 2006-1-28 13:43:5
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Waiting 15sec before mounting root device...
Vendor: ST316002 Model: 1A Rev: 0000
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
sda: assuming drive cache: write through
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
sda: assuming drive cache: write through
sda: sda1 sda2
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
EXT2-fs warning (device sda1): ext2_fill_super: mounting ext3 filesystem as ext2 << ich nehm an mit nem anderen kernelparameter wär das gegessen?!

VFS: Mounted root (ext2 filesystem) readonly.
Freeing init memory: 68K
INIT: version 2.86 booting

Gentoo Linux; http://www.gentoo.org/
Copyright 1999-2005 Gentoo Foundation; Distributed under the GPLv2

* Mounting proc at /proc ... [ ok ]
* Mounting sysfs at /sys ... [ ok ]
* Mounting /dev for udev ... [ ok ]
* Populating /dev with saved device nodes ... [ ok ]
* Seeding /dev with needed nodes ... [ ok ]
* Setting up proper hotplug agent ...
* Setting /sbin/udevsend as hotplug agent ...
[ ok ]
* Starting udevd ... [ !! ] << ist das normal?
* Populating /dev with existing devices with udevstart ... [ ok ]
* Letting udev process events ... [ ok ]
* Finializing udev configuration ... [ ok ]
* Mounting devpts at /dev/pts ... [ ok ]
* Activating (possible) swap ...Adding 1004052k swap on /dev/sda2. Priority:-1 extents:1 across:1004052k
[ ok ]
* Checking root filesystem .../dev/sda1 was not cleanly unmounted, check forced.
/dev/sda1: 198450/19415040 files (0.1% non-contiguous), 973703/38821064 blocks

* Filesystem repaired
[ !! ]
* Remounting root filesystem read/write ... [ ok ]
* Setting hostname to stema_slug ... [ ok ]
* Calculating module dependencies ... [ ok ]
* Using /etc/modules.autoload.d/kernel-2.6 as config:
* Loading module ixp400 * Loading module ixp400_eth ... [ ok ]
* Autoloaded 2 module(s)
* Checking all filesystems ... [ ok ]
* Mounting local filesystems ... [ ok ]
* Activating (possibly) more swap ... [ ok ]
* Setting system clock using the hardware clock [UTC] ... [ ok ]
* Configuring kernel parameters ... [ ok ]
* Updating environment ... [ ok ]
* Cleaning /var/lock, /var/run ... [ ok ]
* Cleaning /tmp directory ... [ ok ]
* Loading key mappings ...Couldnt get a file descriptor referring to the console

* Error loading key mappings
[ !! ]
* Setting terminal encoding to ASCII .../etc/init.d/keymaps: line 73: /dev/tty1: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty2: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty3: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty4: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty5: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty6: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty7: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty8: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty9: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty10: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty11: No such device or address
[ ok ]
* Setting user font ...Couldnt open //dev/tty1
Couldnt open //dev/tty2
Couldnt open //dev/tty3
Couldnt open //dev/tty4
Couldnt open //dev/tty5
Couldnt open //dev/tty6
Couldnt open //dev/tty7
Couldnt open //dev/tty8 ... [ ok ]
Couldnt open //dev/tty9
Couldnt open //dev/tty10
Couldnt open //dev/tty11

* Failed to set user font
[ !! ]
<< Chilla hat ja vorhin geschrieben, dass der console-support fehlt ;-)

* Starting lo
* Bringing up lo ... [ ok ]
* Initializing random number generator ... [ ok ]
INIT: Entering runlevel: 3
[ ok ]
* Starting syslog-ng ... [ ok ]
* Re-caching dependency info (mtimes differ)...
* Starting ixp0
* Bringing up ixp0
* 10.0.0.88
[ ok ]
[ ok ]
* Adding routes
* default gw 10.0.0.2 ... [ ok ]
* Generating DSS-Hostkey...
Will output 1024 bit dss secret key to '/etc/dropbear/dropbear_dss_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-dss AAAAB3NzaC1kc3MAAACBAMBWIrgIzcxjco9CTka3it2c5q945jEMa0OWyk4Mn+cqUJnldp41QfNMDHIbRFobw4MB4MMzROaCZDY2hsSnyTnI6UXcWAwnOf0qL5PR6eZtQH23rIIvOBmHqASG2AK4D+mbrPSQih
Fingerprint: md5 50:91:a3:32:9b:f1:e5:ee:0e:23:34:0f:56:e8:a0:4b
* Generating RSA-Hostkey...
Will output 1024 bit rsa secret key to '/etc/dropbear/dropbear_rsa_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwDQK5jOvg7H88bd95WA3wNDFmz99HRCmrrb7tWaYuvPbSCv3E43n02l0sRw06OeETbYyEeBT29VX6Q3W4QVQPjoGmYIHWRc/K8mdO6ZpAXQBETcFXbzEPQCGA347W5+Mx
Fingerprint: md5 ca:76:49:fc:f1:72:90:16:92:8f:33:16:28:57:ac:29
* Starting dropbear ... [ ok ]
* Starting vixie-cron ... [ ok ]
* Starting local ... [ ok ]
* Mounting network filesystems ... [ ok ]


jo sieht ja alles cool aus soweit :-) Gerade hab ich webmin installiert, damit ich auch ein web-frontend hab :D tut auf anhieb!
will jemand ein festplatten-image? ;-)

gruß, lolly
_________________
There's no place like 127.0.0.1
Back to top
View user's profile Send private message
chilla
Apprentice
Apprentice


Joined: 12 Dec 2004
Posts: 203
Location: Heidelberg, Germy

PostPosted: Sun Jan 29, 2006 9:50 am    Post subject: Reply with quote

schön, dass es bei dir lüppt :)


Quote:
Warning: bad configuration page, trying to continue
Kommt bei mir auch.. is aber wurst und macht nix :)


Quote:
EXT2-fs warning (device sda1): ext2_fill_super: mounting ext3 filesystem as ext2 << ich nehm an mit nem anderen kernelparameter wär das gegessen?!

Obacht! Der Kernel im flash darf maximal 1 mb groß sein, sonst passt er nich in seine "kernel-partition" des flashs. Daher habe ich ext2 fest in den kernel einkompiliert. ext3 habe ich nich ausprobiert, jedoch bin ich mit 992kb hart an der grenze, und ich glaube nicht, dass da noch ext3 statt ext2 raufpasst. Muss ich mal ausprobieren... vielleicht find ich auch noch irgendwas, was ausm kernel raus kann, damit man noch ein bisschen paltz bekommt. Dass man andere fs-typen als modul ablegen kann, is denke ich mal klar. Wenn du die Fehlermeldung loswerden willst: entweder bau ext3 fest in deinen Kernel ein, mach ext2 raus, änder in der kernelconfig "CONFIG_CMDLINE" und die /etc/fstab so ab, dass da ext3 statt 2 steht, dann passt das. oder du nimmst dir ein tool und machst aus der ext3 partition ne ext2 (glaube tune2fs kann sowas).


Quote:
* Starting udevd ... [ !! ] << ist das normal?
Du wirst den gleichen weg wie ich gegangen sein: devfs raus, udev rein. dann solltest du eigentlich erfreut darüber sein, dass udev startet :)



Quote:

* Error loading key mappings
[ !! ]
* Setting terminal encoding to ASCII .../etc/init.d/keymaps: line 73: /dev/tty1: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty2: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty3: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty4: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty5: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty6: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty7: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty8: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty9: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty10: No such device or address
/etc/init.d/keymaps: line 73: /dev/tty11: No such device or address
[ ok ]
* Setting user font ...Couldnt open //dev/tty1
Couldnt open //dev/tty2
Couldnt open //dev/tty3
Couldnt open //dev/tty4
Couldnt open //dev/tty5
Couldnt open //dev/tty6
Couldnt open //dev/tty7
Couldnt open //dev/tty8 ... [ ok ]
Couldnt open //dev/tty9
Couldnt open //dev/tty10
Couldnt open //dev/tty11

* Failed to set user font
[ !! ]
<< Chilla hat ja vorhin geschrieben, dass der console-support fehlt ;-)

/etc/inittab die terminals auskommentieren. Keine konsolen vorhanden, also auch kein support vorhanden -> raus damit.
Code:

[...]# TERMINALS
#c1:2345:respawn:/sbin/agetty 38400 tty1 linux
#c2:2345:respawn:/sbin/agetty 38400 tty2 linux
#c3:2345:respawn:/sbin/agetty 38400 tty3 linux
#c4:2345:respawn:/sbin/agetty 38400 tty4 linux
#c5:2345:respawn:/sbin/agetty 38400 tty5 linux
#c6:2345:respawn:/sbin/agetty 38400 tty6 linux

_________________
"Democracy is two wolves and a sheep voting on what to have for dinner. Liberty is two wolves attempting to have a sheep for dinner and finding a well-informed, well-armed sheep."

TU-BS Wiki
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Page 1 of 9

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum