Debian Upgrade Marathon: 4.0 Etch

May. 6, 2025 [technology] [hardware] [history] [libre]

Last month marked the start of an experiment where I upgrade through historic Debian releases, starting with Sarge. I am going at my own pace as, believe it or not, we Linux folks do have lives and responsibilities. So I’m not sure how long this whole journey is going to take.

Etch was released during a time where AMD had just acquired ATI Technologies, the Tiger Direct guy was still wearing button down shirts, Crysis was the plateau of graphics and nothing could look more photorealistic if you were to believe the hype. Any aspiring tech geeks back then should consider themselves lucky. For me, this is a peek into what the world of Linux and open source was tooling up at that time.

Pentium 4 board with drive, adapter and pwr switch

Upgrading from Sarge to Etch

The release notes caution against performing the upgrade within a graphical X session, citing necessary display server termination during package upgrades and the relocation of /usr/X11R6/bin. So I log out from Gnome session and Ctrl+Alt+F2 to terminal.

We first check that there are no pending changes in aptitude:

aptitude –> ‘g’ (for go) –> “No packages are scheduled to be installed, removed, or upgraded.” ✔

We then verify that all packages are in an upgradable state:

dpkg --audit –> No ouput ✔

Edit /etc/apt/sources.list to change the codenames from ‘sarge’ to ’etch’.

Since installing Sarge, it has become known to me that apt is just a fancy front end for the collection of apt-get, aptitude, apt-cache and dpkg. It was still in development during the time of Sarge and Etch but not yet ready for usage. According to the apt man pages:

“the snazzy front ends are not yet available. In the meantime, please see apt-get”.

So for now, we use aptitude:

sudo aptitude update

It cries warnings about “No such file or directory … you may want to update the packages lists to correct these missing files”

But this is expected per the upgrade notes. Simply re-running the same command again resolves harmlessly without such warnings. And the Etch upgrade procedure suggests the same two-step upgrade process that is still expected today with upgrades between modern Debian stable releases. One where a minimal package upgrade is issued before applying a full dist-upgrade.

sudo aptitude upgrade
Aptitude applying the first upgrades

“Configuring debconf”

Prompt asking which interface to use

I chose “Dialog” because that is what I’m accustomed to. And selected “medium” for question priorities.

medium

“Configuring Keymap”

I chose “qwerty / American / standard / standard”.

Because of a changeover from initrd-tools to initramfs-tools, special attention needs to be paid to upgrade this before moving on to the second step.

sudo aptitude install initrd-tools

“Configuring locales”

Prompt switching to UTF-8

I changed from en_US ISO-8859-1 to en_US.UTF8 UTF8 and made it the default locale. I also opted to install glibc and restart affected services.

Next, because this Upgrade-Journey host was installed with Gnome desktop, the next appropriate upgrade path is to pull in the X.Org packages which replace Xfree86. I verify that the libfam0c102 and xlibmesa-glu packages are present:

dpkg -s libfam0c102 | grep -e installed
dpkg -s xlibmesa-glu | grep -e installed

Status: install ok installed

And so we upgrade the following:

sudo aptitude install libfam0 xlibmesa-glu

Moving on to the second step of this two-part upgrade:

sudo aptitude dist-upgrade

I disabled “challange-response” authentication for the OpenSSH service I’d disabled back in the Sarge installation. Also set “Trust new CA certificates” to Yes and set “System-side home directories” to No.

The upgrade eventually reached a point where it began restarting services, which dropped me at a new terminal login. Thankfully, I knew to return to the existing shell where the aptitude upgrade was still running by re-keying Ctrl+Alt+F2. God help the person who hit such a situation without having that background knowledge!

“X Server Setup”

X.org replacing Xfree86

I chose to redetect keyboard layout and also selected 1440 x 900 resolution, as that is the display’s native resolution (Maybe it will work better with X.org).

Some packages remain un-upgraded, including apt’s package signature checking mechanism found in Etch.

sudo aptitude update

But this arrived at an issue where the GPG key signatures are now invalid because the repo has long since been archived and individual software (and keys) now unmaintained.

Let’s break some things to get this working again. Courtesy the information at AskUbuntu, I added a custom file at /etc/apt/apt.conf.d/99disablechecks:

Acquire::Check-Valid-Until false;

Aptitude can then proceed with upgrades while only complaining with warnings.



Etch’s upgrade notes that Linux kernels 2.4 or earlier cannot boot with udev. So I check whether Linux 2.6 series was already installed during the upgrade.

dpkg -l "linux-image*" | grep ^ii
No packages found matching linux-image*

I instead search for available kernels:

apt-cache search linux-image-2.6- | grep -v transition

Since the hardware platform is Intel Pentium 4:

sudo aptitude install linux-image-2.6-686

The release notes warn of a possible conflict with changes for /dev.

Debian kernels no longer include support for ‘devfs’, so ‘devfs’ users will need to convert their systems manually before booting an etch kernel.

I checked that it has ‘console’ and ’null’ files in /dev, per this helpful bug report:

Therefore, before trying to boot using udev only, make certain you have a “console” and “null” file in /dev.

TuxKart, AlsaMixer and Firefox have been held back during the upgrade. I’ll investigate those later. I think mozilla-firefox and tuxkart packages were just superceded by newer packages with different names.

Post-upgrade items, before rebooting

Filesystem attributes and information through tune2fs

The filesystem features on Upgrade-Journey’s /dev/hdc1 does not show the new dir_index attribute

