Aurora Linux 1.92 (Tangerine) Install HOWTO

Adam Kropelin <akropel1@rochester.rr.com>

(Please cc: the aurora-sparc-user discussion list on any HOWTO-related issues so the community can benefit. Also check the list archives before asking a question as it may already have been covered.)

Last Updated: 8/22/2005

1.0 Overview

Aurora Linux is a port of RedHat Linux (now Fedora) to Sun SPARC processor based machines. Rebuilding the distro and fixing platform-specific bugs is a lot of work, so there is not a 1-to-1 correspondence between RedHat/Fedora releases and Aurora releases. To date there have been nine or so Aurora releases, the most relevant of which are:

Aurora ReleaseRedHat/Fedora ReleaseRelease Format
1.0 (Ansel)RedHat 7.3RPMs, Anaconda installer, ISOs
1.91 (Wombat)Fedora Core 2 Test 2RPMs only
1.92 (Tangerine)Fedora Core 2RPMs only

Since the two most recent Aurora releases are in RPM format only you must begin with a 1.0 installation and upgrade it to 1.91 or 1.92. Thankfully, the "Yellowdog Updater, Modified" tool (aka "yum") can be used to automate the process. There are some complications, though, due to the fact that essentially every package on the system will be replaced with a new version.

This HOWTO walks though the upgrade process. Since it is not possible to anticipate every possible package conflict, especially on aged 1.0 installations, you may encounter issues not addressed here. I have performed the upgrade starting from an "Everything" installation of 1.0 in order to ferret out as many details as possible.


2.0 Base Installation

As mentioned above, you must start with a Aurora 1.0 installation. I highly recommend beginning with a fresh installation consisting of the minimum number of packages necessary. It is much easier to add packages later than it is to resolve conflicts when trying to upgrade them.

2.1 Install Aurora 1.0

The 1.0 installation process is very reliable and is nearly identical to RedHat 7.3, so I will not spend any time documenting it here. Basically, download the ISOs, choose the packages you want to install, and come back in an hour.

Since you will be upgrading nearly every package on the system, do not spend any time configuring services. Configuration file formats often change between versions and you'll end up having to merge your old settings into the new config files, which is often much more painful than it sounds. If you already have some services configured, you might want to re familiarize yourself with the config details before you perform the upgrade in order to ease the burden of reconfiguring later.

2.2 Set Default Boot Environment to Text Mode

The new Linux 2.6.x kernel and x.org (the replacement for XFree86) are still fairly young, especially on the SPARC platform. Various problems such as kernel crashes, blank screens, and inoperative mice have been encountered when trying to run X. Not everyone has problems, but issues are common enough it is wise to configure your machine to boot up in console text mode instead of graphical X11 mode. If your system is already so configured, skip ahead to the next step.

To change the default boot environment, you need to edit /etc/inittab and set the default runlevel to '3' instead of '5'. Here is a snippet showing the modified line in bold:

...

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

...

2.3 Enable Remote Login

In some cases even the framebuffer console does not work in Linux 2.6.x. As a safety measure, consider enabling a remote network login such as telnet or ssh. I recommend ssh as it is very easy to install and quite reliable. If you don't have it already, you can wait until after step 3.2 and install openssh-server and it's dependencies using yum. In either case, be sure to test that your remote login works after a reboot.


3.0 Upgrade

The upgrade instructions below assume you are logged in with root privileges. You can log in directly as root, su from a mortal user, or use sudo.

