Login
     
 
     
Articles:
List of all articles
List by categories
Search in articles
>> admin_tools
>> c
>> cli
>> database
>> debian
>> games
>> gnu
>> hardware
>> internet
>> linux
>> microsoft
>> network
>> os
>> php
>> programming
>> python
>> security
>> server
>> shell
>> text_editor
>> tools
>> web_dev
Links:
List all links
List by categories
Search in links
Online Tools:
>> gnuvd
Other Things:
Login
Admin
Pages
Blog
News
Guestbook
Contact
Sponsors:
None Yet!
Sponsor this project
[ Source ]

setting up a toshiba satellite a110-178

Created: 2007-12-07 19:52:00
Modified: 2009-05-21 15:35:00
Categories: os linux hardware gnu debian
Keywords: setting up a toshiba satellite a110-178
Description:

In this article i talk about how i have setup a Toshiba Satellite A110-178 laptop with Debian GNU/Linux. This page may change frequently, as software may change in time and like the laptop is new and i still setup some things when there's time for it.

This report is listed at TuxMobil - Linux on laptops, notebooks, PDAs, mobile phones and linux on laptop.

Have also a quick look to the bottom of this article, for some interesting comments left by users.

Document history

  • 2008-07-19 - Added history informations.
  • 2008-05-12 - Revision.
  • 2007-12-07 - Document migrated from the GUICMS website.

Introduction

The laptop runs very well. It is very still, mostly we don't hear it running. It's really fast, duo core with 2 MB cache each and 1024 MB of RAM. The laptop looks so 'classe', very comfortable. With a widescreen, 1280x800 resolution. The audio sound very well for a laptop. Real good Stereo sound. Build in Ethernet card, wifi. 3 USB ports, 1x firewire. DVD dual layer writer. 6 in one card reader. 1 pcmcia slot. 56k modem, No Floppy drive!

I still modify this article time be time. Depending if i have find somethings useful to share. Also if you have any question / troubles or suggestions, you can always mail me to "david DOT van DOT mosselbeen AT gmail DOT com". Where you replace DOT be a . and AT with a @. Or leave a comment to this article, see on the bottom of this page.

In this article i try to tell the whole setup of the laptop, in details. Maybe this article could become big. This article also include some 'history' of the setup, things have changed. Also some additional comments are placed left and right in some sections. I think it's should be interesting to read the whole article. Also the parts you are not interesting in the first place. So read been the whole stuff before applying somethings. I hope it's useful and you have fun with it. Like we need to tweak some thing left and some things right to get this laptop turn like a golden swatch. Yeah, this laptop rules guys!

Additional info

A day, when i wanted to power on the laptop, i got nothing more. There was only the light of the power button and the other 'on power' light that goes on. Us could hear the CD ROM starting up too. But nothings happened on screen and the O.S. didn't load. It didn't either without the battery. I suspected that the laptop was broken, somethings serious. The laptop was only 3 months. So i have call the Toshiba help desk for support. With a nice friendly guy on the line, i had need to do some little key combinations when starting the laptop to try to detect the trouble. Not ask me which key i had need to press. Still nothing happen. So the laptop had need to go back for reparation. So we made an appointment. A day later, with a special express delivery, these have take the laptop for reparation. The nice guy of Toshiba had warn me that it goes take between 7 and 10 work-days. One week later, the laptop have come back to home!

On the reparation paper, there was noted that the motherboard has been replaced. I guess, i had some sad changes :-s

Toshiba called back to ask how i had find the support. I was been honest and have tell that the service was super good. Nice friendly happy staffers, fast reparation, no need to move! But the only sad thing i have tell him, is that Toshiba not call back for an appointment to tell which date the laptop goes back to home. Just a call to tell or mail will be fine. Question to be at home!

And as last, the most important: Anyway, one of the best/fast services i have got!

Know troubles

Some know troubles that need to be fixed.

  • We need to take a decent version of Debian. Otherwise the hardware is not detected. Fixed with Debian Etch and above.
  • Build-in wifi card not work out of the box. So the netinst cd maybe be not ideal. See bellow how to fix it.
  • Build-in Ethernet card not work out of the box with the old Sarge netinst. So an old netinst cd maybe be not ideal. Is fixed with the Etch release. See bellow how to fix it.
  • The build-in Ethernet card not more work with the stock kernel 2.8.18 and 2.6.20.1-686
  • The Sata HDD is not yet supported right with a kernel below the 2.6.18. A generic driver is used, but without dma and the device is not used as a scsi. It's '/dev/hda' while it should be '/dev/sda'. We need to recompile the kernel with scsi support and add the sata driver into the kernel (only for older kernels, no more needed with kernel 2.6.18 and aboce). See below how to fix it for older kernels.
  • We not get the temperature of the CPU's, acpi -t say's No support for device type: thermal.

Things still need to be tested

A little list with the things that need to be are tested.

  • 56k modem, i don't have a phone line.
  • ieee 1394. Have not yet any hardware that work on that type of interface. Also need to test the network on it.
  • Power saving. Actually the laptop consume to many on battery. It stay up for near 1:30 (default), while the laptop could be run for 3:26 on Microsoft Windows and noted on the specs. With the processor scaling done (see bellow), the laptop stay up for near 2:50. Need to play with undervolting, see https://www.dedigentoo.org/trac/linux-phc/ to have a longer run.
  • External vga output. Looks like when i press the right fn key to activate the external screen. The screen come back to the laptop screen, but with many lines. It's impossible to see anythings on screen anymore. Looks like it's messed up with the refresh rate or the resolution. Restarting X solve actually the trouble (ctrl+alt+backspace).
  • http://memebeam.org/toys/ExperimentalToshibaAcpiDriver
  • http://omnibook.sourceforge.net/
  • Check the Toshiba mailing list - http://linux.toshiba-dme.co.jp/linux/

Installing Debian Etch

We need to get the Etch installer (the testing release). The Sarge release does not recognize any stuff of the laptop. But there's a way to install Sarge with a newer 2.6.18 kernel too. But i have not yet try that way. Like i wanted Etch on it. We can get the Etch installer on the official website.

Once the CD booted, we need to provide a boot parameter. Otherwise the CD-rom and the HDD is not detected during the install like it's scsi devices and we can not continue because he go to fail when he need to make the partitions. We need then to abort the installation and give a boot parameter.

When the CD is booted, give the follow boot parameter:

install libata.atapi_enable=1

The build-in Ethernet network and the wifi card are not recognized during the installation. So if you take the netinst, you probably get some troubles when you need to download the required packages. Like no one of the network cards will work. These little troubles can be are avoid when you take the first 2 CD's of the 17 install CD's or if you take another external pcmcia network card. If you did not the install of the whole set of CD's then you can download the needed files on another computer and with an USB key put it on the laptop. So that you can install the both network cards.

The rest of the installation goes like normal. Take the debian install instructions if you need these. There are no special things to do for this laptop.

After a fresh install i get some message at boot time and the same appear in the dmesg output:

libata: Unknown parameter `atapi_enable'
ata_piix: Unknown symbol ata_scsi_ioctl
ata_piix: Unknown symbol ata_std_bios_param
ata_piix: Unknown symbol ata_tf_read
ata_piix: Unknown symbol ata_tf_load
ata_piix: Unknown symbol ata_bmdma_start
ata_piix: Unknown symbol ata_std_postreset
ata_piix: Unknown symbol ata_scsi_device_resume
ata_piix: Unknown symbol ata_scsi_device_suspend
ata_piix: Unknown symbol ata_bmdma_setup
ata_piix: Unknown symbol ata_bmdma_stop
ata_piix: Unknown symbol ata_pci_init_one
ata_piix: Unknown symbol pci_test_config_bits
ata_piix: Unknown symbol ata_exec_command
ata_piix: Unknown symbol ata_pci_device_resume
ata_piix: Unknown symbol ata_pci_device_suspend
ata_piix: Unknown symbol ata_qc_issue_prot
ata_piix: Unknown symbol ata_interrupt
ata_piix: Unknown symbol ata_bmdma_irq_clear
ata_piix: Unknown symbol ata_scsi_slave_config
ata_piix: Unknown symbol ata_std_dev_select
ata_piix: Unknown symbol ata_drive_probe_reset
ata_piix: Unknown symbol ata_port_disable
ata_piix: Unknown symbol ata_bmdma_status
ata_piix: Unknown symbol ata_scsi_queuecmd
ata_piix: Unknown symbol ata_eng_timeout
ata_piix: Unknown symbol ata_port_stop
ata_piix: Unknown symbol ata_check_status
ata_piix: Unknown symbol ata_std_probeinit
ata_piix: Unknown symbol ata_qc_prep
ata_piix: Unknown symbol ata_host_stop
ata_piix: Unknown symbol ata_pci_remove_one
ata_piix: Unknown symbol ata_std_softreset
ata_piix: Unknown symbol ata_port_start

I get these messages with the default kernel. I have install an decenter kernel (2.6.17-2-686) but give the same messages. And it's looks like dma is not enabled:

# hdparm -d /dev/hda

/dev/hda: using_dma    =  0 (off)

If i try to enable it, i get the following error:

# hdparm -d 1 /dev/hda

/dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not
permitted using_dma    =  0 (off)

And when i try to load the modules ata_piix and libata i get the follow error:

FATAL: Error inserting libata
(/lib/modules/2.6.17-2-686/kernel/drivers/scsi/libata.ko): Unknown symbol
in module, or unknown parameter (see dmesg)

And in dmesg i get again that bunch of ata_piix: unknow symbol errors.

The computer use a generic ide driver. The hdd device is still '/dev/hda' while it should be '/dev/sda'.

To solve this trouble with older kernels (below 2.6.18), we need to recompile the kernel with scsi support. See the official debian docs for how to compile a kernel. Or see below.

With newer kernels, we no more need to rebuild the kernel with scsi support. So you can skip the 'Kernel recompiling' if you use a kernel 2.6.18 or above. The kernel 2.6.18 is been in the Etch repo.

Kernel recompiling

For this laptop, more precisely for the SATA HDD and the DVD device, we need to compile a custom kernel. This may maybe afraid you, but believe it, it's really not so complicated to do. Once you know how to do it, you will find it very easy. The most complicate task is to know which hardware you have. And maybe you get some headhaches if you forget to add some modules into the kernel. Like then you should recompile the kernel.

Like in this case, we need to activate the SCSI support build in the kernel and also build the module of the sata driver into the kernel. If we want to boot from an sata drive. Otherwise you can load these as an module.

NOTE: This apply only for kernels below 2.6.18. The 2.6.18 have now build-in support for the HDD controller. So we no more need to recompile the kernel any more in the future.

ADDITIONAL NOTES: With the new 2.6.18 kernel, some stuff don't work right anymore. I get some errors to compile the ipw3945 driver (See [1] for the error message). The r1000 driver succeed to compile but won't work, and we don't get errors.

Some time later, debian have included the ipw3945 module in his repo and work like expected now with the 2.6.18 kernel, so that trouble is solved.

[1] The error message while compiling the ipw3945 module:

 Using ieee80211 subsystem version 'git-1.1.13' (API v1) from:

        Base: /lib/modules/2.6.18-3-686/build/ Path:
        /lib/modules/2.6.18-3-686/build/include/

 EXTRA_CFLAGS = -DIEEE80211_API_VERSION=1 -g -Wa,-adhlms=check_inc.lst

    make -C /lib/modules/2.6.18-3-686/build
    M=/home/david/Downloads/ipw/ipw3945-1.1.2  modules make[1]: Entering
    directory '/usr/src/linux-headers-2.6.18-3-686' CC [M]
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.o
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c: In function
    'ipw_send_associate':


    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c:4414: error: too few
    arguments to function 'ieee80211_tx_frame'
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c: In function
    'ipw_bg_daemon_cmd':
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c:4890: error: too few
    arguments to function 'ieee80211_tx_frame'
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c: In function
    'ipw_auth_work': /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c:9458:
    error: too few arguments to function 'ieee80211_tx_frame'
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c:9508: error: too few
    arguments to function 'ieee80211_tx_frame'
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c: In function
    'ipw_handle_probe_request':
    /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.c:9581: error: too few
    arguments to function 'ieee80211_tx_frame' make[2]: ***
    [/home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.o] Error 1 make[1]: ***
    [_module_/home/david/Downloads/ipw/ipw3945-1.1.2] Error 2 make[1]: Leaving
    directory `/usr/src/linux-headers-2.6.18-3-686' make: *** [modules] Error 2

