Visit Jeremy's Blog.
Go Back > Forums > Linux Forums > Linux - Laptop and Netbook
User Name
Linux - Laptop and Netbook Having a problem installing or configuring Linux on your laptop? Need help running Linux on your netbook? This forum is for you. This forum is for any topics relating to Linux and either traditional laptops or netbooks (such as the Asus EEE PC, Everex CloudBook or MSI Wind).


Search this Thread
Old 06-23-2003, 02:20 AM   #1
Senior Member
Registered: Sep 2002
Location: Arizona, US, Earth
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152

Rep: Reputation: 46
Installing Slackware 9.0 on a Toshiba Libretto L5 -- not a question, my experience

This thread is to document my experience with installing Slack
9.0 on the cool new Libretto L5 (only available in Japan or from I've installed Slackware on various other laptops
in the past, but this is the one I've kept notes about. There will
probably be several posts by me correcting, updating, or
changing things I've already posted. I'd be happy to answer
questions. . .

I bought the L5 at since it's only really
available in Japan. The reason I wanted this particular laptop is
because I wanted a light machine that came with a Transmeta
Crusoe chip (
The only two machines that had the most up to date chips were
the Sharp Actius MM10 (available in the US) and the Toshiba
Libretto L5.
I chose the Toshiba for two main reasons.
A) Sharp's website and customer "service" sucked and
B) I have a laptop at work that was ejected from a 60 mph rolling
vehicle that still boots (screen is cracked, and it'd be more
expensive to replace the screen than the entire machine, but
that's irrelevant).
It's a Toshiba.

The L5's hardware stats are:
A. BIOS: There is no BIOS, this is a "legacy-free machine".
  No APM, just ACPI, and the toshiba tools don't work on this machine.
B.CPU: 800 MHz Transmeta Crusoe TM5800
C.RAM: micro SO-DIMM, SDRAM PC-133; 256MB, 512MB Max
D.Hard drive: 20 GB UATA, Toshiba mk2003gah.  
E.Sound: 16 bit Sound Blaster compatible. ALi m5451 controller
F.Video: 8MB ATI Radeon Mobility (radeon driver)
G.Screen: 140 DPI, Max resolution 1280x600 @65 Hz, 16 M colors
   i.external: 1600x1200 @65 Hz, 65k colors (max)
   ii.Supports xinerama or true dual head display with the toshiba ACPI utilities.
H.Ethernet: Realtek 8139 (8139too driver)
I.Wireless: Orinoco_cs driver
J.Battery: DC 10.8 V, 2000mAh (standard), -- The batteries from 
  the old portege 3020CTs (and other similar notebooks) have the 
  same interface and voltage, which means you can keep them 
  around, though they are a bit heavier.
K.PCMCIA: Type II cardbus only, and only one slot.
It comes with evil installed, but that can either be contained or
exorcised. I first attempted to contain it using ntfsresize
(, but after
XP destroyed my partition table after I uninstalled a program in
XP, I've exorcised and completely cleaned my drive. Oh, darn.

The L5 can be booted from various device, including ethernet,
USB, PCMCIA, Hard drive, (and more, I think, but the machine is
running right now and I would have to reboot to check -- later
Installation of an OS can be accomplished via one of the boot mechanisms.
I first tried connecting a USB CDROM drive, but it didn't work
because the CDROM drive didn't work, and that was all I had in
terms of removable media.
I didn't have a bootable PCMCIA device, so the last real resort
was to install via DHCP, bootp and NFS.

I will refer to a lot of stuff here without much explaining or links.
This will be updated in later posts. . .

I set up my Slack server as a DHCP server that offered bootp to a
specific MAC address (that of the ethernet device on the laptop):

# dhcpd.conf
# Configuration file for ISC dhcpd (see 'man dhcpd.conf')

# Standard configuration directives...
allow booting;
allow bootp;

ddns-update-style none;
option domain-name "";
option subnet-mask;
option broadcast-address;
option domain-name-servers XXX.XXX.XXX.XXX;
option routers;
option vendor-class-identifier "PXEClient";
option vendor-encapsulated-options ff;
filename "pxelinux.0";

subnet netmask 
  default-lease-time 600;
  max-lease-time 7200;

# Group the PXE bootable hosts together
  use-host-decl-names           on;
  option vendor-class-identifier "PXEClient";
  # PXE-specific configuration directives...
  option root-path "/export/root";
  filename "pxelinux.0";

  host Libretto
    hardware ethernet 00:00:XX:XX:XX:XX;

bootp is the internet boot protocol needed to offer a bootstrap to
the network boot client.

# /etc/bootptab: database for bootp server (/usr/sbin/bootpd)

# Blank lines and lines beginning with '#' are ignored.
# Legend:       (see bootptab.5)
#       first field -- hostname (not indented)
#       bf -- bootfile
#       bs -- bootfile size in 512-octet blocks
#       cs -- cookie servers
#       df -- dump file name
#       dn -- domain name
#       ds -- domain name servers
#       ef -- extension file
#       gw -- gateways
#       ha -- hardware address
#       hd -- home directory for bootfiles
#       hn -- host name set for client
#       ht -- hardware type
#       im -- impress servers
#       ip -- host IP address
#       lg -- log servers
#       lp -- LPR servers
#       ns -- IEN-116 name servers
#       ra -- reply address
#       rl -- resource location protocol servers
#       rp -- root path
#       sa -- boot server address
#       sm -- subnet mask
#       sw -- swap server
#       tc -- template host (points to similar host entry)
#       td -- TFTP directory
#       to -- time offset (seconds)
#       ts -- time servers
#       vm -- vendor magic number
#       Tn -- generic option tag n
# Be careful about including backslashes where they're needed.  Weird (bad)
# things can happen when a backslash is omitted where one is intended.
# Also, note that generic option data must be either a string or a
# sequence of bytes where each byte is a two-digit hex value.

PXE is the Intel bootstrap protocol necessary for PXE etherboot
clients, which my laptop has. The pxe daemon requires the bootp
daemon to work, so I have to basically run two bootstrap
daemons. . . The pxe configuration is in several places.

# which interface to use

# the multicast ip address to listen on

# mtftp info

# the port to listen on

# enable multicast?

# enable broadcast?

# user prompt
prompt=Press F8 to view menu ...

# what services to provide, priority in ordering
# CSA = Client System Architecture
# service=<CSA>,<min layer>,<max layer>,<basename>,<menu entry>
service=X86PC,0,0,local,Local boot

# tftpd base dir

# domain name
I created a directory called /tftpboot. This contains the kernel
used to boot, and the rest of the pxe configuration. The kernel
has USB and "IP kernel level autoconfiguration" enabled. Thus
the kernel can be used to boot via ethernet.

The /tftpboot/pxelinux.cfg/default file contains device configuration:

ipappend 1
append nfsroot=
DEFAULT netusb.i rw
  KERNEL netusb.i rw
This is similar to any boot loader for Linux. The default is to load
the netusb.i kernel with read/write enabled for the root partition
(this is so I can mount the NFS drive that contains all the
Slackware install data). The /export/root is the root device, which
contains what any root disk would contain. Well, more because I
can put a lot more stuff there--in fact, this is how one could set up
a completely diskless machine that boots over the net and uses
NFS for all of its disk operations, such as a living room MP3
This link has some decent explanations of the entire net boot process:

When I want to boot the laptop from the net, on the server I start
the following (in a nonexecutable /etc/rc.d/rc.bootp):
bootpd -s
in.tftpd -lvvv /tftpboot/
proxydhcp /tftpboot/pxelinux.0 &

On the server, I export /mnt/cdrom (which is the mount point for
my Slackware 9.0 CDROM) and /export/root (which contains the
root disk for Slack setup):

/export/root  *(rw,no_root_squash)
/mnt/cdrom    *(rw,no_root_squash)
I run /etc/rc.d/rc.nfsd, and the Server is basically configured.
I'm sure I've missed things, but that's what future posts will be for.

Now, I boot the laptop, and tell it to boot via the net. When I get
to the bootstrap prompt, I can just hit [ENTER] since the default is
to load netusb.i with / mounted rw. This boots up, and I install
Slackware as normal except I specify NFS as the source media,
providing the setup with my IP address, gateway, netmask, etc.

Installation goes fine and I reboot.
Now comes the fun. =-}

After reboot, I recompile the kernel to support all of the cool stuff
on the machine (like PCMCIA, wireless devices, etc.).
I have a bunch of other things that I also install (a hotkeys script
to catch certain key sequences so I can dim the LCD, switch
output modes (LCD/VGA/both), or poweroff with a two key
I'll detail more of this in a later post.

Last edited by moses; 07-17-2003 at 10:04 PM.
Old 06-23-2003, 02:39 AM   #2
Senior Member
Registered: Sep 2002
Location: Arizona, US, Earth
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152

Original Poster
Rep: Reputation: 46
This set of posts has some good links. . .
Old 06-30-2003, 11:21 PM   #3
Registered: Apr 2003
Location: Maryland
Distribution: Slack 9.1,10 Mandrake 10,10.1, FedCore 2,3, Mepis 2004, Knoppix 3.6,3.7, SuSE 9.1, FreeBSD 5.2
Posts: 1,109

Rep: Reputation: 45
Please keep going, this is great stuff
Old 07-01-2003, 10:33 AM   #4
Senior Member
Registered: Sep 2002
Location: Arizona, US, Earth
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152

Original Poster
Rep: Reputation: 46
I am, just slowly. Work takes over in spurts. . . =-}

Now that installation is done, the first thing to do is recompile the kernel to support all of the hardware. The 2.4.21 kernel is the most up to date STABLE kernel, so I downloaded it, downloaded the ACPI patch from This patch works wonders because almost all of the hardware on the L5 (or any other "legacy free" Toshiba laptop) is setup using ACPI. So, you go from not having your sound, wireless, PCMCIA bus supported to all working just fine. This patch also provides a lot (though not all) of the Toshiba laptop ACPI (power management) options that otherwise you would need a 2.5 kernel.
I compiled my kernel with this config file:
though many of the options are up to you.
So, now all the hardware except possibly the SD card reader and the modem work. I haven't needed either, so I probably won't be messing with them until I have a reason to.
The next thing I've done is set up a hotkeys script so that all those special keys (Fn-F1-F12, etc) are put to good use. You can find a python (I borrowed the script from John Belmonte at and I would have written it in Perl if it were done from scratch) script here:
This doesn't have everything implemented, as I'm still working out how to enable suspend-to-RAM and -disk. However, it allows the user to choose the brightness level of the screen, allows cycling through the LCD/VGA displays, poweroff via the keyboard, and forcibly turning on the fan (though one cannot turn off the fan because of a hardware safety limitation). Since I don't normally write in python, this script isn't as clean as it could be.
That's all for now. . .
The next step is to set up the dual headedness of the machine so that I can display two different scenes, one to the LCD and one to the VGA out. This is especially useful when presenting because most projectors can not handle the 1280x600 native screen size of the LCD (800x600 or 1024x768 is more reasonable).
Another important step is to properly set up the ACPI scripts so that when I (un)plug the power, the proper thing happens (slow the processor, dim the LCD, whatever), when the battery gets low, the machine should give me a warning, etc.

Last edited by moses; 07-01-2003 at 01:59 PM.
Old 07-17-2003, 10:17 PM   #5
Senior Member
Registered: Sep 2002
Location: Arizona, US, Earth
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152

Original Poster
Rep: Reputation: 46
Well, I was having hardware problems (not related to Linux, though dynamism explicitly does NOT support Linux, to the extent that they just reinstalled XP and send the book back to me--I'm not happy about that). So, I'm backing up the drive as I type this and then I'll be on my merry way again.
If you've followed me up to now, the backing up of the drive is simple, IF you have 20 Gs free, which I barely do. All one has to do is make sure /export/root exists on a partition with sufficient space to backup your hard drive. Since I'm doing the entire thing, I need 20GB of disk space available to dump one large x86 boot sector.
Since my /export/root has the space, I was able to do the following on the laptop once I had net-booted:
mkdir /backup_winxp
dd if=/dev/hda of=/backup_winxp/backup
This is going over a 100 Mb link, so it's going to take a while (20GB/12MB/s = 1.6e3 s = 30 minutes.)

The reason I use /dev/hda instead of /dev/hda1 is it gives me the MBR and all of MS's crap at the beginning of the drive, which means I should be able to just dd this back onto /dev/hda if I need to send it back for maintainence again. . . I haven't tested this, and I'm not inclined to unless I really feel the need to. I'll be chopping this disk image up into DVD sized pieces and burning it so that I don't have to keep such foul bits on my system.

I just discovered why I dislike 32bit systems. "File size limit exceeded"
Oops, gotta make better use of dd. . .

How about this (stupid ash doesn't accept perfectly fine bourne shell commands)
set 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 \
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 \
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 \
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79; for i; do \
dd if=/dev/hda bs=268435456 count=1 skip=$i of=/backup_xp/winxp_b_$i; done
The above horror is because the shell that comes with the Slack install disk is ugly and stupid. The set command prepares my variable for the "for" loop. The bs argument to dd is because I only have 512 MB of RAM, and don't want to set 0....1024 or something stupid like that. This should produce 80 files of 256 MB each (maybe the last one is a bit smaller).

Last edited by moses; 07-17-2003 at 11:39 PM.
Old 07-19-2003, 01:43 PM   #6
Senior Member
Registered: Sep 2002
Location: Arizona, US, Earth
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152

Original Poster
Rep: Reputation: 46
Well, I didn't like the above, and I was getting errors relating to the 2GB file size limitation with 32bit systems, so I recompiled the fileutils to support large files, added those to my root disk, and have a new script to do the backup:
set 0 1950000 3900000 5850000 7800000 9750000 11700000 \
13650000 15600000 17550000 19500000; for i; do /large/bin/dd \
if=/dev/hda bs=1024 count=1950000 skip=$i | gzip > \
/backup_xp/winxp_b_$i.gz; echo $i; done
This sets the output file size to be just under 2GB (I didn't recompile the NFS utils to deal with larger than 2GB, so I still have to come under that), a block size of 1024, skips in multiples of about 2GBs on every iteration, and gzips the output before writing to disk. This is working fine.
gzip really helps since most of the hard drive is filled with nulls, and nulls really compress down to almost nothing. In fact, after compression, the total 20GB hard drive takes just over 2GB of space. I guess I could have saved even more space by just dumping the entire thing out to one file and compressing that. . . =-}

Last edited by moses; 07-19-2003 at 01:47 PM.
Old 11-07-2003, 02:59 AM   #7
Senior Member
Registered: Sep 2002
Location: Arizona, US, Earth
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152

Original Poster
Rep: Reputation: 46
Ok, I'm sort of back for a few minutes (busy with life and work).
I've got the L5 back, it's working well now, and I've got a few more things to add to this. . .

I have the video device (Radeon Mobility M6) supporting 3D acceleration (though it's still not very useful since the "card" won't allow me to run Neverwinter Nights--simply because the card simply isn't up to the task, it has nothing to do with Linux).
I'll post the XF86Config file here:

Basically, to get DRI (et al.) working, you need to realize that the video "card" isn't on an AGP bus. This means that you need to tell X to use the PCI bus for acceleration.

I don't have the dual head stuff set up correctly right now. I lost the configuration when my hard drive died and I haven't had time to get it working correctly since then.

By the way, the 2.6.0-testX kernel is the way to go for this machine. I've got almost everything working with few problems (I still haven't set up decent ACPI response scripts, but that's not really a big deal). The battery (extended life) works for about 8 hours under normal usage. Dimming the screen and closing the lid when I'm not using it allows me to get another hour and a half or more out of it (especially if I don't run X).

I don't have time to say much more than this, so everything else will have to wait. . .

Also, Toshiba is supporting (well, helping to support) Linux on their laptops:

Last edited by moses; 11-07-2003 at 03:02 AM.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Kernel panic on a Toshiba Libretto 50CT nesor Linux - Laptop and Netbook 1 10-11-2007 01:24 AM
Installing Slackware on a Toshiba Satellite Pro 430CDS kvilbig Linux - Laptop and Netbook 6 06-18-2006 05:06 PM
Slackware on Toshiba devit Slackware 8 01-01-2006 08:30 AM
_Install Suse 9.1 Pro On Old Laptop - Kernel Panic (Toshiba Libretto) jyl Linux - Laptop and Netbook 1 06-16-2004 02:14 PM
Linux (Slackware) on a Toshiba Libretto L5 or a Sharp Actius MM10 moses Linux - Hardware 9 08-17-2003 08:13 PM

All times are GMT -5. The time now is 03:17 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration