This thread is to document my experience with installing Slack
9.0 on the cool new Libretto L5 (only available in Japan or from
dynamism.com). 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 dynamism.com 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 (
www.transmeta.com).
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:
Code:
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
(
http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html), 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
post).
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):
/etc/dhcpd.conf:
Code:
# 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 "valhalla.org";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name-servers XXX.XXX.XXX.XXX;
option routers 192.168.0.2;
option vendor-class-identifier "PXEClient";
option vendor-encapsulated-options ff;
filename "pxelinux.0";
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.176 192.168.0.224;
default-lease-time 600;
max-lease-time 7200;
}
# Group the PXE bootable hosts together
group
{
use-host-decl-names on;
option vendor-class-identifier "PXEClient";
# PXE-specific configuration directives...
next-server 192.168.0.2;
option root-path "/export/root";
filename "pxelinux.0";
host Libretto
{
hardware ethernet 00:00:XX:XX:XX:XX;
fixed-address 192.168.0.175;
}
}
bootp is the internet boot protocol needed to offer a bootstrap to
the network boot client.
/etc/bootptab:
Code:
# /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.
.default:\
:sm=255.255.255.0:\
:ds=xxx.xxx.xxx.xxx:\
:ht=ethernet\
:gw=192.168.0.1\
:sa=192.168.0.2\
:bf=/tftpboot/netusb.i\
:rp=/export/root\
:hn
libretto\
:ha\0000XXXXXXXX
:ip=192.168.0.175
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.
/etc/pxe.conf
Code:
# which interface to use
interface=eth0
default_address=192.168.0.2
# the multicast ip address to listen on
multicast_address=255.255.255.0
# mtftp info
mtftp_address=192.168.0.2
# the port to listen on
listen_port=4011
# enable multicast?
use_multicast=0
# enable broadcast?
use_broadcast=1
# user prompt
prompt=Press F8 to view menu ...
prompt_timeout=10
# 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
service=X86PC,0,0,pxelinux,PXELinux
# tftpd base dir
tftpdbase=/tftpboot
# domain name
domain=localdomain.org
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:
Code:
PROMPT 1
ipappend 1
append nfsroot=192.168.0.2:/export/root
DEFAULT netusb.i rw
LABEL USB
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
player.
This link has some decent explanations of the entire net boot process:
http://www.ussg.iu.edu/hypermail/lin...02.2/0724.html
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):
Code:
dhcpd
bootpd -s
in.tftpd -lvvv /tftpboot/
proxydhcp 192.168.0.2 /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):
/etc/exports:
Code:
/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
combo).
I'll detail more of this in a later post.