Or, "ClearOS comes with every wifi module but the one I need."
Maybe you need to do a little tweaking to the stock ClearOS kernel, or as is my case compile a hardware module that didn't come as part of the default distribution.
The first step is to install a build environment so we can compile a kernel and its modules from source code:
yum --enablerepo=clearos-developer,clearos-epel install clearos-devel
Now you'll need the kernel sources. You COULD take this opportunity to update the kernel but you will run the risk of also having to update the module tools, iptables, udev, glibc just to name a few. Clearos-devel pulls in the kernel-devel package which is where the complete source always used to come from. For some reason, it's not there anymore and we have to jump through a couple hoops to get the matching sources for the kernel we're currently running:
rpm2cpio kernel-2.6.32-279.2.1.v6.src.rpm > kernel.cpio
cpio -idmv < kernel.cpio
cp linux-2.6.32-279.2.1.el6.tar.bz2 /usr/src/
tar xjf linux-2.6.32-279.2.1.el6.tar.bz2
cd to the new linux sources directory and make menuconfig. Since we're rolling our own, we can't really rely on the initramfs to help us boot. Other than the modifications you need to make, do at least the following:
1) Select "Enable loadable module support", then "Module signature verification (EXPERIMENTAL)". Disable it.
2) Then go back to the main menu, select "Cryptographic API" then "In-kernel signature checker (EXPERIMENTAL)" and disable that one too.
This will save you from a nasty bug down the road
Run lspci in another console and determine what modules you need to compile in for your SATA/PATA/ATA controller, Build these modules INTO the kernel (not as external modules):
- Your disk controller module(s)
- Multiple devices driver support (RAID and LVM)
- Device mapper support
- Wired network devices (optional but I'm fond of guarantees)
Now you can run make; make modules_install. There are something like 1,900 external modules in the default .config; go make yourself a cup of tea or dozen.
Copy the new bzImage to /boot somewhere and alter your /boot/grub/grub.conf to have two entries; copy and paste the original entry then modify the first one to boot your new kernel. Keep the second one in case you buggered up and need to go back and fix it later (easily accomplished with a livecd anyway but less of a pain in the arse)
You can take this opportunity to remove the pretty but uninformative (worse than useless) bootsplash by deleting everything on the kernel line after rd_NO_DM.
Reboot and try on your shiny new kernel.