I am new to kernel recompilation and building kernels..

Can anyone explain difference between the kernel types smp, non-smp, huge, generic.. How can we identify the type of kernel.. How they are categorize? I am using below kernels and recompiled and loading externel modules also.. but it wasnt successful..

kernel-source-_smp-noarch-2
kernel-modules-
kernel-headers-_smp-x86

Here the source kernel and module kernel are type of smp ? so should i use module kernel with smp type?

Please explain me.. I am confusing.. I cant find where i did mistake?

Thanks in advance

Dani AI

Generated

Short, practical primer for the thread: "SMP" means the kernel was built with symmetric‑multiprocessing support (multiple CPUs/cores); a "non‑SMP" or UP kernel is optimized for a single CPU. Names like "generic", "server", "huge" are distro packaging labels that describe different build configurations (more drivers enabled, different default options, etc.) and vary by distribution—so their exact meaning must be checked in the package metadata or the kernel config. Kernel source packages may be marked as architecture‑independent ("noarch") while the runtime kernel and its modules must match the machine architecture and the exact kernel version string. In this thread reported mixed flavors and module load failures; ’s suggestion to check the running kernel identity and ’s note about hardware/firmware are both on point.

Quick commands that reveal the important facts (version, arch, SMP flag, module errors):

uname -r
uname -m

grep CONFIG_SMP /boot/config-$(uname -r) 2>/dev/null || zcat /proc/config.gz 2>/dev/null | grep CONFIG_SMP

modinfo <module-name>
dmesg | tail -n 50

Checklist to troubleshoot module-load failures:

  • Ensure the module was built against the exact running kernel headers/source (same full version string and same packaging flavor).
  • Verify /lib/modules/$(uname -r) exists and its build symlink points to the matching kernel source tree (headers).
  • Rebuild the module against that tree, run depmod -a, then load with modprobe -v and watch dmesg for errors.
  • Interpret common messages: "Invalid module format" → architecture or version mismatch; "Unknown symbol" → config/API mismatch.
  • Remember firmware: some drivers need firmware blobs in /lib/firmware; missing firmware shows in dmesg.

Summary: module compatibility depends on exact version, architecture and kernel CONFIG (SMP vs UP and other options). Verifying those four items—running version, arch, CONFIG_SMP, and the module/dmesg output—will usually point to the correct fix.

Recommended Answers

All 4 Replies

I am new to kernel recompilation and building kernels..

Can anyone explain difference between the kernel types smp, non-smp, huge, generic.. How can we identify the type of kernel.. How they are categorize? I am using below kernels and recompiled and loading externel modules also.. but it wasnt successful..

kernel-source-_smp-noarch-2
kernel-modules-
kernel-headers-_smp-x86

Here the source kernel and module kernel are type of smp ? so should i use module kernel with smp type?

Please explain me.. I am confusing.. I cant find where i did mistake?

Thanks in advance

here is the key...

uname -prona
(Here you can see the entire info about your kernel ,and its arch!)

noarch-is no architecture where it shows that it is not compatible to run most of the packages or services.

kernel also depends on the firmware/hardware u r using...so just like to know what hardware. Also like to know r u going to develop this kernel for any cluster related applications?

what is Non-kernel Components?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.