[SuSe 9.3] Kernel compilatie errors

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • iGadget
  • Registratie: Januari 2000
  • Laatst online: 06-07 11:46
Voor ons bedrijf ben ik bezig een assemblagelijn op te zetten, waarbij als de computers eenmaal geassembleerd zijn, deze gevuld worden met een image.

Tot nu toe gebeurt dit nog met een image op CDROM, maar aangezien alle machines tegenwoordig 'boot from network' (PXE) ondersteunen, leek het me een goed idee om hier gebruik van te gaan maken.

Na een beetje research bleek ik niet de enige te zijn die dit wilde - een aardige Duitser heeft een soortgelijk truukje destijds voor Toshiba geflikt (http://dan.deam.org/codeunix.php en dan 'Diploma Thesis / yagi'). Dus dit hele project maar eens gedownload en geinstalleerd. Aangezien dit project onder Suse (8.0?) is gebouwd heb ik ook Suse gebruikt om zo min mogelijk problemen te veroorzaken.

Booten via LAN heb ik inmiddels aan de praat. Echter ondersteunt de bijgeleverde kernel (2.4.19) alleen de netwerkkaarten die onze Duitse vriend nodig had in zijn Toshiba-lab. In zijn handleiding geeft hij echter al aan dat je prima een eigen kernel kan bakken met support voor je eigen netwerkkaarten.

En hier gaat het bij mij mis - 2.6.10 compileert wel, maar als ik dan vervolgens een machine via netwerk wil booten met deze kernel, crasht 'ie omdat het root fs niet via NFS gemount kan worden. Dit komt omdat de optie CONFIG_ROOT_NFS niet meer in de 2.6.x kernel zit (voor zover ik weet). Als iemand hier een alternatief voor weet is dat ook prima natuurlijk!

Nu probeer ik dus 2.4.19 te compileren, met CONFIG_ROOT_NFS erin, maar tijdens de make bzImage krijg ik deze errors:

sched.c:213: error: conflicting types for `reschedule_idle'
sched.c:210: error: previous declaration of `reschedule_idle'
sched.c:373: error: conflicting types for `wake_up_process'
/usr/src/linux-2.4.19/include/linux/sched.h:603: error: previous declaration of `wake_up_process'
sched.c:411: error: conflicting types for `schedule_timeout'
/usr/src/linux-2.4.19/include/linux/sched.h:158: error: previous declaration of `schedule_timeout'
sched.c:741: error: conflicting types for `__wake_up'
/usr/src/linux-2.4.19/include/linux/sched.h:595: error: previous declaration of `__wake_up'
sched.c:751: error: conflicting types for `__wake_up_sync'
/usr/src/linux-2.4.19/include/linux/sched.h:596: error: previous declaration of `__wake_up_sync'
sched.c:761: error: conflicting types for `complete'
/usr/src/linux-2.4.19/include/linux/completion.h:31: error: previous declaration of `complete'
sched.c:771: error: conflicting types for `wait_for_completion'
/usr/src/linux-2.4.19/include/linux/completion.h:30: error: previous declaration of `wait_for_completion'
sched.c:806: error: conflicting types for `interruptible_sleep_on'
/usr/src/linux-2.4.19/include/linux/sched.h:600: error: previous declaration of `interruptible_sleep_on'
sched.c:817: error: conflicting types for `interruptible_sleep_on_timeout'
/usr/src/linux-2.4.19/include/linux/sched.h:601: error: previous declaration of `interruptible_sleep_on_timeout'
sched.c:830: error: conflicting types for `sleep_on'
/usr/src/linux-2.4.19/include/linux/sched.h:597: error: previous declaration of `sleep_on'
sched.c:841: error: conflicting types for `sleep_on_timeout'
/usr/src/linux-2.4.19/include/linux/sched.h:598: error: previous declaration of `sleep_on_timeout'
make[2]: *** [sched.o] Error 1
make[2]: Leaving directory `/usr/src/linux-2.4.19/kernel'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.19/kernel'
make: *** [_dir_kernel] Error 2

Ik vermoed dat dit een probleem kan zijn met de gebruikte gcc versie (=3.3.5-5.1), dus ik heb op een andere machine Suse 8.0 geinstalleerd. Maar ook hier krijg ik allerlei errors (nu gerelateerd aan NFS_ROOT) als ik 2.4.19 probeer te compilen. Ik ben zelf niet zo bekend met Suse (en ook nog niet zo'n held met linux in het algemeen trouwens), vandaar dat ik niet heb geprobeerd om een oude gcc versie ergens vandaan te trekken en die op de Suse 9.3 machine te installeren.

Iemand nog een idee wat ik zou kunnen proberen? Uiteraard zit ik niet perse vast aan Yagi (dat project van die Duitser), maar een beter project ben ik nog niet tegen gekomen. Mocht iemand nog iets weten dan is dat uiteraard ook van harte welkom!

"I'll just use my Go-Go-Gadget handbook!"


Acties:
  • 0 Henk 'm!

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 21:31

BoAC

Memento mori

Welke 'build' commado's geef je?

/edit:
En booten via netwerk: ltsp.sourceforge.net :P

[ Voor 58% gewijzigd door BoAC op 22-08-2005 16:22 ]


Acties:
  • 0 Henk 'm!

  • iGadget
  • Registratie: Januari 2000
  • Laatst online: 06-07 11:46
BoAC schreef op maandag 22 augustus 2005 @ 16:21:
Welke 'build' commado's geef je?
make dep
make clean
make bzImage (en dan gaat het dus fout)

Ik kan me herinneren dat de eerste keer dat ik probeerde om 'make dep' te doen, ik de melding kreeg dat dat op dat moment niet nodig was. Nadat ik toen gewoon 'make' probeerde, kreeg ik dezelfde foutmeldingen als hierboven.

"I'll just use my Go-Go-Gadget handbook!"


Acties:
  • 0 Henk 'm!

  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

Met deze info moet het je wel lukken om ROOT_NFS in de 2.6 kernel te compileren.
config ROOT_NFS
bool "Root file system on NFS"
depends on NFS_FS=y && IP_PNP
help
If you want your Linux box to mount its whole root file system (the
one containing the directory /) from some other computer over the
net via NFS (presumably because your box doesn't have a hard disk),
say Y. Read <file:Documentation/nfsroot.txt> for details. It is
likely that in this case, you also want to say Y to "Kernel level IP
autoconfiguration" so that your box can discover its network address
at boot time.

Most people say N here.
Symbol: NFS_FS [=y]
Prompt: NFS file system support
Defined at fs/Kconfig:1316
Depends on: NET && INET
Location:
-> File systems
-> Network File Systems
Symbol: IP_PNP [=y]
Prompt: IP: kernel level autoconfiguration
Defined at net/ipv4/Kconfig:146
Depends on: NET && INET
Location:
-> Device Drivers
-> Networking support
-> Networking support (NET [=y])
-> Networking options
-> TCP/IP networking (INET [=y])

[ Voor 15% gewijzigd door Seth4Chaos op 22-08-2005 16:57 . Reden: code -> quote ]

Mistakes are proof that you are trying...


Acties:
  • 0 Henk 'm!

  • iGadget
  • Registratie: Januari 2000
  • Laatst online: 06-07 11:46
Klinkt goed! Alleen in welke file plak ik deze code?

"I'll just use my Go-Go-Gadget handbook!"


Acties:
  • 0 Henk 'm!

  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

dit zijn stukjes uit de help file van de kernel config.

ROOT_NFS heeft de volgende dependencies: NFS_FS=y && IP_PNP

deze twee dingen kan je vinden door die regels met '->' te volgens. Als deze aan staan kan je vervolgens ROOT_NFS aanzetten en zou je een 2.6 kernel met ROOT_NFS kunnen bakken.

Mistakes are proof that you are trying...

Pagina: 1