ich hab in den letzten Tagen mal wieder etwas gebastelt ;)
nun kann ich einen Linux Kernel per tool in ein NK.BIN verpacken, so das die x300t das akzeptiert und startet...
den patcher hab ich so umgebaut das er nicht die nk.bin startet sondern lx.bin .. damit kann man dann bei starten entscheiden ob man linux oder wince starten will.... das macht das testen deutlich angenehmer ;)
so... das waren die guten Nachrichten .... jetzt die schlechten:
ich hab die firmware der dune-hd box (sehr ähnlich wie die popcorn hour) auseinander genommen und hab
probiert deren uCodes beim booten zu laden.
komischer weise klappt das nicht .. obwohl es eigentlich gehen sollte.
ich vermute das hier die IPTV uCodes schon geladen wurden, und damit ein neues laden blockiert ist...
aber das ist ein nicht ganz so wichtiges Problem.
viel böser ist, dass ich beim Starten des Kernels ein Kernel Panic bekomme und ich hab keine Ahnung warum das passiert.
die logausgaben sehen bis zum Kernel Panic genau so aus wie bei ner Popcorn hour.
hier ist der ganze output... also wenn da einer ne idee hat, lasst es mich wissen
Microsoft IPTV Bootloader, Build (1051)
Built by BM-DELL-167, Sep 11 2006 16:54:12
>
**********************************
* SMP863x zboot start ...
* Version: 2.2.0-2.7.167.0
* Started at 0x91000000.
* Configurations (chip revision: 6):
* Use 8KB DRAM as stack.
* Support XLoad format.
* Enabled BIST mode.
* Enabled memory test mode.
* Use internal memory for stage0/1.
**********************************
Boot from flash (0x48000000) mapped to 0xac000000.
Found XENV block at 0xac000000.
CPU clock frequency: 297.00MHz.
System clock frequency: 198.00MHz.
DRAM0 dunit_cfg/delay0_ctrl (0xe34111ba/0x00094344).
DRAM1 dunit_cfg/delay0_ctrl (0xe34111ba/0x00093444).
Using UART port 0 as console.
Board ID.: "KMM3210-TG-A"
Chip Revision: 0x8634:0x82 .. Mismatched.
Setting up H/W from XENV block at 0xac000000.
Setting <SYSCLK premux> to 0x00000603.
Setting <SYSCLK avclk_mux> to 0x00000000.
Setting <SYSCLK hostclk_mux> to 0x00000100.
Setting <IRQ rise edge trigger lo> to 0xff28ca00.
Setting <IRQ fall edge trigger lo> to 0x0000c000.
Setting <IRQ rise edge trigger hi> to 0x000001ff.
Setting <IRQ fall edge trigger hi> to 0x00000000.
Setting <IRQ GPIO map> to 0x0d090800.
Setting <PB default timing> to 0x01090008.
Setting <PB timing0> to 0x01090008.
Setting <PB Use timing0> to 0x000003fc.
Setting <PB timing1> to 0x00110101.
Setting <PB Use timing1> to 0x000003f3.
PB cs config: 0x000c10c0 (use 0x000c10c0)
Enabled Devices: 0x00023efe
BM/IDE PCIHost Ethernet IR FIP I2CM I2CS USB PCIDev1 PCIDev2 PCIDev3 PCIDev4
SCARD
MAC: 00:00:de:ad:be:ef
PCI IRQ routing:
IDSEL 1: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 2: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 3: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 4: INTA(#15) INTB(#15) INTC(#15) INTD(#15)
Smartcard pin assignments:
OFF pin = 0
5V pin = 1
CMD pin = 2
Setting up Clean Divider 2 to 96000000Hz.
Setting up Clean Divider 4 to 33333333Hz.
GPIO dir/data = 0x00000000/0x00000000
UART0 GPIO mode/dir/data = 0x6e/0x00/0x00
UART1 GPIO mode/dir/data = 0x6e/0x00/0x00
XENV block processing completed.
Found existing memcfg: DRAM0(0x04000000), DRAM1(0x04000000)
Heap/Temp/Temp1/Dest start at 0x12400000/0x11800000/0x11e00000/0x13000000.
Default boot index: 0
processing zboot record at 0xac000000 (0xac000000) .. index 0Scanning ROMFS imag
e at 0x90800000.. Found.
ROMFS found at 0x90800000, Volume name = mce2222
Found 4 file(s) to be processed in ROMFS.
Processing 10xrpc_xload_audio_ucode_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x90800200, size: 0x000d7264)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Processing 11xrpc_xload_video_ucode_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x908d7600, size: 0x0004fb64)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Processing 12xrpc_xload_demux_ucode_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x90927200, size: 0x00007804)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Processing 33xrpc_xload_irq_handler_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x9092ec00, size: 0x0002e454)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Done with fixed container
Execute final at 0x90020000 ..
Linux version 2.6.15-sigma (rolandhii@venus) (gcc version 4.0.4) #118 PREEMPT We
d Jan 23 10:43:14 CST 2008
Configured for SMP8634 (revision ES6/RevA), detected SMP8634 (revision ES6/RevA)
.
SMP863x/SMP865x Enabled Devices under Linux/XENV 0x48000000 = 0x00023efe
BM/IDE PCIHost Ethernet IR FIP I2CM I2CS USB PCIDev1 PCIDev2 PCIDev3 PCIDev4 SC
ARD
Valid MEMCFG found at 0x10000fc0.
CPU revision is: 00019068
Determined physical RAM map:
memory: 05ee0000 @ 10020000 (usable)
On node 0 totalpages: 89856
DMA zone: 89856 pages, LIFO batch:15
DMA32 zone: 0 pages, LIFO batch:0
Normal zone: 0 pages, LIFO batch:0
HighMem zone: 0 pages, LIFO batch:0
Built 1 zonelists
Kernel command line: pci=disabled ip=dhcp root=/dev/nfs noinitrd
Primary instruction cache 16kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 16kB, 2-way, linesize 16 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
PID hash table entries: 2048 (order: 11, 32768 bytes)
Using 148.500 MHz high precision timer.
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 86656k/97152k available (3399k kernel code, 10476k reserved, 536k data,
3108k init, 0k highmem)
Calibrating delay loop... 293.88 BogoMIPS (lpj=146944)
Mount-cache hash table entries: 512
Checking for 'wait' instruction... available.
CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc ==
9006aea0, ra == 9036dd88
Oops[#1]:
Cpu 0
$ 0 : 00000000 00000001 90a7f87c 00000000
$ 4 : 95e88d38 90a7f870 00000001 00000000
$ 8 : 90702b80 90700000 90a7b000 00000000
$12 : 90a7e000 95e88cc0 00000012 00000010
$16 : 90a6df70 95e88d34 90a75be8 95e88d38
$20 : 90420000 90700000 00000030 90420000
$24 : 00000001 00000000
$28 : 90a7e000 90a7f860 90380000 9036dd88
Hi : 2a8b2775
Lo : 355f2140
epc : 9006aea0 Not tainted
ra : 9036dd88 Status: 10001c02 KERNEL EXL
Cause : 7080800c
BadVA : 00000000
PrId : 00019068
Modules linked in:
Process swapper (pid: 1, threadinfo=90a7e000, task=90a75be8)
Stack : 00000000 00000000 00000001 00000000 00000001 90a75be8 90047cd0 95e88d38
00000000 00000001 90a6df70 95e88d34 90700000 00007948 90420000 9009a838
90a7b000 00007948 90420000 90700000 00001846 900b4d60 00000000 00000000
900c9ec4 90a7b000 00000000 90a7f908 90a7b000 900b87c8 90a6df70 00000000
90710000 00000000 00000000 00000000 00000000 9009a8e8 90420000 90700000
...
Call Trace: [<90047cd0>] [<9009a838>] [<900b4d60>] [<900c9ec4>] [<900b87c8>]
[<9009a8e8>] [<9009a900>] [<903fa270>] [<903fa2ec>] [<903faa64>] [<903700
00>] [<903fb10c>] [<903fb92c>] [<903fc5f0>] [<90053b74>] [<90053b44>] [<90
0204d0>] [<90026bdc>] [<90026bcc>]
Code: 24a2000c aca4000c ac820004 <ace20000> ac470004 10c00002 41606000 4160
6020 000000c0
Kernel panic - not syncing: Attempted to kill init!
Ich würde mal spontan sagen der Befehl an Adresse 0x9006aea0 dereferenziert einen NULL-Pointer. Disassemble doch mal, was da gemacht wird...
tja...
leider ist diese subroutine recht klein und gibt nicht viel hinweise.
ich hab leider noch nicht den ganzen kernel diassembliert... das dauert sehr lange, weils irgendwie nicht automatisch geht.
in der Nähe diese methode hab ich hinweise gesehen wo es um Kernel-Threads und Timer ging.
aber ob das nun weiterhilft weiss ich nicht.
grundsätzlich ist ja eher die Frage... wieso läuft genau dieser Kenel auf einer anderen box, aber nicht auf der x300t.
sub_9006AE6C: # CODE XREF: sub_9036DD30+50p
RAM:9006AE6C # RAM:9036DEE4p
RAM:9006AE6C lw $v0, 0($a1)
RAM:9006AE70 ori $v0, 1
RAM:9006AE74 sw $v0, 0($a1)
RAM:9006AE78 di $a2
RAM:9006AE7C andi $a2, 1
RAM:9006AE80 ehb
RAM:9006AE84 lw $v0, 0x14($gp)
RAM:9006AE88 addiu $v0, 1
RAM:9006AE8C sw $v0, 0x14($gp)
RAM:9006AE90 lw $a3, 4($a0)
RAM:9006AE94 addiu $v0, $a1, 0xC
RAM:9006AE98 sw $a0, 0xC($a1)
RAM:9006AE9C sw $v0, 4($a0)
RAM:9006AEA0 sw $v0, 0($a3)
RAM:9006AEA4 sw $a3, 4($v0)
RAM:9006AEA8 beqz $a2, loc_9006AEB4
RAM:9006AEAC di
RAM:9006AEB0 ei
sub_9006AE6C: # CODE XREF: sub_9036DD30+50p
Von da ist die Routine aufgerufen worden (0x9036DD80), mit dem Pointer-Parameter $a0, der auf irgendein Objekt zeigt
RAM:9006AE90 lw $a3, 4($a0)
Und an Offset 4 des Objekts soll ein weiter Pointer gespeichert sein
RAM:9006AEA0 sw $v0, 0($a3)
der aber leider NULL ist, weswegen dieser Befehl zum Absturz führt.
Jetzt musst Du an 0x9036DD80 gucken, wo $a0 herkommt und wo/wie dieses Objekt initialisiert wird. Vielleicht soll da irgendeine Boardkomponente initialisiert werden, die beim X300T nicht vorhanden ist...?
Morgen,
Leute ihr seid genial. Irgendwie bekomm ich leicht das Gefühl das die Box doch nicht verstauben muss. Klar is noch viel zu tun aber ich denke das ist zu schaffen.
@mce2222 Vielleicht könntest du den geänderten Bootloader, das Tool zum verpacken des Kernels sowie die Firmware (als lx.bin und disassembliert) mal hochladen.
Gibt es ein bestimmten Grund warum du die Dune-HD Firmware genommen hast? Vielleicht sollte man es mal mit der Popcornhourfirmware probieren. Ich weiß is der selbe Kernel aber vielleicht gestalten sich ein paar Speicherzugriffe anders...
also eigentlich ist bei der popcornhour nur der SMP und sonst gar nichts drauf. von daher kann ich mir eigentlich nicht vorstellen, das da irgendwas initialisiert wird was es bei der x300t nicht gibt.
theoretisch könnte natürlich an den GPIO Leitungen irgendwas verschaltet sein was abgetestet wird ... würde mich aber wundern.
und die methode wird mindestens noch von 2 anderen Stellen aufgerufen, hab aber auch erst 5% vom kernel disassembliert.
also sooo einfach ist das nicht.
hochladen der tools könnte ich nachher mal machen, mit dem kernel und romfs siehts aber schlecht aus... da ist zeugs mit copyright drin....
das ist ein grundsätzliches Problem mit dem Linux-ansatz... legal wird man da nichts hinbekommen.
schon paradox dass man mit einem MS Betriebsystem weniger Stress wegen copyrights hat :(
und warum ich das kernel der dune-hd genommen hab... tja weil mit dem kernel der popcornhour gar nichts passiert. also entweder ist da die serielle ausgabe abgeschaltet oder der stürzt sofort ab ohne eine zeile zu loggen.
und die methode wird mindestens noch von 2 anderen Stellen aufgerufen, hab aber auch erst 5% vom kernel disassembliert.
also sooo einfach ist das nicht.
Aber bei dem eingetretenen Crash wurde sie von 0x9036DD80 aufgerufen. Weitere Aufrufe sollten sich durch den Stack Trace zurückverfolgen lassen. Die Informationen sind da, man muss sie nur auswerten... ;)
Könnte man für bestimmte uploads nicht eines der vielen Premiere Uploadcenter missbrauchen.
Ich denke die Popcornhourfirmware läuft deshalb nicht weil sie für den SMP8635 compiliert wurde und nicht den von der X300T verwendeten SMP8634. Ich kenne zwar die genauen Unterschiede zwischen den beiden nicht, könnte aber ein Grund sein.
Und die Dune HD hat halt ein DVD-Laufwerk, vielleicht versucht er beim Booten das zu Mounten? (Dürfte aber keine Kernel-Panic auslösen)
Könnte man für bestimmte uploads nicht eines der vielen Premiere Uploadcenter missbrauchen.
könnte man sicher .. ich werde es aber ganz sicher nicht tun :P
Ich denke die Popcornhourfirmware läuft deshalb nicht weil sie für den SMP8635 compiliert wurde und nicht den von der X300T verwendeten SMP8634. Ich kenne zwar die genauen Unterschiede zwischen den beiden nicht, könnte aber ein Grund sein.
der einzige Unterschied zwischen SMP8634 und 8635 ist das der 8634 eine Macrovision protection eingebaut hat. bzw. dafür lizensiert ist... also daran sollte es nicht liegen.
Und die Dune HD hat halt ein DVD-Laufwerk, vielleicht versucht er beim Booten das zu Mounten? (Dürfte aber keine Kernel-Panic auslösen)
da das mounten der Laufwerke erst viel später passiert, glaub ich nicht das es was mit dem dvd laufwerk zu tun hat.
Aber bei dem eingetretenen Crash wurde sie von 0x9036DD80 aufgerufen. Weitere Aufrufe sollten sich durch den Stack Trace zurückverfolgen lassen. Die Informationen sind da, man muss sie nur auswerten... ;)
ich werd aus dem stacktrace nich schlau... die addressen die da gelistet sind haben zumindest auf den ersten blick überhaupt nichts mit einander zu tun. sehr eigenartig.
mich würde aber viel eher interessieren ob an der Stelle wo der Panic auftritt schon irgendetwas aus dem ramfs ausgeführt wird oder nicht.
nur ne vermutung aber denke nicht das da was im ram läuft.
Determined physical RAM map:
memory: 05ee0000 @ 10020000 (usable)
0k highmem
Hat eigentlich schonmal jemand versucht einen der smp863x Kernel mit Qemu zu booten ?
ich habs jedenfalls noch nicht probiert
neues kernel... neuer stand
inzwischen hab ich rausgefunden wie man die linux kernel parameter setzt ;)
damit bekomme ich nun auch beim kernel der popcornhour Ausgaben... aber leider komm ich da genausoweit wie mit dem kernel vom Dune-HD
besser siehts mit dem kernel der MagicTV box aus. Zumindest kommt das log deutlich weiter, und hängt dann wenn das finale Root FS gemoutet werden soll. Dummerweise hat der kernel nur JFFS2 und CRAM support eingebaut, was es etwas schwierig
macht ein Root FS zu mounten.
ich hab nun probiert das initramfs image was im kernel mit eingebunden ist zu verändern, aber das Ergebnis ist
Checking for 'wait' instruction... available.
Kernel panic - not syncing: invalid compressed format (err=1)
(interessanterweise genau an der Stelle wo beim Popcornhour Kernel die Paging Exception kommt)
hat jemand n Plan ob es irgendwie möglich ist das initramfs image zu modifizieren, so das der Kernel es auch annimmt ?
ich vermute es liegt daran, das der Kernel nicht weiss ab wo der freie Speicher beginnt, und beim entpacken des initramfs wird dann das komprimierte cpio image überschrieben :(
hast du mal nen log von dem crash?
und gibts da vielleicht schon die möglichkeit auf ein nfs zu zu greifen?
nfs filesystem ist grundsätzlich im kernel, aber scheinbar ist nfs als root filesystem nicht drinn, denn die nfs bootparameter werden einfach ignoriert und es kommt ne Fehlermeldung "specify valid root="
naja, vielleicht hat sich das ja bald erledigt, falls wir irgendwo die kernel sourcen auftreiben :)
Wie das leider meisst so ist im quasi-rechtsfreien Asiatischen raum hat Pixelmagic keinerlei interesse daran der GPL nachzukommen und irgendwelchen Code für den mtv3000 zu veröffentlichen, ganz besonders nicht wenn ein "Ausländer nach fragt >:( - wobei das ja auch hier in Europa in Mode kommt, soviel ich weiss läuft da wohl was gegen Neuf Cegetel wegen deren hd-box..
naja muss ja nicht von pixelmagic sein.
das mit Neuf Cegetel versteh ich noch nich ganz... die benutzen doch die Netgem-HD box ? und die haben auch die Linux Kernel Sourcen auf Ihrer Webseite. wobei die SMP863x sourcen zwar noch auf dem server liegen, allerdings wurde der Link von der Webseite gelöscht... auch sehr eigenartig.
ich hab das Gefühl das SigmaDesigns irgendwelche Vorgaben zum "Nicht-Release" der Sourcen gemacht hat.
Mal wieder ne Frage: Warum benutzen wir eigentlich weiterhin diesen bootloader, der unbedigt ne nk.bin haben will? Könnte man nicht versuchen den bootloader einer anderen Box in den RAM zu schreiben, ich mein is ja alles der Vantage8634.....
klar kann man n bootloader von ner anderen Box nehmen ...
ich hab noch nicht probiert ob die Box in einen akzeptablen Zustand kommt wenn die Signatur des initialen bootloaders nicht stimmt (was natürlich der Fall sein wird)
wenn das klappt, dann könnte man den bootloader direkt aus dem Flash starten, aber viel gewinnt man dadurch nicht, denn der Zboot bootloader kann einen Kernel nur aus dem flash starten .. nicht von der Festplatte. Mit dem begrenzten Flash des x300t kommt man mit diesem Ansatz also nicht sehr weit.
Es würde nur funktionieren wenn man per JTAG den Kernel ins RAM lädt... aber das dauert mehrere Stunden, und das will sich wohl keiner auf Dauer antun vermute ich ;)
mit anderen Worten... der IPTV bootloader ist schon optimal, wenn man den Kernel von der Platte nachladen muss.
die einzige Alternative ist ein eigener bootloader. wenn das jemand umsetzen will wär das natürlich cool :)
ich habe noch mal in den linux 2.4 kernel sources der netgem box rumgewühlt und dabei bin ich über Kommentare gestolpert, die sich auf den IRQ-Handler bezogen, der
vom bootloader geladen werden soll.
das hört sich für mich so an als kann der Kernel nicht funktionieren solange der IRQ Handler nicht vorher geladen wurde.
da bleibt nun die Frage warum das Laden des IRQ Handlers nicht klappt ... ich vermute das ist alles was zu tun ist, denn die gleiche Ursache wird auch die ucodes betreffen denke ich.
viel böser ist, dass ich beim Starten des Kernels ein Kernel Panic bekomme und ich hab keine Ahnung warum das passiert.
die logausgaben sehen bis zum Kernel Panic genau so aus wie bei ner Popcorn hour.
hier ist der ganze output... also wenn da einer ne idee hat, lasst es mich wissen
Microsoft IPTV Bootloader, Build (1051)
Built by BM-DELL-167, Sep 11 2006 16:54:12
>
**********************************
* SMP863x zboot start ...
* Version: 2.2.0-2.7.167.0
* Started at 0x91000000.
* Configurations (chip revision: 6):
* Use 8KB DRAM as stack.
* Support XLoad format.
* Enabled BIST mode.
* Enabled memory test mode.
* Use internal memory for stage0/1.
**********************************
Boot from flash (0x48000000) mapped to 0xac000000.
Found XENV block at 0xac000000.
CPU clock frequency: 297.00MHz.
System clock frequency: 198.00MHz.
DRAM0 dunit_cfg/delay0_ctrl (0xe34111ba/0x00094344).
DRAM1 dunit_cfg/delay0_ctrl (0xe34111ba/0x00093444).
Using UART port 0 as console.
Board ID.: "KMM3210-TG-A"
Chip Revision: 0x8634:0x82 .. Mismatched.
Setting up H/W from XENV block at 0xac000000.
Setting <SYSCLK premux> to 0x00000603.
Setting <SYSCLK avclk_mux> to 0x00000000.
Setting <SYSCLK hostclk_mux> to 0x00000100.
Setting <IRQ rise edge trigger lo> to 0xff28ca00.
Setting <IRQ fall edge trigger lo> to 0x0000c000.
Setting <IRQ rise edge trigger hi> to 0x000001ff.
Setting <IRQ fall edge trigger hi> to 0x00000000.
Setting <IRQ GPIO map> to 0x0d090800.
Setting <PB default timing> to 0x01090008.
Setting <PB timing0> to 0x01090008.
Setting <PB Use timing0> to 0x000003fc.
Setting <PB timing1> to 0x00110101.
Setting <PB Use timing1> to 0x000003f3.
PB cs config: 0x000c10c0 (use 0x000c10c0)
Enabled Devices: 0x00023efe
BM/IDE PCIHost Ethernet IR FIP I2CM I2CS USB PCIDev1 PCIDev2 PCIDev3 PCIDev4
SCARD
MAC: 00:00:de:ad:be:ef
PCI IRQ routing:
IDSEL 1: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 2: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 3: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 4: INTA(#15) INTB(#15) INTC(#15) INTD(#15)
Smartcard pin assignments:
OFF pin = 0
5V pin = 1
CMD pin = 2
Setting up Clean Divider 2 to 96000000Hz.
Setting up Clean Divider 4 to 33333333Hz.
GPIO dir/data = 0x00000000/0x00000000
UART0 GPIO mode/dir/data = 0x6e/0x00/0x00
UART1 GPIO mode/dir/data = 0x6e/0x00/0x00
XENV block processing completed.
Found existing memcfg: DRAM0(0x04000000), DRAM1(0x04000000)
Heap/Temp/Temp1/Dest start at 0x12400000/0x11800000/0x11e00000/0x13000000.
Default boot index: 0
processing zboot record at 0xac000000 (0xac000000) .. index 0Scanning ROMFS imag
e at 0x90800000.. Found.
ROMFS found at 0x90800000, Volume name = mce2222
Found 4 file(s) to be processed in ROMFS.
Processing 10xrpc_xload_audio_ucode_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x90800200, size: 0x000d7264)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Processing 11xrpc_xload_video_ucode_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x908d7600, size: 0x0004fb64)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Processing 12xrpc_xload_demux_ucode_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x90927200, size: 0x00007804)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Processing 33xrpc_xload_irq_handler_SMP8634_2.7.176sybs1.7972x_GCC4_facsprod.bin
(start: 0x9092ec00, size: 0x0002e454)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. Failed (not an xrpc_xload file)
Done with fixed container
Execute final at 0x90020000 ..
Linux version 2.6.15-sigma (rolandhii@venus) (gcc version 4.0.4) #118 PREEMPT We
d Jan 23 10:43:14 CST 2008
Configured for SMP8634 (revision ES6/RevA), detected SMP8634 (revision ES6/RevA)
.
SMP863x/SMP865x Enabled Devices under Linux/XENV 0x48000000 = 0x00023efe
BM/IDE PCIHost Ethernet IR FIP I2CM I2CS USB PCIDev1 PCIDev2 PCIDev3 PCIDev4 SC
ARD
Valid MEMCFG found at 0x10000fc0.
CPU revision is: 00019068
Determined physical RAM map:
memory: 05ee0000 @ 10020000 (usable)
On node 0 totalpages: 89856
DMA zone: 89856 pages, LIFO batch:15
DMA32 zone: 0 pages, LIFO batch:0
Normal zone: 0 pages, LIFO batch:0
HighMem zone: 0 pages, LIFO batch:0
Built 1 zonelists
Kernel command line: pci=disabled ip=dhcp root=/dev/nfs noinitrd
Primary instruction cache 16kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 16kB, 2-way, linesize 16 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
PID hash table entries: 2048 (order: 11, 32768 bytes)
Using 148.500 MHz high precision timer.
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 86656k/97152k available (3399k kernel code, 10476k reserved, 536k data,
3108k init, 0k highmem)
Calibrating delay loop... 293.88 BogoMIPS (lpj=146944)
Mount-cache hash table entries: 512
Checking for 'wait' instruction... available.
CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc ==
9006aea0, ra == 9036dd88
Oops[#1]:
Cpu 0
$ 0 : 00000000 00000001 90a7f87c 00000000
$ 4 : 95e88d38 90a7f870 00000001 00000000
$ 8 : 90702b80 90700000 90a7b000 00000000
$12 : 90a7e000 95e88cc0 00000012 00000010
$16 : 90a6df70 95e88d34 90a75be8 95e88d38
$20 : 90420000 90700000 00000030 90420000
$24 : 00000001 00000000
$28 : 90a7e000 90a7f860 90380000 9036dd88
Hi : 2a8b2775
Lo : 355f2140
epc : 9006aea0 Not tainted
ra : 9036dd88 Status: 10001c02 KERNEL EXL
Cause : 7080800c
BadVA : 00000000
PrId : 00019068
Modules linked in:
Process swapper (pid: 1, threadinfo=90a7e000, task=90a75be8)
Stack : 00000000 00000000 00000001 00000000 00000001 90a75be8 90047cd0 95e88d38
00000000 00000001 90a6df70 95e88d34 90700000 00007948 90420000 9009a838
90a7b000 00007948 90420000 90700000 00001846 900b4d60 00000000 00000000
900c9ec4 90a7b000 00000000 90a7f908 90a7b000 900b87c8 90a6df70 00000000
90710000 00000000 00000000 00000000 00000000 9009a8e8 90420000 90700000
...
Call Trace: [<90047cd0>] [<9009a838>] [<900b4d60>] [<900c9ec4>] [<900b87c8>]
[<9009a8e8>] [<9009a900>] [<903fa270>] [<903fa2ec>] [<903faa64>] [<903700
00>] [<903fb10c>] [<903fb92c>] [<903fc5f0>] [<90053b74>] [<90053b44>] [<90
0204d0>] [<90026bdc>] [<90026bcc>]
Code: 24a2000c aca4000c ac820004 <ace20000> ac470004 10c00002 41606000 4160
6020 000000c0
Kernel panic - not syncing: Attempted to kill init!
wie hast du dieses Problem geloest?
Ich bin jetzt am selben Punkt:
- lx.bin / ya.bin booten problemlos
- ich binde das Linux root System via NFS ein
- ich nutze das root dir aus dem Wiki: http://www.t-hack.com/wiki/images/5/58/Nfsroot_x300t_20080214.tar.bz2
- sobald ich boote sehe ich dass die box sauber verbindet und dann Ende ich in derselben Kernel Panic wie du oben ("Unable to handle Kernel Paging")
Irgendjemand ne Idee?
das ist ein Speicherproblem.
da gibt es zwei Möglichkeiten das zu fixen: entweder beim Erstellen des Kernels die maximale Speichergrösse runtersetzen, oder als kernel startparameter das Speicherlimit in die XENV Variable schreiben.
ich glaub 60MB ist das Maximum bei uns. default ist 128MB wenn ein Kernel erstellt wird.
hi mce222
danke fuer die Antwort.
Meinst du mit Kernelparameter "mem"? Also z.B. mem=64MB ?
ja der müsste es sein
hmm das funktioniert auch nicht, ich habe es mit mem=32 und mem=64 als kernel parameter versucht, aber er bleibt dann schon nach "processing zboot record at..." bei "Execute final at 0x90020000 .." haengen.
Hat noch irgend jemand ne Idee wie ich hier weiterkomme?
ich nutze die lx.bin aus dem Wiki als Kernel.
mem=64m für 64mb ram wäre richtig, 64 ohne Suffix sollte wohl auf sagenhafte 64 Byte ram hinauslaufen ;)
mem=64m für 64mb ram wäre richtig, 64 ohne Suffix sollte wohl auf sagenhafte 64 Byte ram hinauslaufen ;)
verdammt ... x-)
das ist mir jetzt fast n bisschen peinlich x-)
Danke fuer den Hinweis, mit "mem=xxM" funktionierts, rootfs wird sauber via NFS gemountet :D
Interessanterweise muss ich den Speicher auf 32MB begrenzen, 64MB fuehren auch zu einer Kernel Panic.