Debian GNU/Linux on Compaq Evo N800v

Posted by cicoandcico in Hardware & Software. Tags: , , , , . No Comments»

Debian LogoI’ve used Windows for years before approding to Linux. I began with Mandrake, considered the “simplest” distribution, that is the mostly Win-like. After some experiences with Redhat I decided it was time to try a “pure” Linux distribution.

I focused on Debian even if there are other good distros like Slackware because I’ve always been attracted by Debian Philosophy and I’ve always heard good things about its packaging system, apt.
There are three Debian versions: Stable (Woody), Testing (Sarge) and Unstable (Sid). As you can imagine, Stable is the current stable versions (3.0). Its packages are about 2-3 years old, because they have been tested for years. It is used mostly where stability is necessary (web servers, data servers etc.).
Testing is the future stable version, while Unstable contains the most recent versions of softwares, but, despite its name, it is more stable than any Windows platform. I tried to install Stable first, but I found that it is too old to be adequated to my recent notebook. It is good for servers, but I have no particular request about rock stability: I prefer my recent hardware to be supported.

So, I decided to install Sid. I choose network installation because it is fast and secure (and highly recommended), but you can find Sid unofficial (but working) ISO images on Debian website. If you choose the first way, you need a fast connection because you will be likely forced to download thousands of Mb if you want a complete system. I used the connection provided by my university (up to 2Mbps!) by DHCP.

Characteristics

  • CPU: P4-m 1.8 Ghz (1.2 Ghz in powersave mode)
  • Ram: 256 Mb, DDR 266
  • HD: 40 Gb, 4200 rpm
  • Video subsystem: ATI Mobility Radeon 7500
  • Audio subsystem: i845M, JBL Pro speakers, integrated microphone
  • Screen: TFT 1400×1050 (SXGA +)
  • Various: 2 USB 2.0 connectors, 1 PCMCIA slot, 1 parallel port, S-Video out, integrated ethernet card, integrated modem

Base system installation

First, you have to download this relatively small image. You can download it from the original mirror. This is the Woody installation disk. It will install the base system that you’ll upgrade to Sid. That’s the simplest and the safest way.


Reboot, insert the cd and begin the installation with the version 2.4 of Linux Kernel by typing bf24 -> Enter. Then configure language and keyboard (very easy and intuitive).Now you have to partition your hard disk drive. You have to know a few things about the way Linux menages discks and partitions.
Each HDD is considered like a file (in Linux, everything is a file) and it lies in the /dev directory. The first hd will be called hda, the second hdb etc. So, if you have an HDD on primary master and anther one on primary slave, the first will be called hda, the second hdb. If you have only one HDD, it will be obviously called hda.

A disk can be divided into a primary partition and an extended partition, which is subdivided into logical partitions. You will always have a primary partition, while an extended is not necessary. My disk is partitioned this way (output of parted -> print):

If you want to install Linux only, create a partition with New -> Primary and select Bootable. If you already have a Windows partition, you can resize it with Mandrake installation cd or with parted (a program included in every Linux distribution, included Knoppix live cd), and create a logical partition.
You will need to create also a swap partition (its size should be almost the double of the physical memory, i.e. RAM), so select the size of the root partition according to your needs.

Then, choose Write and type "yes". Partition table will be written to disk. Initialize the swap partition and then the Linux partition. You will be asked to choose between 3 filesystem: EXT2, EXT3 or ReiserFS. The first is not journalised, so it is not a good choice, the second is the most tested, the third is more performing. I choosed ReiserFS for my root partition.
Then, mount the linux filesystem you’ve created as root filesytem, and proceed to modules configuration. Here you have to load some kernel modules necessary to your hardware. You have to load at least your ethernet card’s module. If you have a realtek 8139 based card, you won’t need to load any module. For my notebook, I needed to load Etherexpress on kernel/drivers/net (I don’t remember if it is the correct name, anyway if installation succedes you chose the right module). Don’t be worried, you can’t damage anything here, so try to load as many modules as you want.

