Weird kernel config snafu

Recently configured a new 2.6.20 kernel and found that sound for Chromium B.S.U. no longer worked. The weird part was I couldn’t find any other applications that were affected. Chromium is the only game I have that uses OpenAL, so the kernel option I missed probably broke it.

ebrake@laptop /boot $ diff -u ./config-2.6.20.3 ./config-2.6.20-gentoo-r4.old |grep SND
CONFIG_SND=y
CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
+CONFIG_SND_PCM=m
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_PCM_OSS is not set
CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_RTCTIMER=m
+CONFIG_SND_RTCTIMER=y
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
-# CONFIG_SND_VERBOSE_PROCFS is not set
+CONFIG_SND_VERBOSE_PROCFS=y

Normally, I compile most of ALSA into the kernel including most options for OSS emulation. Here is the pertinent part of the working config.

CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_AC97_CODEC=m

Linux Kernel in a Nutshell: A Desktop Quick Reference

When Greg K-H announced his new book I was intrigued that he was distributing a downloadable copy for free. Even impressed that O’Reilly was allowing it to happen. The book offers benefits for both the “Kernel god” hacker and the greenest “What is a kernel?” newcomer. For the advanced user, parts two and three contain the config recipes and kernel reference. Both of which offer fast reminders on performing certain tasks without digging through the complete kernel docs looking for the one detail needed. No one should complain that the book is too light-weight for advanced users because the book’s purpose was never to copy the kernel documentation word for word. Part One would be a greate help to anyone new to compiling their own custom kernel. Part one explains the neccessary components as well as the locations where they can be downloaded. The rest of part one describes the configure, build, install, boot, upgrade, and repeat cycle.

For Gentoo users in particular, LKN offers a way to break using Genkernel as a crutch. When I switched to using Gentoo I didn’t know anything about compiling my own kernel. So in that way it allows new users to create working kernels even if it compiles every module known to man and beast. If genkernel all were level zero “OMG IM A N00B” then genkernel --menuconfig all would be “intermediate skills but still rides with training wheels on”. A tip to use while using the standard make commands is to make defconfig before “menuconfig”. Defconfig creates a sane config with default options chosen by the maintainer of that architecture. Beware though that the file still needs to be customized since there is a lot of hardware not enabled.

menuconfig vs. gconfig

I don’t recommend using make gconfig to create a linux kernel config file. So far I have attempted to use the interface twice and both times I failed to enable some important options. This doesn’t happen when I configure using menuconfig. I think my eyes cross while using the GUI interface and I end up rebooting with no support for my wireless net. :( (O’ Noes! I killed it.)

kismet signal levels

kismet signal powerkismet card powerKernel 2.6.20 introduced a nice update for the ipw2200 driver. Previously the driver didn’t report power levels for wireless networks. This would show up when sniffing with Kismet, while viewing detailed info about a network. Using the signal levels it’s possible to home-in on the access point’s location. Sitting inside my house my connection with the home wap is about 44 decibels and the worst reading has been about 80 while sniffing distant networks. The signal reading also gives a clear indication whether it’s to worth it to attempt to connect.

Kernel config

CONFIG_IPW2200=m
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
# CONFIG_IPW2200_QOS is not set
# CONFIG_IPW2200_DEBUG is not set

documenting…

Documentation is often the most neglected part of a project because it’s easy to “just to do it” and jump to the next thing. It’ll come back to bite me though if I ever had to restore the laptop from scratch. So far I’ve got a seed started on describing the config of my laptop. I’m trying not to duplicate info found elsewhere. I’d rather link to more extensive documentation and use this page to document changes specific to my laptop.

I’d also like to say the auto-thumbnailing function when I upload a image to WordPress is wonderful. I’m used to doing manually. I wish I switched from blogger a long time ago.

I am alive

New wordpress blog installed. This website has been dead for a year or more and I finally decided to start using it again. After all, I was paying for it to be idle. To prevent this website from going dead again using it for something useful might help. The previous blogger blog was only a place for rants and little else. On WordPress I want to document problems/issues and their solutions while using Gentoo Linux, my favorite distro. With the occassional rant obviously. :) After some time, I want this website to be where I search “how did I fix that?” when the same thing happens six months later. WordPress is a nice piece of software, thanks.