After using Gentoo for 1 1/2 years, I decided to move to Debian GNU/Linux. I got Debian Sarge 3.1r0a CDs (three of them). I also installed GNU/Hurd K8.
I wanted to see what was inside the IBM T41. I dismantled it and put it back again before proceeding to install GNU/Linux.
Disclaimer: If you screw your laptop ... actually unscrew your laptop, you are doing it at your own risk.
Some pictures of the IBM T41 (cdrom, hard disk, keypad, battery, ...)
Installation was pretty straight-forward. Used the first CD to boot into the system, did the basic install. My partitioning scheme is as follows:
/dev/hda1 is /.
/dev/hda2 is /home.
/dev/hda3 is swap.
/dev/hda4 is hurd partition.
Device | Boot | Start | End | Blocks | Id | System |
/dev/hda1 | 1 | 1216 | 9767488+ | 83 | Linux | |
/dev/hda2 | 1217 | 3648 | 19535040 | 83 | Linux | |
/dev/hda3 | 3649 | 3679 | 249007+ | 82 | Linux swap | |
/dev/hda4 | 3680 | 4427 | 6008310 | 83 | Linux |
The first CD simply does the base installation and it reboots. It will then proceed with user account setup, software packages wherein you need to insert all 3 CDs, one by one, to update the database list of software packages available. After completion of software installation, it booted into X. Used the other CDs for installing required software with Synaptic Packet Manager. I am using Gnome with the 2.6.12.3 kernel.
Configuration files/outputs
/etc/X11/XF86Config
/sbin/lspci
/sbin/lsmod
cat /usr/src/linux-2.6.12.3/.config
/etc/fstab
/boot/grub/menu.lst
Desktop
I am using XFree86 with gnome and ati drivers. I also have fluxbox installed.
Gigabit Ethernet
Works by default. I am using the e1000 Intel driver.
CD/RW DVD Combo Drive
Works by default. I am able to play DVDs using mplayer. I have also tested CD writing with K3B.
Sound
By default, the 2.6.12.3 kernel sources have ALSA support compiled in and I am able to play music using xmms and mplayer.
Touchpad/Trackpoint
Works by default.
USB
Works by default. I am able to use my Sandisk 256 MB USB stick and Sony DSC-P93 digital camera with gphoto2.
The 6 GB partition on /dev/hda4 was used to install GNU Hurd.
Configuration files/outputs
/etc/X11/XF86Config-4
/etc/fstab
These are the steps that I followed to install GNU/Hurd K8 on my IBM Thinkpad T41:
1.0 Boot from K8 CD
Inserted the K8 CD and used boot from CD-ROM in the BIOS.
I got a welcome screen and was asked to pass any boot options, if needed. I just clicked enter to boot the default kernel that came withthe CD. I then got the installation menu.
2.0 Keyboard Layout
I selected the US qwerty keyboard layout
3.0 Activate Swap
I already had /dev/hda3 as my swap. So, chose activate alternate swap.
4.0 Initialize Hurd Partition
The /dev/hda4 partition of 6 GB is to be used for GNU Hurd. I chose to intialize this partition as Hurd.
5.0 Install the Base System
This option extracts the baseGNU.tgz package from the CD and installs it to the Hurd partition, in this case /dev/hda4.
I rebooted the system.
6.0 Add Hurd entry for grub
Added the following to /boot/grub/menu.lst
kernel (hd0,3)/boot/gnumach.gz root=device:hd0s4 -s
module (hd0,3)/hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed ${root} $(task-create)$(task-resume)
module (hd0,3)/lib/ld.so.1 /hurd/exec $(exec-task=task-create)
Since, I had grub installed on my MBR, I entered in Debian and modified/boot/grub/menu.lst for Hurd. Note that "module(hd0,3)/hurd/ext2fs.static ... $(task-resume) is one single line.
I rebooted.
7.0 Run native-installer
# export TERM=mach
# ./native-install
I had to reboot and enter into Hurd once again.
8.0 Run native-install again
# export TERM=mach
# ./native-install
9.0 Add swap entry
Used "nano-tiny" editor to add swap entry to /etc/fstab file.
/dev/hd0s3 none swap sw 0 0
I had to reboot. Now, to enter into Hurd after installation, I had to enter into multi-user mode. So, I removed the -s in the/boot/grub/menu.lst file from Debian in the kernel boot line for Hurd. Saved it and rebooted to enter into GNU Hurd :)
10.0 User Accounts
Logged into GNU Hurd using:
login > login root
# passwd
Set a new root passwd. I created a user account using:
# adduser
It will ask few questions before creating the user account
11.0 CDROM
As root, I did the following to set the translator for CDROM:
# cd /dev
# ./MAKEDEV hd0s3 hd0s4 hd2
# mkdir /cdrom
# settrans -gp /cdrom /hurd/iso9660fs /dev/hd2
I could view the CD contents using "ls /cdrom". I did add an entry to /etc/fstab for the cdrom:
/dev/hd2 /cdrom iso9660fs none,auto 0 0
I remove the translator using:
# settrans -g /cdrom
12.0 Software
I first had to update the base system using both the installation CDs:
# apt-get update
Using CD1, I did the following installs:
# apt-get install gcc
# apt-get install hurd-dev
# apt-get install build-essential
# apt-get install apt-file
Using CD2, I did the following installs:
# apt-get install mig
13.0 XFree86
I have X server running and have installed blackbox. I first had to install x-window-system-core.
# apt-get install x-window-system-core
It will automatically take you into configuring XFree86. You can always reconfigure X using dpkg-reconfigure xserver-xfree86.Installed blackbox then:
# apt-get install blackbox
I then created device files /dev/cons/kbd and /dev/cons/mouse and linked them:
# ln -s /dev/cons/kbd /dev
# ln -s /dev/cons/mouse /dev
I get multilple terminals using:
# console -d vga -d pc_mouse --repeat=mouse -d pc_kbd --repeat=kbd \
-d generic_speaker -c /dev/cons /dev/vcs
I put the above in a script file, so I simply can run the script. I then get six terminals, Ctrl+Alt+F1 to F6. I login and type startx to start blackbox :)
14.0 Compiling GNU Mach
I have compiled the GNU Mach microkernel on Debian GNU/Linux. These are the steps I followed:
Obtained gnumach-1-branch sources from cvs:
# export CVS_RSH="ssh"
# cvs -z3 -d:ext:anoncvs@ savannah.gnu.org:/cvsroot/hurd co -r gnumach-1-branch gnumach
Obtained mig_1.3-4_i386.deb and installed it using dpkg:
# dpkg -i mig_1.3-4_i386.deb
Entered into the gnumach sources and did the following for compilation:
# mkdir build
# cd build
# ../configure --host=i386-unknown-gnu0.2 --build=i586-pc-linux-gnu \
; --enable-kdb --enable-ide --prefix=/path/to/my_gnumach
# make
# make install
This creates boot/ and include/ under /path/to/my_gnumach directory. The gnumach image is present inside the boot/ directory. I compressed it using:
# gzip -c gnumach > mygnumach.gz
I mount the Hurd partition on GNU/Linux using:
# mount -t ext2 /dev/hda4 /mnt/hurd
I copied mygnumach.gz image to the Hurd /boot partition. I added anentry in /boot/grub/menu.lst for the my new mygnumach.gz - just replacing the kernel /boot/gnumach.gz with the new name. I rebooted into the new mygnumach.gz kernel :)
15. Compiling stomach-20050828
I downloaded Gianluca Guida's stomach-20050828.tar.bz2 microkernel from:
http://wazzabbanda.homelinux.org/
Gianluca uses dyndns. So, if the above site does not resolve, try opening http://82.55.76.152/
I extracted the sources and did make in the source directory for compilation. The oskit (project from Department of Computer Science, University of Utah, http://www.cs.utah.edu/flux/oskit/) got compiled. Idid "./configure" inside the stomach directory and did make to compile. The compiled kernel is stomach/kernel.
I copied the kernel into /bootin the Hurd partition after mounting it on GNU/Linux. I added a newentry, similar to GNU Mach/GNU Hurd in /boot/grub/menu.lst for Gianluca's stomach. I only modified the kernel entry to /boot/kernel. I was able to boot into oskit-stomach microkernel with hurd running on top!
16. Compiling oskit
[Wednesday, August 31, 2005 0100 IST]
I downloaded the latest oskit from CVS:
# export CVS_RSH="ssh"
# cvs -z3 -d:ext:anoncvs@ savannah.gnu.org:/cvsroot/oskit co oskit
I downloaded the modules.x86.pc file available at http://hurd.gnufans.org/bin/view/Mach/BuildingOskitMach and copied it into the oskit/ directory.
Entered into the oskit/ directory and did:
# mkdir build
# cd build
# ../configure --enable-modulefile=../modules.x86.pc
# make
I took the hello executable from build/examples/x86 and copied it to /boot. I created an entry for this in /boot/grub/menu.lst:
title oskit Hello World
kernel(hd0,0)/boot/hello
On reboot, and selecting this kernel, it printed "Hello, World" !
17. Installing L4Ka Pistachio and Hurd-L4
[Saturday, September 11, 2005 0000 IST]
I installed the L4Ka pistachio micro-kernel with hurd-l4. I followed the install instructions from here: