Kernel updateForum: HD Install Topic: Kernel update started by: axel Posted by axel on April 04 2006,15:26
I installed dsl on my hard disk and tried to compile the newest kernel on my own. These are the steps that i have followed. However i get the error you can see. Any ideas on how to solve it? 1) Install gcc1.dsl 2) Install kernelsource.dsl. This will create /usr/src file tree. 3) Download linux-2.4.31.tar.gz and linux-2.4.31.tar.gz.md5.txt 4) Check sum: #md5sum -c linux-2.4.31.tar.gz.md5.txt 5) Install tcltk8.3.dsl in order make xconfig to work. 6) Download dsl.config 7) Run #make xconfig and load dsl.config file 8) Do the appropriate changes. Save the configuration to a config file for further use. Press save and exit. 9) Run #make dep clean 10) Run #make bzImage
Posted by axel on April 04 2006,17:44
SolvedThe problem occured because i hadn't create a swap space and gcc run out of memory. An easy way to create a swap file in /tmp is the following: dd if=/dev/zero of=/tmp/swap bs=1024k count=64 mkswap /tmp/swap swapon /tmp/swap This creates a 64 MB swap file in the tmp directory. The last command has to be run in every boot. Posted by axel on April 04 2006,19:17
Compiled continued but ended again with the following error. Any solution for this? make[2]: Leaving directory `/usr/src/linux-2.4.31/arch/i386/lib' make[1]: Leaving directory `/usr/src/linux-2.4.31/arch/i386/lib' ld -m elf_i386 -T /usr/src/linux-2.4.31/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \ --start-group \ arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \ drivers/acpi/acpi.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/char/drm/drm.o drivers/net/fc/fc.o drivers/net/tokenring/tr.o drivers/ide/idedriver.o drivers/scsi/scsidrv.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/video/video.o drivers/media/media.o drivers/md/mddev.o crypto/crypto.o \ net/network.o \ /usr/src/linux-2.4.31/arch/i386/lib/lib.a /usr/src/linux-2.4.31/lib/lib.a /usr/src/linux-2.4.31/arch/i386/lib/lib.a \ --end-group \ -o vmlinux arch/i386/kernel/head.o(.text+0x18d): In function `is386': : undefined reference to `start_kernel' init/do_mounts.o(.text+0xd2): In function `do_linuxrc': : undefined reference to `envp_init' arch/i386/kernel/kernel.o(.text.init+0x1c69): In function `check_cx686_slop': : undefined reference to `calibrate_delay' arch/i386/kernel/kernel.o(.text.init+0x1c73): In function `check_cx686_slop': : undefined reference to `loops_per_jiffy' arch/i386/kernel/kernel.o(.text.init+0x2a22): In function `identify_cpu': : undefined reference to `loops_per_jiffy' kernel/kernel.o(.text+0x10b6): In function `reparent_to_init': : undefined reference to `child_reaper' kernel/kernel.o(.text+0x10c1): In function `reparent_to_init': : undefined reference to `child_reaper' kernel/kernel.o(.text+0x573b): In function `exit_notify': : undefined reference to `child_reaper' kernel/kernel.o(.text.init+0x3a): In function `init_idle': : undefined reference to `wait_init_idle' kernel/kernel.o(__ksymtab+0xbd8): undefined reference to `loops_per_jiffy' make: *** [vmlinux] Error 1 Posted by cbagger01 on April 05 2006,04:20
Did you install gnu-utils.dsl or choose "Upgrade to GNU Utilities"? Maybe the stripped down Busybox commands are giving you problems.
Posted by axel on April 05 2006,09:46
I tried to use the newest vanilla kernel 2.4.32 from kernel.org. #make bzImage went all the way right but then a problem with gzip occured while i was doing #make modules. gzip missed the -n parameter. I installed gnu-utils and right now #make modules is running (till the next problem...).
Posted by axel on April 05 2006,20:34
#make modules completed ok and i have have a new kernel image, lets say vmlinuz-2.4.32 However i don't know how to create minirt32.gz in order to use it in the initrd line on grub's menu.lst file in order to boot with the new kernel... Edit: In which packet i can find mkinitrd or mkbootdisk utility? Posted by axel on April 06 2006,20:01
I created a boot diskette with lilo in order to boot with the new 2.4.32 kernel.dsl@0[dsl]$ uname -a Linux box 2.4.32 #5 Wed Apr 5 22:46:19 EDT 2006 i586 GNU/Linux However this isn't the best solution since it takes some time to load the kernel from the diskette. Moreover i found that mkinitrd is included on initrd-tools which is available through apt-get. However i didn't manage to create minirt32.gz which i need to use with grub. Does anyone know how to do this? I can't believe that noone has tried this in here... |