Slackware Linux 10.0 on a Presario 906US


NEWS:
05/09/04
-Updated 2.6 config.
05/03/18
-Added new graphics info.
-Added bioshotkeys patch for xorg.
05/02/19
-Long overdue update.
-Added DXTn patch against xorg-6.8.2.
-Added 2.6.10 config and various file updates.

This is a little howto/documentation on my experience with installing Slackware on my Compaq Presario 906US. My first installation on this notebook was Slackware 8.1, and i had run into various problems with the stock 2.4.18 kernel that came with the cd image. Initially, there was a bug in the trident module that is used for sound that would conflict with my internal network card, as well as USB and even the CD/DVD. It had plagued me for several weeks until i came across a wonderful message board resource which you will find a link to in the Resources section that provided me with a patch for the trident module that allowed it to work properly on the notebook. However, since then this patch has been implemented into the 2.4.x source tree as of 2.4.21-pre series kernels. If you do attempt a linux install on this notebook, i highly suggest going with a 2.4.21-pre series kernel or higher.

Here is the output of "lshw -html > hardware.html" on my machine. ( Check freshmeat for lshw, it's a great utility for viewing all kinds of detailed information about your hardware. )

CPU: AMD Mobile Athlon XP 1500+ (1.33 GHz) with PowerNow! Technology
RAM: 256 MB 266 MHz DDR SDRAM upgradeable to 1.0 GB
HD: 20.0 GB Utlra DMA 4200 RPM Hard Drive
CD: 8X DVD/CD-RW Combo Drive
Modem: 56K ITU V.92 PCI
Network: Integrated 10/100 Base-T Ethernet Port
Graphics: ATI Radeon IGP Integrated Graphics, 16 MB shared video memory, S-Video Out
Sound: JBL Pro Performance Audio with Bass Reflex
I/O: Two USB 1.1 connectors, Parallel SPP/ECP standard port, PS/2 mouse port.

After assigning space to install linux on ( I used Acronis Partition Expert), put the installation CD and boot it up. When prompted for a kernel choice, type in "bareacpi.i nomce nousb nopcmcia pci=biosirq" without the quotation marks. One or more of these MAY not be necessary, but installation used to have trouble reading my cdrom before the bareacpi.i kernel was available. Follow your installation instructions and install normally. When choosing the kernel, choose from cdrom, and choose bareacpi.i, and as well, add the same parameters to lilo when asked for them.

One of the first things i usually do after a fresh install, is to recompile the kernel to fit my system hardware ( and to remove unnecessary components.) The stock kernel that comes with Slackware 10.0 is version 2.4.26, but i have since upgraded to 2.6.10 which i highly recommend doing. Kernels 2.4.25 and up have a new sysctl variable called laptop_mode which is aimed at saving battery life (read more about it here.) It is also available for 2.6 kernels via patches, which you can find here, and will soon be merged into kernel 2.6.6. If you wish to use the laptop_mode ability, there are control scripts that are constantly being updated in Documentation/laptop_mode.txt, so be sure to update your scripts whenever you upgrade your kernel. I also use cpu-frequency scaling, which allows you to scale your cpu clock speed on the fly via a nice utility called cpudyn which runs in daemon mode. This is a great feature for saving battery life as well, as it scales your clock speed to lower settings if you are running less cpu intensive applications. Cpu-frequency scaling is already part of the 2.6 series kernels, but it is also backported and available for 2.4 kernels via patches which you can get here. The cpudyn package can be found at http://mnm.uib.es/~gal lir/cpudyn/ and was originally written on a Debian machine, and therefore utilizes Debian's start-stop-daemon script to control the rc.d/init.d script. For Slackware however, i came across a C version of the start-stop-daemon which you can find down in the Resources section which you may use to execute the rc.d script for controlling cpudynd. The ATI agpgart patch seems to have been merged into 2.4.23-pre series and up, and as well in 2.6.0-test series kernels, so the older patches from bugzilla are no longer necessary. If you wish to keep up with the bugzilla thread which originally provided us with agp kernel and dri patches, you may view it here. I have had both 2.4 and 2.6 kernels running very well on my laptop, and you may view my 2.4.25-config and 2.6.13-config kernel config files for reference if are having trouble with configuring your kernel. You may view my dmesg here.

The CD/DVD works great. For 2.4 kernels, if you use scsi-emulation mode and devfs, it is found on /dev/sr0. The ide device is actually at /dev/ide/host0/bus1/target0/lun0/generic if you with to check it with hdparm (thanks goes to Fernando Sancho for pointing that out to me.) If you wish to use ide-scsi emulation, you must specify append="hdc=ide-scsi" in your lilo.conf and load the ide-scsi.o module in your /etc /rc.d/rc.modules file. For DVD playback i use Mplayer, and as with some dvd playback software it will look for a /dev/dvd link. (you can actually specify the device in most software, but i'd rather make a dvd device symlink.) For devfs, you must modify the /etc/devfsd.conf file to add this. I added it right after the CD symlink section and the device is symlinked upon boot.

The internal network card is a RealTek 8139 integrated pci network card. You can choose either the 8139too, or the 8139cp module within your kernel config and either will work fine. Optionally, you can goto http://www.scyld .com/network/rtl8139.html where Donald Becker (Beowulf Cluster Guru) has written an updated rtl8139 driver as well as utilities for checking and configuring MII status on MII supported network cards. All your ip address information for slackware gets configured from /etc /rc.d/rc.inet1.conf. I recently picked up a DWL-G650 D-Link Airwave 802.11G wireless pcmcia card, and it works great with the MadWifi drivers. For other wireless 802.11b or 802.11g cards, please check out http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Orinoco.html and http://prism54.org. The rc.inet1 init scripts, as well as the default settings in /etc/pcmcia/wireless.opts are not set up to configure an ath0 device which is what the DWL-G650 is created as. It is possible to hack your way around the rc.inet1 script or the wireless.opts file to have it configure its ip information at boot, however i found it easier just to make an rc file that you can call from rc.M (for startup) and rc.6 (for shutdown). Here is my rc.wireless script if you wish to use it, it's pretty self explanitory, enter in your local ip information.

The sound module for the ALi5451 integrated audio uses trident.o. As mentioned earlier, this used to conflict with various other hardware in kernels 2.4.20 and prior, but as of 2.4.21-pre series and more recent, it has been integrated into the source tree and the old patch is no longer necessary.

The Xorg packages that come with the Slackware 10 CD's are version 6.7.0, which don't have native support for IGP chipsets. However, as of version 6.8.0, there has since been a merge of dri and mesa into the xorg source tree, which has added the support we need. If at all possible, I highly suggest upgrading to xorg version 6.8.2 in order to take full advantage of the graphics card. If you wish to add DXTn support, it is possible to patch the xorg source tree with the DXTn packages from here http://homepage.hispeed.ch/rscheidegger/dri_experimental/s3tc_index.html with a small amount of hand editing. I have made a slightly modified version of the mesa_dri_txc_cvs040908.diff.gz patch from Roland's page that will patch cleanly against xorg 6.8.2, which you can find here: mesa_xorg-6.8.2_txc040908.diff.gz. To take advantage of the dxtn decompression, install the libtxc_dxtn library from the above mentioned page. Due to changes in Xorg, you will need this patch to re-enable atitvout: xorg-x11-6.8.1-bioshotkeys.patch, and add Option "BiosHotkeys" "true" to the graphics device section in xorg.conf. You may see a small performance boost if you add export RADEON_NO_IRQS=1 and export RADEON_NO_USLEEPS=1 to your /etc/profile and relogging in. My xorg.conf can be viewed here. Here is my glxinfo.txt for reference. Of note are the DXTn, GL_S3_s3tc, and GL_EXT_texture_compression_s3tc entries. You can also view my Xorg.0.log here. To use the S-Video out capabilities, i use a small utility called atitvout. It's homepage is here, but it seems to be no longer maintained. I managed to dig around, and found a few patches on this site which should add more hardware support and functionality to it. If you are interested, i've pre-patched atitvout with the patches from that page, and you may download it here. Before you compile the new package, you must first download and make lrmi from http://sourcefor ge.net/projects/lrmi/. It's a very small package (only 10k), but once you download it, just run make, copy the libraries to /usr/lib and run ldconfig, copy the headers to /usr/include, and copy vbetest to /usr/bin. Once you've installed lrmi, continue on to build and install the patched atitvout. *NOTE!* You must boot the notebook with the S-Video connection attached if you wish to switch the display to TV. If you've booted up with the S-video cable connected, you should then run the test.sh in the atitvout source tree to find the proper syntax for switching the dis plays. Mine personally is "atitvout -f t" for TV, and "atitvout -f l" for LCD ( notebook panel display. )

- USB works great with the ohci module (check my kernel config)
- Modem works great with these drivers. ( Conexant HSF 56k HSFi Modem)
- Synaptics Touchpad driver works very well. (Follow install instructions in source INSTALL, as well as my xorg.conf)
- Found a C version of Debian's start-stop-daemon which is used to control the sysvinit script for cpudynd. I've precompiled it
and you can get it here.

- http://www.linux-laptop.net
- http://tuxmobil.org
- http://videl.ics.hawaii.edu/pipermail/linuxpresario900/

erik_27can@yahoo.com

Apache Webserver   mod_ssl Interface   OpenSSL Toolkit