We first need to install the needed tools before we can compile an custom kernel.

aptitude install debhelper modutils kernel-package libncurses5-dev

Getting the kernel. We can use the kernel source provide by Debian or take the latest stable on kernel.org website. Take your choice but here i talk about theDebian way. If you take a kernel of kernel.org website, It's near the same way, just place the tar ball in '/usr/src' and extract it. The Debian way goes like follow:

# The Debian kernel source
aptitude install linux-source-2.6.17

Unpack the kernel if needed. Let's use 'unp', i like that tool when i'm lazy (install it if you not yet have it already aptitude install unp):

unp foo

Change the name of the maintainer and email.

vim /etc/kernel-pkg.conf

Go in the linux kernel source tree:

cd /usr/src/linux-source-2.6.17

Take a working kernel config file. One of a prepackaged kernel. This will help you really many. Otherwise you need to configure it from scratch and it should take many more time. Especially when you not really know what you should add. I had installed the prepackaged kernel 2.6.17, it's ideal, same version. So i take his config file.

cp /boot/config-2.6.17-2-686 .config

If we have take a config file of a older kernel version we need to execute the following. If the kernel config file come from the same kernel version you can skip it:

make oldconfig

And reply to all the question. Mostly all default are ok.

We can use a text interface to configure the kernel. We should add scsi into the kernel, and not let him load that as an external module. Type:

make menuconfig

An little interface start, read what's noted on top. These are the things i have changed:

    SCSI device support  --->

<*> SCSI device support ...  <*>   SCSI disk support <*>   SCSI CDROM
support ...  <*>   SCSI generic support <*>   SCSI media changer support
...

# Go in the sub menu
      SCSI low-level drivers  ---> ...  <*> Serial ATA (SATA) support ...
      <*>   Intel PIIX/ICH SATA support

Press two times the ESC key. Save the config. Okay, we are ready to compile us custom kernel. We first clean the stuff:

make-kpkg clean

fakeroot make-kpkg --append_to_version -486 --initrd --revision=rev.01
kernel_image modules_image

After the compiling is done, you should cd .. to the parent directory. There is a deb file build that you need to install as root user.

dpkg -i linux-image-2.6.17-686_rev.01_i386.deb

The entry in /etc/grub/menu.lst is automatically adjusted.

Like before we had /dev/hda/, we need to change the '/etc/fstab' file and change the devices hdx to sdx. Where x are a, b, c or d. The same thing in '/boot/grub/menu.lst'. Like we the new kernel we have compiled, the hdd and cdrom device should be detected as scsi device and no more as regular ide devices. So do not forget to change it or you are no more able to boot the system.

Once the new kernel compiled and once you have booted into this new kernel, we should again need to build the Ethernet and the wifi module. If we did that already. And maybe other modules you have compiled with modules-assistant. See his appropriate section in this article.

Now you should been have sda and sdc devices. So hdparm should be no more the tool to see some informations of the hdd or cd rom drive. Use sdparm.

