Kernel update


Forum: 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
Code Sample

root@box:/usr/src/linux-2.4.31# make bzImage
gcc -Wall -Wstrict-prototypes -02 -fomit-frame-pointer -o scripts/split-include
scripts/split-include.c
scripts/split-include include/linux/autoconf.h include/config
gcc -D -I/usr/src/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i586    -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
gcc: Internal error: Killed (program cc1)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see <URL:file:///usr/share/doc/gcc-3.3/README.Bugs>.

{standard input}: Assembler messages:
{standard input}:0: Warning: end of file not at end of line; newline inserted
make: *** [init/main.o] Error 1
{standard input}:990: Error: no such instruction: `c'

Posted by axel on April 04 2006,17:44
Solved

The 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...

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.