?TableOfContents
Translations: [:DebianEeePCFrench/HowTo/CustomInstaller:French]
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 [:DebianInstaller: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: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
- [:NonFreeTrackingSystem/SourcePackage/madwifi: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.
- Required modules are added to /etc/modules.
- 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. It only supports open and WEP authentication at the moment, but WPA is supported by ["DebianEeePC/HowTo/WPAInstaller-Beta"].
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.
Development
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 sid build system. You may wish to prepare a sid 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 sid sid 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 [http://git.debian.org/?p=debian-eeepc/installer.git;a=log web], though to make it work in a sid 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 sid apt-get update apt-get install locales dkpg-reconfigure locales
- initramfs-tools must be installed in the chroot:
chroot sid apt-get update apt-get 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 sid/root/ chroot sid/ 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:
cd ./build-eeepc.sh
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 dont 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.