jahed.dev

Running Linux on an ancient Netbook.

I recently adopted an old Samsung NC10 netbook. I could've binned or recycled it, but something about it felt good. I guess it's a similar feeling to handling an old Thinkpad. It has a retro and almost brutalist look and feel to it without the heft.

Choosing an operating system

Despite its retro appeal, running a Windows XP installation full of security holes isn't something I'm in to, so I tried installing Windows 10. On this beast with 1GB of RAM and a "power efficient" 32-bit Atom CPU, Windows 10 suprisingly works but of course struggles. There's just not enough RAM for all that junk running in the background. The quiet days of Windows XP are well behind us.

This isn't an uncommon experience. As software gets increasingly resource hungry, a ton of lower-end hardware is being left behind. These are typically work and school laptops bought in the hundreds or thousands by large institutions to run bloated Windows installations with multiple layers of security and monitoring software. It's not a great experience, especially for school children who might just be put off from desktop platforms by the experience.

Over time, these machines often end up in landfill or sold as "refurbished" on the used market. Even after the bloat is removed, running a modern web browser on Windows 10 and above is a bit much for a machine with only 4GB of RAM let alone 1GB.

So what's the solution? Linux of course! While a lot of popular distributions are dropping 32-bit CPUs, for good reason, a few still support it. And when it comes to limited RAM there's still plenty of options. I've tried antiX, MX Linux, Lubuntu, and some others.

In the end, I went with antiX. While it doesn't have as many features as MX Linux, it still supports most Debian packages and uses less than 300MB of RAM while being fast and responsive.

Setting up antiX

Since the Samsung NC10 is really old, some stuff doesn't work right. I'm not sure why, but antiX had a few issues while MX Linux worked fine out of the box. On top of that, antiX has a bunch of features that seem a bit useless and can be removed. So here's a few things to do.

Installing updates

As always, after installing a new operating system, it's important to install all available updates. This will also flag any problematic packages and configuration. For example, "rtl8821cu-dkms" fails to build on 32-bit devices. Since the NC10 doesn't use it, I removed it.

sudo apt remove rtl8821cu-dkms

Other hardware-specific packages that aren't used and fail to compile can be removed too.

Disabling desktop widgets

To disable Conky (the desktop widget) properly, open ~/.desktop-session/desktop-session.conf, find LOAD_CONKY and set it to false.

LOAD_CONKY="false"

Disabling it through the menu tools is not permanent and uninstalling Conky won't remove antiX's attempts at starting it.

Disabling taskbar widgets

We can disable taskbar widgets from the "IceWM Control Centre" or from "Settings > Preferences > TaskBar".

Disabling the network pop-up window

By default, when no network is connected at startup, the connman network window is launched. This is because the connman system tray is disabled by default in favour of the network monitor widget.

If you expect to not always have a network connection, it's best to disable the pop-up window behaviour and enable the tray icon in ~/.desktop-session/startup.

Improving the look and feel

Here's the best combination I've found using what's available by default:

IceWM Theme

Use a theme with a dark toolbar as some icons are light and aren't visible against a light toolbar.

Unfortunately, "Clearlooks" is the only IceWM theme with a matching widget theme. However, it uses a light toolbar.

Icon Theme

Make sure to use an antiX labelled theme so that is has all necessary icons. For example, do not use Adwaita.

Desktop Background

Other than a solid colour or personal image, the "Space.jpg" default wallpaper goes well with a dark and blue theme.

Note, slimski (the login manager), doesn't support solid colours so we'll have to create a plain image of a colour and use that instead.

Missing volume icon in taskbar

Sometimes the volume icon fails to appear in the taskbar on startup. In ~/.desktop-session/startup there is a sleep before volumeicon is run. If pipewire isn't ready by then, the volume icon will fail to appear.

To bring back the volumeicon for the current session, run in a terminal:

volumeicon &; disown

For a more permanent fix, we can increase the sleep period. However, that adds more delay. Instead, we can keep retrying until it works:

until volumeicon; do sleep 5; done &

Odd touchpad behaviour

If the touchpad isn't behaving as expected, take a look at its parameters with synclient. The definition of each parameter is under man synaptics.

In my case with the NC10, the left side was triggering vertical scroll. I first assumed this was because VertEdgeScroll was enabled. Even though it should only work on the right edge, the default edge values might have caused the scroll region to be exposed on the left side too.

So I disabled VertEdgeScroll to increase the usable area for cursor movement since VertTwoFingerScroll works fine.

synclient VertEdgeScroll=0

However, the left edge still scrolled vertically. So I reduced LeftEdge which seems to have fixed it.

synclient LeftEdge=1000

To persist these changes between reboots they can be placed in x.org's global config directory, user-specific config files or run as startup commands. For example, here's what my /etc/X11/xorg.conf.d/synaptics-fixed.conf looks like:

Section "InputClass"
  Identifier "TouchpadFixed"
  MatchIsTouchpad "yes"
  Driver "synaptics"
  Option "VertEdgeScroll" "0"
  Option "LeftEdge" "1000"
EndSection

It's named intentionally so that it applies these parameters after the existing /etc/X11/xorg.conf.d/synaptics.conf.

Configuring startup tasks

~/.desktop-session contains most of the additional startup tasks and configuration like network, audio, desktop.

Choosing a web browser

Most lightweight Linux distributions ship with Firefox. However, Firefox seems to struggle on older hardware and doesn't get a chance to shine. Chromium-based browsers, are generally lighter, both in CPU and RAM usage. Falkon seems to use the least resources so I strongly recommend using it instead.

For numbers, here's RAM usage on Wikipedia's English homepage on the NC10:

I tried other browsers like "surf" and "GNOME Web (Epiphany)". They were all around Chromium's numbers. I didn't bother with less compatible, old-school browsers. In general, due to modern web standards, most "minimal" browsers are minimal on UI, not hardware resources.

Chromium-based browsers also used 10% to 20% less CPU for video playback compared to Firefox. Scrolling on Wikipedia was a lot smoother too.

Opening tabs and settings was slow on both Firefox and Chromium, while Falkon was quick and responsive. This is likely because Falkon only uses Chromium's core via Qt's interfaces.

Setting up Falkon

Falkon comes with an ad-block extension and supports vertical tabs. It's missing some common features, like a HTTPS-only mode, but generally they're things that can be done without.

Falkon's new tab "Speed dial" page is oddly slow so I recommend always defaulting new tabs and windows to a blank page.

If the display has a low resolution, I suggest reducing the default page zoom to 80% to fit more content.

Minimise JavaScript

On older hardware, it's best to prefer websites that don't require JavaScript. For ones that do, look for alternatives. For example, DuckDuckGo has an HTML-only version and an even lighter version. YouTube has many alternative front-ends for video discovery, and native video players which can open YouTube links.

Battery reporting

Historically, the battery on a lot of NC10s, including the one I have, failed within a few years of purchase. I strongly suspect Samsung botched the SMART controller boards on most of them as the cells seem to be fine. They charged, and the laptop ran for hours while on "0%". The controller just sends the wrong information. That's a huge amount of waste. Sadly, avoidable battery waste is still a common occurence.

I looked into potential ways to repair it, but given its age and the risks involved, I dropped the idea. Buying a new battery was also out of the question; they're expensive and will probably fail soon anyway. On the bright side, the laptop's a lot lighter without a battery even if I need to carry the power adapter around.

Hardware tweaks

At this point, I had a fully working Samsung NC10 running up-to-date software. To make it run a bit better, there are some hardware improvements we can make.

The NC10 supports a maximum of 2GB of DDR2 RAM, so I swapped in a 2GB DDR2 stick. It greatly improved multi-tasking capabilities and reduced the risk of thrashing.

The NC10 uses a standard SATA connection so I swapped out HDD with a spare SATA SSD. As expected, things were noticeably faster. Though, that could just be a placebo given how weak all of the other hardware is. The main thing is that it no longer makes constant noise even when idling. Of course, the CPU fan still kicks in now and then.

Finally, the NC10 uses Mini PCIe for its old WiFi card, so I swapped that out with a used WiFi 5 card. Like the SSD change, throughput is limited by everything else, but it's nice to be able to use an existing network without any external changes.

Conclusion

I now have a Samsung NC10 that's as good as it can be. As someone that often uses close to the latest technology both in hardware and software, doing these sorts of low-end projects is a useful reminder to appreciate hardware that is easily upgradable, and software that is built to be efficient and compatible. The NC10 with its dodgy battery and Atom processor isn't the best example of this but it's at least been fun and nostalgic.

Thanks for reading.