General TC > Remasters / Remixes - Unofficial
Need a little help compiling a custom kernel for CorePure64
arisb:
Hi all,
The only drivers I am missing are the IPMI and Infiniband device drivers and I figured I could easily add them to the kernel.
On the wiki I found page with the steps to be taken to create a custom kernel: http://wiki.tinycorelinux.net/wiki:custom_kernel
So I downloaded the linux-3.8.13-patched.txz and the config-3.8.13-tinycore64 files from http://tinycorelinux.net/5.x/x86/release/src/kernel/.
Since the default kernel basically does everything I want it to do, I started "make menuconfig" and loaded the tinycore64 config file.
From there I added the following options:
"Device Drivers > Character Devices > IPMI top-level message handler (and all underlying options from it)
"Device Drivers > Infiniband support > all Mellanox and QLogic options.
Then I saved the settings and compiled the kernel on my system (fedora 19) and replaced the /boot/vmlinuz64 with my newly compiled kernel.
The client machines boot from network using a CentOS PXE server. CorePure64 and Core boot just fine with their default kernels, but not with my custom kernel.
The following is onscreen on the client:
Booting Core 5.3
Running Linux Kernel 3.8.13
Checking boot options... Done
Starting udev daemon for hotplug support... Done
modeprobe: can't change directory to '3.8.13': No such file or directory
modeprobe: can't change directory to '3.8.13': No such file or directory
[1.196091] tsc: Refined TSC clocksource calibration: 3391.742 MHz
[1.196451] Switching to clocksource tsc
And then it stops.
Apparently kernel modules are not that easily added as I initially thought :)
If anyone can give me some help/ advise on this, it would be greatly appreciated.
Juanito:
The tinycore base contains a mixture of drivers compiled into the kernel and drivers compiled as modules - depending on whether you compiled your additional drivers into the kernel or as modules, you will need to replace vmlinuz64 or vmlinuz64 and modules64.gz (rootfs64.gz + modules64.gz = corepure64.gz)
Note also that tinycore uses kernel modules in a non-standard location, so you need to ensure the modules are in the correct place - /usr/local/lib/modules/3.8.13-tinycore64
..and, if possible, I'd recommend that you recompile the kernel using corepure64
arisb:
I have made a bit of progress.
Instead of just loading the configuration file into #make menuconfig I had to run #make oldconfig first.
Now I have compiled the kernel and the kernelmodules on my fedora machine, and copied the newly generated files into corepure64.gz. (with cpio)
Only problem now is that corepure64.gz is about 550MB in size and it still does not boot. It gets loaded but hangs at the message "Booting the Kernel". I think the size of the image is to big to be booted trough PXE. So i am guessing that I should not copy all modules into the image but just the ones I want to add (IPMI, Qlogic and Mellanox) :)
Also My Fedora machine has gcc 4.8.2, my CentOS machine gcc 4.4.2 while CorePure64 has 4.7.2.
So I thought to take your advice and avoid any compatibility issues, I tried to compile everything on CorePure but I keep missing dependencies.
I currently have installed:
cloog.tcz
cmake.tcz
compiletc.tcz
gcc_base-dev.tcz
gcc_libs-dev.tcz
gcc_libs.tcz
gcc.tcz
glibc_add_lib.tcz
glibc_apps.tcz
glibc_base-dev.tcz
glibc_gconv.tcz
glibc_i18n_locale.tcz
gmp.tczmpc.tcz
make.tcz
mpc.tcz
mpfr.tcz
ppl.tcz
tar.tcz
linux-kernel-sources-env.tcz
But it errors that it cant find limits.h, and neither can I. This forum post:http://forum.tinycorelinux.net/index.php/topic,541.0.html suggests only compiletc.tcz is needed.
Juanito:
to compile the kernel on core/corepure64 you need:
--- Code: ---$ tce-load -i compiletc ncurses-dev perl5 bash
--- End code ---
bmarkus:
Better to use -iw instead of -i
Navigation
[0] Message Index
[#] Next page
Go to full version