User Tools

Site Tools


kernel_compiling

This is an old revision of the document!


https://www.slax.org/internals.php


There are three things needed to upgrade kernel:

1) replace vmlinuz 2) replace kernel modules in initramfs image 3) replace kernel modules in 01-core.sb file

The first task is simple Second task requires you to be able to unpack and extract the contents of initrfs.img file, and then pack it back Maybe this generic howto could work: https://access.redhat.com/solutions/24029 Slax uses xz compression for initramfs if I remember correctly.

Third task requires you to be able to unsquashfs the .sb file and then mksquashfs it back You will need unsquashfs and mksquashfs commands (or sb2dir and dir2sb commands from within Slax)

Tomas M


xz -dc < /boot/initrd-$(uname -r).img | cpio -idmv

Here is what i use to repack an xz initramfs for syslinux 4.06 (live boot)

ramfs/img
#!/bin/bash
 
find . 2>/dev/null | cpio --create --format='newc' > ../initrfs.img.cpio
xz --check=crc32 --lzma2=,dict=2048kiB ../initrfs.img.cpio
mv ../initrfs.img.cpio.xz ../initrfs.img

The kernel source tree is specified through the KERNEL_TREE environment variable. It defaults to /usr/src/linux. So either export this variable in the terminal in which you make the kernel:

export KERNEL_TREE=/usr/src/linux-3.2.61

or define a symlink from /usr/src/linux-3.2.61 to /usr/src/linux`:

ln -s /usr/src/linux-3.2.61 /usr/src/linux

Of course, replace /usr/src/linux-3.2.61 with the corresponding kernel source directory.


Quote: Originally Posted by Alien Bob View Post First, make sure that all hardware that you want your kernel to support is connected to the computer and powered on / configured (think of external USB, firewire drives, webcams, headphones etc).

Then, run the following command in your kernel source directory: Code: make localyesconfig That will create a kernel with built-in support for all your hardware and not much more. As a variation which creates modules for your hardware instead of compiling the drivers right into the kernel: Code: make localmodconfig

Eric, thanks so much. In my other tab of my browser this page is open: http://alien.slackbook.org/, Can't believe I am getting a reply from yoda himself within a few minutes of posting, surely the universe is trying to tell me something


https://www.andrews-corner.org/update.html

make -j 32 bzImage modules && \ make -j 32 modules_install && \ cp -v arch/x86/boot/bzImage /boot/vmlinuz-6.1.6-ads


Upgrade Slackware

slackpkg update, slackpkg upgrade aaa_glibc-solibs, slackpkg install-new, slackpkg upgrade-all, slackpkg clean-system,


build old kernel https://www.vinnie.work/blog/2022-05-01-building-to-the-version-generation

Linux is GNU toolchain specific. In older versions of the kernel (before v4.1), there were GCC headers that were version specific (include/linux/compiler-gcc[3-5].h). This means that to build any kernel v4.0 and before you'll need a version of gcc that is version 3.x, 4.x, or 5.x. Earlier versions don't have the headers for 4.x or 5.x so you must use version 3.x. Linux 2.2 and 2.4 are highly recommended to be built with gcc-2.95.

https://docs.slackware.com/howtos:slackware_admin:kernelbuilding

using config: '/proc/config.gz'

* * Compiler is too old. * Your GCC version: 4.8.2 * Minimum GCC version: 5.1.0 * scripts/Kconfig.include:44: Sorry, this compiler is not supported. make[2]: * [localmodconfig] Error 1 make[1]: * [localmodconfig] Error 2 make: * [__sub-make] Error 2

oldcompiler.c
bash-4.2# pwd
/usr/src/linux
 
bash-4.2# ls
linux  linux-3.10.17  linux-4.4.14  linux-5.15.19

GCC 4.8 will not compile linux 5.15.19


kernel_compiling.1703770895.txt.gz · Last modified: 2023/12/28 13:41 by admin