[SOLVED] Trying to build smp kernel - but hitting brick wall
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Trying to build smp kernel - but hitting brick wall
I have been building generic kernels for a while and that is working fine. Decided to try the smp kernel since I have an 8 core processor and wanted to give it a go. Here's what I have done to try to accomplish that.
1) In a directory copied over the kernel-source.SlackBuild, kernel source .xz file, within this directory created the directory "kernel-configs" and copied the smp config file in there. Run the slackbuild and it produces kernel-source-5.14.2_skernel-modules.SlackBuildmp-noarch-1.txz in the /tmp directory. Install that and it deposits a linux-5.14.2 directory in /usr/src. Check the .config file therein and it is identical to the smp config file.
2) Run kernel-generic.SlackBuild in /usr/src and it produces kernel-generic-smp-5.14.2_smp-i686-1.txz in /tmp. Installing that puts a vmlinuz-generic-smp -> vmlinuz-generic-smp-5.14.2.smp in /boot along with link to System.map, etc..
3) Run kernel-headers.SlackBuild in /usr/src and that creates kernel-headers-5.14.2_smp-x86-1.txz in /tmp which I install.
4) Run kernel-modules.SlackBuild in /usr/src and it creates kernel-modules-smp-5.14.2_smp-i686-1.txz which is installed.
Go to /boot and run "mkinitrd -c -R -k vmlinuz-generic-smp-5.14.2-smp -m ext4" and the initrd files are created.
Run grub-mkconfig and the new kernel is picked up properly.
Reboot and end up with a kernel panic -
"modprobe binfmt-464c cannot be processed, kmod busy with 50 threads for more than 5 seconds."
"Kernel panic - not syncing: no working init found"
I've tried this several times with the same result. At this point I can't see what I'm doing wrong as all of the Slackbuilds run fine and everything looks great until I boot. Can someone who runs the smp kernel please have a look at what I have done and see where I messed up. Much appreciated.
1) Download and unpack source and copy the generic config to /usr/src/linux/.config, review the settings with "make config", "make menuconfig", or "make xconfig", save it and then "make && make modules_install" and copy the required files to /boot and run mkinitrd.
If you don't encrypt your root filesystem, you could do this...
1) Same as above but copy the config from the Huge-SMP kernel, use whichever config application you prefer to pare down what you don't need (leaving your preferred filesystem support as "built in") and complete the build from there with no initrd since in that case one won't be needed.
There are good instructions online and in man pages for Slackware-specific vanilla kernel building if you're unfamiliar with exact commands and desirable switches.
I have been building generic kernels for a while and that is working fine. Decided to try the smp kernel since I have an 8 core processor and wanted to give it a go.
...
kernel-generic-smp-5.14.2_smp-i686-1.txz in /tmp.
Your signature states you are running Slackware64-current. You run Slackware on an 8-core machine. I assume that CPU is 64-bit capable.
Then why do you want to compile a 32bit kernel? Is this for a 32-bit Slackware? A 32-bit kernel won't work with a 64-bit userland.
The "SMP" tag is just a designation for 32bit Slackware kernels, to show the difference with the non-SMP kernels that you can also choose, because some very old computers need a 32-bit non-SMP kernel to boot.
All 64-bit Slackware kernels support multi-core.
Your signature states you are running Slackware64-current. You run Slackware on an 8-core machine. I assume that CPU is 64-bit capable.
Then why do you want to compile a 32bit kernel? Is this for a 32-bit Slackware? A 32-bit kernel won't work with a 64-bit userland.
The "SMP" tag is just a designation for 32bit Slackware kernels, to show the difference with the non-SMP kernels that you can also choose, because some very old computers need a 32-bit non-SMP kernel to boot.
All 64-bit Slackware kernels support multi-core.
Hi and thanks for the response. Yes I am running a 64 bit system. I don't want a 32 bit kernel. Is smp ONLY for 32 bit systems??? If so then I clearly skimmed over that bit when reading about the builds.
To the best I have so far been able to gather, really old hardware cannot run SMP, and for such, you want to run a kernel without an "SMP" tag, which will be a single processing kernel. In my /var/log/packages/ I have for each type (huge, generic) of kernel package installed, two installed packages: one with the SMP tag, and one without.
Assuming I have properly installed slackware 15.0, on my 64-bit machine, this would mean that I should use the installed generic kernel with the SMP tag, and I will have multiprocessing, for which my architecture has been designed.
Am I still missing something? How can I confirm I did not somehow install 32-bit slackware by mistake?
Or am I correct - that SMP is a useful tag for folks with 32bit, but does not mean "not for 64bit ."
To the best I have so far been able to gather, really old hardware cannot run SMP, and for such, you want to run a kernel without an "SMP" tag, which will be a single processing kernel. In my /var/log/packages/ I have for each type (huge, generic) of kernel package installed, two installed packages: one with the SMP tag, and one without.
Assuming I have properly installed slackware 15.0, on my 64-bit machine, this would mean that I should use the installed generic kernel with the SMP tag, and I will have multiprocessing, for which my architecture has been designed.
Am I still missing something? How can I confirm I did not somehow install 32-bit slackware by mistake?
Or am I correct - that SMP is a useful tag for folks with 32bit, but does not mean "not for 64bit ."
The 64bit kernels are SMP by default, and there are NO non-SMP kernels shipped by Slackware 64bit.
However, on 32bit Slackware exists a non-SMP variant of kernels, for the users with very old hardware, having i586 CPUs.
That's WHY there is a distinct SMP kernel for the Slackware 32bit.
Last edited by LuckyCyborg; 06-23-2022 at 11:24 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.