Hi, Since I had posted alot of other stuff on Debian, I figured I might as well post my experiences getting my soundcard to work. For the record I have a soundblaster plug and play card (pnp). I am not sure that I would say it was difficult, but there were a few tricks. What I did to solve the problem was to compile a new kernel. There are other ways, I just didn't do them for a variety of reasons (mostly just making mistakes or not realizing there was something else that had to be done). In the post, I mention the things I forgot/should have known but realized later. As always, standard disclaimers apply. BTW, here are some resources I found in the process of doing this work:
http://en.tldp.org/HOWTO/mini/Soundblaster-AWE-3.html http://www.tux.org/~tbr/sound-debian/ The first thing I did was to get isapnptools package. This helps you setup pnp type boards. There are 3 basic things to know about /etc/isapnp.conf, pnpdump, isapnp (check out the man pages if you want more info). Use pnpdump > test.conf, read test.conf and uncomment appropriate lines, insert as /etc/isapnp.conf. Test if it works using isapnp /etc/isapnp.conf. That part worked fine for me. Unfortunately, Debian had installed a kernel called 2.2.20-idepci. That kernel got all the important stuff to work (network, monitor, mouse, keyboard) and that's good. But it didn't have a file called sb.o that I needed for soundblaster. So I needed to compile a kernel to get the system to work. Compiling a kernel has always been fairly simple (except there can be a few tricks). Now it is even simpler than it used to be. For Debian, do the following (and rpm based system probably has analogous commands): To compile a kernel, 1. apt-get install kernel-source-2.4.20 2. cd /usr/src 3. bunzip2 kernel-source-2.4.20.tar.bz2 4. tar -xvf kernel-source-2.4.20.tar 5. make-kpkg clean 6. make xconfig 7. make-kpkg -revision custom.1.0 kernel_image 8. dpkg --contents kernel-image-2.4.20_custom.1.0_i386.deb 9. dpkg -i /usr/src/kernel-image-2.4.20_custom.1.0_i386.deb About half of those commands are just untarring the files and putting them in /usr/src. Debian has created a way to automate many of the steps in kernel compilation with the make-kpkg command. It basically builds the kernel, and creates a .deb (roughly Debian's version of an rpm). You should give a revision string to keep the .deb file you create independent if you are compiling the kernel many different times and to prevent conflicts with existing kernel in the Debian package library. The 8th step is unnecessary, I just wanted to make sure the contents of the package did not overwrite my existing (failsafe) kernel. And it didn't, the Debian make-kpkg works well. Now for some tricks, some I knew beforehand others are just mistakes I corrected. For one thing, I did this all as root, and that probably isn't the best way. You can compile the kernel as a normal user, just copy the .tar.bz2 into your home directory and do the steps. I was just lazy. The last step would be the only one you would have to do as root. The make xconfig step is where they ask questions about what should be configured/compiled in the kernel. Overall it is pretty easy to navigate through the questions and save your configuration. Be careful when making your selections. For instance, I thought my internet would work fine if I just configured the right internet card (3com). Unfortunately, it didn't. What I found, after going though the options more carefully is that I use dhcp to get my internet address. To get the kernel to do this there are some options in 'network options' that you have to turn on. I think it is CONFIG_PACKET and/or CONFIG_FILTER or something like that (af_packet.o maybe). Once that is done it will work. So sometimes, just worrying about the particular card doesn't solve your problem. The other thing was with the soundcard itself, I couldn't find the option to enable soundblaster. When I went back, I found that the soundblaster option was 'greyed out' and you need to select 'OSS modules' to get it to give you the soundblaster config. So bear in mind, there are some options that are a little tricky to get right (at least if you are being very cavalier and in a hurry about setting your options as I was). The third thing is to watch your lilo configuration (similar comments probably apply to grub). If they ever ask to overwrite your /etc/lilo.conf, you can let them do it, but make a backup copy and look at the differences. Also, if you are compiling kernels and installing them, I recommend you always run lilo before you reboot and test your kernel. This is just in case you manipulated your lilo.conf and didn't notice or forgot about it. Not running lilo after manipulating lilo.conf may leave your system unbootable. Also setup your failsafe kernel within your lilo.conf file. Here are some relevant lines from my lilo.conf, it is not hard to figure out what it does in conjunction with the links on /: message=/boot/bootmess.txt prompt single-key timeout=100 default=Linux image=/vmlinuz label=Linux read-only # restricted alias=1 image=/vmlinuz.old label=LinuxOLD read-only optional # restricted alias=2 My /vmlinuz.old is the failsafe, /vmlinuz is the new kernel I would insert. Just make sure you configure the timeout, so it will boot after 10 seconds or so of inactivity. The compiling of the 2.4.20 custom kernel is what I did to make the system work. The main drawback of doing something like this is that Debian will not update your custom configuration with new improvements. There may be better ways to do all this, but once I found the answer I really wasn't too worried about it. But I will continue with the story, since there are other things I realized later. So back where I was before (after the isapnp configuration), I was looking to get the sb.o file. I did this by compiling the 2.2.20 kernel, and got that file as part of the 2.2.20 kernel (and a few others like awe_wave.o, uart401.o). I manipulated the /etc/modules.conf file to add these as loadable modules. I also added the module options needed in /etc/modutils/sb. It still wouldn't work. But I could get it to work if I inserted the modules manually using 'insmod' with the proper options. What I didn't realize at the time was that you need to run update-modules, to get /etc/modutils options to be used. I kind of thought that since I was directly manipulating files in /etc, that the kernel boot process would just use them. Apparently update-modules is needed to activate the changes you make, in this case. Since I was still having problems, I started thinking. I thought that since kernel compilation is so simple, wouldn't it be nice if Debian precompiled various kernels for different situations. Maybe they could compile kernels specifically for certain product lines, and have something like 'kernel-image-dell_4600' which would work on a Dell 4600 and detect/install what is necessary for Dell 4600 configuration. That or symlink those kinds of installation files (maybe for a 586) to a name that would help an ordinary user. So I checked to see if Debian had something like this to help me (of course I have a custom built system, so I was not very hopeful). But Debian appears to have the beginnings of something like this. I found a kernel called kernel-image-2.4-586tsc. Don't know what tsc means, but it looked good so I tried it. I looked at the contents of this image and it had the files I needed. It looks like they may have compiled the image using the "Maybe" option in the make xconfig. This option compiles each driver needed as a pluggable module. Since I had already given the specs in /etc/modules.conf as described above, I figured it would work. Of course, it didn't since I still hadn't done the update-modules. At this point, I just decided it would be easier to just get a new 2.4.20 kernel and compile it from scratch. That worked and it completed the soundcard install. I already described that above, so job done. To summarize, I got the job done by recompiling the kernel. The main disadvantage (and it is a big disadvantage) of this kind of approach is that the kernel will not get updated/upgraded with the latest patches automatically. But only the kernel is affected by this, all other programs (emacs, mozilla, kde) will upgrade just fine. In retrospect, if I was going to try again, what I would do is to download the 586 specific kernel-image referred to earlier. It has all the pluggable modules you need. Then I would try to use kudzu (the RH autodetect tool, which also exists in Debian). I actually tried kudzu early on, but it didn't work. I assume this is because I didn't have an sb.o file for it to look at. I am making assumptions about how kudzu operates, I haven't validated this. I think it looks at your system and installs the drivers if they exist by modifying the /etc/modules type files and running update-modules for the cards that it finds. If you have a kernel with the support for the right driver, I think it would work. Ultimately though, if you can't get a card to work (either in Redhat or Debian), the last resort would be to recompile the kernel. That way you could tell easily if the card is supported. The only other thing I need to do is to get mozilla to work for streaming video which I haven't done yet. I just want one site to work www.msri.org. Under "lectures on streaming video", it has some good introductory math talks (if you are interested) that I have seen using RH and wanted to be able to see. I could probably get it to work fairly easily using real player. But I actually was looking at trying to use xine, which is apparently the open source (gpl) alternative. But now that the soundcard works, it should be fairly easy assuming it supports the right protocol. But any advice on using xine and xine with mozilla would be appreciated. I will say that Redhat does make installation easier (obviously). But I sometimes like to change just to learn new things. If I am right about the proposed kernel procedures with kudzu in Debian, what I would say is that there are 3 stages to installing Debian fully with all your cards/features supported (soundcard + USB + any others). The first stage installs a minimal system, the second stage does further configuration, and the third stage is to get another (more general) kernal-image file and use kudzu. BTW, if you use Knoppix, you should not have to worry about any of this. I assume that if there are any mistakes here the Debian experts will correct them. And please do. Later, Bill Gooding __________________________________ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com _______________________________________________ TriLUG mailing list http://www.trilug.org/mailman/listinfo/trilug TriLUG Organizational FAQ: http://www.trilug.org/faq/TriLUG-faq.html
