Booten vom CDK als Yadd funktioniert nicht

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
goettinmueller
Interessierter
Interessierter
Beiträge: 60
Registriert: Montag 16. Februar 2004, 18:49

Booten vom CDK als Yadd funktioniert nicht

Beitrag von goettinmueller »

Ich habe unter coLinux (Debian) soweit alles eingerichtet, dass es funktioniert, zumindest empfängt er den u-boot und dann auch den Kernel. Leider kriege ich das nur mit dem standardmäßig freigegebenen /boot/ hin, jedes andere Verzeichnis gibt mir den Fehler 2 "access violaton" -- obwohl die Rechte identisch sind und die Zeilen in /etc/inetd.conf auch.

Nun bootet er den Kernel, kriegt aber / nicht als NFS gemountet, warum, weiß ich nicht.

Bootlog:

Code: Alles auswählen

debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS
debug: BMon V1.3  mID 03
debug: feID 00    enxID 03
debug: fpID 52     dsID [...]
debug: HWrev 61  FPrev 0.23
debug: B/Ex/Fl(MB) 32/00/08
WATCHDOG reset enabled
debug: &_text 0x10000, &_etext 0x27204, &_data 0x27204, &_edata 0x2ad00
debug: &_end 0x35c84,  &__stack 0x400000
debug: Memory tests (0x400000 -- 0x2000000)
debug: NumberTest: debug: passed
debug: MarchTest: debug: passed
debug: PermTest:  debug: passed
dbox2:root> boot net
debug: 
BOOTP/TFTP bootstrap loader (v0.3)
debug: 
debug: Transmitting BOOTP request via broadcast
debug: Got BOOTP reply from Server IP 192.168.0.40, My IP 192.168.0.10
debug: Sending TFTP-request for file u-boot.dbox2
will verify ELF image, start= 0x800000, size= 136132
verify sig: 262
boot net: boot file has no valid signature
Branching to 0x40000


U-Boot 1.1.2 (Tuxbox) (Nov 27 2005 - 18:43:23)

CPU:   PPC823ZTnnB2 at 66 MHz: 2 kB I-Cache 1 kB D-Cache
Board: DBOX2, Sagem, BMon V1.3
       Watchdog enabled
I2C:   ready
DRAM:  32 MB
FLASH:  8 MB
FB:    ready
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET
BOOTP broadcast 1
DHCP client bound to address 192.168.0.10
Using SCC ETHERNET device
TFTP from server 192.168.0.40; our IP address is 192.168.0.10
Filename 'kernel.dbox2'.
Load address: 0x100000
Loading: Using SCC ETHERNET device
TFTP from server 192.168.0.40; our IP address is 192.168.0.10
Filename 'logo-lcd'.
Load address: 0x100000
Loading: *
TFTP error: 'File not found' (1)
can't find logo
BOOTP broadcast 1
DHCP client bound to address 192.168.0.10
Using SCC ETHERNET device
TFTP from server 192.168.0.40; our IP address is 192.168.0.10
Filename 'kernel.dbox2'.
Load address: 0x100000
Loading: Using SCC ETHERNET device
TFTP from server 192.168.0.40; our IP address is 192.168.0.10
Filename 'logo-fb'.
Load address: 0x100000
Loading: *
TFTP error: 'File not found' (1)
can't find logo

Options:
  1: console on ttyS0
  2: console on fb0
  3: console on null
Select option (1-3), other keys to stop autoboot:  0 
BOOTP broadcast 1
DHCP client bound to address 192.168.0.10
Using SCC ETHERNET device
TFTP from server 192.168.0.40; our IP address is 192.168.0.10
Filename 'kernel.dbox2'.
Load address: 0x100000
Loading: Using SCC ETHERNET device
TFTP from server 192.168.0.40; our IP address is 192.168.0.10
Filename 'kernel.dbox2'.
Load address: 0x100000
Loading: #################################################################
         ################################################################