At this time i have not yet realy understand how sdparm work. When i try to execute it i get the following:

# sdparm /dev/sda
    /dev/sda: ATA       HTS541010G9SA00   MBZO REQUEST SENSE failed, try
    again with '-v' option

Setting up Xorg

The video card is autodetected by the installer. Xorg will run fine with this as long you not need good 3D. The 3D acceleration is a bit slow. We not especially need to modify the xorg.conf config file to get the display working. The resolution is also set right by default It can only use 1280x800. But we still need to tweak a bit the '/etx/X11/xorg.conf' file. Like in some games (like 'torcs' for example) we only get an low resolution 640x480 and the other are not available. I have discovered that the cause is that there are only one mode defined for each depth mode. Originally you find some lines like this next one in the '/etc/X11/xorg'.conf config file:

Modes           "1280x800"

So i have change it to:

Modes           "1280x800" "1280x768" "1200x800" "1152x864" "1152x768"
"1024x768" "800x600" "640x480"

And then it work right in the games an i can then select these resolutions.

I have also add VideoRam 128000 in the Device section. But that not help to get better 3D performances. I stuck a bit on the amount of shared memory that the card can use. On the specs of the laptop, it should be max use 128MB of shared RAM. But i have read some articles about this laptop and looks that he could use up to 256 MB of shared ram. Also the lshw-gtk show me 256. So i still use 128 MB of shared memory. I have try it with 256 but no visual difference.

I personally find that the 3D performances are poor in GNU/Linux with this video card. I have test FlightGear Flight Simulator on Microsoft Windows with 3D clouds and all the options 'on' to get a realy good image quality. The game still runs realy smoothly. That card work realy amazing. In Debian, i have no 3D clouds in that game and have some strange color effects when i activate the reflections in the render menu. There are realy not enought frame rates per seconds. The game goes to slow, and i not want to tell how horrible it is to try to fligh at night! The fgfs is still playable in Debian with poor performance. I need to examine more what's happend exactly about the 3D.

After some time there was an update of the Intel driver and i got very big fonts, that big that my X where completely unusable. X could detect the right dpi size anymore. When i looked with xdpyinfo we saw that the resolution was at 112x968 dots per inch. I had a need to add the following in the Device section:

Option "DDC" "false"  # added

BTW for an better visual view in the console, when working without X and to better see the messages on screen when booting. I have change the resolution. Edit the file '/boot/grub/menu.lst':

title           Debian GNU/Linux, kernel 2.6.17-2-686 root
(hd0,5) kernel          /boot/vmlinuz-2.6.17-2-686 root=/dev/sda6 ro
acpi=on vga=791 initrd          /boot/initrd.img-2.6.17-2-686 savedefault

The interested part here is the vga=791.

BTW: When you do an kernel upgrade. The package manager modify automatically your '/boot/grub/menu.lst'. So your 'vga=791' option will be gone. What you need to do is look in the '/boot/grub/menu.lst' and look for the line '#kopt'. Default it is commented. I have set it like this:

kopt=root=/dev/sda6 ro vga=791

NOTE: I have add the path of my sda device (my hdd). Before the little hdd troubles, the device was 'hda'. That mean, when i upgrade a kernel, if i not specify the 'kopt' option with my sda path, the package manager want to change my kernel lines with the 'hda' devices. Probably you get some troubles if you reboot then. So specify the kopt! Setting up the sound card:

The sound work out of the box. It's sounds good. We not need to do somethings to get the sound working. Control the volume with the volume button on the front side of the laptop. The 'Fn + Esc' key not work to mute and unmute the sound. But i have not need for it, we can lower the volume completely down, it's the same and easier to do. I have not yet look to get these keybinding working. There is no audio hardware mixing. Software audio mixing:

Depending of the Desktop environment you use, and if you use one at all. Maybe you need to look in the docs of the stuff you use.

For Gnome you can use an GUI interface to activate software audio mixing "Desktop / Preferences / Sound" and in that interface enable the option 'Enable software sound mixing (ESD)'. You should then restart X so that the changes are take in considerations. Use the ctrl+alt+backspace to restrart X.

Xmms used the OSS 'Driver 1.2.1 [libOSS.so]' before, now after activating ESD we should use the 'eSound Output Plugin 1.2.10 [libesdout.so]'. The other players should also be are modified. Setting up the touchpad:

Setting up the touchpad

The touchpad mouse is to slow to use in X. We need to track to much with the fingers to reach each opposed corner of the screen. And after an half hour of usage, your finger is out of order. The tapping is activated by default and may be irritant to use.

Note that in the current Debian GNU/Linux stable release, Lenny, the following changes on the xorg.conf file aren't take in consideration. Need to check why this happen.

We can change this, we need to add some things in the '/etc/X11/xorg.conf'.

...

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"

        # Set (desactive the tapping)
        # Getted of the linux.debian.user on the usenet
        Option          "Protocol"              "auto-dev"
        Option          "Emulate3Buttons"       "yes"
        Option          "LeftEdge"              "120"
        Option          "RightEdge"             "835"
        Option          "TopEdge"               "120"
        Option          "BottomEdge"            "650"
        Option          "FingerLow"             "14"
        Option          "FingerHigh"            "15"
        Option          "MaxTapMove"            "110"
        Option          "VertScrollDelta"       "20"
        Option          "HorizScrollDelta"      "0"
        Option          "MinSpeed"              "0.3"
        Option          "MaxSpeed"              "2.5"
        Option          "MaxTapTime"            "0"
        Option          "AccelFactor"           "0.025"
        Option          "SHMconfig"             "true"
