Adverts
General Information
First read the Debian FAQ it's a little terse and out of date in a couple of places but it answers most of the questions that you will likely have with getting the base system install.
Base Installation
This was hard work. I used the latest release of the Debian installer for AMD64 which you should be able to get from here amongst other places (it's mirrored). The problem was that I was in a serious catch-22 situation because the installer doesn't automatically detect the network card (I was doing a net install). The solution I came up with was to do the base install and then configure up an old Ethernet-over-USB device that I had spare. This allowed me to get a network connection and continue the install by running base-config again. Sorry I can't be more precise about this step but I think everyone's experience here will be different. Suffice it to say, if you have an old network hard handy it's probably work sticking it in for now.
Updates
Update Your sources.list (2006-01-11)
The alioth server should no longer be used as an apt repository. The data has now moved to:
http://amd64.debian.net/debian
If you want to use the nVidia video card drivers or a few other packages remember to add contrib and non-free to your sources list. At the moment (2006-01-11) the nVidia drivers (version 7174) in this repository won't work with kernels greater than 2.6.12. Updates are threatened but seem to be taking a long time to come through. For now you can get the nVidia AMD64 drivers for Debian by following that link. Note: that link simply takes you to a page that tells you where what sources lines to add. The packages are created by Randall Donald
Flash Now Works (2007-06-07)
Flash 9 for x86 systems can now be installed on AMD_64 using the nsplugginwrapper. This wrapper lets non-AMD_64 plugins work under a 64 bit browser. There is even a Debian package for it so it's simple to install. Down load the latest Flash plugin (get the .tar.gz version) and unpack it in a sensible directory for plugins (I used /var/local/<my account>/flash but that's just some local scratch space that I maintain for myself). Then stop Firefox (Iceweasel) and run the command nspluginwrapper -i /usr/local/<my account>/flash/libflashplayer.so to register the player with the browser. That's it, Flash should now be working.
System Specification
- Motherboard (spec): Gigabyte GA-K8NXP-SLI
- Video (spec): Gigabyte GV-NX66T128VP
- Sound: On Board (8 Point Surround)
- Network: On Board (2 * Gigabit Ethernet, 1 * Wireless)
- Processor: AMD Athlon64 939 3000+ "Venice"
- Memory: 2 * Corsair XMS 512MB PC3200 C2
- Power (spec): Enermax 485W NoiseTaker EG495AX-VE(W)
Video Card
Information
There are instructions on how to install the nVidia drivers in /usr/share/doc/nvidia-kernel-common/README.Debian. Obviously you will need to install the nvidia-kernel-common package first though. I tried the open source nv drivers even though they don't list the video card I am using - they didn't work.
Installing the Drivers
Thinking about it you could probably do this using module-assistant as documented here but I didn't think of that at the time (it was very late). So here's what I did:
- Update sources.list as show above to include non-free.
- Install gcc-3.4, nvidia-kernel-source, nvidia-kernel-common and kernel-headers-2.6.8-11-amd64-k8. The last one you will have to check to make sure it matches your system use uname -a to find out what kernel you are running.
- Swtich to /usr/src
- Unpack nvidia-kernel-source with "gunzip nvidia-kernel-source.tar.gz" then "tar -xf nvidia-kernel-source.tar". Which should leave you with a modules directory in /usr/src.
- Switch to /usr/src/kernel-headers-2.6.8-11-amd64-k8 and run "CC=gcc-3.4 make-kpkg modules_image". Which will create a package in /usr/src called something like nvidia-kernel-2.6.8-11-amd64-k8_1.0.7174-3+10.00.Custom_amd64.deb although your name will probably be different.
- Install the created .deb with "dpkg -i nvidia-kernel-2.6.8-11-amd64-k8_1.0.7174-3+10.00.Custom_amd64.deb".
- Install the nvidia-glx and nvidia-glx-dev packages.
Debian nForce4 Drivers
There are binary drivers for the nForce4 network card and sound card in much the same way as there is for nVidia graphics cards only there isn't a nice friendly package to help you install them like there is for the video card drivers. From reading around it seems that both work with open source drivers and it's just a case of making them do so.
Network Card
Ok, I admit it, I felt like a bit of a prat for not realizing that you could get the on board nForce4 network card working with Debian fairly easily. It seems that the forcedeth drivers should get it to work (I'm not sure they come with the installer so maybe I can be excused for my somewhat round about way of getting here - and the card was certainly not detected automatically). Further investigation leads me to believe that the forcedeth drivers are actually better than the binary nVidia drivers.
Sound Card
The on-board sound is AC97 compatible (apparently) and so should work with snd-intel8x0. After loading the module with modprobe and having it not work I went on the hunt for a solution and came up with this thread which solves the problem completely. There is no point in me duplicating the whole thread here but it is well worth a read if you are struggling. In summary though. The sound card will work but only on kernel versions 2.6.10 and greater. You might also need to install the alsa-base package.
Software
At some point in the dim and distant future we might get a 64-bit version of Open Office, until then though you are pretty much stuck with using one of the following two methods to get it installed. You can either install the 32-bit libraries that have been packaged for the AMD64 port with may or may not work or you can create a chroot and run it in there. I have opted for the chroot option as it's easier to maintain (you can just use apt-get like normal).
Create the chroot
If you don't have them install the debootstrap and dchroot packages. The latter is useful later when we are running applications. Once they are installed run
debootstrap --arch i386 sid /var/chroot/sid-ia32 http://ftp.uk.debian.org/debian
Using your own personal favorite mirror as the last argument if you want. This will download and unpack a very minimal system in /var/chroot/sid-ia32. Once it is installed chroot into it with (Note: to leave a chroot simply use exit)
chroot /var/chroot/sid-ia32
Before you can run most applications you will need more libraries than have been installed in the base system. Now that you are in your shiny new chroot you can just apt-get them. You will probably have to write your own /etc/apt/sources.list though which will mean using vi, and example of which can be seen below. Note: use esc esc :wq to quit and save in vi.
deb http://ftp.uk.debian.org/debian sid main contrib non-free deb-src http://ftp.uk.debian.org/debian sid main contrib non-free
Update apt (apt-get update) and you are then ready to install some more libraries. For now just install libx11-6.
In order to be able to use the 32-bit libraries in the 64-bit system you need to make them known to the linker which means putting adding the following lines the /etc/ld.so.conf file in the 64-bit system.
# chroot i386 system libs /var/chroot/sid-ia32/lib /var/chroot/sid-ia32/usr/lib /var/chroot/sid-ia32/usr/X11R6/lib /var/chroot/sid-ia32/usr/local/lib
Now link your 32-bit linker in to the /lib directory of your 64-bit install. The following command will probably work but if it doesn't you will need to look up the name of the linker in the chroot. Execute this command in the /lib directory of the 64-bit install as root.
ln -s /var/chroot/sid-ia32/lib/ld-2.3.2.so ld-linux.so.2
The last step is update the linker cache with the command (again in the 64-bit system)
ldconfig
This should now mean that you are able to run at least some 32-bit applications under the 64-bit system. Whenever you need / want to update the chroot you can simply use apt-get (if you want to get a bit advanced you could probably use synaptic as well).
To run more applications you need to place some parts of the 64-bit file system inside the chroot which is done with a bind mount. Open your 64-bit /etc/fstab, add the lines
# ia32 chroot /home /var/chroot/sid-ia32/home none bind 0 0 /tmp /var/chroot/sid-ia32/tmp none bind 0 0 proc /var/chroot/sid-ia32/proc proc defaults 0 0
and then mount them
mount /var/chroot/sid-ia32/home mount /var/chroot/sid-ia32/tmp mount /var/chroot/sid-ia32/proc
Now copy the /etc/passwd, /etc/shadow and /etc/group files from your 64-bit system into your chroot. Note: Other options include setting the users up manually in the chroot or symlinking the above files. Execute these commands in the 64-bit system.
cp /etc/passwd /var/chroot/sid-ia32/etc/passwd cp /etc/shadow /var/chroot/sid-ia32/etc/shadow cp /etc/group /var/chroot/sid-ia32/etc/group
That's it - your chroot should now be ready to run 32-bit applications.
Running Open Office in a chroot
Enter your chroot if you aren't currently in it with (Note: you must be root to do this)
chroot /var/chroot/sid-ia32
and install Open Office if you need to
apt-get -u install openoffice.org
leave the chroot.
exit
Now you need to add the chroot to /etc/dchroot.conf in order to be able to start applications as a regular user from outside the chroot. Add the following lines to /etc/dchroot.conf
# ia32 chroot ia32 /var/chroot/sid-ia32
In a console window as your normal user (in the 64-bit system) you should now be able to run this command to start openoffice
dchroot -c ia32 -d openoffice
If that works as the root user in the 64-bit system create the following script in /usr/local/bin and call it dchroot_start
#!/bin/bash ARGS="" for i in "$@" ; do ARGS="$ARGS '$i'" done exec dchroot -c ia32 -d -q "`basename $0`" "$ARGS"
Make it executable
chmod a+x dchroot_start
And then create links for all the applications you want to start using it. For instance
ln -s dchroot_start openoffice ln -s dchroot_start oowriter ln -s dchroot_start oocalc ln -s dchroot_start oodraw ln -s dchroot_start ooimpress ln -s dchroot_start oomath ln -s dchroot_start ooweb
The great thing about this solution is that it allows you to pass other arguments to the script so you can integrate it with say KDE (use the script to open files) and make it basically invisible to users of the system.
Once you have created the symlinks as described above under KDE simply open konqueror, find an Open Office document of the right type (so for writer that would be a file with the extension .sxw). Right click on it and choose "Open With...". In the open with dialog enter openoffice and check the box at the bottom to remember the association. Use the menu editor to add the required menu entries as well.
If you want spell checking to work you need to install the required myspell dictionary (or Writer will think every word is spelt correctly). If you want open office to integrate with the desktop better there are widget sets for both kde and gnome.
Possible Problems
Since installing the chroot I have been having a problem with KDE - it gets replaced with Gnome. I'm not sure what is happening but the consensus on debian-user is that a core Gnome application is being started somewhere. I found nautilus running after it had happened so this may well be the case. The problem is that I don't know what started nautilus. A possible solution to this problem is to start gconf-editor then expand the left hand tree thus apps --> nautilus --> preferences then in the right hand list uncheck Show Desktop.
Upgrading the C Libraries
There is a little problem with upgrading the C libraries on the host operating system when a chroot is in place. Apt will complain about another version being present which means it can't perform the upgrade. The full error message will look something like this:
These libraries were found in /var/chroot/sid-ia32/lib: libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1 Another copy of the C library was found via /etc/ld.so.conf. It is not safe to upgrade the C library in this situation; please remove the directory from /etc/ld.so.conf and try again. dpkg: error processing /var/cache/apt/archives/libc6_2.3.5-3_amd64.deb (--unpack): subprocess pre-installation script returned error exit status 1 Errors were encountered while processing: /var/cache/apt/archives/libc6_2.3.5-3_amd64.deb
To fix this you need to remove the chroot library entry from /etc/ld.so.conf (remove not comment out), perform the upgrade and add it back in again. It's best to close any applications relying on the chroot while doign this.