Proceed to the base system installation, and select “cdrom”. Finally, install the bootloader (LILO) in the MBR and reboot.

Base system configuration

The first thing you’ll see is LILO’s bootscreen. It allows you to load Linux or Windows, and also different versions of the linux kernel.
You will be asked to configure hour, time zone and password. Say yes to MD5 and to shadow passwords.

Create a normal account, it is very dangerous to use the root account because you can do everything. Don’t remove pcmcia packages, don’t run tasksel and dselect. You will install your packages manually. Finally, don’t configure exim (option 5).

Congratulations, your base system is now installed and configured. Now you will upgrade your system to Sid.

SID installation

The first thing you have to do is modifying Debian repositories, adding Sid ones. A repository is the “place” where you can get your packages. As root, type

# nano /etc/apt/sources.list (# means you type that as root, $ otherwise)

and insert the followind repositories:

deb http://security.debian.org/ stable/updates main
deb http://ftp.it.debian.org/debian/ unstable main contrib non-free
deb http://non-us.debian.org/debian-non-US/ unstable/non-US main contrib non-free
deb http://marillat.free.fr/ unstable main

Then, connect to internet via dhcp by typing

# dhclient

Now you will begin to use apt. Let’s make a short overview.

  • apt-get install package: install specified package
  • apt-get remove package: remove specified package (–purge for a total cleaning)
  • apt-cache search package: search a package
  • apt-cache show package: informations about specified package
  • apt-get update: updates sources.list
  • apt-get upgrade package: upgrade a package
  • apt-get clean: cleans /var/cache/apt from all downloaded packages

