GNU/Linux on a Toshiba Satellite A80-131

Slackware and kernel 2.6.x

Author is Ivan Morgillo

imorgillo /at/ sanniolug /dot/ org
TuxMobil - Linux on laptops, notebooks, PDAs and mobile phones

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Hi, I'm trying to get this notebook working with my Slackware. Almost everything seems to work good. To have an idea of hardware look at toshiba.


Update

07092005

Processor

root@hamen:/home/ivan# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 13
model name      : Intel(R) Pentium(R) M processor 1.60GHz
stepping        : 8
cpu MHz         : 1596.010
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe tm2 est
bogomips        : 3153.92

It works with a generic kernel, but I recompile to get a complete support:

Processor type and features --> Processor Family -->  Pentium M

Don't select Toshiba Laptop support, because "... It does not work on models with a Phoenix BIOS... ". This baby has a Phoenix BIOS.

Hard Disk

Someome will say: This guy has some "problem"!!. It wasn't my fault if I spent two days trying to get this HD working! I have problems with DMA and VFS. I had errors like:

ide0: I/O resource 0x1F0-0x1F7 not free.
ide0: ports already in use, skipping probe

and

Kernel Panic, VFS cannot mount unknown-block....

and

Your dma is not active... ans so on.

At the and I got my answer: MY HD IS SATA!!
I need SATA support in my kernel.

-> Device Drivers
    -> SCSI device support
        -> SCSI device support
            -> SCSI low-level drivers
                -> Seria ATA (SATA) Support
                   -> Intel PIIX/ICH SATA support

It works now :)

root@hamen:~# hdparm -tT /dev/sda

/dev/sda:
 Timing buffer-cache reads:   3160 MB in  2.00 seconds = 1579.45 MB/sec
 Timing buffered disk reads:   82 MB in  3.05 seconds =  26.90 MB/sec

Oh, my hd device is /dev/sda now, because of SCSI :)
For this reason I had to edit my /etc/fstab file:

...
/dev/sdax        swap             swap        defaults         0   0
/dev/sday        /                reiserfs    defaults         1   1
...


DVD

Update
Some smart people found a trick to enable some experimental
SATA ATAPI stuff in kernel sources.

In drivers/scsi/ata_piix.c

Change:
- PIIX_COMB_PATA_P0 = (1 << 1),
- PIIX_COMB = (1 << 2), /* combined mode enabled? */
to:
+ PIIX_COMB_PATA_P0 = (1 << 0),
+ PIIX_COMB = (1 << 1), /* combined mode enabled? */

In include/linux/libata.h

Change:
-#undef ATA_ENABLE_ATAPI /* define to enable ATAPI support */
-#undef ATA_ENABLE_PATA /* define to enable PATA support in some
to:
+#define ATA_ENABLE_ATAPI 1 /* define to enable ATAPI support */
+#define ATA_ENABLE_PATA 1 /* define to enable PATA support in...

I tried this solution for a while. My kernel stucks many times :(
I found another "solution": kernel module.
I load that module just when I need it, so kernel doesn't freeze :)
Waiting for kernel developers...

ACPI

Acpi is supported. I selected everything in

Power Management option --> ACPI --> ...

Select Toshiba Laptop Extras, too.

It seems "to go".

Ethernet and Wi-Fi

"lspci" returned:

0000:02:00.0 Ethernet controller: Marvell Technology Group Ltd.: Unknown device 4351 (rev 10)
        Subsystem: Toshiba America Info Systems: Unknown device ff00
        Flags: bus master, fast devsel, latency 0, IRQ 10
        Memory at b0000000 (64-bit, non-prefetchable) [size=16K]
        I/O ports at 3000 [size=256]
        Capabilities: [48] Power Management version 2
        Capabilities: [50] Vital Product Data
        Capabilities: [5c] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable-
        Capabilities: [e0] #10 [0011]

0000:06:02.0 Network controller: Intel Corp. PRO/Wireless 2200BG (rev 05)
        Subsystem: Intel Corp.: Unknown device 2741
        Flags: bus master, medium devsel, latency 32, IRQ 22
        Memory at b4006000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [dc] Power Management version 2

This ethernet is a bit strange. It's a Marvell Yukon 88E8036 PCI-E Fast Ethernet Controller. It doesn't work with a generic kernel. I found some info around the net and I got that this card is also known as SysKonnect chip. Fast Ethernet 10/100 PCI-E. It work with sk98lin driver. I took the driver from SysKonnect site.

Installation is not hard. After you unpacked file install-8_16.tar.bz2, you can run installation script:

# ./install.sh

You can create a kernel module or patch your kernel sources to get a new card in menu:

-> Device drivers
    -> Networking Support
        -> Ethernet (1000 Mbit)
            -> Marvell Yukon Chipset / SysKonnect SK-98xx Support

I preferred this last mode. I selected <M> to get my "sk98lin" module. Hotplug can load this module at startup.

I edited my /etc/rc.d/rc.inet1.conf:

...
# Config information for eth0:
IPADDR[0]="192.168.0.100"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]="192.168.0.101"
NETMASK[1]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""
...

In this way I have a good working network configuration:

root@hamen:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:11:22:66:6A:88
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:16 Memory:b0000000-0

eth1      Link encap:UNSPEC  HWaddr 00-11-22-33-6A-40-42-BD-A3-00-00-00-00-00-00-00
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:620 (620.0 b)  TX bytes:620 (620.0 b)

eth0 is the "strange" Marvell NIC and eth1 is firewire.
sk98lin driver comes with a tool to set some stuff for NIC that is "ethtool". Try it to decide if it's usefull.


