box.matto.nl
Enjoying Open Source Software

One week with FreeBSD 13 on an Acer Aspire One ZG5

Solene's Challenge

Solene posted a challenge on her website and on Mastodon. It is the so called The Old Computer Challenge.

The point of the challenge is to replace your daily computer by a very old computer.

For this, I got nostalgic, and got my old faithful Acer Aspire One ZG5 from the attic.

Acer Aspire One ZG5

The Acer Aspire One ZG5 is a first generation Acer Aspire and came to the market as a EEE PC competitor.

Acer Aspire One ZG5 Acer Aspire One ZG5

This machine comes with an Atom processor, 8 GB solid state storage and 512 Mb RAM, 802.11b/g wireless network and a 10/100 Ethernet port. The screen is 1024x600 8.9 inch TFT panel.

The keyboard is not a full size keyboard, due to the small form factor of the laptop.

The laptop has two SD-card slots, which on the original Linpus Linux version could be used as an extension of the 8 GB on board storage.

Crippled by Microsoft

Netbooks from this period, like this Aspire, are all crippled because of Microsoft.

In the era of the netbook, Microsoft came up with some crazy requirements for netbooks, like a too low RAM-size ceiling and a not too capable CPU. OEM manufacturers had to comply, to be allowed to put a less expensive netbook-version of Windows on it.

Power cable only

Unfortunately, my Aspire One will only run with the power cable attached, the machine is not capable anymore to load the battery. Before moving this laptop to the attic some years ago, I tried it with a different battery, but with the same result.

First contact

Although this netbook has been my daily driver for several years, it needed some TLC.

There was an old, outdated Debian version on it, so that had to be replaced.

For fun, I tried to put FreeBSD 13 on it. So I downloaded the i386 memstick image and installed that.

It turned out that the WiFi chip actually works on FreeBSD, as far as I know this was a no-go in the heydays of the Aspire.

After the memstick installer has done its job, I installed tmux, Xorg, the ratpoison window manager, ratmen and git (ratmen is a better version of ratmenu). This seemed to take forever, writing to the local storage is really, really s-l-o-w.

Display

When everything is installed, I started up X and looked at the nice and friendly TWM window manager. I had to set up my .xinitrc to get ratpoion started. It turn out that Xorg sets this display at 800x600. So, there is something in the FreeBSD setup that I have to change, to get a proper 1024x600 display.

Day one

Problems, problems

I booted the Acer and now there are a ton of disk errors. Not happy.

I tried to put my home directory in ram-disk (a.k.a. memory file system), but it turned out that the writing of fstab failed, and the laptop totally locked.

After a reboot it turned out that fstab had completely disappeared. So, with the installer memstick I created a new fstab (ed is your friend), with the disk in read only mode and home in ram-disk.

I renamed my home directory and created a new one, as a mount point for the ram-disk.

I rebooted and was able to work for about an hour.

This way I could work for about an hour on this machine. Then the disk-activity LED kept burning permanently, and the machine froze. After a reboot it didn't get up anymore, only long list of disk errors.

The BIOS doesn't have an option to disable the SSD.

So this was the end of the game.

Day two

Open heart surgery

It seems that the broken SSD prevented the Acer from booting, and like this it was nothing more than a nostalgic paper weight.

So, I decided to see if I could disconnect the SSD from the motherboard.

With the aide of ifixit.com I tried to disassemble the laptop.

Unfortunately, two tiny screws at the back of the laptop, under the battery, didn't came loose and from now on will never get loose, unless by excessive use of sheer power.

So I wasn't able to completely disassemble the laptop, but I could lift the topside just far enough to get my fingers in and, gambling that I had the right connector, removed the ribbon from what I thought was the connector of the SSD.

With the keyboard and trackpad still disconnected, and everything still open, I inserted the bootable USB stick, connected the power and started the laptop. It booted!

So that was great news, I had indeed disconnected the SSD and not some other component.

From another machine I logged on over SSH and halted the laptop again.

After this I tried to assemble everything, but was worried about the ribbons of the keyboard and trackpad. I tried to reconnect these ribbons, but felt very unsure if I had did this right.

So, with the keyboard still loose and almost in its right place, I booted again to test the connections. Both the keyboard and trackpad worked :)

After this, I halted the laptop again and put everything in place. This almost succeeded: there is one tiny screw left.

I again booted the machine, tested the keyboard and trackpad.

Result: surgery has succeeded, we do have a working laptop.

Back in business

So, now the Acer is back in business again and the game of the user config starts again, so configuring ratpoison, xterminal, and so on.

This are the first packages that I installed, according to pkg query -e '%a = 0' %o | sort:

devel/rcs
editors/emacs
misc/unclutter
ports-mgmt/pkg
sysutils/tmux
www/lynx
www/w3m
x11-wm/ratmen
x11-wm/ratpoison
x11/xorg
x11/xterm

After having installed these packages, the total number of installed packages is 211. Welcome to the wonderful world of dependencies.

What the list above doesn't show, it that I had actually installed emacs-nox, otherwise the total number of installed packages would be a lot higher.

Display

After toying around I finally got the display in X to 1024x600. This involved installing another number of packages, like drm-kmod, gpu-firmware-kmod, and adding my user to the 'video' group.

Firefox

I also installed Firefox. Another load of packages, but did turn out to be a big mistake.

Firefox is way too heavy for this laptop (I guess both because of the limited amount of RAM as well as the lack of CPU power). So, I try to get around with lynx, w3m and eww.

Weather

"prahou" on the libera.chat channel #old-computer-challenge came with curl http://wttr.in/Berlin, in which you can replace Berlin with the name of another city. This is a nice solution for a ancient laptop :)

Packages

After installing Git, Firefox, Neofetch and some stuff to finally get the display to the native resolution, the counter now stands on 347.

I haven't installed Libreoffice, LaTeX and all that, I don't expect those to be useable on this machine.

Day three

Elfeed

One of the things I do daily on my private laptop is read through my RSS feeds. I used to do this with Newsboat and w3m, but a couple of months ago I started learning Emacs so I moved to Elfeed.

I use Elfeed together with Eww, a web browser that is part of vanilla Emacs.

In my configuration, Eww uses the default Emacs font, uses the default colors and doesn't display images. This way, it is really fast.

On my Acer Aspire, with its rootfs on an USB-stick, I first installed Emacs-nox. But when I saw the image quality at 1024x600, I decided to try the 'normal' Emacs version. This is the graphical version.

So, I decided to also on this machine give Elfeed a try. The performance is not bad at all. The load stays around the 0.09 ~ 0.14 and memory usage is around 250 MB (the machine has 512 Mb).

Although I have not timed it, I have the impression that loading new feeds take more time. Also, this requires resources, so I start the loading of new feeds and put the laptop away for a few minutes.

Eww has some nice features.

Readabillty-mode:

Just press 'R' and the browser switches to readability mode, which means it starts right with the actual content you are looking for, without any navigation items and stuff like that.

URL copy to clipboard:

Just press 'w' and the URL is copied to the clipboard. If the point (Emacs-speak for the cursor) is at a link, the URL of the link gets copied, if not, the URL of the current page is copied.

Copy to the clipboard means copy to both the killring of Emacs as to the X clipboard. This integration is very useful.

So, I am very happy with this setup.

The Acer Aspire is very light (around 1 kg, but I also have removed the battery, because the laptop only functions with the power adapter connected), which makes this a very nice way to read your news feeds on your easy chair.

And Elfeed performs better than I had expected :)

Day four

Firefox

Firefox requires way too much resources for this old laptop which also means that I have to find another way to go through the Mastodon postings.

bitlbee

Yesterday evening I first tried bitlbee.

In order to use bitlbee with Mastodon, you have to get some tokens into the bitlbee config. The way to this is to open your Mastodon account from within bitlbee, which will open another window in irssi, where a very long generated URL is shown. You have to copy this URL, paste in a browser, confirm that you want bitlbee to have access to your Mastodon account, wait for the reply, which is a long token that is shown in a smaller window. You have than to copy this token-that-is-longer-than-the-window back to the bitlbee window in irssi.

And you only have a few seconds for this, because after this the bitlbee connection times out and you have to start all over again.

After numerous tries I gave up, the time window is too small to get this right.

Toot

Next I installed 'toot', a text mode application to interact with Mastodon, written in Python.

After installing Python 3.8 and pip I could install toot. To get toot authenticate on Mastodon you have to do the same token-dance, but this time there seems to be no time-out.

So, in a ever so relaxed tempo I was able to get toot cooperating with the Mastodon instance.

Going through your time line

With toot tui an curses-like interface opens, which splits the screen vertically. Left is a list of toots, which are shown in the format:

  • date and time
  • sender identity
  • boosts (if any) and some other icon like thingy

Right is the contents of the toot, in text format of course.

With some keys you can (B) Boost the toot, (F) Favorite it, (V) View or (R) Reply on it, and some other options. This works remarkably well.

The main difference with the view in a browser like Firefox or a desktop application like Whalebird, is that there are of course no images.

This results in a completely different experience. Like any new and different experience you have to give it some time, so I postpone judgment and just use it [TM].

Day five

Toot

I discovered that sometimes I really want to see an image that is attached to a toot or open an URL that is mentioned in a toot.

With the help of anthk on Libera.chat I came to the following script in $HOME/bin

#!/bin/sh

tmux new-window /usr/local/bin/links -g "$@"

This works great

Of course, you could also use

/usr/local/bin/w3m "$@"

Day six

I like the setup with toot and the script to open URLs or images in another tab.

I also created a extra line in my .ratpoisonrc. This is to easily open an URL that I have copied to the clipboard from Emacs eww.

In eww, you copy an URL with 'w'. When the point (cursor) is at a link, this link get copied. If not, than the URL of the current page is copied to the clipboard.

I added the following line to .ratpoisonrc:

bind m exec xterm -e links -g `xclip -o -selection clipboard`

I had bound 'm' to Firefox, but Firefox is not usable on this machine, so this keybinding was obsolete.

Now, with this new keybinding, pressing the ratpoison escape key followed by 'm', opens links -g to the URL from the clipboard. (I use Ctrl-Z as escape key in Ratpoison).

Final day

Packages

This is the package list I ended up at the end of the challenge:

devel/git
devel/py-pip
devel/rcs
devel/rlwrap
editors/abiword
editors/emacs
editors/nedit
graphics/ImageMagick6
graphics/drm-fbsd13-kmod
graphics/drm-kmod
graphics/gpu-firmware-kmod
graphics/intel-backlight
misc/unclutter
multimedia/libva-intel-driver
ports-mgmt/pkg
sysutils/htop
sysutils/neofetch
sysutils/stow
sysutils/tmux
www/dillo2
www/edbrowse
www/elinks
www/firefox
www/links
www/lynx
www/netsurf
www/surf
www/w3m
x11-drivers/xf86-video-intel
x11-servers/xorg-vfbserver
x11-wm/ratmen
x11-wm/ratpoison
x11/sterm
x11/xclip
x11/xorg
x11/xterm

This is a total of 36 packages that are marked as manually installed. The total number of installed packages is now 396.

The 8 GB USB-stick that I used for the root-fs has still room:

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/da0s1a    6.9G    4.2G    2.1G    67%    /
devfs          1.0K    1.0K      0B   100%    /dev
tmpfs           64M     28K     64M     0%    /usr/home/matto

As you can see above, my $HOME is in RAM-disk, a.k.a. memory file system. I populate it with GNU Stow, for this I made a script that is called from a /usr/local/etc/rc.d file.

Wrap up after one week using FreeBSD 13 on an old Acer Aspire One ZG5.

Some screenhots

FreeBSD on the USB-stick FreeBSD on the USB-stick

Elfeed in Emacs on the Acer Aspire One ZG5 Elfeed in Emacs on the Acer Aspire One ZG5

toot tui in action toot tui in action

The world wide web

Solene's Challenge helped me to realize what has become of our web browser.

My experience as a user of the world wide web goes a long way. I remember people complaining massively when the first "commercial" websites were erected. These were company websites.