done
Bytes transferred = 657654 (a08f6 hex)
..............................................................
Un-Protected 62 sectors
## Booting image at 00100000 ...
   Image Name:   dbox2
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    657590 Bytes = 642.2 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Linux version 2.4.31-dbox2 (basti@colinux) (gcc version 3.4.4) #1 Sun Nov 27 18:
45:17 CET 2005
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.40:/home/basti/dbox2/cdk
root/ ip=192.168.0.10:192.168.0.40::255.255.255.0:::off console=ttyS0
Decrementer Frequency = 247500000/60
m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)
m8xx_wdt: keep-alive trigger installed (PITC: 0x2000)
Console: colour dummy device 80x25
Calibrating delay loop... 65.74 BogoMIPS
Memory: 30824k available (1116k kernel code, 368k data, 60k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Squashfs 2.2-r2 (released 2005/09/08) (C) 2002-2005 Phillip Lougher
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
CPM UART driver version 0.04
ttyS0 at 0x0280 is on SMC1 using BRGttyS1 at 0x0380 is on SMC2 using BRG2
pty: 256 Unix98 ptys configured
eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:3e:8c:50
loop: loaded (max 8 devices)
D-Box 2 flash driver (size->0x800000 mem->0x10000000)
D-Box 2 flash memory: 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
Creating 6 MTD partitions on "D-Box 2 flash memory":
0x00000000-0x00020000 : "BR bootloader"
0x00020000-0x00040000 : "FLFS (U-Boot)"
0x00040000-0x006a0000 : "root (Cramfs)"
0x006a0000-0x00800000 : "var (JFFS2)"
0x00020000-0x00800000 : "Flash without bootloader"
0x00000000-0x00800000 : "Complete Flash"
Linux video capture interface: v1.00
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Cannot open root device "nfs" or 00:ff
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 00:ff
 <0>Rebooting in 180 seconds..

Die Netzwerkdaten:
192.168.0.1 => Haupt-PC
192.168.0.10 => D-Box
192.168.0.40 => coLinux (für die DBox der Server für alles)

Am Haupt-PC habe ich 192.168.2.4 als Internetzugang (freigegeben; D-Link) und die 192.168.0.1 als Netzwerkbrücke zwischen dem coLinux-TAP-Device und dem Realtek-Dbox-Netzwerk (Crosskabel).


Gruß,

goettinmueller
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

du hast einen flash kernel kompiliert. Schau mal das du die cdk kernel config nimmst (Patches directory) bzw. den nfs root support im kernel aktivierst (nicht als module)

Houdini
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Beitrag von hannebamb(el) »

Houdini hat geschrieben:du hast einen flash kernel kompiliert. Schau mal das du die cdk kernel config nimmst (Patches directory) bzw. den nfs root support im kernel aktivierst (nicht als module)

Houdini
hmm, ich denke doch:
VFS: Cannot open root device "nfs" or 00:ff
probier bitte mal folgendes:
in deinem tftp root legst du ein
ln -s /pfad/zum/yaddroot 192.168.0.10
an
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Houdini wrote:
du hast einen flash kernel kompiliert. Schau mal das du die cdk kernel config nimmst (Patches directory) bzw. den nfs root support im kernel aktivierst (nicht als module)
Bytes transferred = 657654 (a08f6 hex)
650kB deutet auf einen Flash Kernel hin. Ein yadd kernel hat mehr als 700kB
goettinmueller
Interessierter
Interessierter
Beiträge: 60
Registriert: Montag 16. Februar 2004, 18:49

Beitrag von goettinmueller »

VFS: Cannot open root device "nfs" or 00:ff
probier bitte mal folgendes:
in deinem tftp root legst du ein
ln -s /pfad/zum/yaddroot 192.168.0.10
an
Dann habe ich in /boot/ einen Symlink namens "192.168.0.10", aber das bewirkt nichts. Der Kernel hieß übrigens $HOME/dbox2/tftpboot/kernel-cdk.

Das Problem ist halt, dass tftp nur funktioniert, wenn die Daten in /boot/ liegen, das Root ist /home/basti/dbox2/cdkroot - stimmt das? Also ich habe mit --prefix=/home/basti/dbox2 gearbeitet.

Wie kriege ich einen Yadd-tauglichen Kernel hin? Wenn ich "make linuxkernel" eingebe, passiert nichts und bei "make boot" meint er "nothing to be done" ... auch, nachdem ich "make clean" gemacht habe.

Edit:
Ich habe das gesamte ~/tuxbox-cvs/ gelöscht und mache gerade ein "make linuxkernel", das sollte reichen; die kompilierten Binaries sind alle noch vorhanden.


Gruß,

goettinmueller
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Wenn die NFS-Root-Option einkompiliert ist, steht dort im Fehlerfall:
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or 02:00
Houdini hat also recht, das ist ein Kernel ohne nfs-root-Unterstützung.

Entweder das CDK nicht mit den Flashrules bauen lassen oder die Option selber manuell in der ".config" einschalten.
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Beitrag von hannebamb(el) »

OK, Asche auf mein Haupt :)
goettinmueller
Interessierter
Interessierter
Beiträge: 60
Registriert: Montag 16. Februar 2004, 18:49

