Installation of Debian Testing on the Acer Travelmate 3004

Table of Contents:
Listed at:
tuxmobile listed

 

Abstract

This document describes the installation of Debian Linux on a Acer TravelMate 3004. Since this is quite a new product, there was little information about the installation available on the internet, but, at the same time, there are some pretty tricky things to note. Fortunately, I found two documents in German ([1] and [2]) that probably spared me days of researching in troubles.

After having set up a working Linux system, I decided to write this document in English. I am not a power user, therefore there are gaps of information that I have not (yet) been able to fill. Especially, I have not used the 56k modem or the cardreader, and can not provide information about these components. Hopefully, there are still some peoble who will benefit from this text. Notes, addidtions, corrections or any other kind of feedback are very welcome. Feel free to get in contact with me.

One note on the Distribution: I chose to install Debian Testing, because it includes a recent version of ieee80211-source and ipw2200-source, that support the build-in wireless LAN card. With Debian Stable, you need to get the driver sources ([8]) and the firmware ([9]) from the internet and manually patch the Kernel. At least, that's the only way I got it to work with Debian Stable.
top

 

Basic Debian installation

First, create an installation CD using an appropriate image from one of the Debian Mirrors. Start your Acer, hit F2, and make sure that your boot order is set to search CD-ROM drives first. Exit the BIOS, and after the reboot, type expert24 noapic noacpi at the installation CD's boot promt. Using Kernel 2.6 for installation fails - many thanks to Martin Buchleitner ([1]) for this crucial hint!
Thanks, too, for the second tip: CD detection fails during the installation. Abort, Open a Shell and do:

$ modprobe ohci1394
$ modprobe sbp2
$ modprobe sr_mod
$ exit
Then try again - now the CD detection should work. Configure your network according to your local network settings. Remember that, during the installation process, only the ethernet card works. The module used is tg3. When asked for the mirror server, select "testing."

Partitioning
That's a little bit tricky, too, since we want to keep the already installed Windows XP. Unfortunately, the partition scheme shipped with the notebook is quite useless (even if you wanted to use Windows only). You need to delete the third partition, then resize the second primary partition, and afterwards decide how you want to spend the space for Linux and Windows data.
I intend to share data between Windows and Linux. The Linux /home-partition will be encrypted (for more information, see [5]) for privacy reason. For Windows, I decided to only use a crypt container for sensible data. The resulting partition table from these assumptions is:

1. Primary3.1 GBfat32(acer recovery partition)
2. Primary14 GBfat32Windows XP (convert to NTFS later)
3. Primary1 GBext3/
5. Logical8 GBext3/usr
6. Logical3 GBext3/var
7. Logical10 GBext3/mnt/data
8. Logical60 GBfat32/mnt/win/data
9. Logical0.9 GBswapSwap
I chose to keep the hidden Acer partition, because some of the Acer Windows Utilities use it. An important step to do, once you restart your Windows, is to execute:
C:\WINDOWS\>convert c: /fs:ntfs
Now install the base system. Remember to choose kernel-image-2.4-686. Install Grub into the MBR. You can safely skip the password setting option, because the password is saved in /boot/grub/menu.lst without encryption. Therefore, setting the password will be our next step. But first, reboot your System.

Secure Grub
If everything went okay, we can continue with the installation process. First, create an encrypted password for the bootloader and send every output from grub directly into /boot/grub/menu.lst. Grub asks you for your password twice, so type the following command and enter your password twice, each followed by <Return>. Afterwards, edit the menu.lst file, delete the lines with the password prompt, and mv the password hash up to the section where password definition examples are given. The entire process should show on your console like this:

$ grub-md5-crypt >> /boot/grub/menu.lst
$ vi /boot/grub/menu.lst
$ cat -b /boot/grub/menu.lst | grep password
    20  ## password ['--md5'] passwd
    24  # e.g. password topsecret
    25  # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
    26  # password topsecret
    27  password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
$

Apt-sources
Next, edit your /etc/apt/sources.list, replace every instance of "etch" with "testing," and do apt-get update && apt-get dist-upgrade. If you stumble up the error message: "Unknown error executing gpgv," you need to import the package issuers' public keys (refer to [3] and [4]):

$ apt-get install debian-keyring -t unstable
$ gpg --import /usr/share/keyrings/debian-keyring.gpg
$ gpg --keyserver subkeys.pgp.net \
 --no-default-keyring \
 --primary-keyring /etc/apt/trusted.gpg \
 --recv 359AAB34