sudo tune2fs -l /dev/hdc1

Users upgrading from sarge could consider adding the dir_index flag manually using `tune2fs’.

So I applied it manually:

sudo tune2fs -O +dir_index /dev/hdc1

Finally, the moment of truth:

sudo reboot

Post-upgrade items, after rebooting

The upgrade had set the default text editor to nano (ew). So I reset it to vim-tiny:

sudo update-alternatives --config editor

And selected /usr/bin/nvi.

Gnome login greeter screen

It booted cleanly to Gnome’s login greeter and it was immediately clear that the new X.org server config is an improvement over that of the Xfree86 display server. It doesn’t render at the monitor’s native resolution, but is at least now a higher resolution. Without wanting to fix this, there was no further hassle to be had with display configuration. 3D graphics acceleration was still working without a hitch.

At no point in the Sarge installation or Etch upgrade have the standard base directories been created. And I do not want to manually create them in case this is something handled in later versions of Gnome or if xdg-utils gets automatically selected in later Debian releases. And I’ve opted not to delete .gconf settings as I want to see how well existing configurations survive through Stable releases, rather than to see stock Gnome with each version.

My intuitions were correct about the held packages. iceweasel was introduced first as a transitional package for mozilla-firefox, and tuxkart had been superceded by supertuxkart.

Impressions of Etch

It may just be baggage from using Sarge’s Desktop task during installation, but Etch appears to clutter Gnome with a bunch of KDE programs. They work, but I do not recall installing any KDE metapackage in either Sarge or Etch. The Gnome 2.14.3 menu system remains a categorical cascading tree, which translates into a lot of searching through lists to find GUI applications. Though the very classical desktop layout can be admired in its simplicity.

IceWeasel Browser more flexibly allows you to accept certificates which enables the browser to retrieve more modern sites, ignoring the security implications. It also makes things easier having tabs. I had to reach far back into the annals of my brain in order to remember how we used to install browser extensions in the before times. This required I visit an archived page of adblockplus.org in order to locate a version compatible with this ancient, debranded Firefox.

One download was available from around 2008 and I’m not eager to waste time hunting around for a more closely matched release to Firefox 2.0. In IceWeasel, select File -> Open File… -> Navigate to the downloaded .xpi file. IceWeasel then offers to install the extension and restarts. AdblockPlus prompts for blocklists to subscribe to on first startup and is then ready to do its thing.

Is it working? Are ads being blocked? I do see some e-begging here, but I don’t even know what they’d look like anymore. And, realistically, an adblocker extension from the pre-cambrian era probably isn’t going to prevent much anyway. But it does make for a fun museum exhibit. I’m just impressed that the modern web still works at all on this environment.

Filetype Functionality Notes
Plaintext gedit 2.14.4
ODT Document Openoffice.org 2.0.4 (Test document created in LibreOffice 7.4)
PNG image Eye of Gnome 2.16.3
Animated GIF 🗷 Eye of Gnome 2.16.3
MP3 Audio ? Decodes but no audio out, all players
OGG Audio ? Decodes but no audio out, all players
MP4 Video 🗷 “Video codec ‘hev1’ is not handled.” Totem 2.16.5
MP4 Video 🗷 At least began to play but with no A/V VLC 0.8.2
Webm Video 🗷 “There is no plugin to handle this movie.” Totem 2.16.5
Webm Video 🗷 Still no playback VLC 0.8.2
Web ? “Iceweasel can’t connect securely to domain.tld because the site uses a security protocol which isn’t enabled.” for most modern sites. But many can negotiate certificates if user accepts them exceptionally.

Etch was the last Debian to have TuxKart, and also the first Debian to have SuperTuxKart replacing it. The game assets received a bit of love, and it shows. Although this version doesn’t scale with window size.

Fun Factoids

An IPv6 address is now successfully acquired, according to ifconfig.

mplayer, the precursor to the mighty mpv makes its debut in Etch.

Etch is the first release to support 64-bit architcture amd64. But I won’t attempt converting it over until later with a version that has multiarch support.

The Debian installer indeed had been two-part up until Etch:

Previously, the installation was split into two parts: setting up the base system and making it bootable, followed by a reboot and after that the execution of `base-config’ which would take care of things like user setup, setup of the package management system and installation of additional packages (using tasksel). For etch the second stage has been integrated into Debian Installer itself…

Etch also saw the introduction of optional root user disablement during installation:

During expert installations you can choose to not set up the root account (it will be locked), but instead set up `sudo’ so that the first user can use that for system administration.

The naming of “/dev/hdX” will, in fact, probably will become an issue during this experiment:

For some SATA disk controllers, the device assigned to a drive and its partitions may change from ‘/dev/hdX’ to ‘/dev/sdX’. If this happens, you will have to modify your ‘/etc/fstab’ and bootloader configuration accordingly. Unless these changes are made correctly, your system may not boot correctly.

Outstanding issues

Audio
Still no audio as I begin to suspect whether I’d disabled the audio controller in BIOS or if there is another issue. The auxilliary connector sits fairly loosely in the port.

X Display Server
The higher resolution along with stretching to fit the aspect ratio is a little easier on the eyes but it still fails to detect and match the display’s native resolution.

SSH
There remains no overlapping key exchange method between contemporary openssh-client on my workstation and OpenBSD SSH on Upgrade-Journey.

I am still not sufficiently motivated to fix these side issues. I trust they will work themselves out as we reach further into the future. Next upgrade is to Lenny!