Advanced commands (to use when there are conflicts, or when packages have not been configured):

  • apt-get -f install
  • apt-get -f upgrade
  • dpkg –configure -a
  • To upgrade to sid and install the graphic server run, in order,

    # apt-get update
    # apt-get dist-upgrade
    (to update the whole system)
    # apt-get install x-window-system-core
    (to install xfree)
    # apt-get install kdebase
    (to install KDE) or
    # apt-get install gnome-core
    (to install Gnome)

    I chose to install KDE instead of Gnome. If you choose KDE, you will likely install the following kde-related packages, too:

    # apt-get install k3b kcontrol kdebase-bin kdebase-data kdebase-kio-pl kdelibs kdelibs-bin kdelibs-data kdelibs4 kdeprint kdesktop kdm

    You can try now to start Xfree, the display manager, but it’s very difficult that it will work. My /etc/X11/XF86Config-4 (Xfree configuration file) is available here. Use that instead of yours.

    Installing Kernel 2.6

    First of all, install kernel-source package. At the time of writing, latest available version is 2.6.6. You can choose two ways: use my own compilated kernel (if you have an Evo N800v/c it’s surely the fastest way), or compilate your own kernel, maybe starting from my working configuration file (it will take a lot of time, but it’s surely the better choice).
    If you’re are in a hurry, simply download this package (kernel-image-2.6.4-cc_10.00.Custom_i386.deb), cd to the download directory and run:

    # dpkg -i kernel-image-2.6.4-cc_10.00.Custom_i386.deb

    If you chose to compile your own kernel, first apt-get the kernel-source package you want (make sure it makes part of the 2.6.x family) and decompress /usr/src/kernel-source-2.6.x.tar.bz2 archive:

    # cd /usr/src
    # tar jxvf kernel-source-2.6.x.tar.bz2
    # ln -s kernel-source-2.6.x linux (make a symbolic link)
    # cd linux
    # make menuconfig

    Now scroll down and select “Load an alternate configuration file”. If you want to use my kernel .config file as a starting point, download it here and save it to linux kernel source directory. When menuconfig asks for the path of the new configuration file, select the file you’ve downloaded, then exit -> yes.

    Then:

    # make-kpkg clean
    # make-kpkg kernel_image
    (wait.)
    # cd
    # dpkg -i kernel_image-2.6.x.deb
    (or similar)
    # nano /etc/lilo.conf

    Now you need to update lilo.conf in order to add your new kernel to LILO startup choices. At the bottom of the configuration file, add these lines:

    image=/boot/vmlinuz-2.6.x
    label=2.6.x (whatever you want)
    read-only
    vga="791"
    append="ide0=ata66 acpi_os_name='Windows 2001'"

    Vga=”791″ allows you to use framebuffer, ide0=ata66 to use UDMA100, acpi_os_name is useful for acpi compatibility.
    Here you can find, as an example, my lilo.conf.

    Now run # lilo to update LILO. Now you have to update the list of kernel modules that will be loaded at startup, that is /etc/modules file. You can use my own if you want.
    If there are no errors, reboot. Else, you made some mistakes.

    Setting up the touchpad

    After reboot, probably X server will not start. No problem: login as user in console. Before setting up X server, you have to set up touchpad.
    Synaptic touchpad is not currently supported by kernel 2.6. You have to install some drivers that you can find here.

    Unpack the tar package, cd to the current directory, and read INSTALL to have informations about installation. Make sure to copy the file synaptics_drv.o to the /usr/X11R6/lib/modules/drivers/ directory with:

    $ cp synaptics_drv.o /usr/X11R6/lib/modules/drivers/

    As can be read in he INSTALL file, you have to update your XF86Config-4: I suggest you to use my own: XF86Config-4. Consider that it is configured for this notebook only.
    Now you can reboot, and X server will likely start. If it won’t, consider error messages and try to solve.

    ALSA setup

    Now let’s try to configure audio. ALSA is the new Linux sound system, that replaced the “deprecated” OSS. It adds functionalities for modern audio systems. You need to apt-get the following packages: alsa-base, alsa-headers, alsa-utils and alsa-oss.
    Once you will have installed these packages, run alsaconf, choose your sound card, then run alsamixer and make sure everything is turned on. Your sound system should work now.

    Setting up hotkeys

    Hotkeys are that nice buttons over your keyboard like volume control, etc. Unfortunately, under Linux only Volume control and Sound button work.
    First of all, apt-get hotkeys. Download this file and copy it to /usr/share/hotkeys directory. Then, overwrite your /etc/hotkeys.conf with my own one you can find here.

    Finally, put this script to your /home/USER/.kde/Autostart directory. So, it will silenty start at Kde startup.

    ACPI

    This is the worst part of the installation. I couldn’t get ACPI working properly on my notebook, partly because Linux ACPI support is still immature (but becoming good and better) and partly because Compaq BIOSes feature really bugged DSDTs.

    With current BIOS (version f) and kernel 2.6.4, fans are still unrecognised, and cpu throttling doesn’t work, but I heard there is someone who menaged to get everything working.
    There is a way to use a custom DSDT instead of BIOS’s one. You can include it directly in your kernel, but I suggest you to use initrd. You have to download a patch from here and a fixed DSDT to override your buggy one: you can use this one I found on acpi.sourceforge.net. Unfortunately, it still doesn’t work (temperatures are not recognised, throttling doesn’t work).

    If you want to know more, and perhaps try to fix your DSDT, consider these readings:

    Kernel 2.6.4 with initrd patch works better then 2.6.4 without it. Probably, future kernel releases will fix the problem (consider that with version 2.6.3 I couldn’t either read battery status).

    The packages I’ve installed

    I think it can be useful. Here’s the output of dpkg --list.

    Conclusion

    If you followed this guide, you should probably have a working SID system. Surely, you will have to make a lot of configuration changes to set up everything the right way, but that’s Linux life. Everything can be solved, but that’s not easy at all!
    I leave you with a screenshot:

    Click to enlarge
    My Desktop. Click to enlarge

    License

    This article is under the Gpl License.
    Hope you have enjoyed it. ©2004 The Cicoandcico company.

    Tags: , , , ,


    Leave a comment