The mailing lists where full of it. People had realized that the web was a very democratic way to share both information as opinions. Websites where mostly setup by knowledge institutions like universities, and personal homepages of the common people. And now these companies started to have an appearance on "our" internet ...

I started with Mosaic, than moved the Netscape. After this came Mozilla and Firefox.

Also, I haved used lynx, elinks and w3m a lot. Lynx used to be part of the standard installation of Linux. And I still do use these text mode browsers a lot, mainly because of speed, readability, less distractions and less annoying ads.

Resource hungry graphical browsers

Browsers like Firefox, Chromium, and Chrome have become immense. From this list, on my Acer Aspire One ZG5 I only installed Firefox. It turned out to be absolutely not usable. The 512 Mb RAM on this laptop is not enough.

These browsers are slowly evolving into a platform to deliver virtual machines on our laptops beyond our control.

Digital restriction management will become more and more part of our lives, and the web browser will be one way to enforce that to us.

There is not much we can do to stop this. The parties that govern the w3c standards are there to make the ultra-rich even richer, and don't act in the interest of the common people.

So, we have to look at what is under our control. And that is only our behavior,

I already only follow RSS-feeds of websites that I can open in w3m or eww.

I still use lynx.

And now, that as a result of Solene's Challenge, I have become aware, I will start making less use of Firefox, Chromium, and so on.

From the challenge I learned that links -g still can do a great job.

Fediverse

I have a Mastodon account and have started playing with a personal Pleroma server. Through the challenge I came to realize that these environments rely on modern web technologies and cannot be used with a text browser without JavaScript support.

From the Libera.chat channel #old-computer-challenge I learned about toot, a text mode Python Mastodon- and Pleroma-client.

This is a great way to go through your timeline. It is fast. Of course, this doesn't show any images, but with the 'v' (view) key, one can open a toot in a browser, which can also be done with links -g (through the V (view) option).

Disk-less laptop

After the initial install of FreeBSD 13 on the old 8 GB SSD, the SSD completely crashed and the laptop couldn't even boot from USB anymore, so I had to disconnect that from the motherboard.

So I did the challenge week with a disk-less laptop, booting FreeBSD 13 from an USB stick.

This was not a problem at all, it runs all the needed applications.

Ratpoison window manager

Because of the small 8.9 inch screen I choose for the Ratpoison window manager.

At the time this Aces was my daily driver I also used Ratpoison on it. In fact, I have used Ratpoison for more than a decade and only switched to i3 about two years ago.

It turned out my muscle memory was still there.

Emacs

I only started using Emacs seriously a few months ago. One of the ways to get more acquainted to it, I moved from Newsboat to Elfeed for reading RSS feeds.

It turned out that Elfeed on Emacs works really fine on this machine. When updating the feed, htop shows full use of memory and quite some use of CPU power.

After the feeds are updated, and going through the feeds, reading them in Elfeed and opening links in eww, I don't see much performance difference compared to my 'normal' $HOME laptop.

Maybe this is because I have configured eww to use the standard font and not to show images, both on my 'normal' $HOME laptop as on this Acer.

Not much else

I hardly watch movies, or go to YouTube and so on, only occasionally to watch some episode from Reiner Koenig or so. I also don't use Netflix.

So these things I didn't miss.

The normal stuff I do is ssh to my central shell-server (a FreeBSD jail running tmux with irssi, mcabber and mutt), so this is no difference for any other laptop (which is the reason I choose for such a setup many years ago).

8.9 inch laptop

This laptop has been on the attic, out of my site, for some time.

But now it is back, I still enjoy the form factor.

It is small, light weight, and has a decent keyboard (which is a bit small, but you get used to that pretty quick).

Too bad, small 'netbooks' like this are not sold any more.

Acer Aspire One ZG5 Acer Aspire One ZG5

Enjoyed the Challenge

The initial part, with the SSD going crazy, and having to open up the laptop to disconnect it, was quite adventurous.

The challenge also attracted some nice people to the Libera.chat channel.

All in all I enjoyed the challenge, and don't want to end this wrap up without a very big "thank you" to Solene!

Have fun!

Tags: