What is special about the custom installer?
All that is customized is the addition of some hardware-specific support not in the standard installer. It is a 16M network-based installer image suitable for use on a USB key, external hard drive or SD/SDHC card.
The installation process itself is exactly as documented for the standard Debian-Installer.
We have found this works for the great majority of our users. The custom installer can get you up and running with all hardware working sooner than otherwise.
This installer boots with and installs on the target system:
- A standard Debian Lenny system including whichever packages you choose.
The standard Debian Lenny 2.6.26 Linux kernel.
- Ethernet kernel modules
- Depending on your model, either atl2 or atl1e is installed. The former is a package from the standard repository and the latter is now a part of the kernel.
- Wifi kernel modules
non-free madwifi packages to support installing over wifi for Eee PC models 701, 900 and 900A.
Wifi is not included yet for models 701SD, 901, 1000 and 1000H, but wifi modules can be added manually after installation.
- ACPI (hotkey) scripts
- All hotkeys and other ACPI events are handled by the eeepc-acpi-scripts package.
- ACPI kernel modules
- Since Linux 2.6.26 now includes eeepc_laptop, no separate package is needed.
- The eeepc.debian.net repository is added to your apt sources to give access to a small number of hardware-specific packages.
We are working towards getting all of this support into the standard installer. That is, we know we're done when we no longer need eeepc.debian.net for extra packages and everything “just works”.
Installing over wireless
This installer has the option of installing over wireless (on models which include wifi modules in the installer -- see above) as well as ethernet.
How did you get it so small? What is left out?
Our installer can install a full Debian system on your Eee. How is that possible with such a small image? The builtin capabilities of the installer itself are reduced to a basic set adequate for most situations. Most files get retrieved over the net. Unlike the 'netinst' installer which is 130M and contains everything needed to do a 'base' install, ours is a 'monolithic' installer which includes the whole installer in the initial ramdisk. It is limited in that it can only work with the packages that are included in that ramdisk and cannot extend itself with packages outside. Thus, it is not suitable for special install scenarios like pppoe, lvm, crypto or special accessibility needs. Fortunately, most users do not need these things, and if they do, they can use the standard installer instead.
Use on non-Eee systems
Occasionally someone asks if this image can be used on non-Eee PC systems. There’s no reason it couldn’t. You would just need to remove any of the extra things listed above that are useless on non-Eee systems afterwards (any unneeded kernel modules and the eeepc repository in /etc/apt/sources.list). However, if you have problems using it for this purpose, you would be better off just using a standard Debian installer than trying to ask us for help with it, as we have no interest in supporting the installer for uses other than installing Debian on an Eee.
The exact process for mastering the image linked from DebianEeePC/HowTo/Install basically followed DebianInstaller/Modify/CustomKernel to build a Lenny installer. A few extra steps were required to include the atl2 module. The following instructions assume a lenny build system. You may wish to prepare a lenny chroot to do this using cdebootstrap or debootstrap so that your build system will not be 'tainted' by the installation of the kernel for the custom installer. So cd to the directory where you want the chroot, and do:
debootstrap lenny lenny http://ftp.debian.org/debian/
Building the image
The process is automated with the build-eeepc.sh script available at git://git.debian.org/git/debian-eeepc/installer.git web, though to make it work in a Lenny chroot, a few things are missing:
create /etc/kernel-img.conf in the chroot, containing:
do_symlinks = Yes do_initrd = Yes
- silence the numerous LC_* warnings by installing locales in the chroot and configuring it (set it to any value other than None; en_US.UTF-8 should work):
chroot lenny aptitude update aptitude install locales dkpg-reconfigure locales
- initramfs-tools must be installed in the chroot:
chroot lenny aptitude update aptitude install initramfs-tools
the installer needs madwifi-tools which is in contrib. So edit /etc/apt/sources.list of the chroot to include 'contrib'.
- at this point, you probably want to save a tarball of the chroot in case you want to redo the build
- to prepare for building, ensure the script is copied into the roots home directory of the chroot, enter the chroot and mount proc and sys (the warnings about missing fstab are fine):
cp build-eeepc.sh lenny/root/ chroot lenny/ touch /etc/fstab mount -t proc proc /proc mount -t sysfs sys /sys
* Change to roots home directory as for some reason the script hangs downloading debian-installer package list at 99% if you are in '/'. Then start the build:
If all goes well, after a while test/debian-eeepc.img should be created.
If it doesn’t go well, please contact us on the mailing list or via irc. We don’t neccesarily keep the script constantly up to date, so if you notice errors, we would be happy to know.
Testing your build
It is a good idea to test the initial boot stages with qemu just to see if it works correctly without any very noticible glitches, then testing it by dd’ing to a usb or sd card.