Tiny Core Base > Corepure64

Problems with custom 64-bit kernel

(1/2) > >>

am:
Hi there,

I have a runtime problem just after booting into a custom built 64bit kernel. So far as I can see, busybox/modprobe repeatedly seg faults during boot.

My install is based on a dual (32-/64-bit) kernel, selected via grub. I have a single 32-bit rootfs and separate 32-bit and 64-bit modules. This part all works fine.

I need to make a very minor modification to the kernel configuration. I've successfully built both x86 and x86_64 kernels on x86 and x86_64 variants of Ubuntu using the patched kernel sources and kernel configs from here:

http://www.tinycorelinux.net/5.x/x86/release/src/kernel/

Both x86 and x86_64 kernels both build fine on my two separate Ubuntu hosts using:

$ cd linux-3.8.13-patched
$ cp $PATH_TO/config-3.8.13-tinycore(64) .config
$ make oldconfig
$ make bzImage
$ cp arch/x86/boot/bzImage /media/usb_stick/boot/vmlinuz(64)

Booting the 32-bit kernel is fine. My system runs as expected. However, the 64-bit kernel boots up and hits the busybox/modprobe seg faults shortly and repeatedly, just after udev starts.

I suspect I have something fundamentally wrong with the config and/or build. However, I've tried using the vanilla config-3.8.13-tinycore64 and that also has the exact same behaviour. In a fit of paranoia, I even tried building from the patched 3.8.13 kernel sources, using the vanilla config-3.8.13-tinycore64 using a tinycore64-hosted system to perform the build. It also displays the same busybox/modprobe seg fault behaviour.

Is there some step that I am missing? I realise that major changes to the kernel config require the modules to be recompiled, but since I haven't yet actually changed the kernel config, I expect to avoid this stage :-).
 
Thanks in advance,
Andy

gerald_clark:
You cannot mix 32 bit and 64 bit kernels in the same initrd.
Core does not support dual mode userspace.
Either run corepure64 in a pure 64 bit kernel and userspace
or run the 64bit kernel and initrd with the 32 bit userspace.

am:
Are you sure I can't mix kernels? I am using a similar method as coreplayer2 outlines in this thread:


--- Code: (html5) ---http://forum.tinycorelinux.net/index.php?topic=15889.0
--- End code ---

Essentially, I have separate two separate initrds:

32 bit: rootfs + modules

64 bit: rootfs + modules64

The dual kernel boot seems to all work fine. It only stops working after I've rebuilt and installed the 64-bit kernel.

curaga:
It sounds like you're rebuilding the kernel, but using the repo modules. That will not work due to different compilers - you will also need to build the modules, and then use only those you built.

The two kernels can coexist, as the modules are in a different path.

gerald_clark:
Yes yo can have the two kernels in the same boot device, but they can't share an initrd unless the binaries are 32 bit.  That is how the original 64 bit Core works.
Corepure64  binaries won't run with a 32 bit kernel, so a seperate initrd is needed along with a separate tce directory.

Dual mode systems  ( like CentOS ) use a 64 bit kernel and modules,  32 bit and 64 bit binaries and libraries  are stored in separate directories.

Navigation

[0] Message Index

[#] Next page

Go to full version