$ cp /etc/apt/trusted.gpg /etc/apt/pubring.gpg
$ gpg --list-public-keys --home /etc/apt/
$ apt-get update && apt-get dist-upgrade

X-Server
Now, update your system and install X, as you probably want to have, at least, a little larger shell. My desktop environment of choice is xfce4, but you probably know how to replace the appropriate packages. I needed:

  • xserver-xorg gdm xfce4 xfwm4 xfce4-panel xfce4-terminal
  • xresprobe pciutils xfonts-base xfonts-75dpi xfonts-100dpi
  • vim vim-common vim-runtime vim-scripts vim-doc
The X-server itself works well with this xorg.conf. I have not tested the use of both the internal and an external monitor, yet. That is to follow.
Since I prefer Vim instead of the Debian default nano, I updated this, too, using
$ update-alternatives --config editor

top

 

Kernel 2.6

Once you have a running Debian with Kernel 2.4, it is pretty easy to compile and install the Kernel 2.6. The "normal" way to do this is:

$ aptitude install kernel-package libncurses5-dev curl libcompress-zlib-perl \
$ build-essential debhelper devscripts dh-make rpm bzip2 fakeroot libxtst-dev
$ cd /usr/src/
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.7.tar.bz2
$ tar -xjvf linux-2.6.17.7.tar.bz2
$ cd linux-2.6.17.7
$ make oldconfig
$ make menuconfig
$ make-kpkg --rootcmd fakeroot kernel_image
$ cd ..
$ dpkg -i linux-image-2.6.17.7_2.6.17.7-10.00.Custom_i386.deb
Instead of executing make oldconfig, you can just as well simply get my config file, copy it to /usr/src/linux-2.6.17.7/.config, and build your kernel directly.

top

 

Network devices

Kernel drivers
The ethernet device is supported natively by the current Linux Kernel. Just set CONFIG_TIGON3=m in your Kernel config file, and you're done. Getting the wavelan device to work is a little bit more tricky, but not much. You need to install the driver sources, as well as the sources for the network stack, from Debian, and patch them into the Kernel tree (see [6]).

$ aptitude install iwp2200-source ieee80211-source wireless-tools
$ module-assistant -t build ieee80211-source
$ module-assistant -t build ieee80211-source

Enable the modules with
 CONFIG_IPW2200=m
 CONFIG_IPW2200_MONITOR=y
 CONFIG_IEEE80211=m
 CONFIG_IEEE80211_CRYPT_WEP=m

and re-compile your Kernel modules. If everything works out, you should see something like:
$ iwconfig
lo       no wireless extensions.

eth0     no wireless extensions.

sit0     no wireless extensions.

eth1     radio off  ESSID:off/any  
         Mode:Managed  Channel:0  Access Point: Not-Associated   
         Bit Rate=0 kb/s   Tx-Power=off   Sensitivity=8/0  
         Retry limit:7   RTS thr:off   Fragment thr:off
         Encryption key:off
         Power Management:off
         Link Quality:0  Signal level:0  Noise level:0
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Interface mapping
Since the TravelMate is a mobile computer, I'd like to use it as such in a most comfortable way. Especially, I want to use my machine in different network environments, without ever typing all that ifconfig-stuff. Using ifscheme, that is more than easy. You just need to replace every instance of a given interface name in /etc/network/interfaces with interface-SCHEME (e.g., replace eth0 with eth0-home). That way, you can have multiple instances of, say eth0, in the interfaces-file, each defining precisely the network settings, start scripts, and the like for your specific environment.

$ aptitude install ifscheme
$ echo tg3 >> /etc/modules

One Problem I stumbled upon, was the inconsistent device mapping the kernel does. If you have no network device drivers loaded, and you start either one of the devices, the first devices started will be eth0, the second one eth1. I found this very annoying. There is a possible solution using device mapping and MAC addresses (see [10] or [11]), but it forces you to assign a different interface name, like net0. Instead, I deciced to use a little workaround: I load the ethernet device module each time the machine starts (see listing above). That way, the ethernet device is always eth0. The wireless LAN drivers are only loaded, when the interface is started.

Now, you only need to edit your /etc/network/interfaces. Below, there is a listing that is quite complex, already, but it gives a few ideas about what is possible:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# file modified by 6c62

# The loopback network interface
auto lo
iface lo inet loopback


mapping eth0 eth1
	script ifscheme-mapping

	
##################### Home network ##############################

