Fedora Core 4 on HP Compaq nx7010

Jukka Ketelaars

Legal Notice

Table of Contents

1. Log
1.1. September 11, 2005
1.2. July 7, 2005
1.3. June 29, 2005
1.4. March 13, 2005
1.5. February 28, 2005
1.6. February 4, 2005
1.7. January 22, 2005
1.8. December 2004
1.9. November 2004
1.10. October 2004
1.11. September 2004
1.12. August 2004
1.13. July 2004
1.14. June 2004
1.15. May 2004
1.16. April 2004
2. Installation
2.1. Preparation
2.2. Installation
2.2.1. Fedora Core 3 test 1 (2.90)
2.3. Post installation
2.3.1. Disabling unused services
2.3.2. Disable ping response
2.3.3. Customizing the desktop
3. Fedora
3.1. Kernel (2.6.11)
3.1.1. Laptop-mode
3.1.2. Compiling 2.6.11 with gcc 4.0
3.2. Useful Fedora links
3.3. Other Linux distributions
4. nx7010
4.1. Useful nx7010 links
4.2. System information
4.3. Keyboard
4.4. Touchpad
4.4.1. Synaptics via kernel driver
4.4.2. Synaptics via separate driver
4.5. SpeedStep
4.6. WiFi
4.6.1. ipw2100 (1.1.0)
4.6.1.1. ipw2100 in the mm-kernels
4.6.1.2. ipw2100 0.46 and older
4.6.2. ndiswrapper
4.7. USB
4.7.1. Buffalo ClipDrive
4.7.2. USB Mouse
4.7.3. USB Printer
4.7.4. USB Harddisk
4.8. Bluetooth
4.9. Infrared
4.10. IrDA
4.11. Power Management
4.11.1. swsusp - Suspend-to-Disk
4.11.2. swsusp2
4.11.3. S3 - Suspend to RAM
4.12. ACPI
4.13. Modem
4.14. Display
4.14.1. LCD panel
4.14.2. Dual head
4.15. Sound
4.16. DVD+RW Drive
4.16.1. CD
4.16.2. DVD
4.17. BIOS
4.18. PCMCIA
4.19. Firewire
4.20. SD/MMC card reader
5. Siemens SX1
5.1. Useful SX1 links
5.2. Resetting the phone
5.3. Codes
5.4. GPRS
5.5. Gnokii (0.6.4)
5.5.1. Gnokii via IrDA
5.5.2. Gnapplet
5.5.2.1. Gnapplet via IrDA
5.5.2.2. Gnapplet via Bluetooth
5.6. Modem connection to Siemens SX1 via IrDA
5.7. Python for Series 60
5.7.1. Bluetooth console
6. Canon IXUS 500
7. Buffalo AirStation G54
8. Software
8.1. xorg
8.1.1. Compositing
8.2. GNOME
8.2.1. GNOME Bluetooth
8.2.2. Sound Juicer
8.3. Wine
8.4. Firefox (1.0PR)
8.4.1. Switching to the Firefox rpm from Fedora
8.4.2. Video plugins for Firefox
8.4.3. Updating to 1.0 Preview Release
8.5. MediaWiki (1.3.7)
8.6. Bootchart
9. This document

Chapter 1. Log

1.1. September 11, 2005

1.2. July 7, 2005

1.3. June 29, 2005

  • Installed FC4 (Stentz)

  • Installed kernel 2.6.12-mm2 (for integrated ipw2100 and Beagle)

  • Added info on ipw2100 in mm-kernels

1.4. March 13, 2005

  • Use fedora-docs stylesheet

  • Installed kernel 2.6.11, had some trouble compiling it with gcc 4.0

1.5. February 28, 2005

  • Updated suspend to RAM and swsusp script to restore USB after suspend

  • Minor cleanups and additions

  • Installed kernel 2.6.11-rc5

  • Installed ipw2100 1.0.5

1.6. February 4, 2005

  • Added section on getting suspend to RAM to work

  • Installed kernel 2.6.11-rc3

  • Installed ipw2100 1.0.4

1.7. January 22, 2005

  • Swsusp works again (and faster, due to improved algorithms) in kernel 2.6.11-rc2

  • With kernel 2.6.11-rc2 the mute-led on the keyboard has started working: updated keyboard section.

  • Changed pmdisk references to swsusup, and updated swsusp section

  • Added link to laptop mode tools in laptop mode section.

  • Added section on running Python for Series 60 on SX1

1.8. December 2004

  • Bug 1220 in xorg where DRI no longer works after hibernation has been fixed and is in Fedora-development (xorg-x11-6.8.1.901-1), so it will go into FC4. This means that the hibernate script no longer needs to start a dummy X session to turn DRI back on after suspend.

  • Installed ipw2100 1.0.2

  • Added new image created with improved version of bootchart

  • Added image created with bootchart

  • Added comment on disabling ping

  • Had to switch back to kernel 2.6.10-rc1 as pmdisk/swsusp is broken in 2.6.10-rc2 and 2.6.10-rc3

1.9. November 2004

  • Added info on shutdown bug

  • Installed kernel 2.6.10-rc2

  • Installed ipw2100 1.0.1

  • ipw2100 0.60 now works with kernel 2.6.10-rc1 (Wireless Extensions is upgraded to v17 with this kernel)

  • Added info on installing MediaWiki

1.10. October 2004

  • Installed kernel 2.6.9

  • Upgraded BIOS to F.51

  • Upgraded Gnokii to 0.6.4, got gnapplet working via Bluetooth

  • The synaptics-0.13.5 touchpad driver is now included in Fedora

  • Added remark about bluez-sdp to the Bluetooth section (thanks Remco)

  • Installed kernel 2.6.9-rc4, ipw200 0.56 and wbsd 0.8.1

  • Added info on mplayerplug-in to Firefox section

  • Installed ipw200 0.55

  • Unloading ipw2100 module in hibernate removed as it handles suspend itself

  • Installed kernel 2.6.9-rc3: major changes in pmdisk (kernel option pmdisk is replaced with resume); wbsd 0.7 still works and needs less patches

1.11. September 2004

  • Firefox and Thunderbird are included in FC3.

  • Firmware is stored in /lib/firmware in FC3: updated ipw2100 section.

  • Installed Fedora Core 3 test 2 - no problems, only a few rpms were installed as I had installed most of them already via up2date.

  • Installed xcompmgr and noticed its way too slow to be useful, for instructions see xorg section.

  • Added some info to GPRS section.

  • Added fix to have DRI enabled after hibernate (only needed with xorg 2.7.99.202 and up)

  • Removed now obsolete info about problems with using wbsd as a module.

  • Had some trouble installing Firefox 1.0PR.

  • The MMC card reader works, added some info on using it.

  • Installed kernel 2.6.9-rc1

  • Installed ipw2100 0.54

1.12. August 2004

  • Looks like hotplug firmware loading finally is enabled when the network is started in init

  • Added FC3t1 specific info for USB flashdrives

  • Installed kernel 2.6.8.1

  • Added SD/MMC card reader section

  • Installed ipw2100 0.53

  • With xorg 6.7.99.202 DRI no longer works after hibernation (see bug 1220)

  • Updated hibernate script

  • Run DocBook html through tidy

  • Minor cleanups

  • Added USB Printer info

1.13. July 2004

  • Added info on using Gnokii with gnapplet

  • Installed Fedora Core 3 test 1 and ran into a bug

  • Added info on burning DVDs

  • Switched from DocBook Article to Book

  • Moved SX1 related IrDA paragraphs to SX1 chapter

  • Added preparation section

  • Added Buffalo AirStation G54 section

  • Switched to DocBook

  • Installed ipw2100 0.47

1.14. June 2004

  • Added dual head info

  • Added USB mouse info

  • Added info on touchpad driver abilities

  • Added several SX1 links

  • The latest Rawhide updates finally renamed XF86Config to xorg.conf

  • Updated touchpad section with Synaptics driver in kernel

  • Updated kernel to 2.6.7

  • Updated BIOS to F.42

  • Updated SX1 firmware to v12

  • Updated Firefox to 0.9

  • Added comment about ipw2200

  • Added some useful SX1 codes

  • Installed ipw2100-0.46_3

  • Added dmidecode output

  • Disabled hotplug during init

  • Added GPRS section

  • Added XF86Config file

  • Added modprobe.conf file

  • Added GNOME Bluetooth section

1.15. May 2004

  • Added IrDA section

  • Added Bluetooth section

  • Updated BIOS to F.34

  • Installed kernel 2.6.6

  • Installed ipw2100-0.44

  • Added PM_DISK section

  • Installed slmodem-2.9.7

  • Installed ipw2100-0.43

  • Added solution to problem with ipw2100 firmware loading during init

  • Added solution for hostap_crypt_wep loading

  • Tried to get swsusp to work again, it now crashes in the final phase of waking up

1.16. April 2004

  • Installed Fedora Core 2 test 3 - no big changes as most of the latest builds were already installed with up2date

  • Start cpudyn via chkconfig

  • Added 4k stack & ndiswrapper comment

  • Added cpudyn info in speedstep section

  • Updated evolution link

  • Updated modem section, kppp now works (thanks Stuart)

  • ipw2100-0.41 occasionally writes errors to dmesg, but seems to recover itself

  • Added PCMCIA section

  • Compiled ipw2100-0.41, everything ok

  • Added some more data on my attempts to get ACPI suspend to RAM working

  • Got the modem working (but not with kppp) under 2.6.5

  • Filed bug with RedHat that 1680x1050 resolution can not be selected

  • Added modem section

  • Added screen section

  • Installed ipw2100 0.40, the dmesg messages seem to have disappeared

  • Built kernel 2.6.5-1.319 to get rid of "bad pmd" messages, ipw2100 still causes occasional messages in dmesg, ACPI suspend still freezes

  • Added ACPI, BIOS and Sound section (not much data there)

  • Added Software section with comments on Wine

  • Added USB comments

  • Added Fedora section

  • Added lspci and lsusb output

  • Added some links

  • First version

  • Running Fedora Core 2 test 2 with custom compiled 2.6.4-1.305 kernel

Chapter 2. Installation

2.1. Preparation

When the nx7010 is delivered, the whole disk is one Windows XP partition. To shrink it first the NTFS filesystem needs to be resized, after which the partition can be resized.

To follow this procedure you need a bootable Linux CD with ntfsresize, for example Knoppix.

Shrinking the NTFS filesystem:

  • first run chkdsk /f to clear out some problems that may cause ntfsresize to abort (the error message is "Filesystem check failed! Windows wasn't shutdown properly or inconsistent")

  • use the Windows defragmentation tool to compress the blocks at the start of the disk

  • set the BIOS boot order to first try to boot from CD

  • boot Knoppix

  • start a root shell

  • ntfsresize -n -s20000M /dev/hda1

  • ntfsresize -s20000M /dev/hda1

  • fdisk /dev/hda

  • display partition table - p

  • destroy partition - d

  • create a new partition - n

  • primary partition - p

  • first partition - 1

  • start cylinder - 1

  • partition size - +20000M

  • change file-system type to HPFS/NTFS - t

  • first partition - 1

  • HPFS/NTFS - 7

  • set the bootable flag - a

  • partition - 1

  • display new partition table - p

  • update partition table - w

2.2. Installation

The initial installation was a clean install from CD of Fedora Core 2 test 1. The installation went without noteworthy problems. I later updated this, also via CD, to test 2, test 3 and finally the final release. These updates went fine, though in general they did not have much updating to do as I kept the system synchronized with the development packages.

2.2.1. Fedora Core 3 test 1 (2.90)

When installing FC3t1 I ran into bug 127713. The solution is to rmdir /selinux before the upgrade.

This was the first upgrade I've done from the single DVD ISO instead of several CD ISOs. It worked quite nicely, and would be particularly useful when doing a fresh install. The only disadvantage is that it is a 4.1GB download so if you don't have a fast connection and don't need the sources you are better off downloading the CD ISOs.

2.3. Post installation

2.3.1. Disabling unused services

Fedora automatically enables a lot of services. If you are not using your machine as a server, then there may be a lot of services that you never use. Several reasons to disable these services are: faster startup time, disable potential security holes and reduce unnecessary use of resources.

Once all the hardware is properly running there is not much use for kudzu. Disabling it saved me about 30 seconds of startup time. It can the be disabled with:

chkconfig --del kudzu

I don't use sendmail so:

chkconfig --del sendmail

NFS consists of several services:

chkconfig --del nfs
chkconfig --del nfslock
chkconfig --del rpcgssd
chkconfig --del rpcidmapd
chkconfig --del rpcsvcgssd

Some other stuff I personally never use:

chkconfig --del isdn

2.3.2. Disable ping response

With default installation the firewall blocks all ports. However, ping response is still on, so the machine is still detectable. You can turn it off by adding the following lines to /etc/sysctl.conf:

# Disable ping response
net.ipv4.icmp_echo_ignore_all = 1

2.3.3. Customizing the desktop

On the 1680x1050 screen the font and mouse cursor are a little too small to be comfortable.

The font size can be increased via PreferencesFont. Setting all fonts to size 12 works well for me.

The size of the mouse cursor can be increased via PreferencesMouse. On the Cursors tab you can set the size to Large.

Chapter 3. Fedora

3.1. Kernel (2.6.11)

Fedora does not support NTFS, but the Kernel source packages do contain the NTFS code. So I installed the kernel-source package, and enabled CONFIG_NTFS_FS=m.

The packaged kernels have 4G/4G (X86_4G) turned on. For performance reasons, and possible incompatibilities, I turn this off.

To be able to throttle the CPU down I set CPU_FREQ_GOV_POWERSAVE=y.

From 2.6.9 onwards (up to 2.6.10-rc2 at the moment) the machine reboots instead of shutting down. This only happens if it is on AC, unplugging it fixes it. The problem also occurs when pmdisk shuts the machine down. There is a fix available at osdl.org.

3.1.1. Laptop-mode

As of 2.6.6 laptop-mode is integrated in the kernel. To get it to work follow the instructions in Documentation/laptop-mode.txt.

Jeppe Andersen brought to my attention Bart Samwel's page on using laptop mode tools to get laptop mode working easily. You can use this instead of the kernel documentation.

3.1.2. Compiling 2.6.11 with gcc 4.0

With Fedora development having switched to gcc 4.0, I tried to compile the kernel with this version. It failed with errors in the i2c module. To fix this I used this patch.

3.3. Other Linux distributions

I have not tried out any other distros on the nx7010. If you are interested in installing Gentoo, check out X1000 Linux which is based on Gentoo and optimized for X1000 notebooks, to which the nx7010 is very similar.

The following link gives information for installing Debian GNU/Linux on Compaq/HP nx7010.

Chapter 4. nx7010

The model version is DJ344A#AK8.

4.2. System information

The following output is from a standard nx7010 without any upgrades:

4.3. Keyboard

To map the sound volume keys under Gnome, go to Main Menu->Preferences->Keyboard shortcuts. Here you can map the keys, by simply selecting Sound->Volume mute and then pressing the mute key. Repeat this for Volume down and Volume up.

Up to kernel 2.6.11-rc2 the mute led did not work without reverting to scripts. As of kernel 2.6.11-rc2 the mute led is automatically turned on if sound is turned off (not just by the mute button).

4.4. Touchpad

There are two different ways to get the Synaptics touchpad working. It can be done either via the kernel mouse driver or via a separate driver. Both options offer scrolling and tapping support. The kernel driver is the easiest to activate, and is the one I'm currently using. Two minor differences I have found are that the kernel driver does not support tapping in the scroll area, and horizontal scrolling does not work.

4.4.1. Synaptics via kernel driver

To get the kernel driver to work you only need to add psmouse.proto=imps to the kernel line in your /etc/grub.conf. Because I used to use the separate driver before, I had to clean up my /etc/X11/xorg.conf. On a clean install you probably don't have to make any changes to this file.

4.4.2. Synaptics via separate driver

The Synaptics Touchpad driver is not included in Fedora Core 2, but it is included in Fedora Core 3. I installed the synaptics-0.12.3-0.n0i.1.rpm package myself, and added the parameters to /etc/X11/XF86Config (Section "InputDevice", Identifier "Mouse1"). To /etc/rc.d/rc.local I added /sbin/modprobe evdev to have the module loaded at boot.

You can use synclient to monitor and adjust settings for the touchpad.

With the driver the touchpad works quite nicely. Horizontal and vertical scrolling, and tapping to simulate mouseclicks all work. The on/off switch also works, though that is no surprise as it's probably hardwired to do so.

4.5. SpeedStep

To get speedstep to work, add DRIVER="speedstep-centrino" to /etc/cpuspeed.conf.

To automatically adjust CPU-speed I compiled cpudyn and it seems to work well. The only snag is that in the standard Fedora kernel the Powersafe governor was compiled as a module. This meant that powersafe mode was not loaded. This can be recognized by entering cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors, the output was userspace performance when it should have been powersave userspace performance. As I compile my kernels anyway, I fixed this by setting CPU_FREQ_GOV_POWERSAVE=y in .config.

To get the daemon to start automatically I changed the chkconfig line of /etc/init.d/cpudyn to:

# chkconfig: 2345 50 50

After this execute chkconfig --add cpudyn.

4.6. WiFi

4.6.1. ipw2100 (1.1.0)

The Intel ipw2100 driver works great. Note that newer models are delivered with 2200BG adapter, which does not work with the ipw2100 drivers. Check out the Intel ipw2200 driver instead. If you're not sure about which adapter you have enter:

lspci | grep Wireless

In Fedora Core 3 the driver is properly loaded during init and immediately available. The basestation settings can be maintained with system-config-network.

Note that in FC3 the firmware directory is moved from /usr/lib/hotplug/firmware to /lib/firmware, so make sure to copy the ipw2100 firmware files to that directory.

In Fedora Core 2 there is a problem with the firmware loading of the ipw2100 driver during init. Once the system is started modprobe ipw2100 loads the firmware without problems. I tracked it down to a missing /etc/init.d/hotplug. I filed a description of the problem, and the solution as bug 122807. Though this makes the firmware loading work during init, it causes trouble with ipw2100 drivers 0.45 and onwards, probably as it conflicts with kudzu. So for the time being I've disabled it.

A nice option that is not mentioned in the ipw2100 INSTALL document is that you can enter base station data in the /etc/sysconfig/network-scripts/ifcfg-eth1 file. That way you can get the network up and running without starting iwconfig at a later stage. I have it set to my home network settings so at least there I've got an immediate connection. In my case it looks something like this:

# Intel Corp.|PRO/Wireless LAN 2100 3B Mini PCI Adapter
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
MODE=Managed
ESSID=Enter basestation ESSID here
KEY=Enter WEP key here

4.6.1.1. ipw2100 in the mm-kernels

The ipw2100 (and ipw2200) driver is available in the mm-kernels. For it to show up in xconfig you first have to turn on the IEEE 802.11 WEP encryption module. After that the ipw2100 becomes visible in the WiFi section.

4.6.1.2. ipw2100 0.46 and older

As of version 0.47, WEP encryption is handled by the included ieee80211 modules. Older version needed the hostap driver. These had the problem that ipw2100 did not automatically load the hostap_crypt_wep module that was needed for WEP encryption. To get this working I added the following line to /etc/modprobe.conf:

install hostap /sbin/modprobe --ignore-install hostap; /sbin/modprobe hostap_crypt_wep

4.6.2. ndiswrapper

I was unable to get ndiswrapper to work. Everything compiled OK, and the modules loaded without problems as long as the base station was off, or the network button off. However, the moment a connection was made I got five seconds of stack dump flashing by, followed by a freeze. I read that some Windows drivers crash under ndiswrapper if the kernel is compiled with 4k stack, but I had already switched to ipw2100 at that point so I never tried a build with 8k stack.

4.7. USB

Basic USB configuration works out of the box. See the Bluetooth section for information on the built in Bluetooth USB device.

4.7.1. Buffalo ClipDrive

The Buffalo ClipDrive (a USB flash drive) works fine. The only problem was that hotplug did not recognize it. This page helped me get it fixed. I just added match hd ClipDrive to the device flash section in /etc/updfstab.conf.default. After this I added the Disk Mounter applet to my panel to mount/unmount it.

If a flash drive is not recognized by hotplug you can mount it with (assuming it's plugged into USB port 1):

mount -t vfat /dev/sda1 /mnt/flash
[Note]Note

In FC3t1 updfstab is replaced by fstab-sync. As a result the /mnt/flash mountpoint is no longer used. Instead the drive will be automatically mounted to /media/usbdisk.

4.7.2. USB Mouse

Using a Logitech Click! optical mouse is as simple as plugging it in. Xorg accepts input of the mouse at the same time as from the touchpad without any switching.

4.7.3. USB Printer

After plugging in a HP LaserJet 1300 with an A-B USB-cable, the printer is automatically detected and the usblp kernel module automatically loaded. It is easy to set up in the Print Manager. As device specify /dev/usb/lp0. As printer driver select HP LaserJet 1300 using PostScript.

4.7.4. USB Harddisk

Plugging in an "HP Personal Media Drive" yielded dmesg messages complaining that NTFS is not supported. The simplest solution seemded to reformat it to FAT32 (I also need to access the drive under XP). The HP manual had some instructions for doing this, but was rather vague. It turns out XP will only format FAT32 partititions up to 32 GB even though FAT32 supports up to 8 TB (see Q314463)! Fortunately Linux has no such artificial limitations and happily formatted the drive to FAT32.

First use fdisk to change the partition to FAT32:

# fdisk /dev/sda

The number of cylinders for this disk is set to 19457.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 160.0 GB, 160041886208 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       19457   156288321    7  HPFS/NTFS

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): b
Changed system type of partition 1 to b (W95 FAT32)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

After this the partition can be formatted (BTW, the formatting only took one second, whereas Windows took more then 20 minutes only to bail out with a message that it could not handle it):

mkdosfs -F 32 /dev/sda1

4.8. Bluetooth

Bluetooth works pretty much out of the box, except that I had to separately install the bluez-utils package. You may also have to install the bluez-sdp package to be able to use sdptool. The /etc/bluetooth/hcid.conf delivered with Fedora works right away, I have not had to start hciconfig myself. The default Bluetooth PIN in /etc/bluetooth/pin is set to BlueZ, make sure to change this to some numeric PIN via which you can identify the machine.

Check that the Bluetooth device is detected via hciconfig. The output should look like:

hci0:   Type: USB
        BD Address: 00:20:E0:85:7F:65 ACL MTU: 192:8  SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN AUTH ENCRYPT
        RX bytes:1201 acl:29 sco:0 events:48 errors:0
        TX bytes:746 acl:22 sco:0 commands:18 errors:0

To find out which Bluetooth devices are in range you can use the hcitool scan command. To find out which services these devices provide (and on which channel they provide them) use the sdptool browse command.

The /etc/bluetooth/rfcomm.conf only contains a commented example, I changed it into the following to connect to the Dial-Up channel of my Siemens SX1 (for use with Gnokii):

rfcomm0 {
        # Automatically bind the device at startup
        bind yes;
 
        # Bluetooth address of the device
        device 00:01:e3:2c:3b:55;
 
        # RFCOMM channel for the connection
        channel 1;
 
        # Description of the connection
        comment "Siemens SX1 Dial-Up";
}

The /dev/rfcomm0 did not exist yet, so I had to create it myself (I assign it to the uucp group because my user also belongs to that group to access other serial devices):

mknod -m 660 /dev/rfcomm0 c 216 0
chgrp uucp /dev/rfcomm0

Using the following .gnokiirc I can get the gnokii --identify command to work. Sadly not much else works yet, but since version 0.6.1 is the first one to support Symbian series-60 phones, this will probably improve.

[global]
port = /dev/rfcomm0
model = AT
initlength = default
connection = serial
bindir = /usr/local/sbin/
use_locking = no
serial_baudrate = 115200
smsc_timeout = 10

My main problem with Bluetooth at the moment is that rmmod hci_usb crashes, which means I can not unload the module, which in turn means that it does not survive hibernation.

For information on GNOME Bluetooth functions, see the corresponding section.

4.9. Infrared

Infrared connection (note: not IrDA) of Gnokii and Gammu to a Nokia 6110 worked without any tweaking. The port is located at /dev/ttyS2.

The only problem was that the phone had to be at least 30 cm removed from the IR port. I suppose the signal strength was too high if it was closer. The problem can be made visible with gammu textall -identify. If you get errors like ERROR: incorrect char - ff, not 1c, then moving the phone further helps.

4.10. IrDA

The nx7010 has a FIR (Fast IrDA) port that supports speeds up to 4 Mbps. The smsc-ircc2 module that supports it is experimental and not included in the default Fedora kernel, so you'll have to set the SMC_IRCC_FIR kernel option, and recompile the kernel. The only problem is that the BIOS does not initialize this chip, so you'll need the SMCINIT utility to do this for you.

To get this to work you first need to download and compile tosh1800-smcinit according to the instructions given on the linked page.

The /etc/sysconfig/irda file should look like this:

IRDA=yes
DEVICE=irda0
DISCOVERY=yes

To /etc/modprobe.conf add the following lines:

install smsc-ircc2 /usr/local/sbin/tosh1800-smcinit; /sbin/modprobe --ignore-install smsc-ircc2
alias irda0 smsc-ircc2

Now you can start IrDA as root via irattach irda0. If you want IrDA started automatically during init, enter service irda on as root.

4.11. Power Management

4.11.1. swsusp - Suspend-to-Disk

