Linux on Laptops |
Home | New | Models | Components | Discussion | Submit |
Last updated: August 2006
Hardware Components
|
Status under Linux
|
Notes
|
Intel Core Solo T1350 (1.86 GHz); Intel 945GM chipset | Works | No special procedure required during installation. |
14.1 inch 1280x800 TruBrite WXGA display | Works | Select "Generic LCD" Display, 1280x800 resolution, when installing |
Intel Graphics Media Accelerator 950 | Works | The VESA driver works. The new Xorg i810 driver is excellent. (details) |
Suspend to RAM | Works | Requires update to 2.6.17 kernel. Requires a little configuration to be completely reliable. (details and fine tuning) |
Hibernate to disk | Works | Requires update to 2.6.17 kernel. Requires a little configuration to be completely reliable. (details) |
"Fn + key" functions | Most work | Requires a little configuration to enable Fn-ESC (Volume mute) and Fn-F1 (Lock screen). (details) |
1GB RAM (512MB is stock; 4GB is max) | Works | No special procedure required during installation. If you intend to add more RAM after installation, then during installation you need to manually set size of your swap partition to accommodate it. |
80 GB SATA Hard Drive | Works | No special procedure required during installation |
Intel PRO/100 Ethernet | Works | No special procedure required during installation |
Intel PRO/Wireless 3945ABG | Works | Requires ipw3945 driver download, installation, and configuration. (details and fine tuning) |
Toshiba Software 56k Modem | Works | Requires slmodem-alsa download, installation, and configuration. (details) |
Touchpad | Works | No special procedure required during installation. (fine tuning) |
DVD/CD RW optical drive | Works | No special procedure required during installation. The kernel parameter ide=noprobe improves its performance. |
Realtek ALC861 sound card | Works | No special procedures required during installation. The roller volume control on the front of the computer works and is easier to use than software controls |
CD player buttons (Music, pause/play, stop, next rack, previous track) | Work with no OS booted. Don't work with FC5 running. | No scancodes for these or the "Internet" button |
PCMCIA (PC card slot) | Works, at least with a Compact Flash Adapter | No special procedure required during installation. A compact flash appears as /dev/hda1. It can be configured to mount automatically. (details) |
5 in 1 bridge Media Adapter | Works, at least with SD cards | Requires download, installation, and configuration of TI FlashMedia xx12/xx21 driver. (details) |
S-video port; ieee1394 (Firewire) connection | Untested | Firewire is detected and a driver is inserted on installation, so there is a good chance that it would work. |
RGB external monitor port | Works | No special procedure required during installation |
4 USB Ports | Work |
No special procedure required during installation |
6 cell 4000mAh battery rated at 5 hours, 41 minutes | Works | No special procedure required during installation; actually lasts about 4 to 4.5 hours, which is pretty good. |
This laptop is currently running kernel 2.6.17-1.2157_FC5.i686.
I've also tested the i686 version of the Suspend2 enhanced kernel 2.6.17-1.2157_1.rhfc5.cubbi_suspend2 as compiled by Matthias Hensler. It also works perfectly.
To follow this procedure, you need to have a router or modem with Internet access that can be connected to your computer using an ethernet cable. The part of the installation in this section is routine.
I did just a Desktop installation, then updated and added other packages by downloading. The Desktop installation only uses the first two CDs.
I used QTParted to re-size the Windows partition in order to make space for FC5. There are other programs that can do this and other places to find QTParted, but the one I used is on a Knoppix 4.0.2 LiveCD. There is a list of mirrors from which you can download the latest Knoppix here.
Here is the output of /sbin/fdisk -l /dev/sda:
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1958 15727603+ 7 HPFS/NTFS
/dev/sda2 1959 1971 104422+ 83 Linux
/dev/sda3 1972 9450 60075067+ 83 Linux
/dev/sda4 9451 9705 2048287+ 5 Extended
/dev/sda5 9451 9705 2048256 82 Linux swap / Solaris
And here is my current usage:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 15G 7.5G 7.6G 50% /mnt/windows
/dev/sda2 99M 21M 74M 22% /boot
/dev/sda3 56G 5.1G 48G 10% /
/dev/sda5 2G 0G 2G 0% swap partition
Connect an ethernet cable from your computer to your router/modem and click on "reboot".
There are some easy questions to answer. On the Display Configuration screen choose "Generic LCD" display with 1280x800 resolution.
yum -y update
rpm --erase kernel-..._FC5.i686
where ... identifies the kernel that you are now running.
[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/fc$releasever-$basearch/atrpms/stable
gpgkey=http://atrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=0
yum --enablerepo=atrpms install ipw3945-kmdl-..._FC5.i686 ipw3945-ucode ipw3945d
yum install kernel-devel-..._FC5.i686
rpm -ivh kernel-suspend2....rpm kernel-suspend2-devel....rpm -ipw3945-kmdl....rpm ieee80211....rpm ipw3945d....rpm ipw3945-ucode....rpm,
If you install them one at a time, as I did, it works to install the kernel first, then the devel package, then ieee80211 and ipw3945 together, then ipw3945d, then ipw3945-ucode.
title Fedora Core (2.6.17-1.2157_FC5) root (hd0,1) kernel /vmlinuz-2.6.17-1.2157_FC5 ro root=LABEL=/ rhgb quiet hdc=noprobe acpi_sleep=S3_bios
hdc=noprobe causes the CD/DVD to be recognized as a SCSI device, namely, /dev/scd0, rather than as an IDE device. This makes DVD reading faster. acpi_sleep=S3_bios may help with suspending to RAM. It doesn't hurt, anyway.
Once you've got everything installed, there is a detailed discussion of kernel parameters in the file /usr/src/redhat/BUILD/kernel-2.6.17/linux-2.6.17.i686/Documentation/kernel-parameters.txt. A list of possible kernel parameters posted by Stanton Finley here. I hereby nominate something like this for inclusion on the Fedora Rescue CD.
#! /bin/bash
#
# wireless Bring up/down integrated wireless networking (ipw3945)
#
# chkconfig: 2345 90 10
# description: Activates/Deactivates eth1 wireless interface (ipw3945)
#
### BEGIN INIT INFO
# # ipw3945d --help
# usage: ipw3945d [--OPTION]
# options:
# --quiet Load silently (unless errors occur)
# --version Display version information
# --debug=value Specify debug level to print
# --dvals View possible debug values
# --foreground Do not fork to background
# --kill Kill any running ipw3945d instance and exit
# --help View this help message
# --isrunning Check if already running. Returns 0 if yes.
# See how we were called.
case "$1" in
start)
/sbin/ipw3945d --isrunning
if [ $? -eq 0 ] ; then
echo "ipw3945d already running"
exit 1
fi
modprobe ipw3945
/sbin/ipw3945d
echo "ipw3945d has started"
# Bring the wireless interface up. Init starts Networking before this script is run,
# so initially the wireless interface doesn't come up using "Activate when
# the machine boots"
/etc/init.d/network restart ;;
stop)
/sbin/ipw3945d --isrunning
if [ $? -ne 0 ] ; then
echo "ipw3945d is not running"
exit 1
fi
ifdown eth1
/sbin/ipw3945d --kill
rmmod ipw3945
echo "ipw3945d has been stopped"
;;
restart)
$0 stop ; $0 start
;;
esac
#resume_video()
#{
#(
# /usr/sbin/vbetool post
# /usr/sbin/vbetool vbestate restore < /var/run/vbestate
#) >/dev/null 2>&1
#}
There is a small price to pay for leaving the video to restore itself. If you suspend from a text terminal (for example: cntl-alt-F2; login as root; run "/usr/sbin/pm-suspend"), then on resuming the screen will be black. To recover, cntl-alt-F7 takes you back to a perfectly resumed desktop. To fix the display on vt 2, go back: cntl-alt-F2. Now the display is pale blue-grey with rows of white dots blinking in unison. Type "clear" and hit return, and you're back in business.
The blinking white dots effect will also appear on vt 63, which is used while suspending/hibernating.
/etc/init.d/smb stop /etc/init.d/autofs stopat the top of /usr/sbin/pm-suspend and /usr/sbin/pm-hibernate. I also added the lines
/ect/init.d/autofs start /etc/init.d/smb startat the bottom of both of those files. I think it's fixed the problem.
Footnotes: Power consumption. Suspended to RAM, I've found my computer consumes a bit less than 2% of its battery capacity each hour. So suspended to RAM, the battery should last more than 2 days. Hibernating consumes no (or at least no measurable) battery capacity. The default gnome-power-manager configuration in my installation has the computer wake up from hibernation or suspension when you open the lid. (I think this indicates that hibernation is acpi S4 rather than S5 sleep mode.)
Possible problems. There are two ways that suspending/hibernating can fail. Both are hard to diagnose, because there is never any evidence left in logs, and seldom much to go on.
The classic failure is for everything to resume properly except the video. Since taking vbetool out of the process by commenting out the definition of resume_video in /etc/pm/functions-intel, this hasn't happened once.
The other way I've seen suspending/hibernating fail is for the system to hang when suspending, or more often, when resuming. My experience has been that this is caused by something else going wrong. One example is that, initially, I had the new xorg i810 video driver and xserver installed, but not the mesa-libGL libraries. 3D rendering didn't work properly, and the system hung about half the time when resuming.
Removable media. I've read that all removable storage devices (CD, flash memory cards, and so forth) should be umounted before suspending, or else there is a chance you could lose data. I've never had a problem with this. Nevertheless, it is possible to be too stupid. There is good chance that if you remove a storage device between suspending and resuming, you won't be able to either mount or umount it without rebooting.
rpm -Uvh slmodem-alsa*.i686.rpm
# daemon /usr/sbin/slmodemd --alsa ${COUNTRARG} --daemon
and replace it withdaemon /usr/sbin/slmodemd --alsa hw:0,6 --country XXX --daemon
where XXX is where you'll be using the modem, if at all. In my case XXX is USA.
At this point the command, as root, "/etc/init.d/slmodemd start" should succeed in finding the modem and starting the daemon. Other possible commands are stop, status, and restart.
The modem is /dev/ttySL0. It's an ALSA device, so you'll find it listed using "aplay -l" rather than "/sbin/lspci". The modem dials silently. There is a nice application kppp for configuring dial-up connections and making them. It is part of kde.
#!/bin/bash
#
# Insert/remove modules for TI multimedia card support
# These are the drivers from the package tifm-0.5c distributed by
# BerliOS Project: TI FlashMedia xx12/xx21 driver
# (http://developer.berlios.de/projects/tifmxx)
#
# chkconfig: 2345 90 10
# description: Inserts/removes modules for TI FlashMedia \
# (5 in 1 Bridge Media Adaptor)
#
# See how we were called
#
case "$1" in
start)
/sbin/modprobe tifm_7xx1
/sbin/modprobe mmc_block
/sbin/modprobe tifm_sd
echo "TI FlashMedia xx12/xx21 driver modules inserted"
;;
stop)
rmmod tifm_sd
rmmod mmc_block
rmmod tifm_7xx1
echo "TI FlashMedia xx12/xx21 driver modules removed"
;;
restart)
$0 stop; $0 start
;;
*)
echo "Usage: mmc {start|stop|restart} to insert/remove/reinsert tifmxx
5 in 1 bridge Media adapter drivers"
;;
esac
chmod a+x /etc/rc.d/init.d/mmc
/sbin/chkconfig --add mmc
Footnote: I suspect that someone who knows more than I do (a club with a big membership) could cook up some udev rules to load these modules on demand.
To install the xorg i810 driver, I downloaded the following seven rpms.
xorg-x11-server-Xorg-1.0.99.901-3.i386.rpm xorg-x11-drv-i810-1.6.0-2.i386.rpm libdrm-2.0.1-2.i386.rpm mesa-libGL-6.5-5.i386.rpm mesa-libGL-devel-6.5-5.i386.rpm mesa-libGLU-6.5-5.i386.rpm mesa-libGLU-devel-6.5-5.i386.rpm
from the fedora aiglx project page. I'm not sure that all seven are necessary. The i810 driver requires the X11-server. To get the i810 driver to work properly at least some of the remaining five are needed, maybe just mesa-libGL. I ended up installing all of the upgrades on this page.
To satisfy dependencies, it works to install as follows:
Then run
/sbin/modprobe i810
Next, edit /etc/X11/xorg.conf, commenting out the VESA driver line and putting in an i810 driver line:
Section "Device" Identifier "Videocard0" # Driver "vesa" Driver "i810" VendorName "Videocard vendor" BoardName "Intel Corporation Mobile Integrated Graphics Controller" EndSection
Then reboot.
You can't go back to the old VESA driver simply by removing the # on the "Driver "vesa"" line and commenting out the i810 line. The reason is that the current vesa driver is incompatible with the new xorg-x11-server that you just installed. You'll have to "uninstall" them if for some reason you want to go back.
# Bring up the wireless interface. Earlier in the start up process # /etc/rc.d/init.d/wireless loaded the ipw3945 driver. /sbin/ifconfig eth1 up # Connect to the LAN "XXX", if it is available. Trying to # acquire a lease with "/sbin/dhclient -q eth1" when it's not available # hangs the boot process. LOCAL_NET_SEARCH=`/sbin/iwlist eth1 scanning 2>/dev/nul | grep "XXX"` if [ ! -z $LOCAL_NET_SEARCH ] ; then /sbin/iwconfig eth1 key open YYY essid "XXX" /sbin/dhclient -q eth1 fi
yum install wlassistant
as root. Afterwards, it appears on the System -> Administration menu (or running "wlassistant" as root starts it). Using the Wireless Assistant you should be able to make a wireless connection at this point.In the power management configuration window, on the Running on Battery tab, you might want to set "Put the computer to sleep when it has been inactive for:" to "Never". The reason is that if you suspend or hibernate for longer than this setting, then on resuming, the gnome-power-manager wakes up and realizes that the computer has been inactive for longer than the allowed time. So it immediately suspends. Yes, this is goofy.
#!/bin/bash
#
# /home/Mack/bin/suspend.sh
#
# Script to suspend from a toolbar icon
#
sleep 1
/usr/bin/gnome-screensaver-command --lock
/usr/bin/pm-suspend
/usr/bin/gnome-screensaver-command --poke
chmod 754 /home/XXX/bin/suspend.sh
.
Then put an icon on the toolbar name "Suspend" with command-line
/home/XXX/bin/suspsend.sh. Gnome will automatically give it an appropriate icon.
"mjmwired" has posted a page with lots of good ideas for tuning your FC5 installation. It can be found here. This is one of them.
You can install MS true type fonts as follows:
I find these font choice agreeable in System -> Preferences -> Fonts: Window title font: Trebuchet MS bold 14pt; Fixed width font: Courier new 16pt; everything else: Verdana 11pt.
Option "SHMconfig" "true"
to the section of /etc/X11/xorg.conf that begins
Section "InputDevice"
Identifier "Synaptics"
I opted to set Touchpadoff=2. This disables tapping the touchpad to select. I find it annoying to have the focus shift suddenly away from the window in which I'm typing when I accidentally brush against the touchpad. With tapping disabled, the two touchpad buttons serve this purpose in the usual mousy way.
Setting Touchpadoff to 2 also disables automatic scrolling, which you may have noticed, causes the pointer to act erratically in Firefox, sometimes causing the page to scroll away when you're trying to highlight and copy something.
Incidentally, if you use emacs, adding the line
(mouse-avoidance-mode 'banish)causes the touchpad pointer to jump out of the way (the upper right-hand corner of the window) as soon as you start typing.
So the synaptics section of my /etc/X11/xorg.conf file looks like this:
Section "InputDevice"
Identifier "Synaptics"
Driver "synaptics"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "yes"
Option "LeftEdge" "120"
Option "RightEdge" "830"
Option "TopEdge" "120"
Option "BottomEdge" "650"
Option "FingerLow" "14"
Option "FingerHigh" "15"
Option "MaxTapMove" "110"
Option "VertScrollDelta" "20"
Option "HorizScrollDelta" "20"
Option "MinSpeed" "0.3"
Option "MaxSpeed" "0.75"
# Option "SHMconfig" "true" # true = experiment using synclient
Option "Touchpadoff" "2" # turn off tapping and scrolling
EndSection
The compact flash volume is recognized as /dev/hda1 and appears in the Nautilus window you get by clicking on Desktop "Computer" icon as "Compact Flash". However, the permissions aren't set correctly to mount it by clicking on "Compact Flash".
Of course, one way to mount it is, for example, to create a directory /media/CF and, as root, issue the command
mount -t vfat /dev/hda1 /media/CF
This is a nuisance. To get Hal to mount a compact flash automatically, create a directory /usr/share/hal/fdi/policy/95userpolicy. Then create a file 50-pcmcia-compact-flash.fdi in this directory, containing the following
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<!-- Get Hal to mount CF cards from a pcmcia adapter. -->
< deviceinfo version="0.2">
< device>
< match key="storage.bus" string="ide">
< match key="storage.drive_type" string="compact_flash">
< merge key="storage.hotpluggable" type="bool"> true</merge>
</match>
</match>
</device>
</deviceinfo>
After saving this file, when you insert an adapter containing a compact flash card, it mounts automatically as /media/disk-1 (at least in my setup; the SD adapter has dibs on /media/disk). Also a Nautilus window pops up on your desktop.
It's possible that I was just lucky, and that Hal won't recognize your compact flash card for what it is. If you have trouble, you ought to be able to figure out how to identify your card to Hal by running hal-device-manager from a prompt.
In case your Linear B is a little rusty, here is what the Fn key combinations are supposed to do:
Fn + Key
|
Function
|
Status
|
Fn + ESC | Toggle sound on/off | Doesn't work but can be fixed (scancode e01b) |
Fn + F1 | Lock the screen | Doesn't work but can be fixed (scancode e06e) |
Fn + F2 | Provide power saving options | No scancode |
Fn + F3 | Suspend to RAM | No scancode |
Fn + F4 | Hibernate to disk | No scancode |
Fn + F5 | Cycle on/off combinations of the built in display and an external display | Works. With no external monitor connected, it can wreck the X display. To recover: ctl-alt-F2, then ctl-alt-F7. |
Fn + F6 | Decrease screen brightness | Works |
Fn + F7 | Increase screen brightness | Works |
Fn + F8 | Show available wireless connections | No scancode |
Fn + F9 | Toggle touchpad on/off | Works |
Fn + F10 | Toggles the keypad (with numlock off) overlay to the keyboard on/off | Works |
Fn + F11 | Toggles the keypad (with numlock on) overlay to the keyboard on/off | Works |
Fn + F12 | Scroll lock | Works |
Fn + 1 | Zoom in | Doesn't work, but has a scancode. Just use Ctl-plus for this function |
Fn + 2 | Zoom out | Doesn't work, but has a scancode. Oddly, it's the same scancode as for Fn + ESC, so this combination will duplicate what that one does. Use Cntl-minus for the Zoom Out function. |
Fn + Space | Change video mode (whatever that is) | Doesn't work. No scancode. |
# Give Fn-ESC and Fn-F1 combinations keycodes, so that they can be assigned
# their expected functions.
setkeycodes e01b 113 # give Fn-ESC keycode 113 (KEY_MUTE)
setkeycodes e06e 177 # give Fn-F1 keycode 177 (KEY_SCREEN)
I decided that these keycodes are good choices based on the Keys and Buttons section of the file /usr/src/redhat/BUILD/kernel-2.6.17/linux-2.6.17.i686/include/linux/input.h.
setkeycodes e01b 113
setkeycodes e06e 177