Installing Slackware 10.0 Linux on an AMD64 3000
Note: ported from kaear.co.uk, last updated 24/01/2006, 12:08:25
Contents
- Introduction
- Hardware
- Installation
- Partitioning
- Status
- Drivers
- LAN
- Sound
- Video
- Running X
- Installation
- Config File
- Window Manager / Desktop Environment
- Startx
- Applications
- Mozilla
- Mozilla Thunderbird
- xterm
- - bash prompt
- - coloured directories
- CD Burning
- Mounts/Shares
- Samba
o ntfsprogs
o FTP
* Other Devices
o Second DVD Drive
o Printer
* Final notes
Introduction
This document was intended to read like a diary. In actuality, I lost track of what I did to resolve certain problems shortly after the system became stable enough to use without tinkering with it too much. Some time around getting the GUI up and running, probably.
A review of the document took place when i next looked at it, and I decided that a diary approach, although quite nice, wasn't useful as a for reference for myself or anyone else! Thus it's been rewritten and organised by “problem category”, although the initial setup information has been retained for reference.
Hardware
- Core:
- AMD64 3000
- Abit K8V Pro
- 512MB RAM
- IDE:
- Western Digital 120GB HDD
- Sony DVD
- NEC 2500A DVD-R/RW
- PCI:
- Audigy2 Platinum (inc. frontpanel & remote)
- Winfast WinTV2000 XP
- Abit Siluro GeForce 4 Ti4200 AGP-8x
- Peripherals:
- 17” TFT (Monitor 1, DVI socket)
- 15” CRT (Monitor 2, RGB socket)
- HP Laserjet 4 (JetDirect card)
Installation
The Boot Disks
Gentoo Universal LiveCD (AMD64 2004.2) - failed to detect LAN chip. Although I could have continued the installation from the burned stages, I was unfamiliar with the procedure for Gentoo installs.
LAN chip now known to be VT6122 LAN Chip, by VIA. Driver available for download from Via's website.
The Slackware boot disk also failed to detect the LAN chip - simply because the whole thing is rather too new, I suspect.
Going with Slackware 10 was less about the classic “Slack vs Gentoo” argument and more about the “Go with what you know” argument. I had installed Slack 9.1 on my laptop (portege7020ct) and it constituted the first real Linux experience I'd had. I wanted to try Gentoo, but the installation procedure confused me more than I wanted to admit - and especially considering my hope for Win/Linux dual boot system, using a whole new distro was more than I could handle at the time.
Partitioning
Partitioned with cfdisk under Slackware 10.
Name Flags Size Pri/Log Type Mount boot 50MB Primary Ext3 /boot hda windows Boot 10GB Primary NTFS - hda2 linux-root 10GB Logical Ext3 / hda5 home 90GB Logical Ext3 /home hda7 swap 1GB Logical Linux Swap /swap hda6 winshare ~9GB Logical FAT32 - hda8
After an initial false start, LILO was installed in the MBR of /dev/hda, and managed (sucessfully) to autodetect the windows partition.
Should you fail to install it in the MBR during the Slackware installation, I found it easiest to run the installation again without selecting any packages to install and without overwriting the existing fstab. When it comes to the install LILO option, choose MBR.
Instantiating user/users: adduser. Then follow the instructions! That, at least, worked first time.
The Status
I should mention that at this point I had a very bare Windows installation, and an equally bare (if not more bare) Linux installation. All of the following processes were hoop-jumping experiences: I would attempt an installation, only to be told some pre-requisite was missing. At this point the Slackware package browser was utilised to discover if the missing pre-requisite had a pre-compiled Slack package (*.tgz). Usually it did, so, as root, installpkg /path/to/package (/mnt/cdrom/slackware/) and attempt to install the initial software. Rince and repeat until the first desired piece of software has successfully installed.
Usually one misses things such as groff, make, kdelibs and so on.
Obviously, if your drivers require compile-tools (especially LAN/connect-to-internet drivers!), you really should make sure you've installed them off the CD.
Drivers
LAN
As mentioned in the first section, the lan drivers are by no means standard yet, so don't expect to find them around on the boot CDs.
Sound
ALSA was installed and configured using the Slack packages off the CD. Upon install, be sure to run alsamixer and set the appropriate volumes, then run “alsactl store” as root and your sound settings will be restored on boot.
Video
The nVidia driver (“nvidia” under X) is a very simple installation procedure that I presume must be reinstalled after every kernel recompile due to the kernel wrapper that is compiled against the kernel. Read “Running X” below for information regarding video drivers.
Running X
X Installation
Slackware 10 uses the X server from X.org, unlike 9.1 which used Xfree86. For a generic single monitor configuration, Slack installs and runs X perfectly - makes it amazingly useable (compared to how it was on my laptop, of course). Plugging both monitors into their correct slots and installing the nVidia driver (http://www.nvidia.com/object/linux.html) got things working as they were on that initial foray into the world of desktop computing and linux ()
Note: You should download and use the IA32 version of the driver unless you have an AMD64 kernel. I tried to run the AMD64 driver and got an error message telling me the above.
Config File Setup
Copying from the old XF86Config (), the xorg.conf (/etc/X11/xorg.conf ) it ran flawlessly. Don't ask me how the config file works anymore, it's simply a matter of reading the readme file and trial-and-error.
Also check for your desired desktop environment using the Slackware package browser (www.slackware.com) - it's wonderfully easy to installpkg . For those who are interested: I'm using Xfce4.2 (www.xfce.org), in addition to the Rox Filer (http://rox.sourceforge.net/phpwiki/index.php/ROX-Filer) and xterm (http://dickey.his.com/xterm/xterm.faq.html).
Desktop Environment / Window Manager
I could spend days and days writing compare & contrast pieces regarding the two “phrases” above - but many people have already done it. This document was a particularly succint one that covers the major players.
At the time of writing, I personally have used:
- Twm
- Blackbox
- Fluxbox
- WindowMaker
- KDE
- Xfce
My rule of thumb is simply: if it's too slow to run KDE, move to Xfce, if that's still overkill - use Blackbox. If you want to know how something works, try it. Slackware 10 ships with all of the above and a whole bunch more.
Startx
KDE (and Gnome) have graphical login managers - aesthetically similar at least to the way you login through Windows. I found that on my Toshiba ( the GUI login was too processor intensive for my liking, and I didn't always need to get into KDE (my first desktop!) to do what I needed to do.
As a result, I've tended to kill any gui login on install and default to a shell login - getting into your chosen DE/WM is done using the command “startx” from command line.
Upon calling startx, one file becomes particularly important, the other two not so:
.xinitrc .Xdefaults .Xresources
.xinitrc is the file that tells the X server what desktop environment to instantiate (and it does other stuff), while the other two are optional and I believe are not created on a fresh install of Slack 10. Xfce uses a rather long winded startup method (ie, unlike Blackbox it doesn't have a single binary to execute). I copied the suggested script from the site and produced a startup script named .xinitrc.xfce4, which was then called from .xinitrc.
The final lines of .xinitrc (including the above edit) looks like this:
# To start xfce: .xinitrc.xfce
Applications
Mozilla (Web browser)
Getting Mozilla (Firebird 1.0PR sucks compared to Firebird 0.81, imho) to open up multiple instances of itself: http://dan.hersam.com/archives/category/linux
Mozilla Thunderbird (Email client)
Mozilla Mail doesn't accept new files in it's directory tree like Thunderbird does, although theoretically once Thunderbird has built the .mdf files - you could move them all into the Mozilla Mail path.
xterm
Prompt issues
The prompt in xterm by default is simply “bash-2.05$”. I like knowing where I am! To change the prompt xterm (and other terminals, although there are many many rules regarding how emulated terminals works) you need to check the following:
~/.bashrc ~/.bashprofile /etc/bashrc /etc/profile
For more details of this lot, try these:
http://www.fr.linuxfromscratch.org/view/blfs-1.0/postlfs/profile.html
http://www.hk8.org/old_web/linux/run/ch04_15.htm
http://www.network-theory.co.uk/docs/bashref/bashref_56.html
If none of that is useful, use the search phrase “Bash startup files” and see what you dig up in your favourite search engine.
Other Bash prompt resources
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/
http://www.network-theory.co.uk/docs/bashref/bashref_56.html
http://networking.ringofsaturn.com/Unix/Bash-prompts.php
The ultimate goal of all of this is to set your prompt to something else. I like to see:
<user>@<host>: <cwd>$
Which in bash prompt language resolves to:
'\u@\h:\w\$ '
The environment variable used to set the prompt is PS1, so in the end you want the following to be located somewhere in your bash startup files:
PS1='\u@\h:\w\$ ' export PS1
I put the PS1 line I wanted under the final else statement in /etc/profile - rummage around in there and look for the “Set a default shell prompt:” section, you'll see it.
I couldn't get this alone to work - although by rights it should.
The next step was to try ~/.bashrc. A quick copy & paste
# .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
if [ -f ~/.xinit.d/xim ]; then export EMACS_IME='Cat ~/.xinit.d/xim' fi PS1='\u@\h:\w\$ ' export PS1
To be frank, I have no idea what purpose some of that surves, and why it's in there, but I copied it anyway. The important thing was to re-run /etc/bashrc on startup to provide the much required prompt.
I don't think that worked, either.
And finally, ~/bash_profile had the following added to it:
PS1='\u@\h:\w\$ ' export PS1 . /etc/bashrc
In the end, I went with the “Oh sod it!” approach and exported PS1 directly, no ifs, no elses (no buts?) and things seem to have worked.
There is some problem involving PS1 whereby it gets destroyed when opening up non-interactive prompts under X - or that may be not entirely correct. The net result is that PS1 disappears, so you end up with the evil “bash-2.05$” prompt.
Coloured prompts
My other gripe is the lack of coloured prompt on xterm and when su'ing on other terminals. The solution? No idea, precisely, but I do know that adding the following lines:
Xterm*background: black Xterm*foreground: white Xterm*scrollbar: on
To the following files:
~/.Xdefaults ~/.Xresources
And, in /etc/bashrc, adding:
export TERM=color alias ls='ls -CF -color=auto'
Gets the desired result.
CD Burning
Accomplished using a bunch of command line programs, and an associated GUI. If you're using KDE, I've heard excellent things about K3B. For Gnome I believe there's something similarly specific.
For the rest of us, there's XCDRoast.
Good, in it's own way, but it's nothing like Nero Burning ROM, or even Adaptec's EasyCDCreator.
My advice for people moving from windows to Linux who have made it this far is one of command line.
As an aside, see this article for interesting observations about the command line.
To duplicate my own efforts, you will need (in no particular order) to get a hold of the following (“package (version)”):
- cdrdao (1.1.9)
- cdrtools (2.00.3)
- ProDVD (2.01 [maybe?] i586-pc-linux-gnu)
- xcdroast (0.98alpha15)
Installation/setup is as-per instructions. The hardest part was sorting out ProDVD - but like all Linux issues, it's usually solved by very carefully following instructions (see here for ProDVD instructions).
The howto manual that can be found on the xcdroast site is very clear, provided you clear your mind of any Nero-esque notions beforehand.
Mounts / Shares
Samba
Setup /etc/samba/smb.conf - RTFM is the answer to most of the problems out there regarding smb.conf. However, I always forget the simple task of using smbpasswd to instantiate the users for the daemon.
Add a user: smbpasswd -a $user Change user password: smbpasswd $user
ntfsprogs
If, like me, you only have a single-user system (that is, you only have 1 user login) then you'll find it incredibly frustrating to only be able to read any NTFS partitions (namely the win partitions used in the dual-boot) as root! It is perfectly simple to allow users read access to these partitions using the umask function of ntfsprogs in fstab.
The final fstab looks like this:
/dev/hda6 swap swap defaults 0 0 /dev/hda5 / ext3 defaults 1 1 /dev/hda1 /boot ext3 defaults 1 2 /dev/hda7 /home ext3 defaults 1 2 /dev/hda2 /mnt/windrive ntfs auto,user,umask=0222 0 0 /dev/hda8 /mnt/winshare vfat auto,user 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0 /dev/hdd /mnt/dvdrw iso9660 noauto,user,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,user 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 proc /proc proc defaults 0 0
Take note of the additional umask=0222 option when mounting the ntfs tab. The details on using this can be found here.
Other Hardware
Second DVD Drive
Devices attached to IDE channels can all be referenced in the same manner:
- Primary master: hda
- Primary slave: hdb
- Secondary master: hdc
- Secondary slave: hdd
If it's a hard disk drive, you would append a number on the end to represent a partition, but you can simply use /dev/hdx (where x is a, b, c or d) to reference other IDE devices such as CD/DVD drives.
I have a DVD drive and DVD-RW drive. Slackware creates a sym-link called /dev/cdrom that links to the first CD-esque device it finds, but doesn't bother looking for anymore - if you want them, you have to fish them out yourself.
Create a new directory in /mnt/, copy the permissions from /mnt/cdrom and add the necessary line into fstab.
For permissions:
chmod 755 $new-mount-point
Printer
lpd and apsfilter are the 2 key ingredients to getting a printer running under Slack. Install both packages, plus any other pre-requisites (ghostscript and a2ps spring to mind) and follow the instructions for installing your printer using apsfilter.
Mine's installed under /usr/share/apsfilter, thus I run /usr/share/apsfilter/SETUP (as root) and configure the necessary. Having a JetDirect card in my printer meant using the following key options:
- Printer driver: ljet4d
- Interface setup: network
- Default Printing Method: auto
Run through each option, sorting as applicable and then run a test page. Be aware that lpd must be running before you attempt the test page.
To verify if your printer is where you think it is, use telnet from the command line to try and telnet over to it. Mine is fixed on a static IP address, so I'll always know where we are.
Final Notes
This document used to be a lot bigger, because at the time I was converting from Windows to Linux, so a lot of this is pertinant to that. However, because I think that the two are large issues on their own, I broke the document up. You'll find basically the Windows-Linux conversion process part of this document under the Articles section of the site.
Don't forget to read the other Linux sections for more information.