> Hi, > > I've made some tests this night to reduce the size of 2.6 kernel. > I've modularized almost all that can be (except IDE, mouse and > keyboard). > vmlinuz is now a bit less than 1.3 Megabytes. > Compiling ext2 as a module would save us about 70 more kilobytes. > ext2 module is 79k, cramfs takes 13k when builtin. > A cramfs initrd is slightly larger than a ext2 initrd (about 2k). > > So I patched mkinitrd and make-initrd to allow to build cramfs initrd. > (patchs included in this mail). > > For now, the kernel can't load directly cramfs initrd (because the code > doesn't recognize cramfs magic number), but it can load gzipped cramfs > initrd (because the code can recognize a gzip file). > Well, a patch has been made (by Debian ?) and is included in Debian > kernel, but we don't care much since we can (theorically) load gzip > cramfs. > (I've extracted the patch from Debian's messy patch, it is > included too in this mail).
and you dropped some cramfs changes: ----------------------- cut here --------------------------------------------------- --- kernel-source-2.6.0-test9-2.6.0-test9.orig/fs/cramfs/inode.c +++ kernel-source-2.6.0-test9-2.6.0-test9/fs/cramfs/inode.c @@ -43,7 +43,7 @@ static struct inode *get_cramfs_inode(struct super_block *sb, struct cramfs_inode * cramfs_inode) { struct inode * inode = new_inode(sb); - static struct timespec zerotime; + const struct timespec zerotime = { 0, 0 }; if (inode) { inode->i_mode = cramfs_inode->mode; ---------------------- cut here ---------------------------------------------- > > But when I try to boot with a gzipped cramfs initrd, the kernel > can gunzip the initrd but fails to mount it as ramfs, > sys_mount("/dev/root.old","/root","cramfs", ...) exits with EINVAL code. > have you tried adding "--nocompress" cramfs is already compressed and adding --nocompress increases the size with ~2k i've tried your initrd changes and all seemd fine until it actually tried to mount it :-) i've forgotten to compile in cramfs :-) so let see what happens when the recompile is ready > Strangly enough, I can mount the initrd correctly once the kernel is > booted up (in this case, I use a ext2 initrd, ext2 and cramfs are > builtin). > > Should I ask about it on lkml ? PS the old modular ide is broken even if everything is compiled in ( see "buffer layer errot....." on lkml ) fix & new patch uploaded, but i still get a oopses at cdrom initialization kobject_register returned -17 ------------------------------------------------ Call Trace: [<c01a0fcc>] [<c01e9200>] [<c01e9580>] [<c0215559>] [<c01ca008>] [<c0221493>] [<c033e67d>] [<c01050b4>] [<c0105082>] [<c01091ed>] Warning (Oops_read): Code line not seen, dumping what data is available Trace; c01a0fcc <kobject_register+37/43> Trace; c01e9200 <bus_add_driver+37/80> Trace; c01e9580 <driver_register+2f/31> Trace; c0215559 <ide_register_driver+fc/104> Trace; c01ca008 <pnp_register_driver+2a/5a> Trace; c0221493 <pnpide_init_module+a/e> Trace; c033e67d <do_initcalls+35/87> Trace; c01050b4 <init+32/10e> Trace; c0105082 <init+0/10e> Trace; c01091ed <kernel_thread_helper+5/b> ----------------------------------------------------------- that is with built in ide so i droped it for later investigation svetljo -- NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien... Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService Jetzt kostenlos anmelden unter http://www.gmx.net +++ GMX - die erste Adresse für Mail, Message, More! +++