Hugh Sparks
Version 1.0, April 19, 2003
Redhat 9.0 runs most of the hardware on the Tecra 9100 right out of the box. Only a few configuration steps are less than obvious, this page reviews these extra issues.
Planning the partition layout
You need to have a partition layout in mind before you start. If this concept unfamiliar, this web page is probably not a good place to learn.
My system is set up for dual-booting with Windows XP. I also make room for a shared fat32 partition where I keep installers that will be needed by Windows or Linux when I reinstall either operating system. Finally, I provide an extra Linux partition so I can try out new distributions without blowing away my old system.
Example partition map
Windows /dev/hda1 FAT32 18G Extended: /dev/hda2 Ext'd 20G Installers /dev/hda5 FAT32 6G Linux swap /dev/hda6 Swap 1G Linux root /dev/hda7 ext3 4G Alternate root /dev/hda8 ext3 4G /mnt/home /dev/hda9 ext3 5G
Redhat hardware autodetection
This works so well there is little left for you to figure out: Monitor: TOS5082 Graphics: S3 Savage IX Firewire: ohci1394 USB: usb-uhci Audio: i810_audio Ethernet: e100 Wireless: orinoco_cs The contents of /etc/modules.conf created automatically: alias eth0 e100 alias usb-controller usb-uhci alias ieee1394-controller ohci1394 alias sound-slot-0 i810_audio post-install sound-slot-0 \ /bin/aumix-minimal \ -f /etc/.aumixrc -L >/dev/null 2>&1 || : pre-remove sound-slot-0 \ /bin/aumix-minimal \ -f /etc/.aumixrc -S >/dev/null 2>&1 || : I have found that the usb-uhci occasionally locks up at boot time. The fix is using the "uhci" module instead of "usb-uhci", so I modify the line in /etc/modules.conf to read: alias usb-controller uhci Other additions to /etc/modules.conf are discussed in later sections.
Boot configuration
Using Lilo, the only option I needed was lba32 because my linux boot partition is so far from the beginning of the disk. Grub probably has a similar option.
The kernel option "hdc=ide-scsi" makes the ATAPI cdrom look like a SCSI device. This is a good idea because cdrecord and many other CD-writing packages depend on this configuration. Here's the /etc/lilo.conf created by anaconda:
prompt timeout=50 default=Linux boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message lba32 image=/boot/vmlinuz-2.4.20-6 label=Linux initrd=/boot/initrd-2.4.20-6.img read-only append="hdc=ide-scsi root=LABEL=/1" other=/dev/hda1 optional label=Windows
The Anaconda installer will identify and configure the S3 Savage IX and the Tecra flat panel for X Windows.
Below you will find, for reference, a copy of the generated XF86Config.
Note that the keyboard bounce problem widely reported for this laptop has been fixed internally by this version of XFree. No special keyboard options are required.
Also note that both the internal PS/2 mouse and a USB mouse are configured. Either or both will work automatically.
XF86Config - Toshiba Tecra 9100 1024x768 display
Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "DevInputMice" "AlwaysCore" EndSection Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:7100" EndSection Section "Module" Load "dbe" Load "extmod" Load "fbdevhw" Load "glx" Load "record" Load "freetype" Load "type1" Load "dri" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/psaux" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "no" EndSection Section "InputDevice" Identifier "DevInputMice" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "no" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Toshiba TOS5082" DisplaySize 290 220 HorizSync 31.0 - 48.0 VertRefresh 50.0 - 70.0 Option "dpms" EndSection Section "Device" Identifier "Videocard0" Driver "savage" VendorName "Videocard vendor" BoardName "S3 Savage/IX" VideoRam 8192 EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection Section "DRI" Group 0 Mode 0666 EndSection
Modules and interfaces
The 9100 has built-in ethernet and wireless (802.11b) devices. The ethernet is on the PCI bus and uses the e100 modular driver. The wireless network is a PCMCIA device that uses the modular orinoco_cs driver.
Even if you plan to use only one network device at at time, I strongly suggest that you configure the system so that both module sets are loaded and activated. Without this precaution, the configuration files may be associated with the wrong devices, depending on the order the modules get loaded.
If you are trying out this tutorial with a live machine, you may discover that Linux is already confused about the network configuration files. To fix this, bring down both networks and unload all the modules:
ifdown eth0 ifdown eth1 rmmod orinoco_cs orinoco rmmod e100
Now reload them in the order that would occur at boot time:
modprobe e100 modprobe orinoco_cs ifup eth0 ifup eth1
Helge Jensen reports that the following construct in the /etc/modules.conf will insure that the right module is always associated with the same interface. I haven't tried this, but it seems reasonable:
alias eth0 e100 alias eth1 orinoco_cs above orinoco_cs eth0
He also solves the wireless/wired configuration problem described in the next section using a more automatic mechanism. See the Wired section of his page.
Configuration management
If you travel with your computer and connect to many different LANS, Redhat provides a mechanism to have multiple networking configurations with a nice GUI interface. Unfortunately, it does not deal well with modular devices that can be loaded out of order. If you decide to try out the GUI tools, be sure to keep both devices active in every configuration. You can always assign bogus unrouted network numbers to the unused device.
An alternative that I prefer, after trying every network configuration GUI that Redhat ever produced, is to keep a set of simple scripts. I have one bash script for each place I visit. The script shuts down both devices, rewrites the configuration files, and restarts both devices.
Here is an example script I used when switching to my home wireless lan. The wireless goes on the real 192.168.1.0 network. The ethernet goes on the bogus 192.168.3.0 network. If I move the computer, another almost identical script will switch to the ethernet, placing the wireless on the bogus network.
#!/bin/bash
# wireless - lan configuation at home
# Bring down both interfaces
ifdown eth0 &> /dev/null
ifdown eth1 &> /dev/null
# Write configuration files
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<-'EOF'
DEVICE=eth0
TYPE=Ethernet
IPADDR=192.168.3.9
NETMASK=255.255.255.0
NOZEROCONF=yes
EOF
cat > /etc/sysconfig/network-scripts/ifcfg-eth1 <<-'EOF'
DEVICE=eth1
TYPE=Wireless
IPADDR=192.168.1.9
NETMASK=255.255.255.0
MODE=Managed
ESSID=WLAN
KEY=23AC730D31
RATE=Auto
CHANNEL=1
NOZEROCONF=yes
EOF
# Gateway
cat > /etc/sysconfig/network <<-'EOF'
NETWORKING=yes
HOSTNAME=sparks9k
GATEWAY=192.168.1.2
EOF
# Name server
cat > /etc/resolv.conf <<-'EOF'
nameserver 192.168.1.2
domain csparks.com
EOF
# Bring up both interfaces
ifup eth0
ifup eth1
In the links section below you will find the home page of SmartLink. They provide everthing you need to get your Winmodem working for free. The driver compiles and installs perfectly with none of the hacking around reported on other Tecra/Winmodem sites. Unlink many of the nitwit hardware manufacturers, SmartLink also provices an effective make uninstall.
The only drawback with this nice driver is that your Linux kernel will be tainted by using propritary software. (It will remind you of this in the message log each time the modem driver is loaded.)
UPDATE: The most recent SmartLink driver, slmdm-2.7.14 has a serious bug that causes it to misdial numbers. I'm sure this will be corrected Real Soon Now(tm). In the mean time, you will find an earlier working version, slmdm-2.7.10 at the Linmodems site Older Smartlink drivers.
If you want to investigate alternatives, the modem is identified by lspci as an "Intel Corp. 82801CA/CAM AC'97 Modem (rev 02)".
Here is the section of /etc/modules.conf appended by the installer:
alias char-major-212 slmodem alias slmodem slamrmo
The firewire works on disk devices with the included drivers. I tested this feature using the Windows version of the Apple iPod. The procedures outlined should be very similar for any firewire disk.
Load the firewire packet module:
modprobe ieee1394
Load the firewire card controller:
modprobe ohci1394
The ohci module will now recognize your disk as a SCSI device and automatically load the serial bus protocol (sbp2) module. The first scsi device is "/dev/sda", which will probably be the only scsi drive connected to your laptop.
If you need to see what's going on for debugging, do a tail -f /var/log/messages in another shell window before you load the modules.
The Windows version of the iPod has two vfat partitions. The second one has the music. To mount the second partition, we use device /dev/sda2. A mount point has already been created: /mnt/ipod.
Mount a paritition on the firewire disk:
mount -t vfat /dev/sdb2 /mnt/ipod
The device is now ready to use. Note that you should not simply pull the cord when you want to removed the device.
Removing a firewire disk:
umount /mnt/ipod rmmod sbp2
Remounting a firewire disk:
modprobe sbp2 mount -t vfat /dev/sdb2 /mnt/ipod
Not yet...
00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 04) 00:01.0 PCI bridge: Intel Corp. 82845 845 (Brookdale) Chipset AGP Bridge (rev 04) 00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02) 00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02) 00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02) 00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 42) 00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 02) 00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02) 00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 02) 00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 02) 01:00.0 VGA compatible controller: S3 Inc. SuperSavage IX/C SDR (rev 05) 02:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) 02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42) 02:0a.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 01) 02:0b.0 CardBus bridge: Toshiba America Info Systems ToPIC95 PCI to Cardbus Bridge with ZV Support (rev 32) 02:0b.1 CardBus bridge: Toshiba America Info Systems ToPIC95 PCI to Cardbus Bridge with ZV Support (rev 32) 02:0d.0 System peripheral: Toshiba America Info Systems SD TypA Controller (rev 03)