WiFi card is an Intel 2200BG card. There's an interesting project on http://ipw2200.sourceforge.net/
They provide a "driver" as kernel module and a firmware for hotplug. INSTALL file is very easy to understand. After I got ipw2200-1.0.4.gz and ipw2200-fw-2.3.gz, I unpacked ipw2200-fw-2.3.gz in /usr/lib/hotplug/firmware with:

# cp ipw2200-fw-2.3.gz /usr/lib/hotplug/firmware
# tar zxf ipw2200-fw-2.3.gz
# rm ipw2200-fw-2.3.gz

Then I unpacked ipw2200-1.0.4.gz with:

# tar ipw2200-1.0.4.gz
# cd ipw2200-1.0.4

and, always as root, I run "make" and "make install".
For a complete list of what you need to add to your kernel, consult INSTALL file.
Is seems to work, but I'm waiting for a wireless lan to connect to. Sorry.


Firewire IEEE 1394

Slackware load a couple drivers to get it working. I don't have firewire "stuff", so I didn't try yet.


SoundCard

"lspci" returned:

0000:00:1e.2 Multimedia audio controller: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
        Subsystem: Toshiba America Info Systems: Unknown device ff00
        Flags: bus master, medium devsel, latency 0, IRQ 17
        I/O ports at 1c00 [size=256]
        I/O ports at 1880 [size=64]
        Memory at 80000800 (32-bit, non-prefetchable) [size=512]
        Memory at 80000400 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

In "Alsa" opinion this card is:

Card: Intel ICH                                                                                                                            │
Chip: Realtek ALC250 rev 2

# alsaconf
# alsamixer   --> to unmute volume
# alsactl store  --> to have your settings every boot time


Modem

"lspci" returned:

0000:00:1e.3 Modem: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03) (prog-if 00 [Generic])
        Subsystem: Toshiba America Info Systems: Unknown device 0001
        Flags: bus master, medium devsel, latency 0, IRQ 11
        I/O ports at 2400 [size=256]
        I/O ports at 2000 [size=128]
        Capabilities: [50] Power Management version 2

I don't need it at this moment. But I thing AC'97 modems are very common. Maybe some "guru" wrote a driver.

PCMCIA

0000:06:04.0 CardBus bridge: Texas Instruments: Unknown device 8031
        Subsystem: Toshiba America Info Systems: Unknown device ff00
        Flags: bus master, medium devsel, latency 64, IRQ 10
        Memory at b4007000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176
        I/O window 0: 00000000-00000003
        I/O window 1: 00000000-00000003
        16-bit legacy interface ports at 0001

Slackware load some modules for pcmcia. It seems a standard "yenta":

# lsmod

...
yenta_socket           20104  0
rsrc_nonstatic          9216  1 yenta_socket
pcmcia_core            42400  2 yenta_socket,rsrc_nonstatic
...

Working...


VIDEO CARD

0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0167 (rev a1) (prog-if 00 [VGA])
        Subsystem: Toshiba America Info Systems: Unknown device ff00
        Flags: bus master, fast devsel, latency 0, IRQ 10
        Memory at a0000000 (32-bit, non-prefetchable) [size=16M]
        Memory at c0000000 (64-bit, prefetchable) [size=128M]
        Memory at 90000000 (64-bit, non-prefetchable) [size=16M]
        Capabilities: [60] Power Management version 2
        Capabilities: [68] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
        Capabilities: [78] #10 [0001]

I took NVIDIA drivers on ftp://download.nvidia.com/XFree86/nvidia-installer/
Installation is very easy. Turn off your X if you are running a WindowManager. At prompt:

# sh NVIDIA-Linux-x86-1.0-7174-pkg1.run

At first installer looks for support in your kernel. I didn't have this stuff compiled. Installer compiled module using kernel sources in /usr/src/linux-2.6.11.11
Then I edited my /etc/X11/xorg.conf :

...
Section "Device"
    Identifier  "NVIDIA"
    Driver      "nvidia"
    VideoRam    65536
    # Insert Clocks lines here if appropriate
EndSection
...
Section "Screen"
    Identifier  "Screen 1"
    Device      "NVIDIA"
    Monitor     "My Monitor"
...

Save and exit. Start your WindowManager and... great! My notebook goes faster now. I can play TuxRacer now!! :)

MOUSE

This guy is an AlpsPS/2 ALPS GlidePoint

Here is X config file cut:

...
Section "InputDevice"
        Driver "synaptics"
        Identifier "Touchpad"
        Option "Device" "/dev/input/event2"
#     Option "CorePointer"
        Option "Protocol" "event"
        Option "LeftEdge" "60"
        Option "RightEdge" "830"
        Option "TopEdge" "70"
        Option "BottomEdge" "650"
        Option "FingerLow" "25"
        Option "FingerHigh" "30"
        Option "MaxTapTime" "180"
        Option "MaxTapMove" "110"
        Option "EmulateMidButtonTime" "75"
        Option "VertScrollDelta" "50"
        Option "HorizScrollDelta" "50
        Option "MinSpeed" "0.02"
        Option "MaxSpeed" "0.5"
        Option "AccelFactor" "0.01"
        Option "EdgeMotionSpeed" "40"
        Option "UpDownScrolling" "1"
        Option "TouchpadOff" "0
#      Option "SHMConfig" "on"
EndSection
...


...
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
#     InputDevice     "Configured Mouse"
#     InputDevice     "Generic Mouse"
        InputDevice     "Touchpad" "CorePointer"
...

Scroll on touchpad is so cool and usefull. Drag and drop on
the left side of touchpad for vertical scroll. For Horiz, on the
bottom. :)

TO DO


USEFULL STUFF

Here's some stuff you can use to get a "working" system as soon as possible:

CREDITS

Thanks to my parents and to my part-time job. My money doesn't come from sky!


Ivan Morgillo