Toon posts:

Nieuwe Linux Kernel 2.6.3 Vraagje (/sbin/mkiinitrd)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers,

Dit is tweede keer in me leven dat ik een kernel update ga uitvoeren. Ik begin met:

make menuconfig
make bzImage
make modules
make modules_install

rm -rf /boot/System.map
rm -rf /boot/vmlinuz

cp /tmp/linux-2.6.3/arch/i386/boot/bzImage /boot/vmlinuz-2.6.3
cp /tmp/linux-2.6.3/System.map /boot/System.map-2.6.3

ln -s /boot/vmlinuz-2.6.3 /boot/vmlinuz
ln -s /boot/System.map-2.6.3 /boot/System.map

dit heb ik allemaal gedaan, ik weet niet of dit goed is.

Nu had ik nog een vraagje over de initrd ( /sbin/mkinitrd ) ...
Hoe gebruik ik deze om de nieuwe kernel erin te laden ???

  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
't is niet goed. Voor kernel 2.6.3 is het nu:

make menuconfig
make
make install
make modules_install

Ik neem aan dat ze aan initrd's hebben gedacht bij deze procedures, maar dat heb ik niet getest.

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Wat je gedaan hebt is goed, je doet alleen het hele kernel compilen in /tmp, wat ongebruikelijk is. Normaal gesproken staan je kernel sources in /usr/src/linux-versienummer, en maak je een symbolic link /usr/src/linux die naar je huidige versie wijst. Maar kan geen kwaad om t op jouw manier te doen (totdat je probeert externe programmaas tegen jouw kernel te compileren).

mkinitrd gebruik je niet om een kernel te laden, maar om een initrd (initial ramdrive) te maken, een bestand, waar je een filesystem op maakt, waar je bv modules voor je kernel op kunt zetten. Sommige distros gebruiken het op hun generieke kernel, zodat ze niet alle IDE/SCSI drivers in de kernel hoeven te bouwen, maar zetten ze in de initrd. Op het gewone filesystem zetten werkt niet, want je hebt juist die drivers nodig om dat te kunnen doen.

De initrd wordt geladen vlak na de kernel.

Als je zelf een kernel compileert is het bijna nooit nodig om een initrd te maken.

Wat je wel nodig hebt is grub of lilo, dat zijn bootloaders die kernels kunnen laden.

It sounds like it could be either bad hardware or software


  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

ajvdvegt schreef op 26 februari 2004 @ 15:22:
't is niet goed. Voor kernel 2.6.3 is het nu:

make menuconfig
make
make install
make modules_install

Ik neem aan dat ze aan initrd's hebben gedacht bij deze procedures, maar dat heb ik niet getest.
Is niet waar wat je zegt, op zijn manier gaat het ook prima.

zie ook make help.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
hostname linux-2.6.3-gentoo-r2 # make help
Cleaning targets:
  clean           - remove most generated files but keep the config
  mrproper        - remove all generated files + config + various backup files

Configuration targets:
  oldconfig       - Update current config utilising a line-oriented program
  menuconfig      - Update current config utilising a menu based program
  xconfig         - Update current config utilising a QT based front-end
  gconfig         - Update current config utilising a GTK based front-end
  defconfig       - New config with default answer to all options
  allmodconfig    - New config selecting modules when possible
  allyesconfig    - New config where all options are accepted with yes
  allnoconfig     - New minimal config

Other generic targets:
  all             - Build all targets marked with [*]
* vmlinux         - Build the bare kernel
* modules         - Build all modules
  modules_install - Install all modules
  dir/            - Build all files in dir and below
  dir/file.[ois]  - Build specified target only
  rpm             - Build a kernel as an RPM package
  tags/TAGS       - Generate tags file for editors

Documentation targets:
  Linux kernel internal documentation in different formats:
  sgmldocs (SGML), psdocs (Postscript), pdfdocs (PDF)
  htmldocs (HTML), mandocs (man pages, use installmandocs to install)

Architecture specific targets (i386):
* bzImage       - Compressed kernel image (arch/i386/boot/bzImage)
  install       - Install kernel using
                   (your) ~/bin/installkernel or
                   (distribution) /sbin/installkernel or
                   install to $(INSTALL_PATH) and run lilo
  bzdisk       - Create a boot floppy in /dev/fd0
  fdimage      - Create a boot floppy image

  make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
  make O=dir [targets] Locate all output files in "dir", including .config
  make C=1   [targets] Check all c source with checker tool

Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
hostname linux-2.6.3-gentoo-r2 #

It sounds like it could be either bad hardware or software


Verwijderd

Topicstarter
smokalot schreef op 26 februari 2004 @ 15:24:
Wat je gedaan hebt is goed, je doet alleen het hele kernel compilen in /tmp, wat ongebruikelijk is. Normaal gesproken staan je kernel sources in /usr/src/linux-versienummer, en maak je een symbolic link /usr/src/linux die naar je huidige versie wijst. Maar kan geen kwaad om t op jouw manier te doen (totdat je probeert externe programmaas tegen jouw kernel te compileren).

mkinitrd gebruik je niet om een kernel te laden, maar om een initrd (initial ramdrive) te maken, een bestand, waar je een filesystem op maakt, waar je bv modules voor je kernel op kunt zetten. Sommige distros gebruiken het op hun generieke kernel, zodat ze niet alle IDE/SCSI drivers in de kernel hoeven te bouwen, maar zetten ze in de initrd. Op het gewone filesystem zetten werkt niet, want je hebt juist die drivers nodig om dat te kunnen doen.

De initrd wordt geladen vlak na de kernel.

Als je zelf een kernel compileert is het bijna nooit nodig om een initrd te maken.