iface eth0-home inet static
	# copy files
	pre-up cp /etc/network/6c62-files/resolv.conf.home /etc/resolv.conf
	pre-up cp /etc/6c62-files/hosts.home /etc/hosts
	
	# start programs
	pre-up /etc/init.d/iptables start	
	post-up wwwoffle -c /etc/wwwoffle/wwwoffle.conf -online || true
	post-up /etc/init.d/tor start
	
	# stop programs
	post-down wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline
	post-down /etc/init.d/tor stop
	post-down /etc/init.d/iptables stop
	
	# copy files
	post-down cp /etc/network/6c62-files/resolv.conf.empty /etc/resolv.conf
	post-down cp /etc/6c62-files/hosts.empty /etc/hosts
	
	address 192.168.0.6
	netmask 255.255.255.0
	network 192.168.0.0
	broadcast 192.168.66.255
	gateway 192.168.0.1
	dns-nameservers 217.237.149.161
	dns-search homenet.home


iface eth1-home inet static
	# copy files
	pre-up cp /etc/6c62-files/resolv.conf.home /etc/resolv.conf
	pre-up cp /etc/6c62-files/hosts.home /etc/hosts
	
	# start programs and insmod modules
	pre-up /etc/init.d/iptables start	
	pre-up modprobe ipw2200 led=1 || true
	pre-up iwconfig eth1 essid homewlan || true 
	pre-up iwconfig eth1 enc abcdef1234567890abcdef1234 || true
	post-up wwwoffle -c /etc/wwwoffle/wwwoffle.conf -online || true
	post-up /etc/init.d/tor start

	# stop programs and remove modules
	post-down wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline
	post-down /etc/init.d/tor stop
	post-down rmmod ipw2200
	post-down /etc/init.d/iptables stop
	
	# copy files
	post-down cp /etc/network/6c62-files/resolv.conf.empty /etc/resolv.conf
	post-down cp /etc/6c62-files/hosts.empty /etc/hosts

	address 192.168.0.7
	netmask 255.255.255.0
	gateway 192.168.0.1
	dns-nameservers 217.237.149.161
	dns-search homenet.home


##################### Company network ##############################

iface eth0-work inet dhcp
	# copy files
	pre-up cp /etc/6c62-files/resolv.conf.work /etc/resolv.conf
	pre-up cp /etc/6c62-files/hosts.home /etc/hosts
	
	# start programs
	pre-up /etc/init.d/iptables.work start	
	
	# stop programs
	post-down /etc/init.d/iptables.work stop
	
	# copy files
	post-down cp /etc/network/6c62-files/resolv.conf.empty /etc/resolv.conf
	post-down cp /etc/6c62-files/hosts.empty /etc/hosts

# end of file
The listing above defines the two interfaces eth0 (ethernet) and eth1 (wireless LAN). In addition, there are two entirely different network environments defined, home and work. At home, I have a few computers, all of which have fixed IPs and are listed in /etc/hosts, and a dial-up internet connection. Name resolution is provided by my ISP. For privacy reasons, I use the onion router tor ([12]) when surfing the net.
At work, my machine gets its IP via DHCP. My company has its own BIND-server running. Since I am behind a company gateway, my anonymizer doesn't work, besides I don't need it anyway. For my company network, I also use a different Firewall script, so I can open some ports for Samba or whatever programs I may need, that are useless at home.
I have hosts- and resolv.conf-files adapted to each environment in a personal directory, which I calles /etc/network/6c62-files/. The appropriate ones are copied to /etc/ when an interface is activated.

Having created the script above, and the files in /etc/network/6c62-files/, you need only two commands to feel at home in your new network environment:

$ ifscheme work
$ ifup eth0
top

 

Hardware and status

Hardware components Status (Kernel 2.6) Notes
Intel Pentium 915GM, 2.00GHz works  
ACPI, Powermanagement untested soon to follow
Tigon3 10/100/1000BaseT Ethernet works
ipw2200 Intel PRO/Wireless 2200/2915 works WEP and WPA encryption work.
see above, too
USB works
Firewire works
CD/DVD Reading works
CD/DVD Writing untested
Bluetooth untested
Infrared untested soon to follow

top

 

Links and ressources

Note! The links listed above are meant as reference, only. If not stated differently, I have nothing to do whatsoever with the content presented in the websites that are listed above, and I have no influence on the creation and modification of that very content.
top

 

Contact

For more information, as well as additions, hints, criticism, and so on, drop me a mail to "acer (at) 6c62.net"
top

 

last modified: