[Kernel] Nieuwe kernel boot niet vanuit RedBoot omgeving

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • NS_5
  • Registratie: Februari 2005
  • Laatst online: 18-12-2024
Beste Linux-guru's,

Ik heb het als linux-noob op mij genomen om een oud iMX27-systeem nieuwe leven in te blazen. Deze vraag komt vanuit mijn werk, waar ze nog ~30 van die dingen hebben liggen. Zonde om er 30 tegelijk in de vuilnisbak te gooien natuurlijk.

Nu ben ik zo ver dat ik een linux kernel heb gecompileerd met linaro-arm. Hier zitten als het goed is al (in ieder geval voor een groot deel) de juiste drivers in. Ik heb ook alvast een buildroot-omgeving gecompileerd, maar zo ver ben ik nog niet. So far the easy part. Want, het volgende:

Het systeem boot naar een RedBoot omgeving. Hier zie ik een aantal partities en kan ik via TFTP nieuwe kernel images laden. Het laden van een hele oude kernel (2.6) lukt zowel vanaf het flashgeheugen als via TFTP, maar mijn nieuwe kernel boot niet. Hij geeft zelfs geen kik. De volgende twee regels voer ik uit.

code:
1
2
3
-- Laden van de kernel image:
load -h 192.168.5.166 -r -b 0x40000 zImage
exec


Zoals ik zei start de oude kernel op deze manier prima, maar de zelf gecompileerde niet. (De oude kernel geeft later een panic want ik geef hem geen rootfs mee, maar dat geeft even niet.)

Output van booten oude kernel:
code:
1
2
3
4
5
6
7
8
9
10
RedBoot> load -h 192.168.5.166 -r -b 0x40000 zImage
Using default protocol (TFTP)
Raw file loaded 0x00040000-0x001f4747, assumed entry at 0x00040000
RedBoot> exec
entry=0xa0008000, target=0xa0008000
Using base address 0x00040000 and length 0x001b4748
Uncompressing Linux..................................................................................................................... done, booting the kernel.
[    0.000000] Linux version 2.6.22.6 (erik@katrien) (gcc version 4.1.2) #122 PREEMPT Fri Dec 19 10:49:08 CET 2008
[    0.000000] CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
---- ....etc, etc, etc.... ----


Output van booten nieuwe kernel:

code:
1
2
3
4
5
6
7
RedBoot> load -h 192.168.5.166 -r -b 0x40000 zImage_
Using default protocol (TFTP)
Raw file loaded 0x00040000-0x0031dfff, assumed entry at 0x00040000
RedBoot> exec
entry=0xa0008000, target=0xa0008000
Using base address 0x00040000 and length 0x002de000
---- ....lange stilte totdat de watchdog ingrijpt.... ----


Ik denk zelf dat ik het probleem moet zoeken bij de configuratie van de kernel. Misschien heb ik niet de juiste flags geset tijdens het compileren en eindig ik met een image die niet compatible is. Al heb ik via de menu-config al het juiste platform en architectuur ingesteld.

Mijn kennis schiet hier echter ernstig tekort. Waar denken jullie aan?

[ Voor 4% gewijzigd door NS_5 op 26-08-2014 14:50 ]


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 01-10 12:22

CAPSLOCK2000

zie teletekst pagina 888

Ik denk aan niet het juiste type CPU of missende drivers, maar het is maar erg moeilijk te zeggen met zo weinig informatie. Helaas zijn erg veel ARM systemen die allemaal net een beetje anders zijn. De juiste combinatie van drivers en instellingen vinden kan best lastig zijn. Het makkelijkste zou het zijn om iemand anders te vinden met meer ervaring die het wel al gelukt is en daar een kernel van te lenen.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • NS_5
  • Registratie: Februari 2005
  • Laatst online: 18-12-2024
Bedankt voor je reactie.

Ja ik geef inderdaad niet zoveel informatie. Ik wilde de openingpost expres een beetje kort laten en gaandeweg de informatie geven die relevant wordt geacht, ipv al mijn logs en configs te copy-pasten. Ik zou je heel m'n .config kunnen sturen, maar dat is weer teveel van het goede.

Misschien is het goed om er nog maar eens bij te vermelden dat er na het exec-commando niet eens wordt overgegaan tot het uitpakken van de nieuwe kernel, zoals wel te zien is bij de oude kernel. Daarom dacht ik in eerste instantie ook dat ik wellicht het verkeerde platform had gekozen, maar de iMX27 is een ARM926EJ-S processor, dus ARMv5 (ja zo oud), en die heb ik gekozen.

Zijn er opties die ik moet checken die absoluut verplicht zijn misschien? Zijn er opties voor endianness die zo obvious zijn dat ik ze misschien verkeerd heb ingesteld? Ok, dat lijkt me sterk, maar het is misschien eerder een simpele/domme fout dan iets heel ingewikkelds.

Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 11-08 04:52

Sprite_tm

Semi-Chinees

Heb je wel het juiste board gekozen? Embedded devices, zeker non-X86-units, hebben niet echt een hardware abstraction layer zoals X86 ACPI en de BIOS enzo heeft. Je moet je kernel dus specifiek met support voor het precieze board wat je hebt compileren; alleen weten dat er een iMX27 op leeft is niet genoeg.

Verder is het inderdaad vreemd dat je kernel geen kik geeft. De code die het 'Uncompressing Linux...' doet doet dat iirc met zo ongeveer de minimale code die nodig is om iets uit je bord te krijgen; als je dat niet krijgt is er ergens iets basaals mis.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • NS_5
  • Registratie: Februari 2005
  • Laatst online: 18-12-2024
Nee met alleen het platform ben je er nog niet inderdaad, maar ik beschik over een driver voor dit bord en ik heb de drivers van de meeste apparaten op het board ook geselecteerd. Ik probeer nu alleen nog maar tot 'Uncompressing Linux...' te komen.

Wat zou er nou voor zorgen dat hij zelfs aan het uncompressen niet begint?

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 01-10 12:22

CAPSLOCK2000

zie teletekst pagina 888

Er kan van alles mis zijn, er is geen enkele aanwijzing dat er ook maar iets is dat werkt. Als je een MP3'tje zou proberen te booten krijg je volgens mij hetzelfde te zien.

Ik ben wel eens vergeten een console-driver toe te voegen waardoor de kernel domweg niet in staat was om output naar de console te schrijven.

Tegenwoordig is het gebruikelijk om ergens op je systeem de config te zetten waar de kernel van dat systeem mee is gecompiled, bv in /boot/config . Misschien heeft je oude systeem ook wel zo'n config waar je mee kan vergelijken.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • NS_5
  • Registratie: Februari 2005
  • Laatst online: 18-12-2024
Ok, ik ben iets verder zo lijkt het.

Ik heb onder "kernel hacks" de opties voor kernel logging via UART aangezet voor het iMX-platform. Toen kreeg ik wel te zien "uncompressing Linux... done, booting the kernel." gevolgd door een foutmelding over dat een ID dat niet overeenkwam.

Met die informatie kon ik het nummer in het 'mach-types' bestand aanpassen zodat hij wel matchde. Maar helaas: weg foutmelding, maar gelijk weer een freeze na "uncompressing Linux... done, booting the kernel."

Acties:
  • 0 Henk 'm!

  • NS_5
  • Registratie: Februari 2005
  • Laatst online: 18-12-2024
Hij boot! Ik heb nogal gespeeld met verschillende opties in de kernel, maar ik moest ook nog "console=ttymxc0" meegeven als kernel command line. Nu krijg ik een panic omdat ik geer rootfs heb, maar dat is ok for now.

Ik ga nu proberen de verschillende opties uit te zetten om te kijken welke opties wel of geen effect hebben gehad. Pas na de console-parameter kreeg ik output namelijk, dus eerder was het tasten in het duister.

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 01-10 12:22

CAPSLOCK2000

zie teletekst pagina 888

goed bezig!

This post is warranted for the full amount you paid me for it.

Pagina: 1