Beitrag von goettinmueller »

Nach Stunden der Ewigkeit ist jetzt alles fertig ... und der Kernel funktioniert.
Jetzt habe ich ein neues Problem - ich habe kein Framebufferdevice. /dev/fb0 existiert als Symlink auf /dev/fb/0, was nicht vorhanden ist.
Auch gab es beim booten ein paar Fehlermeldungen, dass kein modprobe vorhanden ist.

[...] na das wird noch spaßig, aber prinzipiell funktioniert es ja schon.

Kann ich eigentlich einfach einen neuen Kernel mit flash oder nfs bauen lassen, ohne den Rest kompilieren zu müssen? Weil glibc dauert allein schon fast ne Dreiviertelstunde und das ist mir zu viel Aufwand :)

Außerdem stürzt mein Rechner unter der Belastung hin und wieder ab :(

Gruß,

goettinmueller
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Beim 2.4er werden die Device-Einträge per devfs angelegt, wenn du also die Module mangels modprobe nicht laden kannst, dann gibt es auch keine Devices.

Modprobe ist allerdings Bestandteil der busybox, aber wie auch beim Kernel mit NFS-Root-Unterstützung gilt das nur, wenn die CDK-Config genommen wird.

Du kannst aber auch die "echten" modutils mit "make modutils" bauen.

Und nein, man muß gcc+glibc nie neu bauen wenn man nicht unbedingt will.

Im CDK-Verzeichnis:
rm -f .deps/linuxkernel && make linuxkernel
baut zum Beispiel den Kernel neu.
Metallica
Einsteiger
Einsteiger
Beiträge: 191
Registriert: Dienstag 30. Dezember 2003, 01:49

Beitrag von Metallica »

Npq hat geschrieben:Du kannst aber auch die "echten" modutils mit "make modutils" bauen.
Es reich rcS mit insmode zu nehmen .Ich habe gleiche rcS in image und yadd.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Ich habe gleiche rcS in image und yadd.
ich auch :-)
goettinmueller
Interessierter
Interessierter
Beiträge: 60
Registriert: Montag 16. Februar 2004, 18:49

Beitrag von goettinmueller »

...er baut noch. Hat zwischenzeitlich abgebrochen wegen "no space left on device"; ich hätte nicht gedacht, dass das Yadd so elendig viel Platz braucht (an die 600 MB in meinem Debian ... auf / habe ich nicht genug Platz dafür).

Aber sonst werde ich erst sehen, wenn es soweit ist. Und Npq - danke für den Tipp mit dem "make linuxkernel"!

Gruß