EndSection

...

Change the above values to your needs. The touchpad mouse is a bit fast so, but i like that :-p

The tapping of the touchpad is disabled, according to the xorg configuration. But some time after restarting X, the tapping goes active. I didn't find out why this happen. Some time i get the following lines with dmesg:

psmouse.c: GlidePoint at isa0060/serio4/input0 lost synchronization,
throwing 1 bytes away.  psmouse.c: resync failed, issuing reconnect request

Additional USB Mouse:

I have buy an additional USB Microsoft Basic Optical Mouse. Black color, really comfortable, looks cool and one of the cheapest there was available. I have pay it 20 euro's. It work out of the box. Maybe the brand, but the mouse is a really good buy.

See:

modinfo ehci_hcd ; modinfo uhci_hcd

Load these 2 modules at boot time. Append these to the '/etc/modules' config file.

Setting up the Wireless wifi

IMPORTANT: The way to install ipw3945 have changed for a third time. Depending of the kernel you have, you shoud proceed a different way. So read this section completely before proceeding! The ipw3945-source and ipw3945d where been in Etch (till kernel < 2.6.23). Before we had need to download some stuff from a website. From now, if you still have a kernel below 2.6.23, you should use module-assistant: "m-a -l uname -r prepare; m-a -l uname -r a-i ipw3945" to setup the wireless card. I have still leave the 'old' way with below the way to remove the old way; and the new way to install the wifi, wazaaaa, that's looks ugly :-).

The wifi card not work out of the box. We need to do somethings to get it working. It's not yet complicated to setup. We need to download ipw3945-x.x.x and ipw3945d-x.x.x, see the ipw3945 project site.

I have heard that the ipw have entered the Sid release. So probably it will enter Etch soon and the setup procedure should be a bit differ. It should be many more easier to setup. The regular ipw3945 deamon should then be are started from '/etc/init.d/ipw'.

Note: You can setup that wifi card during the install, but with some headaches. Once the base install installed. kernel headers / build-essential / module-assistant are on the CD. Get the driver and firmware of the ipw3945 project and install the stuff. I not discuse these steps right now.

Important note: Do not install the ieee80211 of the project site. The kernel i have used (2.6.17-2-686) had already support for it. When i had install the ieee80211 of the website, that have a bit messed up the whole ieee80211 thing.

The old way

We need to install the firmware of the wifi card:

apt-get install firmware-ipw3945

We need to install the kernel header and source, otherwise when we want to 'make' ipw3945 we get some message that he have not find the ieee80211 stuff. And that may confuse a bit, and you are maybe go to install the ieee80211 stuff of that website. But not install the iee80211 of that website!

aptitude install linux-headers-2.6.17-2-686

Load the ieee80211 modules. We want to show you how you can find out the required modules. We can search it with:

modprobe -l | grep ieee

That show you a bunch of files, like this next one:

/lib/modules/2.6.17-2-686/kernel/net/ieee80211/ieee80211_crypt_wep.ko
/lib/modules/2.6.17-2-686/kernel/net/ieee80211/ieee80211_crypt_tkip.ko
/lib/modules/2.6.17-2-686/kernel/net/ieee80211/ieee80211_crypt_ccmp.ko
/lib/modules/2.6.17-2-686/kernel/net/ieee80211/softmac/ieee80211softmac.ko
/lib/modules/2.6.17-2-686/kernel/net/ieee80211/ieee80211.ko
/lib/modules/2.6.17-2-686/kernel/net/ieee80211/ieee80211_crypt.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/sbp2.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/raw1394.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/pcilynx.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/ohci1394.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/ieee1394.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/eth1394.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/dv1394.ko
/lib/modules/2.6.17-2-686/kernel/drivers/ieee1394/video1394.k

We now know which module we can load, so we load the module:

modprobe ieee80211

Or as alternative to modprobe -l to get the whole list of the modules, you can get an ncurse based interface to select the module you want to load at boot time; use modconf.

Add ieee80211 to the /etc/modules. to load the module at boot time. If you want to do it manually.

Then get the ipw3945 and the ipw3945d files of ipw3945 website and then upack the both:

$ tar xzf ipw3945-1.1.2.tgz $ tar xzf ipw3945d-1.7.22.tgz

Make the ipw3945:

$ cd ipw3945-1.1.2

If we want to make use of the monitor mode later, we need to edit the Makefile in the ipw3945 and uncomment an line:

CONFIG_IPW3945_MONITOR=y

$ make $ cd ..

Make the daemon:

$ cd ipw3945d-1.7.22d
# cp x86/ipw3945d /sbin

Load the driver:

# cd ../ipw3945-1.1.2 ./load debug=0

Then we see in the console if the driver is been loaded or not:

# ./load debug=0
Unloaded: ieee80211 ieee80211_crypt Loaded: ieee80211 ipw3945 Loading
ipw3945d.ipw3945d - regulatory daemon Copyright (C) 2005-2006 Intel
Corporation. All rights reserved.  version: 1.7.22 Intel PRO/Wireless
3945ABG Network Connection found at:
/sys/bus/pci/drivers/ipw3945/0000:04:00.0 Daemon launched as pid 8178.
Exiting.  ..done.

We can then check with ifconfig -a to see the adapter. Now left to assign an ip address to the eth2 interface and so. The things now left to do is the same way as with every wireless card. We just need to do an last thing, we need to make in sort that it is easy to start the wireless:

cp ~/Downloads/ipw3945d-1.7.22/ipw3945d-{start,stop} /sbin 

chmod u+x /sbin/ipw3945d-{start,stop}

Then as root user you can start the driver with:

# /sbin/ipw3945d-start

And stopping:

# /sbin/ipw3945d-stop

Automatically load the module at boot time:

cp /home/david/Downloads/ipw/ipw3945-1.1.2/ipw3945.ko /lib/modules/$(uname
-r) depmod -a

Create the file /etc/modules.d/ipw3945 and add the following to it:

# echo install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; \
sleep 0.5 ; /sbin/ipw3945d --quiet >> /etc/modules.d/ipw3945

# echo remove ipw3945  /sbin/ipw3945d --kill ; \
/sbin/modprobe -r --ignore-remove ipw3945 >> /etc/modules.d/ipw3945

Add the following to the '/etc/modules':

ipw3945

Before kernel 2.6.23

If you have setup the ipw3945, the old way, you probably want to remove it and install it the new way.

Go to the directory where the ipw stuff is:

cd /home/david/Downloads/ipw/ipw3945-1.1.2

Switch to root user:

su

Remove the stuff

make modules clean

Install it now the debian way:

aptitude install ipw3945-source ipw3945d

Then ...

m-a -l `uname -r` prepare; m-a -l `uname -r` a-i ipw3945

With kernel 2.6.23 or higher

If you have a kernel => 2.6.23 you should proceed a completely different way, the ipw3945 has been renamed to iwl3945 and is build in the kernel from now. You should install the firmware-iwlwifi package and load the module with modprobe iwl3945. You should edit the file /etc/modules and remove the line ipw3945 and add the iwl3945. Note that my device eth3 has been renamed to wlan0_rename.

We should move or delete the file /etc/udevz25_persistent-net.rules unload the iwl3945 module (modproble -r iwl3945) and load it back (modprobe iwl3945). To be sure, reboot once moved/renamed. This will add the other devices. After the reboot you will see that the wireless device is now called wlan0 and there is another wmaster0. This is a confirmation we use mac80211.

At last, you can uninstall the packages ipw3945-modules-2.6.22-3-6 and ipw3945d packages if you don't have keept the older kernels. If you don't remove these packages, you will get a error during boot, ignore this.

WEP

In /etc/networking/interface add the following:

    auto eth3
    iface eth3 inet static
        wireless-essid <MyWifiNetwork>
        wireless-key s:MyStringKey
        address 192.168.0.5
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway <GW-IP>
        dns-nameservers <GW-IP>
        dns-search pinguin

WPA-PSK

Install wpasuppliant and add the following to the /etc/networking/interface:

    auto eth3
    iface eth3 inet static
        wpa-driver wext
        wpa-ssid <MyWifiNetwork>
        wpa-psk <MySecretKey>
        wpa-key-mgmt WPA-PSK
        wpa-pairwise TKIP CCMP
        wpa-group TKIP CCMP
        wpa-proto WPA RSN

        address 192.168.0.5
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway <GW-IP>
        dns-nameservers <GW-IP>
        dns-search pinguin

I had need to reboot the laptop before these change could be take effect. Restarting the network did not take effect. No connection to the AP was possible.

Setting up the Ethernet Network card

The Ethernet network card not work out of the box. Get the driver on the website of Realtek and download the 'Linux driver for kernel 2.4.x and 2.6.x'.

After try compile to compile the r1000 stuff, i got some troubles. After discussing about the trouble on the irc Freenode #debian with amphi i had need to change three lines in a file of the source tree of r1000_v1.04. Because we have a newer kernel and there are some changes in the macro name between the kernel 2.6.11 and 2.6.17. This modification of the source file not needed in version above 1.0.4. I have looked in the 1.0.5 and it's looks rigth now.

Extract the tarball:

tar vzxf r1000_vX.YZ.tgz cd r1000_vX.YZ

Change these three lines in the file 'src/r1000_n.c' from line 51 to 53 included:

from:

MODULE_PARM (speed, "1-" __MODULE_STRING(MAX_UNITS) "i");
MODULE_PARM (duplex, "1-" __MODULE_STRING(MAX_UNITS) "i");
MODULE_PARM (autoneg, "1-" __MODULE_STRING(MAX_UNITS) "i");

to:

MODULE_PARM_DESC (speed, "1-" __MODULE_STRING(MAX_UNITS) "i");
MODULE_PARM_DESC (duplex, "1-" __MODULE_STRING(MAX_UNITS) "i");
MODULE_PARM_DESC (autoneg, "1-" __MODULE_STRING(MAX_UNITS) "i");

Compile the souce:

# make clean modules make make install depmod -a

Loading the module:

modprobe r1000

Then dmesg shows:

eth3: Identified chip type is 'RTL8101E'.  eth3: r10001.04, the Linux
device driver for Realtek Ethernet Controllers at 0x4000,
00:16:d4:2a:fd:9c, IRQ 185 Realtek RTL8139/810x Family Fast Ethernet
Network Adapter Driver version:1.04 Released date:2006/07/07 Link
Status:Not Linked I/O Base:0x4000(I/O port) IRQ:185

We can check it out with:

# ifconfig -a

You should see an ethx added. Now there is an need to configure these network addapter with ifconfig or with an GUI.

Setting up the duo core

We need to install the smp kernel package. At the time of writing this, the kernel '2.6.17-2' was available.

aptitude install linux-image-2.6.17-2-686 linux-image-2.6-686-smp

Then you should first reboot and use the new kernel and then look to '/proc/cpuinfo'. See 'hardware informations' for an output example with support of an duo core.

Setting up the multi card reader

I have only SD cards here, so i have only. Default, the card reader module is not loaded and we need to make in sort that these modules are loaded at boot time.

modprobe sdhci

modprobe mmc_block

We can then easy access that memory card with the 'konqueror' file manager in the media section, if you use KDE. With Gnome, you get an icon on the desktop after inserting the memory card. Or take whatever tool you usually use.

CPU scaling

Scaling the processor could be are interesting when the laptop goes on battery. Without take some additional precautions, the laptop consume many power. Because it still leave on the 'max' power he could give. You still use the maximum power of the CPU what pump many power. We want to reduce the speed a bit to save the power consumption when we are on the battery and to avoid to make the things to hot. Not that this laptop is hot, but how lower the temp may be are, how slower the fan can be turn and lesser power consumption.

The laptop stay up near 3:30 with another O.S. If we not setup the CPU scaling with Debian, the laptop can only stay up for around 1:30. If we setup the CPU scaling it stay for 2:30. What are already much better. To stay the laptop up for longer time, we need to setup the computer so that the HDD spin down if the HDD is no more used after an amount of time. We could also play with undervolting, but that's another chapter.

Install the needed software:

aptitude install cpufreqd cpufrequtils

Loading the modules

Finding the modules can be done in the following way:

# modprobe -l *cpufreq*
/lib/modules/2.6.17-2-686/kernel/drivers/cpufreq/freq_table.ko
/lib/modules/2.6.17-2-686/kernel/drivers/cpufreq/cpufreq_userspace.ko
/lib/modules/2.6.17-2-686/kernel/drivers/cpufreq/cpufreq_stats.ko
/lib/modules/2.6.17-2-686/kernel/drivers/cpufreq/cpufreq_powersave.ko
/lib/modules/2.6.17-2-686/kernel/drivers/cpufreq/cpufreq_ondemand.ko
/lib/modules/2.6.17-2-686/kernel/drivers/cpufreq/cpufreq_conservative.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-lib.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-ich.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k8.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k7.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k6.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/p4-clockmod.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/longrun.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/gx-suspmod.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.ko
/lib/modules/2.6.17-2-686/kernel/arch/i386/kernel/cpu/cpufreq/cpufreq-nforce2.ko

The lines that are interesting are 'cpufreq_* .ko'. To take it easy, that's the list of modules we need to load at boot time:

modprobe speedstep_centrino
modprobe cpufreq_ondemand
modprobe cpufreq_userspace
modprobe cpufreq_stats
modprobe cpufreq_powersave

NOTE : It is important to not load all the modules in one-liner, otherwise modprobe think it are arguments.

We now need to make in sort that these modules are loaded at boot time. Because if you load these modules with modprobe, these are only loaded right now and not reloaded when we reboot. There are different ways to select some modules to load at boot time. I like to show the tool modconf. A little application that need to be are installed. With a little curses based text interface you can browse in the list of available modules and select these you need. If you not know about this little interface, maybe install it and try it out!

aptitude install modconf

Once modconf started as root user. You find there an line with 'kernel/drivers/cpufreq', select it and the enter buton. There you see 6 modules. If there are an - just before the description. It mean that the modules is not selected to load at boot time. Select the module and press enter. Answer yes to install the module in the kernel. Leave it empty for the argument and press again the enter key. You should get Installation succeeded.

You can add these modules names manually to the file /etc/modules. If you are not experienced to do it manually; i suggest you to use modconf and then look to the /etc/modules to see the results of it.

We now try to scale a bit the CPU. Just to test if the stuff is been working right like expected.

In the tree /sys/devices/system/cpu you can find some subdirectories where we need to take an look.

For example to get the current scaling frequency of the first cpu:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

Do not forget if you want to scale the CPU, to apply it to the both CPU's!

Scaling the CPU

We can use the classic echo tool to change the scaling governor. But read more below and use the little cli tool to change the speed.

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

We changed only the first CPU! Do the same but replace cpu0 with cpu1

See performance, ondemand, conservative, powersave as modes for the scaling_governor. powersave, which keeps it at the lowest freq all the time regardless of load. conservative ramps up a bit slower than ondemand.

Not forget that there are 2 CPU's you need to scale! Ideally you want to scale the CPU when you runs on battery. Probably you want that the scaling process goes automatically. Maybe you need 'cpufreqd' or 'powersaved'. Anyway for this laptop, you need cpufreqd

Automate the scaling with cpufreqd

We want to scale automatically the CPU when the power cable is unplugged. That may avoid that we forget to scale the CPU. I go for power saving when running without the power cable. At all, a laptop should stay as long a possible without a power cable. It is sure that the performances may decrease, but that's not important.

Installing the stuff:

aptitude install cpufreqd

The default configuration of cpufreqd should be are already right enough. You want maybe fine tune it to your needs. And probably you need to modify it the config file to save a bit more power.

See also the tool cpugfreq-info:

This little tool give you some informations about the state.

$ cpufreq-info 
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: centrino
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 800 MHz - 1.60 GHz
  available frequency steps: 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 800 MHz and 1.60 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.60 GHz.
analyzing CPU 1:
  driver: centrino
  CPUs which need to switch frequency at the same time: 1
  hardware limits: 800 MHz - 1.60 GHz
  available frequency steps: 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 800 MHz and 1.60 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.60 GHz.

See also cpufreq-info --help.

See also:

  • cpu-selector
  • cpufreq-set
  • cpufreqd-set
  • cpufreqd-get

There's also an alternative to cpufreqd, called powersaved. Anyway for this laptop you need cpufreqd.

Hibernation

Still need to setup and test.

The Fn Function keys

The functions keys works out of the box. We can easy decrease / increase brightness etc without any setup. But when i press the Fn key plus F5 to switch to the external monitor. The screen come back to the laptop monitor like i have not test with an external monitor. But when the image come back it's messed up. Looks like there goes somethings wrong when we try to activate the external monitor. I still need to test it with an external monitor connected too.

Some remarks

  • Some time the USB mouse get crazy, the pointer are moved to one of the 4 corners, an random corner. Also, some time the USB mouse move weird, looks like i'm in the first level of strain injuries. A bit weird and have not yet find what's happen.

HDD info:

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   2276 MB in  2.00 seconds = 1138.38 MB/sec
 Timing buffered disk reads:  128 MB in  3.04 seconds =  42.15 MB/sec

To get the temp of the hdd install 'hddtemp' (aptitude install hddtemp) and as root user type 'hddtemp'. You get somethings similar as:

/dev/sda: HTS541010G9SA00: 44C

Tools write especially for this laptop

I have wrote some little tools especially for this laptop:

* pywmduo.py
* pybat_stats.py

pywmduo.py

A little wmdockapplet that show some informations about the cpu scalling. It display the speed of each cpu and the cpu gouvernor. So that when you have setup the cpu scalling with cpufreq (see cpufreq section here above.) it display you some nice info. See a screenshot. The wmapplet on the right bottom. Fetch the stuff.

pybat_stats.py

pybat_stats.py display some osd informations about the battery when it is in low lever or in critical. It's just a little tool that use the 'xosd-bin'. Fetch the stuff.

Other interesting things

You can change the device name of the network cards. Like there are 3 devices. Take a look in /etc/udev/rules.d/z25_persistent-net.rules.

Hardware informations

Some detailed informations about the hardware. Sure ask for it if there's a need to put some more informations.

Other notes to set

apt-get install 915resolution

Resources

Other interesting website http://diozaka.org/modules/nx6310.html.

Comments leaved by users (total: 0)

No comments yet!

Add a comment

obfuscated letters
 
  • Do you know that you may use some special markup syntax to create header, italic, bold, styling and links and much more. See the sandbox for the markup language.
  • Do you need some other help?

[ Toggle on/off history ]

Item History:

235 | 2009-03-20 07:28:07 | view diff
No revision comment
236 | 2009-03-20 07:28:36 | view diff
No revision comment
237 | 2009-03-20 07:30:58 | view diff
No revision comment
239 | 2009-04-04 11:11:34 | view diff
No revision comment
240 | 2009-04-04 11:20:22 | view diff
No revision comment
241 | 2009-04-04 11:22:28 | view diff
No revision comment
319 | 2009-05-21 15:36:20 | view diff
No revision comment

Login:
User Name
Password

Last Articles
python stuff concerning python
2009-07-22 12:00:00
vim
2009-06-06 23:53:00
fluxbox
2009-05-23 12:42:00
setting up a toshiba satellite a110-178
2009-05-21 15:35:00
create a secure virtual private network with openvpn
2009-04-25 13:34:00
>>> Read more...

Last News
Released pyguicms 1.0.0-beta1
2008-06-02 21:20:00
guicms replaced by pyguicms
2008-04-27 17:39:00
pyguicms up and running and online
2007-11-29 22:31:00
>>> Read more...

Last Links
mxtoolbox
2009-09-25 17:54:00
minibikeshop
2009-09-05 12:43:00
magicbike
2009-09-05 12:40:00
systranet
2009-07-22 11:42:00
transfer big files
2009-07-22 11:42:00
>>> Read more...

Last Pages
sandbox
2008-09-07 22:30:00
about
2008-09-07 22:29:00
help
2008-09-07 22:25:00
welcome page
2008-09-07 18:27:00
python stuff to check
2007-12-03 00:16:00
>>> Read more...