Toon posts:

[Linux] Kernel compilen naar 64-bit

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit (samen met een collega van mij) met een probleem. Mijn collega heeft een Athlon 64 gekocht en nu wil hij zijn Slackware linuxkernel compilen naar een 64-bit versie. Hij heeft al een gcc-Crosscompiler geschreven, maar zodra hij na een half uur klaar is met het compilen en de kernel wil toepassen start zijn linux niet meer op... :Z Init wil niet starten.

Nu heb ik een vraag: heeft iemand al eens geprobeerd een Slackware-kernel om te zetten naar 64-bit? En is dat gelukt? Zo ja hoe, Crosscompiler?, hoe ziet die compiler eruit?, of welke andere manier heb je gebruijt om het voor elkaar te krijgen? :?

Alle hulp is welkom. (is geen haast bij, maar wij zouden graag willen weten hoe snel alles dan werkt, testen.) }:O

edit: Zag wel topic over Linux distro's, maar ik denk dat daar mijn vraag niet echt binnen past.

edit: laat ik even verduidelijken: hij wil een real 64 bit kernel hebben. Dus niet met 64-bit instructies.

[ Voor 14% gewijzigd door Verwijderd op 25-05-2004 19:56 ]


Verwijderd

Heeft je college wel support voor 32bit executables aangezet ?

  • nzyme
  • Registratie: November 2001
  • Laatst online: 28-12-2025

nzyme

terror

uhm, misschien nog niet relevant maar hoe gaan jullie verder strax? Ik bedoel, jullie hebben strax een x86-64 kernel met allemaal x86 compiled packages... Gaan jullie je complete install opnieuw compileren ofzo dan? Want dat kon best ns smerig tegen gaan vallen qua tijd en werk :p

| Hardcore - Terror |


  • zwik
  • Registratie: Maart 2001
  • Laatst online: 19-02 09:09

zwik

randomized

Je hoeft bij processor-type toch alleen maar aan te geven dat je een AMD-64 hebt of denk ik verkeerd ? :) .

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05-2025

irondog

alle dingen moeten onzin zijn

Een kernel compileren voor de AMD64 processor gaat idd zoals je dat zult verwachten: Gewoon aanvinken onder Processor type and features.
Je gebruikt gcc als normaal als (cross-)compiler. Daarmee wil ik zeggen dat het niet gebruikelijk is een bestaande kernel image te converteren van bijv. x86 naar x86-64 code.

Je kunt een bestaande kernel hooguit hercompileren vanaf de c(++) code eventueel aan de hand van /proc/config.

De vraag van de topicstarter is raar te noemen. Ik zou zeggen: pak een distro die gebruik maakt van AMD-64, want alleen een 64bit gecompileerde kernel is ook niet alles.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


Verwijderd

Topicstarter
irondog schreef op 25 mei 2004 @ 17:43:
Een kernel compileren voor de AMD64 processor gaat idd zoals je dat zult verwachten: Gewoon aanvinken onder Processor type and features.
Je gebruikt gcc als normaal als (cross-)compiler. Daarmee wil ik zeggen dat het niet gebruikelijk is een bestaande kernel image te converteren van bijv. x86 naar x86-64 code.

Je kunt een bestaande kernel hooguit hercompileren vanaf de c(++) code eventueel aan de hand van /proc/config.

De vraag van de topicstarter is raar te noemen. Ik zou zeggen: pak een distro die gebruik maakt van AMD-64, want alleen een 64bit gecompileerde kernel is ook niet alles.
Hij gebruikt Slackware als linux distro en bouwd vanaf de source code de kernel opnieuw op, maar hij heeft een gecompilede kernel alleen die werkt niet. De kernel boot wel, maar bij init blijft de kernel hangen.
Ik heb ook al aangeraden een andere distro te proberen, maar hij wil een custom build kernel e.d. hebben. Hij gebruikt die bak als ...-server dacht file-server. Daarop moet toch iets draaien wat je zelf het makkelijkst kunt onderhouden. Waar ik stageloop(en mijn collega werkt) bouwen ze ook zelf de kernels op (dus custom build)

[ Voor 29% gewijzigd door Verwijderd op 25-05-2004 18:09 ]


  • Zwerver
  • Registratie: Februari 2001
  • Niet online
Custom builden van een kernel is toch niet zo moeilijk? Ook met een andere distributie overigens, maar er is nu al drie keer gezegt dat je de kernel in de kernel-config gewoon naar 64 moet zetten... dan is het gewoon compilen en klaar...

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:16

Kees

Serveradmin / BOFH / DoC
Was het maar zo simpel, bij mij maakt hij er dan gewoon een i386 kernel van (hooguit met athlon-64 instructies)

Ik denk dat je het beste eerst een 64 bits compiler moet pakken, en dan je libs ombouwen naar een 64 bits formaat. Om te kijken hoe dat gedaan wordt kun je het beste naar een bestaande 64 bits versie kijken.

Vervolgens kan je de kernel wel eens naar 64 bits omzetten. Maar ook al is je kernel 64 bits, als de rest 32 bits is heb je er weinig aan. kun je net zo geod een 32 bits kernel draaien.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Zwerver
  • Registratie: Februari 2001
  • Niet online
@kees: hmz, dat krijg je ervan als je altijd 64 bit kernels op een 64 bit systeem maakt :P Maar thnx voor de verbetering :)

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


  • nzyme
  • Registratie: November 2001
  • Laatst online: 28-12-2025

nzyme

terror

dus dan kan je dus beter ff snel fedora of suse64bit installen en daarmee die kernel maken? en de overige pakjes dan?

| Hardcore - Terror |


Verwijderd

Je wil dus zoveel mogelijk softwarepakketten 64 bits compilen? Ik zou zeggen probeer dan de amd64 versie van gentoo. Deze distributie is prima geschikt om alle softwarepakketten te compilen voor de amd64. Zeker als je vanaf stage een begint met compilen. Dus source gebasseerde distro met het install gemak van een binary package distro.

zie http://www.gentoo.org voor meer info

zie ook deze draad: [rml][ ervaringen] AMD64 Linux distro's[/rml]

[ Voor 23% gewijzigd door Verwijderd op 25-05-2004 21:54 ]


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Kees schreef op 25 mei 2004 @ 19:03:
Was het maar zo simpel, bij mij maakt hij er dan gewoon een i386 kernel van (hooguit met athlon-64 instructies)
Daar vraag je dan ook om. Vanuit het oogpunt van compilen is een 64 bits kernel cross-compilatie, ook op dezelfde architectuur. Om dit te wijzigen dien je de CROSS_COMPILE en ARCH variabelen te zetten in de kernel Makefile. ARCH moet je expliciet overriden omdat je anders nog steeds voor de foute architectuur compileert :)

Je moet dan echter wel een gcc hebben die in staat is om 64 bits ELF binaries uit te spugen. Op dit systeem (Debian Sid op een Sparc) spuugt /usr/bin/gcc een 64 bit binary uit, en sparc-linux-gcc-3.3 een 32 bits binary.

De -m32 en -m64 opties geven een expliciete 32 of 64 compilatie.

Verder dien je een recente kernel te hebben : Vanaf 2.4.25 oid snapt de kernel pas 64 bits ELF's (en dat moet je expliciet aanzetten).
Ik denk dat je het beste eerst een 64 bits compiler moet pakken, en dan je libs ombouwen naar een 64 bits formaat. Om te kijken hoe dat gedaan wordt kun je het beste naar een bestaande 64 bits versie kijken.
Normaal gesproken (en ik weet niet of dat op een x64 ook zo is) kan een kernel zowel 32 als 64 bits binaries draaien.
Vervolgens kan je de kernel wel eens naar 64 bits omzetten. Maar ook al is je kernel 64 bits, als de rest 32 bits is heb je er weinig aan. kun je net zo geod een 32 bits kernel draaien.
Voor een kernel compile heb je geen libs nodig.

[ Voor 9% gewijzigd door igmar op 25-05-2004 23:22 ]


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

<snip> foute knopje :(

[ Voor 98% gewijzigd door igmar op 25-05-2004 23:16 ]


Verwijderd

Topicstarter
Je wil dus zoveel mogelijk softwarepakketten 64 bits compilen? Ik zou zeggen probeer dan de amd64 versie van gentoo. Deze distributie is prima geschikt om alle softwarepakketten te compilen voor de amd64. Zeker als je vanaf stage een begint met compilen. Dus source gebasseerde distro met het install gemak van een binary package distro.

Nee geen software, maar puur de kernel van linux.

Ik zal nog een keer zeggen wat ik bedoel:

Een collega is bezig om via een eigen geschreven crosscompiler zijn kernel (32-bit)om te zetten naar een 64-bit kernel. Hij doet dit op een systeem waar een AMD 64 inzit. Na het compilen naar 64-bit boot de computer op begint met het starten van Slackware, maar blijft hangen bij de init.
Mijn vraag is dus: heeft er iemand al een real 64-bit kernel (voor Slackware)gecompiled? Zo ja, hoe heb je dat geflikt of hoe ziet die crosscompiler eruit? Zo nee, heb je tips hoe dat wel kan?

Wat mijn collega dus wil doen is een real 64-bit kernel maken (compilen)(zonder dat hij een andere distro moet installeren.).

Is mijn vraag(2): Kun je een kernel van een andere distro zo aanpassen dat hij ook onder Slackware gaat werken?

Verwijderd

Volgens mij is hij gewoon vergeten x86 emulatie aan te zetten in de kernelconfig die nodig is voor 32bits programma's. De kernel doet het alleen kan hij niet init starten. Init is een programma dat logisch genoeg nog als 32bits gecompileerd is voor een i386 32bits slackware distro.

[ Voor 9% gewijzigd door Verwijderd op 26-05-2004 13:25 ]

Pagina: 1