I had an HP Mini. It had a weird 1024x600 display panel, and a lot of applications expect you to have at least 1024x768. Sometimes apps would work fine until they opened a modal that was just a bit too tall, and you had to pray that Enter or Escape did something reasonable.
A few years ago I installed Debian, qBittorrent and Samba. I figured it could handle something IO-bound. I ran it for a couple of years and then recycled it when my Internet got faster than the 100 Mbps ethernet card.
A tip if you have one of those laying around and it always ran a 32-bit OS is to check if the CPU is really 32-bit only. Only the very first Atom generation was 32-bit, but the next generations had poor 64-bit driver support on Windows, so OEMs shipped it as a 32-bit machine. Not the case for OP’s netbook, theirs is really 32-bit only.
Booting a 32 bit OS was fine, but 64 bit OS' generally came with a 64 bit bootloader, so you had to do a special song and dance to load a 32 bit bootloader with a 64 bit OS.
https://github.com/parksb/parksb.github.io-comments/issues/2...
Today realistically I don't think it really makes that much sense to bother with those devices even for small home servers. You can e.g. get used thin clients for cheap which run circles around those old CPUs and support way more RAM while likely being as power efficient if not more. At the bare minimum I would avoid using any 32 bit x86 CPU for running anything modern, even Debian dropped official support for that architecture now.
The early ~2008 Linux-supplied dirt cheap Acer Aspire One A110L netbooks came with small (8GB?) and horrifically slow SSDs.
Back in the days of such things, we'd upgrade the RAM and use Windows XP with the write filter to make them great little machines. There was an SD card slot in the side that would happily store files.
The SSDs were very limited in read-write cycles from what I remember. More noticeable they brutally slow at writing. By shoving all the writes into RAM instead of direct the SSD, everything ran more smoothly.
If you wanted to keep any changes (usually due to OS or software updates) then you ran a batch file that wrote out the changes to the SSD before shutdown. Otherwise you shut the machine down and all your changes were immediately forgotten.
RAM Upgrade: https://www.youtube.com/watch?v=n3WVb1dL--o Enhanced Write Filter: https://www.prime-expert.com/articles/a04/speeding-up-ssd-ba...
It was more than fast enough for the time, the form factor was perfect for my teenage hands (not that they're much bigger now) and it was cheap and small enough to drag everywhere with me. (I copied and pasted some of that from a previous comment of mine about it.)
I still have it, it still holds a charge. Amazing little machine, portability and usage time were really top notch (not so the performance, but I was patient, and even used it for Sketchup and Illustrator)
The challenges came from tracking down working Wi-Fi drivers for the proprietary hardware and updating the BIOS, since the stock version has a bug where it emits lid close events that Windows XP ignores but Linux dutifully handles.
It ran Octoprint for me :)
There was also a EeePC specific https://en.wikipedia.org/wiki/EasyPeasy which was even better.
Since then I have installed various things for amusement, including a cut down Chromebook OS and the OLPC Linux. The limit was always the tiny root partition (4GB SSD). I had some limited success joining with the second SSD (16GB) using btrfs.
I think the albeit tiny SSD was this machine's saving grace compared to HDD models, in terms of speed.
In addition to the usual suspects (aging hardware, planned obsolescence, bad memories), I wonder how much CPU is burned by software trying to talk to long dead backends and the retry loops and errors that occur as a result.
I would look at swapping out the HDD for something solid state - lighter, less power, higher performance for random R/W.
Then it's just a case of lightening the load of the CPU as much as possible, strip out everything that is not needed.
I've run modern Firefox on much lighter devices. One of my netbooks is the same spec as this, and I do browsing + coding on it easily.
#!/bin/sh
modprobe zram
if [ -e /dev/zram0 ]
then
echo "zram0 on"
exit 1
fi
zramctl --find --size 512M
mkswap /dev/zram0
swapon -p 99 /dev/zram0
Run the script as root.As others have mentioned, the RAM is really low for a desktop but perfectly fine for running a FTP/File/PiHole etc and are usually more powerful than a RaspberryPi.
They also have multiple USB A ports if you want to add storage, ethernet etc.
It works decently, is sufficient for ssh-ing into other hosts. Though web browsing is a pain. I used to mostly use Dillo and elinks, MPV+yt-dlp for videos.
Unfortunately I left it sit for a bit too long and the battery is dead now. I'm thinking of fixing it and upgrading the power port to USB-C. Sometimes I also think about building a compute module-based motherboard for it.
There were interesting bits in the setup (blacklisting defective RAM addresses for instance), maybe I should make a short writeup :)
Is it just me or did it end on a cliffhanger? That's the last line!
The author doesn't explain why but I'm guessing this is because `/tmp` is filling up. Setting a quota on this mount point would help limit the impact that badly behaving programs might have on RAM usage.
Recently retired my pc with fx6300 because it take too much desktop space; and just setup a mini pc with j6412, also installed arch Linux, i3wm for desktop stuffs
Also find a old usb Bluetooth receiver make it play some music
It works great and use this new setup to get a Agent free experience
My main desktop I use for full time software development and video editing is from 2014. I've run Windows on it forever. I put Arch on it ~8 months ago.
A full desktop environment I put together based on niri boots at 1.1 GB of memory. Every app I want is installed (tons of CLI tools, various GUI tools, Docker, video editors, browser, etc.) all together comes in at 10 GB of disk total for everything based on what `df -h` says for my root partition.
My machine does have 16 GB of memory so I'm not pressed for memory, but it's nice to know the machine runs on a system designed to not be bloated.
After switching from Windows 10 Pro, it felt like I got a hardware upgrade. Things open faster and generally speaking everything just feels snappier.
As an aside, it was super fun spending a few days setting everything up in a repeatable way which I've now replicated on a number of systems with https://github.com/nickjj/dotfriedrice.
They came out in 2008, were sold until 2010, had literally less performance than a 2000 Pentium III CPU, were lauded from pundits left and right, and probably the school/hand-me-down laptops of that age (like today's e-waste class Chromebooks).
Especially when Acer and whatever had proper laptops with proper Intel SU-class CPUs and 3-4 GB RAM for the same price.
I disliked these "netbooks" back then and still do, and all that followed its footsteps, including the "laptop"-lookalikes with 32 GB e-MMC storage some mobile carriers would give out with their plans.
It's a disrespectful destitute class of computing.
I know that the Raspberry Pis came out later, but a Raspberry Pi 2 is a hundred times better engineered and well-rounded product, that will also run a desktop better than these netbooks (or at all).
On a related note, I also have colleagues at work who will run only sub-200 dollar smartphones and enjoy living the proper Nigeria/Bangladesh experience from 1-2 years ago. I also know that they don't use heating at home, and do everything in the name of efficiency.
My main machine is a 13 year old Lenovo y510p running Debian and KDE. You'd be hard-pressed to tell that it's anywhere near that age.
The only aspect that has been annoying with both is graphics. Both machines are nvidia and are long past their support periods. The y510p has SLI (one graphics card is in the CD drive slot) which never worked on Linux. When removing the second card, the on-processor Intel graphics can be used, which have better support than nvidia, so I stick with that. I don't do anything graphics intensive anyway.
The biggest upgrade with old computers, without any doubt, is an SSD. I still remember getting my first one back in about 2011, a used 60GiB OCZ Vertex, and it was truly magic seeing the computer boot to the desktop in a few seconds even on a core 2 duo.
Apparently, I do still have a few photos in backups of someone's own enchanted marvel of a portal to universes powered by a Celeron D, USB pen-drive of 16 GiB, a single RAM of 1 GiB, we all managed to acquire and built, for such a short time we had!
Preview of the device: https://imgur.com/gallery/h1tWKp3
Since the CPU had no physical address extension (PAE) to electrify a more common OS, and something customary was required for the limited resources, where we chose ArchLinux 32-bit (now ArchLinux32, indeed) and arranged a custom AwesomeWM environment visually suggesting a console design just for it!
And dear... we adventured a few nights back then backed by this machine and some self-compiled emulation software, ZSnes and Gens, for the titles she had collected from a few local stores and magazines!
It was quite long ago... more than a decade and half... but it like all happened just yesterday, and how freaking awesome it was!
You likely had a similar event/memory! Please do remember these...
Related: https://www.archlinux32.org/architecture/ (The below table lists the compatibility of CPUs (identified by their available flags) with architectures...)
Always loved the netbook form factor, and they were cheap!
Funny thing is that probably I also have some 2GB DDR2 stick somewhere. Last thing I need to check for is the battery, I presume it is completely down after all those years.
Anyway, this article will be very handy for this side project. Thank you!
While most things ran absolutely fine, Firefox ran like crap, which really makes you realise how awful the modern web is.
When I got the netbook I had dreams of hacking in Emacs wherever I went. The tiny keyboard makes that quite uncomfortable, though. So it was only really used as a music player and web browser while traveling a few times, basically what you'd use a phone for today.
Unfortunately its CMOS battery ran out and when I went in to replace it I had to unplug a few ribbon cables which of course promptly snapped the now-brittle plastic connectors. Its been sitting on a shelf waiting to be revived once again ever since... I miss that little thing.
I used one as a replacement for a "desktop computer" for 7+ years
Here, "desktop" means the form factor not the interface
I used NetBSD as the OS. I never tried to use Windows. It was during this time that I stopped using X11 entirely, i.e., no "desktop" metaphor, no terminal emulator programs, and began staying in VGA textmode 100% of the time
If I needed to view graphics I sent the files to another computer running graphical OS on the LAN but not connected to the internet. At the time, this was mainly an iPad
As a matter of practice I never connected Apple computers to the internet
These ASUS netbooks indeed had a slow processor but the amount I accomplished with this computer was substantial. I created bootable USB sticks that booted to rootfs in RAM and never touched disk, an immutable, custom OS that resembles ChromeOS today, but better (no Chrome or other software written and controlled by an adtrech corporation). I could pull out the stick after boot and use the USB port for something else.^1 NetBSD kernels compiled quickly enough and I did not use QEMU for testing
1. It was perplexing to me to read about the problems people had with SD cards when the RaspberryPi appeared. I pull the SD card out after boot, the OS runs entirely from RAM
I still have this netboook. There is some issue with the power. I have thought about trying to fix it
People talk about modern Microsoft and how much they do for open source have such short memories. Microsoft used to do everything they can to kill open source and even referred to the ecosystem as “communism”.
It was by far my favorite laptop I’ve ever had. I put an SSD in it, though, which made a pretty huge difference.
> A tip if you have one of those laying around and it always ran a 32-bit OS is to check if the CPU is really 32-bit only. Only the very first Atom generation was 32-bit, but the next generations had poor 64-bit driver support on Windows, so OEMs shipped it as a 32-bit machine. Not the case for OP’s netbook, theirs is really 32-bit only.
A lot of netbooks will lock the CPU into 32-bit mode in the BIOS, so getting them to boot a 64-bit OS also requires patching the BIOS. It's doable but has limited benefits when they're limited to 2-4 GB of RAM anyway.
Run Alpine Linux from RAM. That will consume about 125MB with the standard install. Set up persistence so you save changes. Install a lightweight window manager and use a lightweight browser like qutebrowser.
Even thought Alpine uses musl you can still get apps like Obsidian to run. I can't remember how though but this whole setup was usable on a PC that had a built in 56K modem.
Not just for obsolete systems, sometimes a full screen application might pick a tiny desktop resolution as well, and not properly restore the resolution, so you could need to deal with a too-big dialog box in that situation as well.
On Debian at least, Alt+grab, or the window menu "move" could save your day.
Sounds like it started on XP running poorly, and ended on Arch... running poorly.
Back in the day there was no real benefit. Today it's different as most Linux distros don't really care much about supporting 32 bit anymore.
We moved house recently and I found it in a box when I was unpacking. Maybe I should find a use for it
I am running agents on my ten year old ThinkPad T460. I gave them their own user account, to limit blast radius, but I haven't had any issues with them nuking things yet. (Except for my code quality...)
Well, maybe my API keys with $5 credit have been exfiltrated though. The world may never know :)
On Linux it's just Alt+drag anywhere on the window to move it.
As now, there is a very wide performance profile for machines around then. From sub Ghz Celerons up to 3Ghz plus dual core things.
Though, I don't want to hate on it per se, we all had to start somewhere.
They pioneered the netbook with the EeePC line.
Sadly, they didn't keep it alive.
I'd argue my quality of life is higher for using only hand-me-down phones (current one is ~8yo, thanks to LineageOS) because when I'm feeling dysregulated I run out of phone-based distractions really quickly (I don't allow JavaScript, and I don't install any games). I'm healthier for walking and cycling everywhere within ~16km of home (privileged to live in the city, as expensive as it has become, but I'd still do it if I lived further out), and for using heating & cooling only to take the edge off the outside temperature (16C in the winter, 26C in the summer), mindful of where all this energy comes from, what the effects are at scale, and the quality of life of future generations long after I'm dead. I don't do all this for efficiency, but for effectiveness (that of my body, my default mobility and data-processing machine) and consuming a reasonable amount of energy rather than one that, at scale, will burn my house down.
Regarding not-yet e-waste, some people just like tinkering, and the challenge of getting old hardware to still function as a useful tool.
I also understand the reaction to other people's "nonsense"; I sometimes go there, too, and it's an ongoing effort to reel it back to what I can reasonably control.
Is it helpful to have all this spelled out for you?
However the charging broke and I never got around trying to repair it.
The mobo on the pictures is a Socket AM2/2+ one, for AMD processors.
https://theretroweb.com/motherboards/s/asus-m2n-mx-se-plus-r...
In the early/mid 2000s, we used to buy computers, install Linux and then ask Dell etc. to refund the Windows license, which often worked.
My girlfriend at the time got a Dell desktop really cheap that way. IIRC it cost something like 400 or 500 Euro and Dell refunded ~100 Euro for not using the Windows license. I never really understood the economics, because installing Windows was probably profitable for them due to the adware shipped with Windows.
Probably it was easier/better for them to just give a refund to noisy Linux users than to admit that they were making big bucks on all the crap shipped with the Windows installation.
As an aside, at the time a lot of HP laptops could be purchased with FreeDOS and I think Lenovo was similar.
After trying dozens of lightweight Linuxes with disappointing results, I downgraded my Sony Vaio P to WinXP. This has full GPU acceleration on Intel Pouslbo and for XP the machine's 2GB of RAM is spacious. Sad, but there we are.
I used to carry one in my toolbox when I worked as a network field tech.
You could try to install a stripped-down OpenBSD but you'll find very little help if something doesn't work. "You didn't install the full OS, you're on your own" is the response you'd be most likely to get.
PCSX-PGXP runs really well too, forget PGXP on that machine but at low resolution games will run fine with a simple bilinear filter. Parasiteve Eve can be damn addictive ;)
Also, text adventure games; a good one with a great history such Tristam Island it's fine too.
Also, compile Scummvm with these options from git (pacman -S scummvm, check the dependencies; run pacman -R scummvm later), then compile it with these options:
#!/bin/sh
export CC="clang"
export CXX="clang++"
export CXXFLAGS="-fpermissive -fcommon"
export LDFLAGS="-Wl,-z,muldefs"
export LANG=C
make clean -j4
env CC="clang" CXX="clang++" sh configure \
--enable-static \
--enable-all-engines \
--enable-all-unstable-engines \
--enable-release \
--enable-plugins \
--disable-hq-scalers \
--disable-dlc \
--disable-scummvmdlc \
--disable-discord
make CC="ccache clang" CXX="ccache clang++" LDFLAGS+="-Wl,-z,muldefs"The only serious contender in that category now IMO is Chuwi Minibook X.
Instead of Mint I'd pick something like Alpine Linux with LXQT:
https://wiki.alpinelinux.org/wiki/LXQt
Also, adding ZRAM will fly on that machine.
Also, you can build SCUMMVM (install alpine-sdk, get the alpine ports and edit the pkg build file so scummvm gets compiled with these options at the configure build stage:
#!/bin/sh
sh configure \
--enable-static \
--enable-all-engines \
--enable-all-unstable-engines \
--enable-release \
--enable-plugins \
--disable-hq-scalers \
--disable-dlc \
--disable-scummvmdlc \
--disable-discord
With these options even Macromedia Director stuff will run (maybe Encarta 95 and the like) and modern games such as Technobabylon, Thimbleweed Park and so on.As far as cheap, low-spec, disposable laptops go, Chromebooks are the spiritual successor to netbooks.
As for which editor that is, it depends a little bit on your needs, but there are ones specifically geared towards being distraction free like https://ghostwriter.kde.org/
Although markdown may not be what you're after. I personally consider formatting another form of distraction, ao this would be a plus for me. But if you write math-heavy papers, going with something else like Typst or LATeX may be a better choice.
No kidding. Lots of fun to see a system actually boot in about 1 second.
That aside, I've installed all kinds of systems on my trusty 2009 Dell Mini 9, a fanless netbook. For years, this was a CLI-only Tiny Core Linux system, currently running SvarDOS. While on Linux, I even used it to live record 1,5-hour long radio shows via an old Mbox2 audio interface and some CLI recording software. Created a huge ramdisk just in case, but everything went well. Netbooks are weird and interesting machines.
What's the meaningful difference between a netbook and a modern 11-inch laptop?
Perfectly adequate for most web dev, scripting, blogging, chatting, network stuff, remote systems administration, etc.
The old netbooks took handling less carefully much more well than anything now other than probably an Apple laptop (I mean, if it fell, odds are it wouldn't break as easily; the ones with hard drives, maybe not as well, but it took more than once; talking the screen and keyboard).
I imagine this is why you liked it. Easy to backpack with.
They were also great for running out for coffee and working without schlepping a full-sized laptop.
I mean the ones with hard drives, not the ones with teeny tiny ssd's. Hard to do much on those, and slower.
Is crunchbang still around?
If I remember correctly Microsoft put a limit on the HW specs for getting those cheap Windows copies while simultaneously making sure they all shipped with Windows which did not run that well on that low spec hardware. I think this is a huge part why this category died that quickly.
On the other hand there was also just general technological progress happening, "full size" notebooks were generally getting a lot more compact and lightweight so there was less need for that separate category.
Most people fall for marketing, do no deep research or consideration of their needs, and have a piss-poor time.
But some did the reading: Ubuntu on the Dell Mini 9, for example, was a dreamboat!, with or without touchscreen mod.
You could get a much more powerful system for a lot less.
Being cheap, commonly available, and shipping with Linux come readily to mind.
I want to run it offline, but still be able to sync my writing on-demand when I'm done.
Amazing how many of Microsoft's competitors don't need the help, yet receive it.
> Nobody bought more than one of them, the experience was that bad.
https://www.cnet.com/tech/computing/netbook-sales-exploded-i...
"The market for small and cheap laptops -- netbooks -- boomed in 2008, with almost 15 million of the things sold globally."
On the contrary, they were incredibly popular.
I'd look at antiX for reviving a netbook if limited to 32 bit.
You can buy more modern laptops made as recently as 2020 that are at least an order of magnitude better in every single way (even including weight) on Amazon and eBay for about $150 USD. They're lightly used and all hardware is supported without any fuss including the touch screens, etc. They're even cheaper if you buy them in bulk. These are institutional selloffs (schools, offices, government, etc.).
You do have to install Linux yourself though.
I said "for Linux" for a reason
This is directly contradicted by the existence of Netbook fans.
Netbooks are almost unique in tech history in how flash-in-the-pan they were. Crypto somehow had more staying power.
KO | EN
I still have a netbook I bought back in 2009.

The ASUS Eee PC 1000HE has an Intel Atom N280 and 1GB of DDR2 RAM. The Atom N series was Intel’s line of cheap, low-performance CPUs for netbooks. The chip has 56KB of L1 cache and 512KB of L2 cache, and its clock speed is 1.667GHz. Compare that with the Intel Core i3 N305, a budget laptop processor released in 2023, which has 768KB of L1 cache, 4MB of L2 cache, and runs at 3.8GHz, and you get a feel for how poor the Eee PC’s performance is.
Those were the kinds of compromised specs that came with being a netbook, so there is not much point in complaining about how bad they were. Even at the time it was no match for a laptop, but it was still fine for light work like editing documents or browsing the web. By around 2012, though, it had become hard to use even for routine tasks. Programs kept gaining features, websites kept growing more interactive, and the netbook’s small HDD was aging. In the end, ultrabooks replaced netbooks.
And so the netbook went to sleep in storage.
More than ten years later, in 2023, I suddenly thought of the netbook again. The machine I pulled out of storage looked exactly as it had when it went in, and the tacky Windows XP UI that appeared after booting was just as I remembered it. It took several seconds just to open Windows Explorer, and the cursor stuttered while it loaded. I could not remember whether the machine had gotten even slower, or whether it had always been like this and I had once thought even this was fast. Once the netbook was out of storage again, I decided to bring it back to life and put it to use again, whether as a server or a YouTube machine.
My first thought was that Windows XP, whose support ended in 2014, had to go. Windows releases after Windows 7 required at least 1GB of RAM. Because the netbook had exactly 1GB of RAM installed, I figured I would need a lighter operating system if I wanted it to be pleasant to use. Ubuntu required at least 512MB of RAM, but when I had installed Ubuntu on low-spec laptops in the past, I had not found the performance especially good.
I needed an extremely light operating system with only the bare minimum. It had to come without unnecessary default features, and it had to let me build an environment from the ground up for this netbook alone. The answer was obvious. Arch Linux. Arch Linux is a Linux distribution built on the principles of simplicity, modernity, pragmatism, user centrality, and versatility. I had wanted to try Arch Linux for a while anyway, so it felt like a good chance. The fact that the setup process would teach me a lot about operating systems also made it a nice hobby to start right before the semester began.
Arch Linux officially dropped support for the x86 architecture after 2017. The Atom N2xx processors support only 32-bit, so I had no choice but to use Arch Linux 32, which is maintained by the community. The installation process for Arch Linux 32 was not very different from the Arch Linux installation guide on the ArchWiki, but the machine’s limited performance led to some unexpected twists. In this article I want to record, in detail, my personal experience installing Arch Linux 32 on this netbook.
First, I needed an Arch Linux disk image. On the Arch Linux 32 download page, I downloaded the image file (.iso) and the signature file (.sig), then used the gpg command to verify that the image had not been tampered with.
$ gpg --keyserver-options auto-key-retrieve --verify archlinux32-2023.03.02-i686.iso.sig
If everything checks out, create the boot media. I used Rufus on a Windows desktop to burn the ISO file I had downloaded to a USB drive. I then plugged the USB drive into the netbook, entered the BIOS (Basic Input/Output System), set USB as the first boot option, and rebooted. That makes the computer boot from the USB drive instead of the hard disk.
The Arch Linux installation image uses zsh as its default shell. To install Arch Linux, the machine needs an internet connection. First check whether the network interfaces are up.
$ ip link
1: lo ... state UNKNOWN ...
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0 ... state DOWN ...
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: wlan0 ... state UP ...
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
Here lo is the loopback interface. The loopback interface is a virtual network interface the system uses to connect to itself. The IP address 127.0.0.1 is the loopback address assigned to it. enp3s0 is the interface corresponding to the Ethernet device (en) on the motherboard’s PCI bus 3 (p3), slot 0 (s0). Ethernet is the standard for wired networking. wlan0 is the wireless LAN interface. Since I was going to connect over Wi-Fi, I checked that wlan0 was in the UP state. Next, use rfkill to check whether any interfaces are blocked.
$ rfkill
ID TYPE DEVICE SOFT HARD
0 wlan eeepc-wlan unblocked unblocked
1 bluetooth eeepc-bluetooth unblocked unblocked
2 wwan eeepc-wwan3g unblocked unblocked
...
If a wired connection is available, you can just plug in a LAN cable. To connect over Wi-Fi, though, you have to use iwctl to scan for access points and connect manually. iwctl is the client program provided by iwd (iNet wireless daemon), the wireless network daemon made by Intel. The Arch Linux installation image ships with iwd by default.
$ iwctl
[iwctl]# device list
Devices
-----------------------------------------------------------
Name Address Powered Adapter Mode
-----------------------------------------------------------
wlan0 xx:xx:xx:xx:xx:xx on phy0 station
[iwctl]# station wlan0 scan
[iwctl]# station wlan0 get-networks
Available networks
----------------------------------
Network name Security Signal
----------------------------------
iptime psk ****
iptime_2.4G psk ****
[iwctl]# station wlan0 connect iptime_2.4G
Type the network passphrase for iptime_2.4G psk.
Passphrase: ********
[iwctl]# exit
The netbook’s wireless card did not support 5GHz networks, so I had no choice but to connect to 2.4GHz. Finally, send a ping to archlinux32.org to make sure the internet connection is working.
$ ping -c3 archlinux32.org
Update the system clock. First enable NTP (Network Time Protocol), then check that the clock is correct. NTP is a protocol that synchronizes the system clock by receiving the correct time from a server. I explain it briefly in How railway timetables became Unix time.
$ timedatectl set-ntp true
$ timedatectl
fdisk lets you check what disks are attached to the computer.
$ fdisk -l
Disk /dev/sda: 14.8 Gib, x bytes, x sectors
Disk model: Flash Disk
...
Disk /dev/sdb: 149.0 GiB, x bytes, x sectors
Disk model: ST9160410AS
...
sda is the installation USB, and sdb is the HDD inside the netbook, so I selected sdb.
$ fdisk /dev/sdb
The existing partitions had been set up for Windows. One HDD was split into a C drive and a D drive, and there was also an EFI partition and a recovery partition. I wanted to delete all of the old partitions, which I no longer needed, and set everything up from scratch. To do that, I first had to understand the system’s motherboard.
The motherboard’s ROM holds the firmware that runs first when the system receives power and initializes the hardware needed for booting. Broadly speaking, there are three kinds of firmware: BIOS, EFI (Extensible Firmware Interface), and UEFI (Unified Extensible Firmware Interface). EFI improved on BIOS, and UEFI improved on EFI, so recent hardware usually ships with UEFI. Older motherboards typically came with BIOS. Yet even though the Eee PC 1000HE clearly used BIOS, it still had an EFI partition. I later learned that the EFI partition existed not because the firmware was EFI, but to support the BIOS’s “Boot Booster” option[1]. When a computer powers on, the BIOS goes through POST (Power-On Self Test), which checks the system’s hardware before initializing it. That takes a few seconds. “Boot Booster” reduces boot delay by caching POST information in the EFI partition.
POST screen of the American Megatrends International BIOS. (CC0)
There are two partitioning schemes: MBR (Master Boot Record) and GPT (GUID Partition Table). MBR occupies the first 512 bytes of a storage device. Of those, 440 bytes hold bootstrap code, 6 hold a disk signature, 64 hold a partition table for up to four partitions at 16 bytes each, and the remaining 2 hold a boot signature. GPT, meanwhile, is a partitioning scheme that improves on many of MBR’s limits and is also part of the UEFI specification. Compared with MBR, GPT allows more primary partitions and larger partitions. Unlike MBR, it also uses a separate boot partition. I made two mistakes here. One was choosing MBR because I mistakenly believed[2] there was no way to use GPT with BIOS. The other was partitioning in an ordinary MBR layout like the one below without understanding what the EFI partition was for. I regretted it a little, but I did not bother setting it up again.
| Mount point | Partition | Partition type ID | Boot flag |
|---|---|---|---|
| [SWAP] | /dev/sdb1 | 82 (Linux swap) | No |
| / | /dev/sdb2 | 83 (Linux) | Yes |
A swap partition is needed when physical memory is insufficient and part of storage has to be used as memory. The ArchWiki recommends allocating at least 512MB to the swap partition. That is not enough. On this netbook, which has 1GB of RAM, if you keep the swap partition small you will run into “No space left on device” errors all the time. RHEL recommends allocating swap at twice the size of RAM when the system has 2GB of RAM or less. So on a netbook with 1GB of RAM, a 2GB swap partition would do. I gave it 4GB to be safe, though, because building from source can sometimes require more than 4GB of memory. Making the swap partition larger than main memory is also a good choice if you want to leave room for hibernation.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-y, default 2048): <enter>
Using default value 2048
Last sector, +sectors or +size(K,M,G) (2048-y, default y): +4G
Change the type of the swap partition you just created to 82 (Linux swap).
Command (m for help): t
Partition number (1-4): 1
Hex code: 82
Changed system type of partition 2 to 82
Next create the root partition. The root partition is where Arch Linux will be installed.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First sector (x-y, default x): <return>
Using default value x
Last sector, +sectors or +size(K,M,G) (x-y, default y): <return>
Using default value y
Finally, check the result.
Command (m for help): p
Disk /dev/sdb: 149.0 GiB, x bytes, x sectors
Disk model: ST9160410AS
...
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 y z 4G 82 Linux swap / Solaris
/dev/sdb2 x y z 145G 83 Linux
As I will mention later, I did not set the boot flag because I was planning to use the GRUB bootloader. (GRUB ignores the boot flag.) Now save (w) and exit (q) fdisk.
Command (m for help): w
Command (m for help): q
Set the filesystem for the root partition. Since ext4 is generally used as a Linux filesystem, format sdb2 as ext4.
$ mkfs.ext4 /dev/sdb2
Use mkswap to initialize the swap area created earlier as a swap partition, then activate it.
$ mkswap /dev/sdb1
$ swapon /dev/sdb1
Now the real installation begins. Mount the root partition on /mnt so you can access the partition where Arch Linux will be installed.
$ mount /dev/sdb2 /mnt
Next install the essential packages. pacstrap installs packages into the mounted root directory. Use it to put the Linux kernel, modules, and firmware files into /mnt. But if you try to install packages immediately, you will get an error saying the signatures cannot be trusted. First you need to use Arch Linux’s package manager pacman to install Arch Linux 32’s PGP keyring, archlinux32-keyring.
$ pacman -S archlinux32-keyring
$ pacstrap -K /mnt base linux linux-firmware
Once the installation finishes, generate the fstab file. The fstab file contains information about filesystems such as disk partitions and allows the system to mount them automatically at boot according to the configuration. genfstab, which comes with the Arch Linux installation image, generates the fstab contents automatically.
$ genfstab -U /mnt >> /mnt/etc/fstab
Chroot into /mnt.
$ arch-chroot /mnt
From this point on, you should think of yourself as being inside the Arch Linux system, with /mnt now acting as the root directory.
First, link the timezone file under /usr/share/zoneinfo to /etc/localtime to set the local timezone. I chose ROK so the system would use Korean Standard Time.
$ ln -sf /usr/share/zoneinfo/ROK /etc/localtime
Use hwclock to set the hardware clock from the system clock. This updates the timestamp in /etc/adjtime.
$ hwclock --systohc
Generate the locale files.
$ locale-gen
Set the hostname.
$ echo eee-pc-1000he > /etc/hostname
Set the root account’s password.
$ passwd
That takes care of the basic configuration.
When the computer powers on, the BIOS performs POST and initializes the hardware needed for booting. Right after that, it executes the first 440 bytes of the disk that is set as the first boot option in the BIOS. The MBR bootstrap code in that area launches the bootloader. The bootloader then loads the kernel and starts the operating system[3]. There are several bootloaders, but I chose the familiar GRUB. GRUB supports BIOS, MBR, and ext4, so it was a good fit for the environment I had.
You can install GRUB with pacman just as you would any other package. But if you try to install it right away, you will get an error saying the signatures cannot be trusted, so as before, install archlinux32-keyring first.
$ pacman -S archlinux32-keyring
$ pacman -S grub
Install GRUB by specifying the boot disk. Note that the /dev/sdb passed as an argument is the disk, not a partition.
$ grub-install --target=i386-pc /dev/sdb
Generate the GRUB configuration file.
$ grub-mkconfig -o /boot/grub/grub.cfg
At boot, the GRUB installed in /boot/grub will load the Arch Linux kernel vmlinuz-linux under /boot. At this point you could say the Arch Linux installation is finished, but before rebooting you still need to set up the network.
If you skip the network setup here, you may end up after installation unable to connect to the internet, completely stranded. I decided to stick with the same simple combination used by the Arch Linux installation image: systemd-networkd + systemd-resolved + iwd. systemd-networkd is a system daemon that manages network configuration, and it includes the files needed for wired networking. First write the wired adapter configuration.
$ cat <<EOF > /etc/systemd/network/20-wired.network
[Match]
Name=enp3s0
[Network]
DHCP=yes
EOF
Write the wireless adapter configuration as well. The IgnoreCarrierLoss option makes systemd-networkd keep the current interface configuration briefly while the system is roaming to another access point. By ignoring the short interruption during roaming, it can reduce downtime.
$ cat <<EOF > /etc/systemd/network/25-wireless.network
[Match]
Name=wlan0
[Network]
DHCP=yes
IgnoreCarrierLoss=3s
EOF
systemd-resolved provides DNS services. Configure it by linking stub-resolv.conf.
$ ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
The only package that needs to be installed separately for wireless networking is iwd.
$ pacman -S iwd
Write the iwd configuration file as well. When EnableNetworkConfiguration is true, iwd configures the network interface with an IP address. If the address is dynamic, it obtains it through its built-in DHCP client. I explain how DHCP works in The very concrete principle of how the internet works. The NameResolvingService option sets how DNS resolution is handled. systemd is the default anyway.
$ cat <<EOF > /etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
[Network]
NameResolvingService=systemd
EOF
Write the hosts file. When DNS resolves an IP address from a domain name, this file is checked first.
$ cat <<EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 eee-pc-1000he
EOF
Enable the network services so they start automatically when the system boots.
$ systemctl enable iwd systemd-networkd systemd-resolved
Exit the chroot.
$ exit
At last, the installation was over. Unmount the partitions mounted under /mnt.
$ umount -R /mnt
Shut the system down and reboot. At this point, enter the BIOS, change the first boot option from USB to the hard disk, and remove the USB drive. The computer will now boot from the system installed on the hard disk. Select Arch Linux 32 in GRUB and the operating system will start. After that I logged in as root and installed the packages I needed.
$ pacman -S coreutils sudo which git wget openssh neovim tmux fish
I also referred to Arch Linux’s General recommendations and applied the various suggestions there.
AUR (Arch User Repository) is a community-run repository separate from Arch Linux’s official package repositories. Sometimes the package you need is in AUR rather than an official repository. Installing packages directly from AUR involves a cumbersome process, so it is much easier on the nerves to use a helper that automates AUR-related work and gives you a friendlier interface.
Using the Pacman wrappers yay or paru, you can install packages from AUR almost as easily as you use pacman. Either one is fine, but neither provides x86 binaries, so you have to build it yourself.
$ sudo pacman -S --needed base-devel
$ git clone https://aur.archlinux.org/paru.git
$ cd paru
$ makepkg -si
Even with 4GB allocated to swap, I ran into a “No space left on device” error during the build. If you ignore it and start the build again, it resumes from the build data it cached just before, so you can still finish the build successfully.
Arch Linux does not come with a desktop environment (DE), so you have to set one up yourself. A DE provides GUI elements such as icons, toolbars, and wallpapers along with a window manager (WM), which makes it easy to build a GUI environment.
GNOME is a well-known DE, but the netbook needed a lighter one. I chose LXQt, the successor to LXDE (Lightweight X11 Desktop Environment), which is known for being lightweight. LXQt runs on the X Window System (X11, or just X). X11 provides a framework for GUI environments and follows a client-server model. The display server, called the X server, receives events from input devices and passes them to clients through the X protocol. Here, “clients” means all the layers sitting on top of the server, from user applications like browsers to the DE, the window manager, and toolkits such as GTK and Qt. When a client that has received input events sends GUI requests to the server, the server draws the screen on the output device accordingly[4].
The X11 server-client model. (Wikimedia Commons, CC BY-SA 3.0)
These days Wayland, which was designed to improve on X11’s problems and fit modern kernels better, is taking its place, but I decided to install X11 so I could use LXQt. The xorg package includes the X11 server and various utility packages. xorg-xinit is a program that lets you start the X11 server manually with the startx command. I installed LXQt and an icon set along with them.
$ pacman -S xorg xorg-xinit lxqt breeze-icons
The startx command initializes an X11 session according to the contents of the .xinitrc file in the home directory. If there is no .xinitrc file in the home directory, it refers to /etc/X11/xinit/xinitrc instead. To set things up differently per user, copy the default xinitrc file into the home directory.
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
The default configuration is set to run Twm, xorg-xclock, and Xterm. Delete all of that and add exec startlxqt. Then add a script to .profile so that logging in starts the X11 session automatically.
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
exec startx
fi
I installed Firefox and tried running it in LXQt. The netbook was struggling.

Since I wanted to use the netbook as a server, I set it up so LXQt would start only when I logged in with the *-desktop account, and otherwise the system would stay in the CLI. If needed, I could have the DE start all the time, or install packages to enable more of LXQt’s features.
The Eee PC 1000HE uses a 1GB DDR2 SO-DIMM RAM module. DDR2 is an SDRAM interface standardized in 2003, followed by DDR3 in 2007, DDR4 in 2014, and DDR5 in 2020. A DIMM (Dual In-line Memory Module) is a RAM stick with several memory chips mounted on a single PCB. SO-DIMM (Small Outline DIMM) is a standard that cuts a DIMM’s length roughly in half so it can be used in smaller devices.
Since I kept running into out-of-memory errors while building source with 1GB of RAM, I decided the first thing I needed was a RAM upgrade. But the netbook’s Intel Atom N280 processor supported only up to 2GB of RAM. Half wondering whether anyone still sold DDR2 at all, I ordered a 2GB stick for about $5.30. (Shipping was about $2.30.)

After replacing it with the new RAM, I checked that the system recognized it.
$ free -h
total ...
Mem: 1.9Gi ...
Swap: 4.0Gi ...
I did not expect much, and because the bottlenecks were the HDD and CPU I did not feel any noticeable performance improvement. Still, it occurred to me that it might be fun to take the netbook completely apart and start replacing its hardware piece by piece.
Jon Cain, “Boot Booster (EFI) Partition on an Asus EeePC 1005P”, 2014. ↩︎
ArchWiki, “Partitioning: Tricking old BIOS into booting from GPT”. ↩︎
ArchWiki, “Arch boot process: System initialization”. ↩︎
Chris Tyler, “X Power Tools”, O’Reilly, 2007. ↩︎
On the other hand, you're arguing that the majority didn't buy it again. I've not seen any proof one way or the other. Do you have some?