swsusp works very well. Prerequisites are:

  • /dev/agpgart must be turned off (kernel parameter CONFIG_AGP in .config)

  • ipw2100 should not be loaded

  • it conflicts with the swsusp2 patches, so those should be left out of the kernel

  • apparently HIMEM does not work, but can be made to work with a patch (see Stuart Prescott's page for more info)

  • swsusp is not able to freeze certain services (such as mDNSResponder and mysqld) so you'll either have to disable them, or stop them in the hibernate script

The phase PM: snapshotting memory may take more then half a minute, during which there is no visual feedback, so it may seem like the machine hangs.

Currently I use the following script (located at /etc/acpi/actions/hibernate.sh) to suspend, it is based on a script posted by v.v on x1000 Forums:

#!/bin/sh
# stop network interface, unload WLAN module
/sbin/ifdown eth1
/sbin/rmmod ipw2100
/usr/bin/killall dhclient

# Turn off USB
/sbin/rmmod uhci_hcd

# preventive sync, not sure whether it's needed
sync

# USB storage gets confused by hibernate so unload it
# No need to reload this module after wake-up, hotplug will do that on demand
/sbin/rmmod usb_storage

# suspend
echo -n shutdown > /sys/power/disk
echo -n disk > /sys/power/state

# After the suspend, we restart here...

# resetting the system clock to the hardware clock
/sbin/hwclock --hctosys

# Start dummy X-session
# Needed as long as bug 1220 on freedesktop.org/bugzilla is not resolved
#/usr/bin/X11/xinit /bin/false -- :1 &

# Restore USB
/sbin/modprobe uhci_hcd

# restarting network interfaces.
/sbin/modprobe ipw2100
/sbin/ifup eth1

[Note]Note

This version of the script starts a dummy X session to get DRI running again. This is only needed if you run a version of xorg for which bug 1220 is relevant. That is versions of 6.8 and its release candidates up to xorg-x11-6.8.1.901-1. This latter version (or newer) is available in development packages for FC4. If it is not relevant, it is better to remove it as it takes several seconds longer to return from hibernation.

To get this script started by the power button, I deleted /etc/acpi/events/sample.conf and created /etc/acpi/events/button.conf:

# Suspend to disk when power button is pressed
event=button/power.*
action=/etc/acpi/actions/hibernate.sh

To activate these changes, restart the ACPI daemon:

service acpid restart

For some reason the above event only worked once per reboot after which I had to suspend by starting the script directly. There appears to be some problem if ACPI_BUTTON is compiled as a module. Compiling it into the kernel fixed this, and the power button now reliably suspends.

Up to kernel 2.6.9-rc3 you must specify the swap partition on the kernel line /etc/grub.conf with (assuming your swap partition is /dev/hda5):

pmdisk=/dev/hda5

with kernel 2.6.9-rc3 and later this should be:

resume=/dev/hda5

4.11.2. swsusp2

After spending a lot of time, I still have not been able to get Software Suspend to work with any 2.6 kernel. I can get the machine to hibernate with kernel 2.6.5 and the latest patches, and wake up work all the way up to the Cleaning up phase, at which point it either freezes or flashes a huge stack dump.

One kernel parameter that needs to be turned off (it's on by default in Fedora) is REGPARM ("Use register arguments") or you'll get messages like "Number of free pages at start and end of write pageset don't match 122657 != 122658" .

4.11.3. S3 - Suspend to RAM

As of kernel 2.6.11-rc3 suspend to RAM works. Prerequisites are:

  • /dev/agpgart must be turned off (kernel parameter CONFIG_AGP in .config)

  • it reportedly conflicts with the swsusp2 patches, so those should be left out of the kernel

ACPI still has some problems with getting the video hardware back up, but bug 3670 has a program called video_post that can be started after wake-up and fixes this. You should download, untar and build it:

cd /usr/src
tar xvfz attachment.cgi
cd emu
make

To start the suspend I use the following script. Running it from within X caused occasional crashes, so I use chvt to switch to a text terminal during the suspension.

#!/bin/sh
# stop network interface, unload WLAN module
/sbin/ifdown eth1
/sbin/rmmod ipw2100
/usr/bin/killall dhclient

# Turn off USB
/sbin/rmmod uhci_hcd

# preventive sync, not sure whether it's needed
sync

# Switch away from X to avoid crash during wake-up
chvt 1

# suspend to RAM
echo -n mem > /sys/power/state

# After the suspend, we restart here...

# Reset video hardware as ACPI does not do this properly
# http://bugzilla.kernel.org/show_bug.cgi?id=3670
/usr/src/emu/video_post

# Switch back to X session in VT 7
/usr/bin/chvt 7

# Restore USB
/sbin/modprobe uhci_hcd

# restarting network interfaces.
/sbin/modprobe ipw2100
/sbin/ifup eth1

exit 0
[Note]Note

When after suspending you restart the computer by pressing the power button, ACPI catches the event and executes any scripts you have attached to it. In my case this caused it to start the hibernation script immediately after waking up.

4.12. ACPI

Most of ACPI works straight away. The Battery applet displays the charge correctly, and whether the machine is on AC. Pressing the power button starts the shutdown procedure, so events seem to work. If the machine is not heavily used, the fan is off.

4.13. Modem

As far as I could find out, the only modem driver that might work is the Smart Link driver. So I downloaded the latest version slmodem-2.9.6.tar.gz. There is also a snapshot directory with development versions, but the latest snapshot had a syntax error.

I used the installation instructions in the README from the "ALSA mode (2.6 kernel only)" section. ALSA is already up-to-date on Fedora, so I ignored the steps for patching ALSA into the kernel (so the kernel does not have to be rebuilt). On my first try to compile the modem driver I got a lot of errors because I did not have the ALSA includes installed. Installing the alsa-lib-devel rpm fixed this.

To start the modem I did a modprobe snd-intel8x0m. I then started the daemon slmodemd --alsa --country=FINLAND hw:1 which created modem device /dev/ttySL0.

The modem responded nicely to minicom. Also wvdial seemed to work with it. However, kppp gave an Unable to open modem error. Stuart Prescott mailed me the solution to this problem: just ln -s /dev/ttySL0 /dev/modem and specify /dev/modem as the modem device in kppp.

4.14. Display

4.14.1. LCD panel

During installation no screen with resolution 1680x1050 is offered. To work around this, I selected the 1400x1050 resolution. This resulted in a rather 'stretched' screen during the first time X was started. To fix this, open /etc/X11/XF86Config in an editor, and the Section "Screen" change the Modes line to Modes "1680x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480". The next time X is started, it will use 1680x1050 resolution.

I have filed this as bug 121104 in Bugzilla. Hopefully it will be included in the final Core 2 release.

4.14.2. Dual head

Dual head works fine. Unfortunately the system-config-display utility is not able to set up a proper xorg.conf file. It can however be used to set up an initial file that can then be edited. If the color depth of the displays differs, the utility silently refuses to exit. Another problem is that you can still not select 1680x1050 resolution for the video card, though it is now available for the LCD panel selection. After adding the 1680x1050 resolution manually I get the following xorg.conf.

The simplest way to start using the new configuration is to reboot. If you just want to restart X, go to runlevel 3 (enter init 3 as root) and then back to 5 (init 5). Once you are logged on the second screen will become active.

4.15. Sound

ALSA worked right out of the box.

4.16. DVD+RW Drive

4.16.1. CD

With the 2.6 kernels you no longer need SCSI emulation for the CD/DVD, so the device address has become obsolete. For example the cdrecord command can directly use the /dev/cdrom (or /dev/hdc) device. So for example to get device information you can enter:

cdrecord dev=/dev/cdrom -prcap

4.16.2. DVD

The cdrecord command in Fedora is supposed to be patched with DVD support. But I use growisofs instead. For example to burn the Fedora Core 3 test 1 CD you can use:

growisofs -dvd-compat -Z /dev/hdc=/tmp/FC3-test1-i386-DVD.iso

4.17. BIOS

I'm running version F.51 BIOS.

4.18. PCMCIA

Out of curiosity I did a quick test with a 3Com 3CXE589ET card. The card was recognized and the the 3c589 driver loaded.

4.19. Firewire

I have not tried to use any Firewire devices.

Note that the standard FC2 kernel has the Firewire module (ohci1394) disabled because the driver is too buggy (in particular it may crash kudzu).

4.20. SD/MMC card reader

Development of the Winbond MMC driver for Linux is at the point that the driver can be used (version 0.8.1). Follow the link for instructions on how to install it. At the moment you'll need at least a 2.6.9-rc1 kernel.

Once you've got the kernel up and running, you should create the /dev/mmcblk0 device. With FC3 you don't have to do this as udev will do this automatically when you insert a card.

mknod /dev/mmcblk0 b 254 1

And create a mount-point /mnt/mmc:

mkdir /mnt/mmc

Now when you insert the MMC card, you can mount its first partition (/dev/mmcblk0p1) with:

mount -t vfat -o sync /dev/mmcblk0p1 /mnt/mmc

For partition information you can use fdisk on the device:

# fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 513 MB, 513802240 bytes
32 heads, 32 sectors/track, 980 cylinders
Units = cylinders of 1024 * 512 = 524288 bytes

         Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1               1         980      501744    6  FAT16

Chapter 5. Siemens SX1

5.2. Resetting the phone

If the phone locks up and removing the battery does not reset it, you can do a hard-reset by keeping the '#' and '*' keys pressed while turning on the phone. Note: you will lose all settings and information stored in the phone (this includes calendar, contacts, messages, settings). The data on the MMC seems to remain intact.

5.3. Codes

Entering the following codes yields useful information about the phone:

  • *#2820# - Bluetooth address

  • *#0000# - Firmware version

  • *#06# - IMEI

5.4. GPRS

To get GPRS to work I made extensive use of this page (particularly useful was that the instructions are for the same operator as I am using). I created the following files:

After creating these files you can connect via GPRS:

pppd call gprs

To disconnect press Ctrl-C.

5.5. Gnokii (0.6.4)

5.5.1. Gnokii via IrDA

It is possible to connect Gnokii via IrDA to the Siemens SX1, but the current functionality is very limited. I use the following .gnokiirc:

[global]
port = /dev/ircomm0
model = AT
initlength = default
connection = serial
bindir = /usr/local/sbin/
use_locking = no
serial_baudrate = 115200
smsc_timeout = 10

To use this you should have IrDA enabled, and also the ircomm and ircomm_tty modules loaded. Before starting Gnokii, go to the main menu on the SX1 and select Setup and then Modem. You now get a menu with only the Connect option, make sure to select this option so that you get a popup message Connecting via infrared. Now place the phone so it's IR port points to the IR port of the nx7010. You can now enter the gnokii --identify command, which should work.

5.5.2. Gnapplet

Since Gnokii 0.6.1 there is a new way to connect Symbian Series 60 phones. It consists of a small program (gnapplet) that is started on the phone, and gnokii communicates with this program.

To get gnapplet loaded into the phone you can send it as a message via Bluetooth:

gnome-obex-send --dest=00:01:e3:2c:3b:55 /usr/share/doc/gnokii-0.6.2/gnapplet.sis

(of course you'll have to adjust the bluetooth address and possibly the path to gnapplet.sis). After you have accepted the message gnapplet will be available in the SX1 main menu.

5.5.2.1. Gnapplet via IrDA

To connect via IrDA I use the following .gnokiirc:

[global]
model = series60
port = /dev/ircomm0
connection = serial

Now you can for example retrieve phonebook entries by starting gnapplet and placing the phone facing the IR port. On the PC enter

gnokii --getphonebook ME 1 300

to retrieve the first 300 addresses.

5.5.2.2. Gnapplet via Bluetooth

To connect via Bluetooth I use the following .gnokiirc:

[global]
port=00:01:E3:2C:3B:55
rfcomm_channel=13
model=series60
connection=bluetooth
[Note]Note

If you get the following error "Couldn't open GNBUS device: Success", then Bluetooth is probably not compiled in. To get this to work I had to install the bluetooth-libs-devel rpm, after which Gnokii's configure script automatically added Bluetooth to the setup.

5.6. Modem connection to Siemens SX1 via IrDA

To use IrDA to make a phone connection to a Siemens SX1, make sure the ircomm and ircomm_tty modules are loaded. To prepare kppp use normal modem parameters, and on the Device Configuration tab enter /dev/ircomm0 as Modem device. Now all you need to do to be able to connect, is to turn on the Infrared modem connection on the SX1 as described in the previous paragraph. After this you should be able to connect via kppp.

I ran into one problem. When I have my Wlan connection turned on, kppp gives the following error repeatedly, and refuses to connect: "Couldn't find interface ppp0: No such device". I suppose there is an elegant way to get rid of this message, but for the time being I circumvent it by running down the Wlan connection via ifdown eth1. If anybody has a more elegant solution, I'd be very interested to hear about it.

5.7. Python for Series 60

You can download Python for Series 60 from Nokia. Download PythonForSeries60_1stEd_SIS.zip and install it on the phone according to the instructions.

The SDK works only under Windows, but you can edit your Python programs under Linux and then send them via Bluetooth to the SX1 (e.g. via gnome-obex-send). When processing the message a dialog will pop up asking whether you want to install it as a Python script or library, after which it is available.

5.7.1. Bluetooth console

Python for Series 60 supports the interactive console that is one of the nice properties of Python. Of course using it via the SX1 keys is less then ideal. With the standard installation the bt_console.py script is delivered that can set up a Bluetooth connection to the interactive mode.

For this to work you first need a Bluetooth serial port on the PC:

sdptool add --channel=3 SP

Next you have to create a corresponding rfcomm port:

rfcomm listen /dev/rfcomm1 3

Now start Python on the SX1 and via OptionsRun script start the bt_console.py script.

When the connection is made, rfcomm on the PC should respond with:

# rfcomm listen /dev/rfcomm1 3
Waiting for connection on channel 3
Connection from 00:01:E3:2C:3B:55 to /dev/rfcomm1
Press CTRL-C for hangup

You can now connect to /dev/rfcomm1 with a terminal program, for example:

screen /dev/rfcomm1

Now you can enter Python commands, for example try sending yourself an SMS (remember to change the phone number in the example):

>>> import messaging
>>> messaging.sms_send('0109876543',u'Hello world!')

Chapter 6. Canon IXUS 500

The camera works with gtkam (listed as Digital Camera Tool in the Graphics menu) without any additional configuration. Just follow these steps:

  • Connect the camera to the PC via the USB cable,

  • Set the mode switch on the camera on Display,

  • Turn the camera on,

  • Start gtkam

  • You should now be able to browse the pictures

Chapter 7. Buffalo AirStation G54

To configure the AirStation from within Linux, follow these steps:

  • connect the PC to the AirStation

  • su -

  • ifconfig eth0 192.168.11.11

  • Connect your browser to http://192.168.11.1

[Note]Note

The maximum length of the root password on the AirStation is only 8 characters. If you enter more, only the first 8 characters will be used. However, during authentication you can enter more then 8 characters, which will cause the authentication to fail.

Chapter 8. Software

8.1. xorg

8.1.1. Compositing

With FC3t2 compositing can be enabled and used to add shadows to windows and making them transparent. Because it is very slow the practical use at the moment is limited to making pretty screenshots.

Add the following lines to /etc/X11/xorg.conf:

Section "Extensions"
    Option "Composite" "Enable"
EndSection

After restarting xorg, compositing will be enabled (you'll know because xorg will be much slower). At the moment Gnome does not support compositing, so you'll need two small applications to demo this:

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps login
[No password needed, just press return]
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps co transset
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xapps co xcompmgr

cd xcompmgr
export PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig/
./autogen.sh
./configure
make
sudo make install

cd ../transset
make
sudo cp transset /usr/X11R6/bin/

You can now turn on compositing with:

xcompmgr -cfC

Note that with the Bluecurve theme the borders seem to get translucent and only the menus get shadows. To make a window 40% transparent, start:

transset .4

the cursor will change into a cross. Click on the window to which you want to apply the transparency setting.

8.2. GNOME

8.2.1. GNOME Bluetooth

There are several Bluetooth utilities for GNOME that use OBEX to send or receive files from Bluetooth devices. Once you've got Bluetooth up and running, these should be easy to use. These are included in FC2, so you should not have to bother with installing the right libraries and such.

To get an overview of the Bluetooth devices that are in range, start gnome-bluetooth-manager (gnome-bluetooth-admin in older versions). This will display a window with the available devices. For each device it will display it's name, address and available services. If the list is not up-to-date, or some of the other GNOME Bluetooth utilities give you problem, press the Scan button to scan for devices.

To be able to receive files from Bluetooth devices, you can start gnome-obex-server (also available in the Fedora menu under System Tools; Bluetooth File Sharing). You will see an icon in the system tray. To send files, consult the manual of your Bluetooth device. For example on the SX1 you select a file in the File Manager, and then specify Send; via Bluetooth after which it will ask you to which device to send it. The file will then be created in the home directory of the user that is running gnome-obex-server.

To send files, a Nautilus VFS extension is available that then uses gnome-obex-send to send the file. To send a file, enter bluetooth:/// in the Nautilus location bar. It should then display a list of Bluetooth devices. Note that you can not browse these devices. You can however drag files to them, which will then be sent to the corresponding Bluetooth device.

You can also use gnome-obex-send to send files from the command line. For example:

gnome-obex-send --dest=00:01:e3:2c:3b:55 /usr/share/wallpapers/sunday_brunch.jpg

8.2.2. Sound Juicer

To get mp3 ripping to work you have to install the gstreamer-plugins-mp3. It is available on Livna.org.

8.3. Wine

I'm currently running the wine-20040408-1fc1winehq package from WineHQ. This build seems quite stable, at least Word 97 and Excel 97 seem to work quite well.

Wine does conflict with execshield which I have to disable to prevent above applications from crashing. This is a matter of running echo 0>/proc/sys/kernel/exec-shield as root.

To use your windows fonts in Wine, mount your windows partition and drag the desired fonts from the /mnt/c/WINDOWS/Fonts folder to fonts:// in Nautilus.

8.4. Firefox (1.0PR)

I prefer the Firefox browser for it's speed, tabbed browsing and of course the add-blocking. Firefox is included in FC3, in FC2 the version from the Firefox site has always worked fine for me.

Sadly in version 0.9 the excellent Qute theme was replaced with the ugly Pinstripe theme. You can reinstall Qute from this link.

8.4.1. Switching to the Firefox rpm from Fedora

After the Firefox rpm became available in FC3t2, I switched to that instead of the version downloaded from the Firefox site. Unfortunately it did not work properly. Firefox started, but the menus did not work and I could not enter an URL.

Apparently the problem was an installed extension, as removing the ~/.mozilla/firefox/default.xyz/extensions/ directory fixed this.

8.4.2. Video plugins for Firefox

The mplayerplug-in works nicely. You can download a Fedora RPM from the download section of the project page. Install it with (as root):

rpm -U mplayerplug-in-2.70-fc2.i386.rpm

8.4.3. Updating to 1.0 Preview Release

After updating from 0.9 to the 1.0PR release Firefox no longer started. Firefox just ended immediately without any messages. Removing the following line from ~/.mozilla/firefox/profiles.ini fixed this:

Default=1

8.5. MediaWiki (1.3.7)

MediaWiki is fairly easy to install. It does require Apache, PHP and MySQL, but those are all directly available from the Fedora repository. In my case I first had to add the following packages:

up2date -i mysql mysql-server mysql-devel php php-mysql php-devel

When you have downloaded the MediaWiki from SourceForge you can install it as follows:

cd /var/www/html
tar xvfz mediawiki-1.3.7.tar.tgz 
mv mediwiki-1.3.7/ wiki/
chmod a+w wiki/config

Now make sure that both Apache and MySQL are running (if Apache was already running, restart it):

service httpd start
service mysqld start

Go to your web browser and go to the link http://localhost/wiki and follow the instructions in accordance with wiki/INSTALL. When it tells you to copy LocalSetting.php enter the following, and then you should be up and running:

cp /var/www/html/wiki/config/LocalSettings.php /var/www/html/wiki

8.6. Bootchart

Bootchart is a utility to generate a graphical representation of the boot process. You only need to install a small patch, the actual (svg or png) graphic can be generated on the Bootchart site. Here is a chart I generated on the nx7010.

Chapter 9. This document

This document was created with DocBook. You can compile the source yourself with:

docbook2html -u nx7010.xml

Aternatively you can use the fedora-docs scripts to build a nicer looking layout.


jukka | ketelaars | at | joakim | pp | fi

TuxMobil - Linux on Laptops, PDAs and mobile Phones -