Note: This document has become partially obsolete due to the migration to Fedora 11.
This page contains a detailed description of the installation and customisation of Fedora 8 ("F8") on a Dell Inspiron 530 desktop computer. Since I have installed Fedora on various computers and a number of times now, this document summarises the main steps. - Please note that this document has been "anonymised" in a few places; in particular public IP addresses have been replaced by XXX or YYY.
My Dell Inspiron 530 Desktop was delivered in early 2008. At that time, it was the "lightest" version that was available in the minitower case. The machine is equipped with an Intel E4500 Core Duo 2.20 GHz processor with 800 MHz FSB, 3 GB RAM, 320 GB Seagate ST3320620AS harddisk (SATA 3.0 Gb/s, cache 16 MBytes, 7200 rpm), a DVD burner HL-DT-ST Model DVD+-RW GSA-H73N (HLDS Inc.), a Teac 19-in-1 media card reader and Intel 3100 onboard graphics. And since I frequently need to display several windows side by side, I went for the Dell E228WFP 22" widescreen display.
The Inspiron comes in a friendly-coloured, white tower housing with aluminium-coloured front panel. In contrast to the Dell business PCs such as the Optiplex, the Inspiron is not built for quick replacement of parts, so you still need a screwdriver to add a card or other parts. However, its inside is rather roomy. Four USB connectors on the back allow for keyboard, mouse, USB scanner and the backup harddisk - all else has to be connected via the media bay at the front.
A nice feature is the relatively low power consumption: When logged into X-Windows and idle, the computer consumes about 50 W and the flatscreen 27 W. In suspend mode this is reduced to 2.2 and 0.5 W, respectively, and if the machine is switched off the consumption of the PC goes down to 1.5 W.
This is a rather silent machine - no comparison to my previously used PC, a rather noisy Dell Optiplex 240. Yet ... it is still not as silent as I would like, so I will probably put the harddisk on silentblocks.
The Motherboard in the minitower housing provides only four slots for extension cards: two conventional PCI and two PCI Express. With an additional network card (this machine is the router for our home network) and an Adaptec SCSI card (for the tape drive), the two "old-style" PCI slots are already taken.
The machine does not have any legacy printer or serial ports. I knew this beforehand, so I equipped my good old HP LaserJet 5MP printer (which does not have USB) with a second-hand JetDirect print server. An additional advantage of this configuration is that the printer can now be located anywhere in the house, far away from the computer - and without that ugly thick printer cable.
As for the serial ports, I'm missing this possibility indeed a bit since I use a conventional modem for faxing. However, I do not need to send faxes often - and then, I can use an USB-to-serial adapter.
The computer was delivered with a license for Microsoft Windows Vista Home Premium. Since the terms and conditions of the license agreement were not acceptable for me, I did not accept it. Actually, there is no "decline" button, so all that you can do is to power down the computer "the hard way".
Of course I requested a reimbursement of the Windows license fee from Dell. It took several months, at least five different calls and letters (in three different languages) to various departments, but finally Dell insisted that I could not return the software separately since it was considered part of the delivery. Draw your own conclusions ...
Then I installed Linux.
At the time of this writing, I have two Linux distributions that I like a lot: For standalone computers and laptops, I use Ubuntu Linux. For "more complicated" installations and lots of customisation, I use Fedora Linux with the KDE desktop.
Since the machine was going to be my primary computer and router for the home network, I installed a second network card
and booted from the Fedora 64-bit Installation DVD.
Installing FC8 64bit did not work seamlessly. Both the x86_64 Install DVD and the x86_64 KDE Live DVD had problems
upon boot, leading to, uhm, "encouraging" messages like this is not a software problem!
I had to boot with acpi=off
until the SATA disk was recognised correctly and even after a full install I still
ran into minor problems.
Since this is my "production system", I decided not to take risks and switched back to the 32-bit version. From that point onwards, everything went smoothly.
The actual installation was performed as described below. It may be that the following text bores you since the installation is so easy: apart from the router setup, there is almost no particular tweaking to be done. ;-)
Boot the 32-bit KDE live system. I prefer this one over the DVD version, since it is a smaller download, it fits on a CD, and it has already most applications that I need. The "fine-tuning" is done below.
Once the system is up, select "installation to harddisk".
Among others, you will be asked to partition the harddisk. Switching from a 40-GB Harddisk to 320 GB gives quite a new feeling about "disk space", so I partitioned as shown in the list below (update 2009-02: The table now reflects a changed partition size and arrangement, which turned out to be more practical. The Linux system partitions are still huge and could be half of the indicated size ;-)
Caveat: Do not format any vfat partitions at this stage. I believe that the formatter for vfat is missing on the live CD, thus the installation will abort at this point. Wait until the base install is completed (see below), then format these partitions.
Partition | Type | Filesystem | Label | mount point | Comment |
---|---|---|---|---|---|
/dev/sda1 | primary | vfat | DellUtility | /mnt/dell | Dell Utilities from factory install, left unchanged |
/dev/sda2 | primary | 20 GB ext3 | F8 | / | This is the root filesystem of F8 32-bit. |
/dev/sda3 | primary | 20 GB ext3 | F8-64 | /mnt/F8-64 | This was Fedora 8 64-bit. Will be used when updating the system |
/dev/sda4 | extended | This holds the following partitions. | |||
/dev/sda5 | logical | 100 GB ext3 | home | /home | This is huge, but I frequently work on huge data files |
/dev/sda6 | logical | 100 GB ext3 | share | /mnt/share | Local NFS export. Music, images, downloaded stuff, etc |
/dev/sda7 | logical | 5 GB swap | swap | swap | Swap space |
/dev/sda8 | logical | 60 GB ext3 | vbox | /mnt/vbox | VirtualBox files |
Once the base system is installed, I modify the package selections to suit my needs. While I am very much in favour of Fedora's policy of using only Open Source Software, the real world still needs some workarounds: I cannot watch videos on DVD, or listen to music files in the car without using some proprietary or otherwise "sensitive" code. Most of this material is available from rpm.livna.org, so enable the LIVNA repository:
rpm -ivh http://rpm.livna.org/livna-release-8.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna
In the next step, clean up and removed un-used stuff:
yum remove koffice* kaffeine-libs kaffeine kdeaccessibility kdegames xmms xmms-mp3 xmms-faad2 totem
... then update the complete system and install more packages:
yum install vim wget yum update # this may take a while! yum install unison gftp bluefish firefox tidy \ # web-related stuff bitstream-vera-fonts liberation-fonts \ # fonts java-*-icedtea java-*-icedtea-plugin \ # free Java compat-libstdc++-33 compat-libstdc++-296 \ # backward compatitibility libs ImageMagick gimp xfig perl-Image-ExifTool xsane-gimp gthumb \ # image manipulation and scanning lyx tetex-tex4ht xpdf glabels gnuplot gnumeric mc \ # aka productivity easytag jpilot gpsbabel perl-XML-DOM \ # Palm-, gps- and XML-related gutenprint-cups gutenprint-foomatic gutenprint-plugin # printer filters bogofilter kdirstat yum-utils aspell-de aspell-fr subversion \ # Utilities openoffice.org-writer openoffice.org-calc openoffice.org-impress openoffice.org-graphicfilter \ openoffice.org-math openoffice.org-langpack-fr openoffice.org-langpack-de # guess what
If the system is used as primary server in our home network, I provide a DHCP server, and a local news server (for the detailed setup, see below):
yum install leafnode dhcp
Backup is done to tape (using my backup2tape script), so:
yum install star mt-st sharutils
Now for the multimedia stuff. I could not get mplayer to play DVDs, so I reverted to totem, which anyway worked nicely for me since Fedora Core 6:
yum remove mplayer mplayer-gui mplayerplug-in mencoder yum install amarok amarok-extras-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg vorbis-tools\ xine-lib-extras-nonfree lame totem-xine totem-xine-plparser mozilla-totem-xine \ libdvdcss libdvdnav xvidcore transcode madplay k3b-extras-nonfree mozilla-vlc
Codecs are from the mplayer repositories (of course, the date code may change):
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2 mkdir -p /usr/lib/codecs tar -jxvf all-20071007.tar.bz2 --strip-components 1 -C /usr/lib/codecs/
Using Fedora's "Install Packages" software, I deselect Games and install Development Tools.
While the system is updating (or afterwards), I edit some of the system files:
In the bootloader configuration file /boot/grub/grub.conf, I insert vga=791
and remove the splash screen and rhgb
stuff.
In /etc/rsyslog.conf, the most important events shall be logged to console 9 and 10:
*.info;mail.none;cron.none /dev/tty9 kern.warn,*.err;authpriv.none /dev/tty10
Besides using the firewall, I use the /etc/hosts.allow and /etc/hosts.deny pair to restrict access to the system. Access will be granted when a (daemon,client) pair matches an entry in the /etc/hosts.allow file. The file allows login on all services via the local network and ssh from my workplace:
ALL: LOCAL 192.168.XXX. sshd: YYY.YYY.
Furthermore, access will be denied when a (daemon,client) pair matches an entry in the /etc/hosts.deny file.
Since I do not allow any access to the machine except for the entries in the /etc/hosts.allow file, it is
enough to state ALL: ALL
(to be on the safe side and prevent logging myself out, I use ALL: ALL EXCEPT LOCAL
here ;-). A special treatment is reserved for those who try ssh connects:
sshd: ALL EXCEPT LOCAL : rfc931 : spawn (/usr/sbin/safe_finger -l @%h | mail -s %d-%h root) & \ : twist /bin/echo "Access prohibited by system administration. Go away." ALL: ALL EXCEPT LOCAL
Of course, sshd is set up rather restrictive; some key entries in /etc/ssh/sshd_config are:
Protocol 2 PermitRootLogin no PermitEmptyPasswords no PasswordAuthentication yes
By default, Fedora activates a number of services that I do not need or want. For a completely installed desktop machine, the following one-liner (in bash) will deactivate all the services that I do not need:
for i in NetworkManager NetworkManagerDispatcher atd bluetooth capi dhcrelay dund \ fedora-live firstboot ip6tables irda isdn ldap lirc lisa lm_sensors mdmonitor multipathd \ netconsole netplugd nscd pand psacct rdisc rpcsvcgssd saslauthd sendmail smolt \ wpa_supplicant xfs ypbind yum-updatesd ; do /sbin/chkconfig $i off ; done
Note that for a stationary machine, I always enable the service network (so that I can use a remote login via ssh), but disable NetworkManager and NetworkManagerDispatcher since they only activate the network connection once the user is logged in. Exactly the opposite is applied on a laptop; here I usually do not need remote login but I want the network to come up only when I log in.
Here is the list of running services:
# /sbin/chkconfig --list|grep ":on" ConsoleKit 0:off 1:off 2:on 3:on 4:on 5:on 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:on 3:on 4:on 5:off 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off microcode_ctl 0:off 1:off 2:on 3:on 4:on 5:on 6:off nasd 0:off 1:off 2:off 3:off 4:off 5:on 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:off 3:on 4:on 5:on 6:off nfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off ntpd 0:off 1:off 2:off 3:off 4:off 5:on 6:off restorecond 0:off 1:off 2:on 3:on 4:on 5:on 6:off rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rpcidmapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off setroubleshoot 0:off 1:off 2:off 3:on 4:on 5:on 6:off smartd 0:off 1:off 2:off 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:off 3:on 4:on 5:on 6:off udev-post 0:off 1:off 2:off 3:on 4:on 5:on 6:off xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
If you want a list of all services that are available but disabled, use the following command:
/sbin/chkconfig --list|grep ':off' | grep -v ":on"
After adding am Adaptec 2940 SCSI card, edit /etc/modprobe.conf and add the following line:
alias scsi_hostadapter aic7xxx
Since an update of Fedora Core 6, I had severe trouble syncronising with my Palm Z22. A workaround was posted on bugzilla.redhat.com:
Create a file /etc/udev/rules.d/60-pilot.rules with the following content:
BUS=="usb", SYSFS{product}=="Palm Handheld*|Handspring*",\ KERNEL=="ttyUSB*", NAME="ttyUSB%n", SYMLINK="pilot", GROUP="uucp", MODE="0666"
Create a file /etc/security/console.perms.d/60-pilot.perms with the following content:
<ttyUSB>=/dev/ttyUSB* <console> 0660 <ttyUSB> 0660 root.uucp
Update: Something else is broken since a recent kernel update to 2.6.23 ...
I have to run /sbin/modprobe visor
every time before connecting the Palm to the computer :-(
A potential workaround is described on Harald Hoyer's pages.
The only part of the installation that was really tricky was the router. Fedora has changed the setup from FC6 to F8, and there is a new utility provided to assist you in setting up a firewall. Use this tool only for a first setup: The result is NOT suitable to setup a router, since name resolution does not work.
Start the network configuration tool system-config-network
and make sure the two network cards are assigned to the
correct interfaces. On my computer, eth0
came up as the on-board interface (which is connected to the internal network),
and eth1
was the add-on card that connects to the cable modem. This is exactly what I wanted and I
activated the binding of the interface names to the MAC addresses.
In /etc/modprobe.conf, make sure the module for both network cards are present:
alias eth0 e1000e alias eth1 pcnet32
In /etc/sysconfig/network, verify:
NETWORKING=yes HOSTNAME=XXX.localnet NETWORKING_IPV6=no # I do not need nor use this
In /etc/sysctl.conf:
net.ipv4.ip_forward = 1 # this is a router! net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1
... and here is /etc/sysconfig/iptables:
*mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -j MARK --set-mark 0x9 COMMIT *nat :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -m mark --mark 0x9 -j MASQUERADE COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # This is key for name resolution -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i eth0 -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
If you have not already done so, install the DHCP server:
yum install dhcp
Make sure the dhcpd service is running in runlevel 3, 4 and 5. You can usually disable dhcrelay (which is, for some reason, installed together with dhcpd).
In /etc/sysconfig/dhcpd, bind the DHCP server to the internal network card:
DHCPDARGS=eth0
This is the content of the DHCP server configuration file /etc/dhcpd.conf (the actual numbers have been hidden):
authoritative; ddns-update-style none; log-facility local7; default-lease-time 60000; max-lease-time 604800; option domain-name-servers XX.XX.XX.XX, YY.YY.YY.YY; # my ISP's DNS option routers 192.168.XXX.XXX; option broadcast-address 192.168.XXX.255; subnet 192.168.XXX.0 netmask 255.255.255.0 { ddns-updates on; range 192.168.XXX.205 192.168.XXX.229; range dynamic-bootp 192.168.XXX.230 192.168.XXX.250; option nis-domain "localnet"; option domain-name "localnet"; use-host-decl-names on; }
A number of applications that I use are not available in the Fedora repositories, for various reasons. Generally, I download all such "non-packaged" software into /usr/local/src, follow the instructions in the README and INSTALL files and install into the /usr/local/ tree. - Compiling and installation of a number of packages may require the installation of development headers and tools. I recommend to install the full set of development packages.
The PDF toolkit. It provides most of the functional properties of Adobe Acrobat but is free software, and runs under Linux. Instead of compiling from scratch, I used the Fedora 7 rpm:
wget ftp://rpmfind.net/linux/fedora/extras/development/i386/pdftk-1.41-5.fc7.i386.rpm yum --nogpgcheck localinstall pdftk-1.41-5.fc7.i386.rpm
A very useful script to create PDF documents from LyX and LaTeX files. Instructions on configuring Lyx to use tex2pdf are given in the accompanying README file.
wget http://download.berlios.de/tex2pdf/tex2pdf-3.2a.tar.gz tar xvzf tex2pdf-3.2a.tar.gz chmod +rx tex2pdf-3.2a/tex2pdf cp tex2pdf-3.2a/tex2pdf /usr/local/bin/
A very useful tool for the synchronisation of websites, available from http://www.lyra.org/sitecopy. If you run the GUI in English only, you can omit localisation:
./configure --disable-nls
My preferred application for audio recording is good old krecord - not to be confused with the krec tool that comes by default with a recent KDE desktop. Indeed all recent distributions seem to lack krecord, so get it e.g. from linux.bytesex.org. Using a Fedora system, you will need to run the following:
yum install kdebase-devel libXmu-devel cd /usr/lib/qt-3.3/lib/ ln -s libqt-mt.so libqt.so
The symlinking is required since otherwise you will get an error of the linker. - With that, you can build and install krecord:
cd /usr/local/src wget http://dl.bytesex.org/releases/krecord/krecord-1.16.tar.gz tar xvzf krecord-1.16.tar.gz export QTDIR=/usr/lib/qt-3.3/ export KDEDIR=/usr/ make su -c 'make install'
A PCB layout editor.
wget ftp://ftp.cadsoft.de/eagle/program/4.16r2/eagle-lin-eng-4.16r2-1.i586.rpm yum --nogpgcheck localinstall eagle-lin-eng-4.16r2-1.i586.rpm
After installation, you have to launch eagle once as root to activate the license. Just select "run as freeware"; you do not need to create the directories.
"The" PDF reader. Download Acrobat Reader from Adobe, then run:
yum --nogpgcheck localinstall AdobeReader_enu-8.1.1-1.i486.rpm
The Flash plugin is needed to display animations on many websites. Download from the Adobe website and install are straightforward:
rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux yum install flash-plugin libflashsupport
Please refer to the instructions in the Unofficial Fedora FAQ.
I still use two particular applications that still are available only for Microsoft Windows systems. Although a dual-boot system is easy to set up, I see no point in rebooting the computer just for a single application, so I am using virtualisation. Essentially, this allows to run one OS, such as Microsoft Windows, as "guest" inside another OS, the "host" - in my case Fedora 8. For details, please refer to my GPS software page.