I just successfully compiled and installed kernel 2.6.5. I had some problems with usb, but I don't know what I learned and am hoping that someone can explain the situation to me.
Rather than "suck-up bandwidth" with all the goary details let me say that I first migrated from 2.4 to 2.6 by installing a Mandrake rpm--
kernel-2.6.3-7mdk-1-1mdk.i586.rpm. When I did this, everything, except a few minor issues, seemed OK. I had the suspicion, though, that there were still some vestiges of 2.4 hanging around. For example, I had to edit
lilo.conf to stop the scsi emulation and use the new and improved ide/ATAPI capabilities. And, as near as I could figure, I had ALSA 0.98, I believe, and not the later drivers that I knew existed in 2.6.3. Sooo, I downloaded the freshly released 2.6.5 and began to work.
For this first attempt, I was building in /usr/src/ as root. I copied the config file for the Mandrake 2.6.3 to use as a starting point and changed only a couple of things. I make the kernel preemptible, I compiled ALSA directly into the kernel, and I compiled usb and usb printer support into the kernel and compiled the uhci-hcd as a module. When I finished I got everything I wanted but I could not print. My printer and scanner were described in /proc/bus/usb/devices, but /dev/usb was emptly. The module uhci-hcd was not loading on boot. I read, and read, and searched and searched. Found a few ideas, but nothing worked. The last thing I tried was to add uhci-hcd to /etc/modprobe.preload. Well, the module loaded, but then /proc/bus/usb/ was empty. I tried mounting usbfs in fstab, but that didn't work either.
By this time my patience was getting pretty thin. I decided to re-compile the kernel. I did and I configured all the usb support into the kernel. The compile failed. I lost it. I cleaned out everything that had to do with 2.6.5--except the source tarball--and reverted "cleanly" to the Mandarke version of 2.6.3. I have a user whose only job is to download and install software. I use the home directory of that user to do these things--I'm becoming paranoid of root and don't want to screw up my home directory. I untarred the source tree there, copied the config file for 2.6.3 again and recompiled. I wanted to note the new build directory because I don't know if it makes a difference or not in my story. This time, on a whim, I compiled ALL the usb stuff as modules.
The compile went without a hitch--I even ran
make install without being root--hmmmmm. In that regard, I had to manually run lilo because I booted back into the 2.6.3 kernel. When I did get to 2.6.5, printing went without a hitch also. My scanner is also available for configuration. Everything is fine.
What's the problem then? I look at my solution as very "windozy"--a philosophy from which I'm trying to escape. Almost everytime I do something new, I become more sophiticated in using linux--expecially if what I do doesn't work the first time. I try to look for the reasons why something worked and something else didn't.
The "correct" solution to this situation may have been exactly what I did. I don't know if there was anything I could have done to fix what was happening before I recompiled the kernel. Also, I don't know--and I couldn't find any documentation confirming or denying this--whether one must compile all the usb stuff directly into the kernel OR compile it all as modules. Since I didn't expect having this kind to situation and since compiling and installing the 2.6.x kernel is soooo easy and intuitive
, I don't have any notes or logs on my original compile options. To find a reason for all of this may be a "wild fstab in the dark,"
but I hope someone will try.