Wat je wel nodig hebt is grub of lilo, dat zijn bootloaders die kernels kunnen laden.
ik heb grub al installed... maar ik heb dus een /boot/initrd die verwijst naar mijn oude kernel 2.4.21-192-default zou dat nog een enig verschil maken?

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 19-02 14:54

RvdH

Uitvinder van RickRAID

Verwijderd schreef op 26 februari 2004 @ 16:44:
[...]


ik heb grub al installed... maar ik heb dus een /boot/initrd die verwijst naar mijn oude kernel 2.4.21-192-default zou dat nog een enig verschil maken?
Als je die configuratie niet aan wilt passen wel.

Wat je gedaan hebt is niet zo verstandig, je hebt de oude kernel verwijderd en wilt hem vervangen. Het is beter om de oude kernel te bewaren voor het geval de nieuwe niet wilt opstarten.

initrd hoef je niet te gebruiken als je de support voor je harde schijf/controller in de kernel hebt gebakken in plaats van als module. Heb je dat wel, dan moet je het of aanpassen in de kernel configuratie of je leest de manual page van mkinitrd om te zien hoe je een initrd maakt.

  • Warbringer
  • Registratie: Oktober 1999
  • Laatst online: 11:58
moet hij niet nog zijn lilo.conf aanpassen en in ieder geval een keer lilo uitvoeren?

I want to live forever, so far.. so good.


  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Warbringer schreef op 26 februari 2004 @ 17:56:
moet hij niet nog zijn lilo.conf aanpassen en in ieder geval een keer lilo uitvoeren?
Nee, hij gebruikt nl. grub. Grub hoef je niet te runnen nadat je de configuratie gedraaid hebt, wat bij lilo wel moet. grub.conf (meestal in /boot/grub/grub.conf editen is wel nodig.

It sounds like it could be either bad hardware or software


  • vliegnerd
  • Registratie: Augustus 2003
  • Laatst online: 17:13

vliegnerd

Nintendo fan.

Nee, hij gebruikt nl. grub. Grub hoef je niet te runnen nadat je de configuratie gedraaid hebt, wat bij lilo wel moet. grub.conf (meestal in /boot/grub/grub.conf editen is wel nodig.
In mijn geval [Debian overigens] gaat het om /boot/grub/menu.lst

4,8kW ZO-NW PVOutput 8x300Wp ZO 12 graden. 8x300Wp NW 12 graden.


Verwijderd

Topicstarter
@Rick
De conclusie van dat m'n oude kernel is verwijderd is onjuist ik heb alleen de symbolic links verwijderd die verwijzen naar m'n oude kernel; grub used inderdaad menu.lst maar als het goed is hoef je die niet aan te passen tenzij je een configuratie wilt draaien met 2 kernels.

@others
wat ik gewoon wil weten is als ik een module configuratie heb gedaan dat ik dan ook een mkinitrd moet gaan maken.

ik las ergens iets op een linux ondersteuningspagina iets van /sbin/mkinitrd /boot/initrd-<kernel version> <kernel version>

<kernel version = 2.6.3>

maar dit werkt dus niet, ik raak nu een beetje verward of ik dit nu wel of niet moet gaan uitvoeren om mijn kernel juist te laten draaien.

Ik heb het nu zo gedaan:
rm -rf initrd
/sbin/mkinitrd

nu maakt ie wel een initrd aan voor 2.6.3 maar als ik nu reboot draait ie wel, maar krijg geen splash screen en ik kan niet meer via ctrl+alt+F2 in de shell komen.

[ Voor 17% gewijzigd door Verwijderd op 27-02-2004 12:10 ]


  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Verwijderd schreef op 27 februari 2004 @ 09:43:
@Rick
De conclusie van dat m'n oude kernel is verwijderd is onjuist ik heb alleen de symbolic links verwijderd die verwijzen naar m'n oude kernel; grub used inderdaad menu.lst maar als het goed is hoef je die niet aan te passen tenzij je een configuratie wilt draaien met 2 kernels.

@others
wat ik gewoon wil weten is als ik een module configuratie heb gedaan dat ik dan ook een mkinitrd moet gaan maken.

ik las ergens iets op een linux ondersteuningspagina iets van /sbin/mkinitrd /boot/initrd-<kernel version> <kernel version>

<kernel version = 2.6.3>

maar dit werkt dus niet, ik raak nu een beetje verward of ik dit nu wel of niet moet gaan uitvoeren om mijn kernel juist te laten draaien.

Ik heb het nu zo gedaan:
rm -rf initrd
/sbin/mkinitrd

nu maakt ie wel een initrd aan voor 2.6.3 maar als ik nu reboot draait ie wel, maar krijg geen splash screen en ik kan niet meer via ctrl+alt+F2 in de shell komen.
De vraag of je een initrd nodig hebt is vrij simpel: wat wil je erin zetten? Als je alle drivers om je rootfs te benaderen in je kernel hebt zitten hoeven die modules er dus niet in te zitten, dus daar hoef je m niet voor te gebruiken.

Modules voor je netwerkkaart hoef je pas te gebruiken nadat je rootfs is gemount, en dan kun je ook gewoon bij je /lib/modules, dus die hoeven ook niet in de initrd.

Als je bootsplash wilt gebruiken moet je echter wel een initrd gebruiken, daar worden de plaatjes in getoond, al voordat je rootfs gemount wordt. Als t goed is kun je daar gewoon je oude initrd voor gebruiken.

It sounds like it could be either bad hardware or software


  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 28-01 18:26
Tip: bewaar ook je oude kernel, en voeg die toe als "Linux.old" of zo in je bootloader. Mocht je nieuwe niet werken (bijvoorbeeld omdat je je filesystemsupport bent vergeten), dan kan je toch nog opstarten zonder bootcd...
Pagina: 1