[debian] custum kernel *met* cramfs initrd

Pagina: 1
Acties:

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Hoi

Als je een kernel bakt op debian met de debian sources en je kiest met make-kpkg voor "--initrd" dan wordt er een cramfs image gemaakt, dat werkt goed.
Als je uit een vanilla tree een kernel wilt maken lukt dit niet.
Na zeer veel zoeken kom ik er niet achter hoe die wel moet.
Het zou ook kunnen met een romfs maar dat wil ik niet.
Er is iets anders in de debian tree waardoor die wel van een cramfs image wil booten - maar wat?
PS ik heb al een diff -ru gedaan van een debian tree en een vanilla tree.
Dan zitten er wel verschillen maar als ik die vervolgens toepas op een vanilla tree dan werkt het nog steeds niet ("cramfs - wrong magic").
Ik wil een 2.4.25 kernel deb maken met cramfs initrd, ik hoef niet alle debian dingen maar wel een dat cramfs image...

In deze thread wordt gezegd dat het aan init/do_mounts.c zou liggen. Ik heb de sources 2.4.18 t/m 2.4.25 gedownload en sinds 2.4.22 zit daar support voor cramfs in.
Dus in theorie zou je vanaf 2.4.22 dus van een cramfs image kunnen booten; niet dus. Misschien dat ik Herbert Xu maar eens moet gaan mailen.

Verwijderd

/sbin/mkinitrd gebruiken voor aanmaken van je initrd image, die schrijven naar /boot, de locatie van de image aangeven in je GRUB config file (/etc/grub.conf). Da's alles...

edit:
Je geeft niet exact aan wat je wel/niet doet of denkt te moeten doen, misschien kun je dat nog ff toevoegen?

[ Voor 29% gewijzigd door Verwijderd op 23-02-2004 23:28 ]


  • usr-local-dick
  • Registratie: September 2001
  • Niet online
edit:
Je geeft niet exact aan wat je wel/niet doet of denkt te moeten doen, misschien kun je dat nog ff toevoegen?
Ik wil een .deb maken van een vanilla kernel. Als je die met dpkg installeert dan wodt automagisch (a.d.h. /etc/mkinitrd/mkinitrd.conf dus) een ramdisk image in /boot gezet.
Dit werkt wel met een kernel die gebakken is uit een debian kerneltree, maar niet met een kernel gebakken uit een vanilla kerneltree.
In de debian sourcetree schijnt een cramfs-patch verwerkt te zitten.
Die patch is nergens bekend, of op zijn minst niet gedocumenteerd.
Ik heb wel iets gevonden wat op die patch lijkt maar die werkt niet.
De thread die ik noemde heet niet voor niets The lost cramfs patch :)

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

:D

Doe eens een apt-cache show kernel-patch-debian-2.4.24
Als je die apt-get krijg je een aantal patches in /usr/src en daar staat er eentje tussen die op cramfs.c wat werk verricht, deze moet je er dus ff tussenuit halen :
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
diff -urN kernel-source-2.4.21-2.4.21.orig/fs/cramfs/inode.c kernel-source-2.4.21-2.4.21/fs/cramfs/inode.c
--- kernel-source-2.4.21-2.4.21.orig/fs/cramfs/inode.c  2002-08-03 10:39:45.000000000 +1000
+++ kernel-source-2.4.21-2.4.21/fs/cramfs/inode.c       2002-08-30 20:40:16.000000000 +1000
@@ -54,6 +54,9 @@
                inode->i_blksize = PAGE_CACHE_SIZE;
                inode->i_gid = cramfs_inode->gid;
                inode->i_ino = CRAMINO(cramfs_inode);
+               inode->i_atime = 0;
+               inode->i_mtime = 0;
+               inode->i_ctime = 0;
                /* inode->i_nlink is left 1 - arguably wrong for directories,
                   but it's the best we can do without reading the directory
                   contents.  1 yields the right result in GNU find, even

Misschien zitten er nog meer patches in die je nodig hebt om cramfs te gebruiken, maar dit is de enige die de daadwerkelijke driver van cramfs aanpast.

God, root, what is difference? | Talga Vassternich | IBM zuigt