Wireless and audio drivers break after installing new kernel on Hardy
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
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.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
Wireless and audio drivers break after installing new kernel on Hardy
It was my first time compiling the kernel on a freshly installed Ubuntu Hardy (under windows, with wubi). The wireless and audio drivers were working perfectly fine before the new kernel was installed; and still work if I boot into the older kernel (2.6.24). However if I boot into the new kernel (18.104.22.168), they are disabled (in fact, I cannot even see the wireless configuration in the network setup window). And, of course, I have no clue if any other components might have been broken with the installation of the newer kernel.
Can someone provide some guidance here ? I admit, I am a
Before you compile a kernel you need to configure it to determine what drivers it will include, either built-in or as modules (I prefer the flexibility of having them as modules).
For sound to work you will need the alsa drivers, plus the driver particular to your sound card. In your case the sound card is an Intel 82801H, which uses the snd-intel8x0 driver.
For your new kernel to support your Intel 4965 wireless interface you need the wlwifi driver.
There are different tools for configuring a kernel prior to compiling it. The one I use, run from a command prompt, is < make menuconfig > (with Ubuntu you will probably need to run it as sudo). When using this tool I search for drivers by typing a slash followed by the name of the driver (eg /wlwifi) then pressing the <Enter> key.
Check your documentation for how to configure and compile a Ubuntu kernel and make sure the drivers you need are included.
If the drivers are in the kernel, and the sound and wireless are still not working, there are some command line tools that can help you to track down the problems. (again, you will need to use 'sudo' but I will just provide the commands)
To list all of the modules which are loaded:
To see if a particular module has been loaded, (eg wlwifi):
lsmod | grep wlwifi
to manually load a module (eg snd-intel8x0):
to manually remove a module:
modprobe -r <name_of_module>
To see debugging and error messages provided by the kernel:
Dmesg on its own shows too much, so to show the last ten lines:
dmesg | tail
To see the lines from dmesg which contain a particular word (eg <snd> to see what the kernel has to tell you about the sound system):
dmesg | grep snd
Mmmmm . IMHO Ubuntu ain't the place to try your first (vanilla) kernel compile. I looked at it a couple of years back out of interest, and it was just too much work - mind you, I wanted my normal build; no modules, no initrd.
Have you had a look at this on the wiki ???.
Thanks a tonne for the wonderfully detailed explanation! I intend to compile the kernel all over again later today and will post my experiences here. Stay tuned..
So what did you do ? on what system did you first compile the kernel and what all problems did you face ? Btw, I got the kernel compilation how-to from this site. It worked perfectly for me (just the compilation part ) and I thought I had mastered the kernel!!
Last edited by mapsiddiqui; 07-17-2008 at 01:59 PM.
Reason: Forgot to add signature
It worked perfectly for me (just the compilation part ) and I thought I had mastered the kernel!!
Running a set of scripts is hardly mastering the kernel...
Looks like a significant step was omitted from your how-to; generally you need the config from your current environment as a starting point. See the wiki entry I posted.
Guys, I still haven't gotten over the issue yet. As advised, I started "make menuconfig" and marked all the necessary drivers (wireless, Intel 4965 AGN and ALSA). Though, I couldn't make them compulsory and had to contend with them being compiled as modules. Now when I restart (in 2.6.26), I can see the wireless connection (under network configuration GUI) but it doesnt detect the available networks automatically. I even tried manually adding my wireless network but that wouldn't help either. The problem with audio is somewhat similar; I compiled the kernel with ALSA support (in menuconfig) but when I click on the volume; I get an error message saying " either a device was not found or your soundcard is not configured".
I did check the loaded modules with lsmod; for wireless i could see iwlcore and iwl4965 (not sure of the exact spelling at this time) but still cannot configure the wireless (iwconfig just displays the wireless adapter details and the manual network that I set up).
Thats it folks, I have no clue how to move on. Please helpppp!!!
Now that you've compiled in support for alsa, the first thing you must do is run alsaconf. Let it automatically detect your sound card, and than type alsamixer to set the volume. You can type alsactl store to store the settings for future sessions.
Then again. This is considering you'd use alsa. I'm not sure how it would be different for Ubuntu.
As for your wireless, it sounds like you are somewhat sidestepping the network configuration GUI provided by using a combination of iwconfig/ifconfig and the GUI. Someone more familiar with Ubuntu may direct you better, but there should be a startup script that defines your network settings.. most likely in the place where all your startup scripts are located. In this you can manually add all the information required for your network. For example, in Slackware, the file resides as /etc/rc.d/rc.wireless.conf and contains network connection settings. Perhaps this file exists for Ubuntu?
As some checks, is the wireless detecting anything at all? Is there any way (i.e. lights) that you can check to see if it is being utilized? Perhaps the computer isn't recognizing the hardware properly.
I agree with Syg though about Ubuntu not being a good first place to try a kernel build. Ubuntu seeks to automate processes for the end-user, however building a kernel is far from sticking to automation, and chances are parts of Ubuntu depend on a specific build of a kernel based on Ubuntu's requirements in combination with your own.
Sorry guys for the delayed post; I was hopelessly busy for the past few days. Anyways, I got my audio working (of course, after recompiling the kernel). The missing component was snd_hda_intel module which I figured out from the existing kernel's module list. Now here's the interesting thing; sound works in the new kernel but none of the snd modules show up in lsmod output. I am guessing the reason is that I didn't compile it as a module, rather as a required component and hence I dont see it in the loadable module list.
A small but annoying problem with audio still remains: the touchpad audio controls somehow got associated with the Dummy Mixer (OSS Mixer) which I had compiled alongwith the kernel as a required component because it was present in the existing kernel's module list. Is there a way to reassociate it without having to compile again ?
Now for the wireless; I compiled the 4965 AGN driver as a required module as well. The problem is that it requires some firmware microcode in order to work. Here's the partial dmesg output:
[ 73.866378] firmware: requesting iwlwifi-4965-1.ucode
[ 73.870189] iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
[ 73.870189] iwl4965: Could not read microcode: -2
[ 73.870189] ACPI: PCI interrupt for device 0000:02:00.0 disabled
[ 93.606994] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[ 93.607107] PM: Writing back config space on device 0000:02:00.0 at offset 1 (was 100102, writing 40100106)
[ 93.607301] firmware: requesting iwlwifi-4965-1.ucode
[ 93.614067] iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
[ 93.614067] iwl4965: Could not read microcode: -2
[ 93.614067] ACPI: PCI interrupt for device 0000:02:00.0 disabled
[ 116.242738] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[ 116.246462] PM: Writing back config space on device 0000:02:00.0 at offset 1 (was 100102, writing 40100106)
[ 116.246462] firmware: requesting iwlwifi-4965-1.ucode
[ 116.246744] iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
[ 116.246744] iwl4965: Could not read microcode: -2
[ 116.246744] ACPI: PCI interrupt for device 0000:02:00.0 disabled
[ 134.562176] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[ 134.562295] PM: Writing back config space on device 0000:02:00.0 at offset 1 (was 100102, writing 40100106)
[ 134.562492] firmware: requesting iwlwifi-4965-1.ucode
[ 134.583002] iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
[ 134.583014] iwl4965: Could not read microcode: -2
[ 134.585670] ACPI: PCI interrupt for device 0000:02:00.0 disabled
[ 153.208398] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[ 153.208514] PM: Writing back config space on device 0000:02:00.0 at offset 1 (was 100102, writing 40100106)
[ 153.208710] firmware: requesting iwlwifi-4965-1.ucode
[ 153.213548] iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
[ 153.213559] iwl4965: Could not read microcode: -2
[ 153.213647] ACPI: PCI interrupt for device 0000:02:00.0 disabled
[ 171.435903] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[ 171.435991] PM: Writing back config space on device 0000:02:00.0 at offset 1 (was 100102, writing 40100106)
[ 171.436135] firmware: requesting iwlwifi-4965-1.ucode
[ 171.439528] iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
[ 171.439533] iwl4965: Could not read microcode: -2
[ 171.439592] ACPI: PCI interrupt for device 0000:02:00.0 disabled
So I am not sure whats the deal here ? How to get around this ?
Also, I might go for the kernel compile again this time putting both audio and wifi drivers as modules. Then I would want to know how to load these modules automatically at startup ?
I did download the microcode shortly after putting up my previous post and the driver started to work. However, a few seconds after connecting it stops working (even though the nm-applet shows as connected). I had earlier downloaded and copied the latest microcode from Intel's site. After seeing your post, I downloaded the exact same file as yours and copied the microcode to the firmware directory. Still there is no avail. The connection dies in a few moments after starting up.
Here is a snippet of dmesg:
[ 34.301088] firmware: requesting iwlwifi-4965-1.ucode
[ 34.797496] r8169: eth0: link down
[ 55.841379] NET: Registered protocol family 10
[ 55.841379] lo: Disabled Privacy Extensions
[ 55.845379] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 55.845934] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 60.837252] CPU0 attaching NULL sched-domain.
[ 60.837265] CPU1 attaching NULL sched-domain.
[ 60.838104] CPU0 attaching sched-domain:
[ 60.838112] domain 0: span 0-1
[ 60.838117] groups: 0 1
[ 60.838126] CPU1 attaching sched-domain:
[ 60.838130] domain 0: span 0-1
[ 60.838134] groups: 1 0
[ 67.161992] NET: Registered protocol family 17
[ 70.453963] wlan0: Initial auth_alg=0
[ 70.453963] wlan0: authenticate with AP 00:17:31:fb:0f:4b
[ 70.455772] wlan0: RX authentication from 00:17:31:fb:0f:4b (alg=0 transaction=2 status=0)
[ 70.455772] wlan0: authenticated
[ 70.455772] wlan0: associate with AP 00:17:31:fb:0f:4b
[ 70.457721] wlan0: RX AssocResp from 00:17:31:fb:0f:4b (capab=0x411 status=0 aid=3)
[ 70.457721] wlan0: associated
[ 70.457721] wlan0: switched to short barker preamble (BSSID=00:17:31:fb:0f:4b)
[ 70.458823] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 87.885806] wlan0: no IPv6 routers present
Any clues as to what is going on here ?
By the way, I am sure that there is no problem with the router and/or the net connection. I am connected right now in windows xp with another laptop and at the same time, I am not able to access any websites from Ubuntu (on my other laptop).