LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Trying to build smp kernel - but hitting brick wall (https://www.linuxquestions.org/questions/slackware-14/trying-to-build-smp-kernel-but-hitting-brick-wall-4175700490/)

3rensho 09-11-2021 09:47 AM

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.

enorbet 09-11-2021 10:47 AM

Please allow me to suggest to 2 possible options.

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.

Windu 09-11-2021 11:05 AM

Quote:

Originally Posted by 3rensho (Post 6283296)
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.

3rensho 09-11-2021 11:26 AM

Quote:

Originally Posted by Windu (Post 6283313)
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.

3rensho 09-11-2021 11:37 AM

OMG!!! Just did some further reading confirming SMP is for 32 bit. Off to quaff a few bottles of local brewski's. Thanks for above responses.

samtsco 06-23-2022 11:11 AM

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

LuckyCyborg 06-23-2022 11:21 AM

Quote:

Originally Posted by samtsco (Post 6362980)
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.

samtsco 06-25-2022 05:32 AM

Thanks, LuckyCyborg, for clearly stating what I meant to say.

Even though I was wrong about what I had, and about what it meant.

You see, I have now discovered I have installed slack32 in fact.


All times are GMT -5. The time now is 12:45 AM.