Ed Grochowski's Website
Newer Articles
2012
Maytag MVWC400XW High-Efficiency Washer Review
Santa Clara Micro Center Store Closure
2009
Slackware Linux 13.0 Review
2008
Laptop Dust Removal
Long Hair Care
2005
Linux Migration
2003
Reviving Your TI-59 Calculator
Electronics Museum
Software Museum


© 2018
Ed Grochowski

Linux Migration

Ed Grochowski

Original 12-3-2005
Revised 7-4-2006

In December 2004, I installed Slackware Linux 10.0 on my Dell Dimension XPS T750r and Dell Dimension 8300 computers. Both computers had previously run Microsoft Windows. I subsequently upgraded from Slackware Linux 10.0 to 10.2, performed several kernel upgrades, and added a Dell Inspiron E1505 to my computer collection. This article summarizes my experiences in migrating from Windows to Linux.


Installation

Slackware comes on four CDs and installs in 20 minutes using the first two CDs. I did a full install with default options. As part of the installation, one must partition the disks with cfdisk and configure the Linux loader lilo. On initial attempt, Linux would not boot. Trying again with the Install to MBR option, Linux successfully booted.

Optionally, Lilo can be configured to dual-boot Linux and Windows. I ran a dual-boot configuration for the first month or so.


X Window System

Once installed, the next step is to configure the X Window System with xorgsetup. My old Hitachi CM1786 monitor did not support extended display identification data (EDID), and so I edited /etc/X11/xorg.conf to specify monitor scanning rates:

Section "Monitor"
DisplaySize 320 240 # mm
Identifier "Monitor0"
VendorName "Hitachi"
ModelName "SuperScan 17"
HorizSync 30.0 - 65
VertRefresh 60 - 90
Option "DPMS"
EndSection

On both desktop computers, I enabled the mouse scroll wheel:

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5" # adding this enables the scroll wheel
Option "Buttons" "5" # you may need to force the number of buttons on the mouse
EndSection

The X.Org drivers supported both desktop computer's video cards. 2D features worked great; 3D features were not supported by the open source drivers. The Inspiron E1505 required the ATI proprietary fglrx driver to use the wide-screen display.

X has a configurable font renderer Xft. I increased the dots-per-inch (DPI) from 96 to 105 in ~/.config/xfce4/Xft.rdb to make fonts render at an appropriate size:

Xft.antialias: 1
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.dpi: 105
Xft.rgba: none

File Systems

Linux file systems are specified in /etc/fstab. Since each desktop computer has two hard disk drives, I mounted the root directory on one drive and the /home directory on the other. This enables installation of the operating system on the first drive without disturbing data files on the second drive. I also created a swap partition on the first drive.

Linux supports many file system types including NTFS and FAT. This is invaluable to migrate data to Linux reiserfs.

The Dimension XPS T750r and Dimension 8300 required no additional kernel parameters to use the parallel ATA (IDE) hard disks and optical disks. The Inspiron E1505 required the kernel parameters hdc=noprobe hdd=noprobe libata.atapi_enabled=1 to use the SATA hard disk and DVD drive with DMA enabled.


Kernel

The stock kernel is configured for uniprocessors with up to 1GByte of memory. The Dimension 8300 with hyperthreading and 2GBytes of memory required a kernel with SMP and HIGHMEM support enabled. A new kernel may be created by editing the configuration file /usr/src/linux/.config and rebuilding.

Configuring the kernel is a somewhat tricky task; expect to spend a few tries getting a kernel that works as one intends. I eventually turned off most kernel options that did not apply to my hardware. Once configured, the Linux kernel is easy to build. Here are the complete steps for unpacking and building the 2.6.16.19 kernel:

bzip2 -d linux-2.6.16.19.tar.bz2
tar -xf linux-2.6.16.19.tar
cd linux-2.6.16.19

make mrproper
cp ../config .config
make oldconfig
make

su

make install
make modules_install

cp arch/i386/boot/bzImage /boot/vmlinuz
cp .config /boot/config
cp System.map /boot/System.map

liloconfig

Starting from the 2.4.26 kernel, I migrated to several versions of the 2.6 kernel, the latest being 2.6.16.19. The 2.6 kernel has improved scheduling - a load average of 5 causes the 2.4 kernel's interactive response to become sluggish, whereas the 2.6 kernel is still very responsive even when the load average exceeds 10.

If an error occurs, a useful technique is to cut-and-paste the error message (from dmesg for example) into Google. Chances are near 100% that someone else has encountered the same error message and found a solution!


User Accounts

User accounts are created with adduser. For security reasons, you should create a user account for yourself rather than use the root account.


Networking

Linux networking was easy to set up. Network configuration involves running netconfig and pppsetup, and editing /etc/ppp/options, /etc/resolv.conf, /etc/hosts, and /etc/inetd.conf.

I assigned static IP addresses to all machines. Instead of DHCP, I specified my ISP's nameserver IP addresses in /etc/resolv.conf.


Hardware Devices

Dell uses widely-available components and Linux supported almost all of the hardware devices. The table below summarizes Linux support for each device.

ComputerDeviceTypeDriver
Dimension XPS T750rProcessorIntel Pentium III 750MHzLinux
ChipsetIntel 440BX, 82371AB (PIIX4)Linux
VGA compatible controllernVidia NV5M64 (RIVA TNT2 Model 64)X.Org nv
Ethernet controllerRealtek Semiconductor RTL-81398139too
Multimedia audio controllerAureal Semiconductor Vortex 2au8830
Communication controllerConexant HCF 56k Data/Fax ModemNot supported
Dimension 8300ProcessorIntel Pentium 4 3.0GHzLinux
ChipsetIntel 82875P, 82801EB/ER (ICH5)Linux
VGA compatible controllerATI Radeon R350 (Radeon 9800)X.Org radeon
Ethernet controllerIntel 82562EZ 10/100 Ethernet Controllereepro100
Multimedia audio controllerCreative Labs Sound Blaster Audigyemu10k1
FireWire (IEEE 1394)Creative Labs Sound Blaster Audigy FireWire PortNot tested
ModemBroadcom BCM4212 v90 56k modemNot supported
Inspiron E1505ProcessorIntel Core Duo T2500 2.0GHzLinux
ChipsetIntel 82945PM, 82801G (ICH7)Linux
VGA compatible controllerATI Mobility Radeon X1300ATI proprietary fglrx
Ethernet controllerBroadcom BCM4401-B0 100Base-TXb44
System peripheralRicoh R5C592 Memory Stick Bus Host AdapterNot tested
Wireless network controllerIntel IPW3945Intel ipw3945
Multimedia audio controller/ModemIntel 82801G High Definition Audio Controllerhda driver partially functional as of 2.6.16.19; modem not supported

In all computers the modems were problematic. Internal PCI modems (winmodems) usually do not work under Linux because modem manufacturers design both the hardware and software together, with the interface between the two being proprietary. Therefore, only the manufacturer can develop a driver. The solution was to buy an external serial modem.


Printer

The HP Deskjet 882C printer was supported by hpijs from HP. HP realizes that they can sell more inkjet cartridges if they provide Linux drivers.

Unix printing is based on the Postscript language. The ghostscript interpreter gs converts Postscript into pixels.


Digital Camera

Since Canon provides only Windows drivers, the Powershot A40 digital camera had the potential for being a showstopper. Fortunately, gphoto2 provides excellent drivers for this camera and many other models.


Scanner

Another potential showstopper was the the Epson Perfection 3490 scanner, which came with only Windows drivers. Fortunately, this scanner is supported by SANE, Scanner Access Now Easy. The only difficulty I encountered during the installation was in obtaining the scanner firmware file from the installation CD. Wine ran just enough of the installation program to extract the firmware file before the installer crashed.


Desktop

Unlike Windows which comes with one desktop environment, a Linux distribution comes with a choice of desktop environments. In the order that I have tried them, I have used KDE, GNOME, and XFCE. I found KDE to be full of features; GNOME was great looking; and XFCE was very fast. Of course, it is possible to run the same applications on any of the desktop environments. I regularly run applications from KDE on XFCE.


Application Software

Slackware Linux includes roughly 3,000 applications as counted by ls -1 /bin /usr/bin /usr/X11/bin /usr/sbin /opt/kde/bin | wc. I have only used a small fraction of these. Slackware did most things I wanted to do right out of the box.

Slackware includes the KDE office suite and Abiword. I found that KSpread 1.4.1 could read Excel 2000 spreadsheets (except for graphs), and Abiword 2.2.9 could read Word 2000 documents (except for drawings and some formatting). Both programs are sufficient for many office tasks.

In addition, a great deal of Linux software is available for free download on the Internet. I have downloaded a new kernel, Firefox, gphoto2, glade-2, hpijs, and wine. I have installed the same software on all three computers, and keep their hard drives in sync through periodic mirroring.


Games

This is the one area in which Linux is lacking. Fortunately, I do not have any PC games, and so I do not miss them!


Software Development

The best part about Linux is that it was created by programmers for use by programmers. Slackware includes a rich array of development tools. I chose Glade-2, GTK+, gcc, gdb, GNU autoconf, and make as the primary tools to develop C and C++ programs. Slackware also includes two very capable shells bash and tcsh, and the GNU implementation of the traditional Unix command-line tools. A significant advantage of open-source software is that the source code for everything is available for reference, modification, or to build on.

Porting from Win32 to GTK+ is not difficult. I used Wine to run my old Win32 executables side-by-side with the new GTK+ versions. Wine greatly helped the porting process. Overall, I find GTK+ to be well-designed.


Conclusion

As of the time of writing, I have been running Linux exclusively for 1.5 years on my home computers. Today's Linux is a very mature operating system.




Trademarks are property of their respective owners.