The following issues are covered in the Troubleshooting section

  • switchdesk-gui-4.0.3-1 conflict
  • Mouse does not work in X11 after upgrade
  • Kernel does not boot
  • Display is blank after upgrade
  • Yum no longer functions after upgrade
  • X11 no longer works after upgrade


    3.1 Download and Install YUM

    YUM is platform independent and a convenient RPM can be downloaded from duke.edu and easily installed:

    # wget http://linux.duke.edu/projects/yum/download/1.0/yum-1.0.3-1_73.noarch.rpm
    # rpm -ivh yum-1.0.3-1_73.noarch.rpm
    

    3.2 Configure Yum for Aurora 1.0 Packages

    Once yum is installed, you must edit yum.conf and point it to repositories for 1.0 packages so you can install the 1.0 updates and jump through some other packing hoops before making the leap to 1.92. yum uses standard URLs to point to repositories and some of the normal Aurora mirror sites are yummified. Yummified mirrors can be identified by the presence of a subdirectory called "headers" either in the RPMS directory itself or in its parent.

    Choose a mirror that has a yummified repository for the 1.0 updates and edit your /etc/yum.conf file to point to the directory that contains the "headers" subdirectory, like this (modified lines are shown in bold):

    [main]
    cachedir=/var/cache/yum
    debuglevel=2
    logfile=/var/log/yum.log
    pkgpolicy=newest
    
    [base]
    name=Aurora 1.0 Base
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/build-1.0/en/os/sparc/RedHat/RPMS
    
    [updates]
    name=Aurora 1.0 Updates
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/updates/1.0
    

    Note: yum downloads all required RPM packages and stores them in the directory indicated by cachedir in yum.conf (/var/cache/yum by default). For a full Aurora 1.92 upgrade you will need a minimum of 2 GB of free space in the partition containing the cache directory (and another 500 MB or so in /usr). Many people partition their systems with a small /var partition and if you are one of them be sure to change the cachedir setting or make /var/cache/yum a symlink to somewhere with more space.

    If you are certain you have plenty of free disk space, you can also set 'diskspacecheck=0' right after the pkgpolicy line. This will prevent yum from checking to make sure you have enough disk space and thereby save quite a bit of processing time. However, if yum runs out of disk space part way through you will be left with a partly upgraded (i.e. totally mangled) system, so beware!

    3.3 Remove Orphaned Packages

    Some packages from Aurora 1.0 are not present in 1.92 and therefore cannot be upgraded by yum. These packages will not function once the rest of the system is upgraded since underlying libraries will have changed. yum detects this situation and will refuse to upgrade the system while the orphaned packages are present. Therefore we must remove them.

    Some of the orphaned packages are not needed in 1.92, not available (in RPM form), or have been superceded or moved into different packages. You can issue one giant 'yum remove' command to clean all of these out in one go. I have listed them in sections, roughly corresponding to the order in which I discovered them.

    Note that you may not have all of these packages on your system and yum will complain if you ask it to remove a non-existent package. Using the -t switch tells yum to tolerate being asked to remove packages that don't exist.

    When you issue the first command, yum will download the headers for all appropriate packages and store them in its cache. If your connection to the repository mirror is slow, this can take while. Subsequent runs will download only the headers that are not yet cached.

    Not Available In 1.92

    # yum -t remove kmail kde2-compat xine xine-devel qt1x-GL pine gnomeicu xalf pygnome-capplet
    # yum -t remove rpmfind rpm2html ical blt libgtop-examples abiword qtcups iscsi firewall-config
    # yum -t remove qt2-Xt qt2-designer qt2-devel qt2-static qt2 kontrol-panel xlockmore xbill
    # yum -t remove jikes pygtk-glarea mozilla-js-debugger
    # yum -t remove compat-egcs-objc gcc-objc libobjc3 gcc3-objc
    # yum -t remove glibc64 glibc64-debug-static glibc64-devel
    # yum -t remove glibc64-debug glibc-debug-static
    # yum -t remove php-manual tetex-dvilj gcc-chill galeon
    # yum -t remove aurora-current-config perl-NDBM_File
    

    Superceded by lvm2 (which you can install manually once the upgrade is complete)

    # yum remove lvm
    

    Changed architectures and has lots of dependencies (install manually once upgrade is complete)

    # yum remove rhn-applet
    

    New kdesdk and kdelibs packages conflict (install manually once the upgrade is complete, if you want it)

    # yum -t remove kdesdk-\* cervisia kdevelop
    

    3.4 Update Aurora 1.0 Packages

    Once the orphaned packages have been removed, tell yum to update any packages that need it. You are only updating your 1.0 packages for things like bug fixes and security issues right now. The leap to 1.92 comes later.

    # yum update
    

    yum will automatically determine which packages can be updated and will present you with a list of them; you should approve the action and allow it to perform the updates.

    One of the packages yum will update is the kernel (assuming you are not already running the latest Aurora 1.0 kernel package). You need to manually update silo.conf to load the new kernel by default.

    You should edit silo.conf to look something like this (modified lines are shown in bold; yours may look slightly different, especially the root= lines).

    timeout=50
    default=linux
    partition=1
    
    image=/vmlinuz-2.4.20-2.31sparc
    	label=linux
    	initrd=/initrd-2.4.20-2.31sparc.img
    	read-only
    	root=/dev/hda3
    
    image=/vmlinuz-2.4.20-2.3sparc
    	label=vmlinuz-2.4.20-2.3sparc
    	initrd=/initrd-2.4.20-2.3sparc.img
    	read-only
    	root=/dev/hda3
    

    Now run silo and reboot the system:

    # /sbin/silo
    /etc/silo.conf appears to be valid
    # reboot
    

    3.5 Install Packages to Work Around Dependency Issues

    This step is a workaround for some particularly nasty package dependency issues. We are going to install the gcc Java and FORTRAN compilers as well as gdb from Aurora 1.0 so the packages will properly upgrade to 1.92. Without this step you may encounter dependency errors involving libgcj, libf2c, gdb, and possibly an infinite loop where yum gets stuck calculating dependencies forever.

    You may already have one or more of these packages installed, so it's best to do these one at a time. It is normal here for yum to pull in some additional packages as dependencies.

    # yum install gcc-java
    # yum install gcc3-g77
    # yum install gdb
    

    The first command will pull in libgcj as a dependency and the second will get libf2c.

    3.6 Point YUM to Aurora 1.92 Repository

    Now that we're done with 1.0 updates it's time to point YUM to a 1.92 repository. You must point to both the base installation packages and the updates. Again, be sure to use a yummified mirror as identified by the "headers" subdirectory.

    [main]
    cachedir=/var/cache/yum
    debuglevel=2
    logfile=/var/log/yum.log
    pkgpolicy=newest
    
    [base]
    name=Aurora 1.92 Base
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/build-1.92/sparc/os/Fedora/RPMS
    
    [updates]
    name=Aurora 1.92 Updates
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/updates/1.92
    

    We also need to clean out the old yum cache. It's full of about-to-be obsolete 1.0 headers and packages which take up valuable disk space and may confuse yum during the upgrade.

    # rm -rf /var/cache/yum/*
    

    3.7 Upgrade Packages With Differing Architectures

    A few packages changed architectures between 1.0 and 1.92. Generally this means they were noarch and are now sparc. We need to upgrade these separately and they conveniently have no dependencies so we can do it right away.

    The -t switch does not seem to work for 'yum update' runs so we must issue these as separate commands.

    # yum update filesystem
    # yum update perl-libwww-perl
    # yum update gnome-mime-data
    

    3.8 Set exactarch

    We're almost there. One config file change left: We need to tell yum to strictly adhere to the package architecture and install new packages with precisely the same architecture as the old ones (sparc vs. sparc64). Edit yum.conf to set exactarch=1:

    [main]
    cachedir=/var/cache/yum
    debuglevel=2
    logfile=/var/log/yum.log
    pkgpolicy=newest
    exactarch=1
    
    [base]
    name=Aurora 1.92 Base
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/build-1.92/sparc/os/Fedora/RPMS
    
    [updates]
    name=Aurora 1.92 Updates
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/updates/1.92
    

    3.9 Perform the Upgrade

    This step involves very little typing and lots of patience...

    # yum upgrade
    

    yum should spend quite a while (15 minutes or so on my 400 MHz Ultra 10) evaluating package dependencies and eventually present you with an extensive list of the packages it plans to upgrade. After you approve the list it will begin the disk space check and the installation. This part of the process took about 90 minutes on my system (sans disk space check) but could take much longer if you are downloading the packages from a distant repository (I was using a local mirror).

    * DO NOT REBOOT WHEN YUM FINISHES *

    3.10 Update silo.conf and Fix Keyboard Mapping

    Before rebooting there are some crucial configuration files to update.

    If you are using kernel modules that have no equivalent in the newer 2.6.x kernel but are needed during boot up, make sure to edit /etc/modprobe.conf appropriately and rebuild the initrd for the new kernel! (For example, the old sym53c8xx_2 SCSI module is now official and is known as sym53c8xx.)

    silo.conf should be updated to boot the new linux-2.6 series kernel by default. The new kernel has already been added to silo.conf, you just need to adjust the labels:

    timeout=50
    default=linux
    partition=1
    
    image=/vmlinuz-2.6.8-1.571sp1
    	label=linux
    	initrd=/initrd-2.6.8-1.571sp1.img
    	read-only
    	append="root=LABEL=/"
    
    image=/vmlinuz-2.4.20-2.31sparc
    	label=vmlinuz-2.4.20-2.31sparc
    	initrd=/initrd-2.4.20-2.31sparc.img
    	read-only
    	root=/dev/hda3
    
    image=/vmlinuz-2.4.20-2.3sparc
    	label=vmlinuz-2.4.20-2.3sparc
    	initrd=/initrd-2.4.20-2.3sparc.img
    	read-only
    	append="root=LABEL=/"
    

    Now run silo to commit the changes:

    # /sbin/silo
    /etc/silo.conf appears to be valid
    

    Lastly, you must update the keytable. The new linux-2.6 kernel internally translates all keys to standard PC keycodes. If you're using a Sun style keyboard you need to manually change the key mapping before you boot into the new kernel, otherwise the keyboard will not function properly (and you won't be able to login on the console to change it!). You need to edit /etc/sysconfig/keyboard and change the KEYTABLE parameter to "us":

    KEYBOARDTYPE="sun"
    KEYTABLE="us"
    

    3.11 Trial By Fire

    There's nothing left to do (for now) but reboot and keep your fingers crossed.

    # reboot
    

    The new linux-2.6 kernel should be loaded by default if you updated silo.conf properly (and remembered to run /sbin/silo afterward). Kudzu will probably detect some hardware changes and I've generally allowed it to modify the configuration to its liking without any problems.


    4.0 After You Upgrade

    There are some additional steps that should be taken after you reboot into your newly upgraded system.

    4.1 Merge Config Files

    When upgrading packages, rpm installs new configuration files with a .rpmnew extension in order to avoid overwriting your existing configs. After the upgrade you must replace your existing config files with the new ones and merge any customizations that were previously in place.

    A good way to figure out what files need attention is to search for all files named *.rpmnew:

    # find / -name \*.rpmnew -print
    

    You should work through the resulting list one by one, comparing the old and new versions and merging any changes. If you started your upgrade from a fresh, unconfigured Aurora 1.0 installation, your job here is fairly easy because you can simply replace most existing config files with the *.rpmnew variants. There are some exceptions, however.

  • Do NOT replace /etc/passwd. The existing /etc/passwd file was modified as required during the upgrade and replacing it with /etc/passwd.rpmnew will undo all those changes as well as destroy any user logins you already had. Just remove /etc/passwd.rpmnew.

  • /etc/ld.so.conf needs special attention for a similar reason. The new /etc/ld.so.conf.rpmnew file should contain just one line which uses the include directive to include the contents of /etc/ld.so.conf.d. Add that one line to the top of your /etc/ld.so.conf file and remove /etc/ld.so.conf.rpmnew. You don't want to replace your /etc/ld.so.conf because it already lists some crucial libraries. To be safe, run /sbin/ldconfig after you update /etc/ld.so.conf.

  • /etc/yum.conf can be replaced with /etc/yum.conf.rpmnew but afterwards you should edit it as per the next section.

    4.2 Configure (upgraded) yum and clear cache

    yum itself is upgraded to a new version when you upgrade to Aurora 1.92. You should replace /etc/yum.conf with /etc/yum.conf.rpmnew and edit yum.conf to point it back to your preferred 1.92 mirror and set distroverpkg to indicate the package to use for determining your system's primary version number (this makes the $releasever variable work).

    [main]
    cachedir=/var/cache/yum
    debuglevel=2
    logfile=/var/log/yum.log
    pkgpolicy=newest
    distroverpkg=fedora-release
    tolerant=1
    exactarch=1
    retries=20
    
    [base]
    name=Aurora Core $releasever - $basearch - Base
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/build-$releasever/$basearch/os/Fedora/RPMS
    
    [updates-released]
    name=Aurora Core $releasever - $basearch - Released Updates
    baseurl=http://<yummified-mirror>/pub/mirrors/aurora/updates/$releasever
    
    #[updates-testing]
    #name=Fedora Core $releasever - $basearch - Unreleased Updates
    #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/$releasever/$basearch/
    
    #[development]
    #name=Fedora Core $releasever - Development Tree
    #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
    

    As a final step, you will probably want to clear the contents of the yum cache in /var/cache/yum (or elsewhere if you changed the cachedir setting previously). The 2 GB of RPMs sitting in the cache are just a waste of disk space at this point.

    # rm -rf /var/cache/yum/*
    

    4.3 Install Additional Packages

    Now is a good time to install additional packages, including some that had to be removed to facilitate the upgrade.

    The rhn-applet:

    # yum install rhn-applet
    

    Also kdevelop, if you want to use that tool (this will install kdesdk as well):

    # yum install kdevelop
    


    5.0 Troubleshooting

    switchdesk-gui-4.0.3-1 and switchdesk-3.9.8-2 conflict

    If during the big 'yum upgrade' run you get an error regarding a file conflict between switchdesk-gui-4.0.3-1 and switchdesk-3.9.8-2, try manually upgrading switchdesk and switchdesk-gui using rpm. Download the new packages and run...

    # rpm -Uvh switchdesk-4.0.3-1.rpm switchdesk-gui-4.0.3-1.rpm
    

    Then try 'yum upgrade' again.

    Mouse does not work in X11 after upgrade

    Make sure your input device in xorg.conf is set to /dev/input/mice. Also try unplugging and replugging your mouse. Several people have reported this fixes the problem for them.

    Kernel does not boot or display is blank

    If you find the new 2.6.x kernel does not seem to boot you should first check to see if the machine is really dead or if it's just a display problem. If the screen is blank or if the last thing you see is "Booting Linux...", try logging in remotely with ssh or telnet or just poke it with ping. You may find everything is running smoothly except the display. This is a very common problem with the 2.6.8 based kernel in Aurora 1.92. You can try the 2.6.x kernel from the Aurora Corona tree; this includes fixes for several framebuffer drivers to resolve the "no display" problem. If you do this upgrade, be sure to also upgrade mkinitrd *before* you upgrade the kernel. You could also try building a newer kernel from kernel.org using a .config extracted from the Aurora kernel-source rpm. The specifics of that operation are left as an exercise for the reader. :)

    If the kernel really is crashing on boot, you can fall back to your old 2.4.x kernel by overriding the default at the silo boot prompt. Hit 'tab' to see a list of kernel image names and choose the last 2.4.x kernel you used. This should allow the system to boot, although you will get a bunch of unimplemented syscall errors and your keyboard will probably not work. To fix the keyboard problem, log in remotely and edit /etc/sysconfig/keyboard to undo the KEYTABLE change you made in step 3.10.

    Other possible sources of boot problems include typos in /etc/silo.conf and missing kernel modules (see the note in section 3.10 about modprobe.conf and rebuilding initrd).

    Yum no longer functions after upgrade

    Some folks have encountered an error running yum after upgrading to 1.92. Typically, this error shows a Python backtrace ending with...
    TypeError: connect() takes exactly one argument (2 given)
    
    The solution to this problem is to remove and reinstall yum. You must also manually remove the /usr/share/yum directory or else the problem will continue. Obtain the yum-2.0.7-1.1.rpm RPM and then something like this should do the trick:

    # cp /etc/yum.conf /etc/yum.conf.bak
    # rpm -e yum-2.0.7-1.1
    # rm -rf /usr/share/yum
    # rpm -ivh yum-2.0.7-1.1.rpm
    # cp /etc/yum.conf.bak /etc/yum.conf
    

    X11 does not work after upgrade

    There are many different causes and solutions for this problem. See the aurora-sparc-users mailing list archives for potential answers. Chances are quite good someone with a hardware configuration similiar to yours has already made some headway on the problem. Please read the archives *before* posting to the list! Nobody wants to revisit ground that has already been covered.


    6.0 References

    Aurora Linux Project Page: Aurora project news, official mirror list, mailing lists.
    Aurora Linux FAQ
    Aurora Hardware Compatibility Wiki
    aurora-sparc-user mailing list archive


    7.0 Revision History

    DateChanges
    11/20/2004Initial revision
    11/20/2004aurora-current-config is orphaned; /var/cache/yum needs 2 GB free; documented "after you upgrade" steps; added references; misc. edits
    11/21/2004Always use 'yum -t' for removals; issue separate commands for 'yum update' because -t doesn't work for those, it seems.
    11/27/2004Correct glibc64 'yum remove' commands to not include .sparc64 extension. Fix changelog dates.
    11/28/2004Highlight config files and commands with background color change instead of indent to make them easier to copy-n-paste.
    12/5/2004Insert new step 3.4 to solve libgcj and libf2c dependency problems. Fix duplicated step numbers. Add updated date at the top to make it easy to see which version you're looking at.
    12/10/2004Add sections 2.2 and 2.3 to help prepare for framebuffer issues. Reorder upgrade steps so orphaned package removal comes before 1.0 updates are installed: no use installing updates for packages that will be removed. Mention kernel module changes and initrd rebuild. Add to the troubleshooting section some items from folks on the aurora-sparc-users mailing list. Spellcheck!
    12/13/2004Update mouseless X11 issue with new info from aurora-sparc-users list.
    1/6/2005Add perl-NDBM_File to package removal section. Add more information about blank display problems, emphasize that this is a common issue, and mention the Corona kernel. Add troubleshooting item for yum not functioning after upgrade. List troubleshooting items at beginning of upgrade procedure so more people will see them.
    1/23/2005Add gdb to Aurora 1.0 install list. Point out that mkinitrd must be upgraded before upgrading to Corona kernel. Add troubleshooting item for X11 pointing folks to the aurora-sparc-user mailing list archive. Also add archive link to references section.
    2/25/2005Fix typo in section 3.2: /var/yum/cache -> /var/cache/yum.
    3/9/2005Fix yummified 1.0 path in section 3.2: http://<yummified-mirror>/pub/mirrors/aurora/build-1.0/en/os/sparc -> http://<yummified-mirror>/pub/mirrors/aurora/build-1.0/en/os/sparc/RedHat/RPMS.
    3/14/2005Fix aurora-sparc-user mailing list archive link at top of document.
    8/22/2005Add mozilla-js-debugger to yum remove list.