2017-05-03 17:38:06, In: Linux, Debian, Retrocomputing
Few weeks ago I bought a damaged Asus Eee PC, model with widescreen and Celeron processor. These computers were sold about 10 years ago as "netbooks", which were a transition between notebooks and tablets, when companies were not so sure that they will force users only to consume ad-filled "content" from the Internet. The computer has been repaired and now it works. I decided to make some use of it. Let's look what is inside:
- Intel Celeron processor at 900MHz
- 1GB of RAM in DDR2 SODIMM stick
- 4GB on-board SSD disk
- 16GB SSD disk using proprietary connector.
- Wi-fi, sound, Intel GMA950 video card, SD card reader and battery - all which modern laptop should have.
Previously, the computer had Windows XP installed, in its Home edition. There is a sticker for it so someone bought a license. Unfortunately, even fresh install of Windows XP on this machine works terribly, it is slow, overuses hard disk and suffers of few-second freezes. I decided to go with Linux as these notebooks were sold with some pre-installed Linux.
This is not a true "retrocomputing" as the machine is relatively new, however in era of 8-core 4GHz CPUs made only to draw a nice GUI it may appear to be retrocomputing. This is list what I made and how it works for me, this post is also as re-installation aid for future for me. If you want to use Your Eee PC similar way, you may use some solutions from it, but I don't encourage to use all of them if you have your own workflows. Every user has different workflows and different tricks may be useful for them.
I don't use camera, I've covered it with a bar of black tape. Internal microphone has been also disconnected (MIC connector on mainboard). I do it for security in most Intel systems as who knows what they may do in the back.
I decided to install Debian which has not a newest packages, yet it is stable, it always boots after upgrade and is very flexible with installation. Briefly I took the following assumptions:
- LXDE desktop - Not as customizable as TDE or XFCE, but very lightweight.
- LibreOffice - here nothing new, just use 5.x version and it should go.
- Thunderbird e-mail client with Lightning extension for organizing things.
- KeepNote as notetaker.
- GCStar as database.
- SyncThing to synchronize all things between computers.
So let's begin. The computer has a BIOS option of "OS Installed" which I forgot to turn off before Linux install and... nothing bad happened. I don't know technical details what it does. While dd'ing from SSD I found that some blocks of built-in 4GB SSD were slower, means wear started to come in, probably because Windows XP had its swap file on it. So let's partition it this way:
- 4GB SSD: 256MB /boot, the rest is swap
- 16GB SSD - Root directory
- Optionally SD cards can be mounted to /home subdirs.
But... wait. Why do I use swap on SSD? Isn't it the thing which almost killed it? Yes. But I will turn the swappiness to a very small value. Swap won't be used for anything except two conditions: When there will be really no RAM, or when computer will hibernate. This way I assume that I'll have more than 1.5GB of swap for emergency purposes even when I use 1GB for hibernation.
To set swappiness after install, I modify /etc/sysctl.conf file's vm.swappiness parameter. If set to 0, swap will be used only when there is no free byte of RAM. Setting to 1 will introduce minimum swapping without leaving bigger buffers. By default it's usually 10 which is too big for swap on SSD.
Debian Jessie (8) installation is not a problem here if set up from USB flash drive, most things "just work" and the Tux will boot happily. Partitioning can be done from installer. The most important thing is to install GRUB on proper disk, the one with /boot partition (ASUS PHISON). Then in BIOS any boot drie can be set.
By installing LXDE from installer, not "aptitude install lxde", you will get a slightly bigger distribution.
The most important thing for slow SSDs is to make file system faster by editing /etc/fstab file and adding noatime to flags (column where defaults or errors=... are, in form e.g. defaults,noatime) to skip writing of access time. Makes things go much faster.
As a side effect, the machine started to work about 2.5 hours on a single battery charge. With Windows XP it was about 1.5 hours. It holds about 3 days on suspend.
This is really simple. Edit /etc/lightdm/lightdm.conf and uncomment "autologin-user=..." line, then add your name, e.g.:
Reboot. To avoid locking screen by itself after some time, the most performance-friendly method is to disable xscreensaver (described in Problems section).
Do not use yakuake there or it will pull a whole KDE with it. Use "yeahconsole" and xterm. It's simpler, without fireworks. To configure it, edit .Xresources file in your home directory. Here is my file:
yeahconsole*toggleKey: None+Menu yeahconsole*consoleHeight: 20 yeahconsole*aniDelay: 1 yeahconsole*restart: 1 yeahconsole*background: black yeahconsole*foreground: white
Console drops down when "Menu" key is pressed (the second additional key on Windows keyboard, Not the "Windows" key). I don't use it for any other purposes. Other keys may be used too.
HP 200LX is a palmtop computer which has a nice modifier keys. If I press Shift and release it, and then type letter, I will get this letter like pressed with Shift, the same with Alt and Ctrl. However, pressing shift two times makes it just go away, not lock in place like in Linux AccessX default settings. To instruct X to behave this way the command to xkbset is:
xkbset exp 1 -accessx sticky -twokey -latchlock
This is a result of trial and error as most commands used in Xkbset are passed to X and even xkbset author has no idea how they exactly work. Unfortunately this cannot be done with Fn key.
Addons I use for Thunderbird:
1. Lightning - as calendar. I don't like cloud-based calendars as their creators quickly become too greedy for user's data.
2. FireTray to make TB minimize to tray icon.
3. CustomizeMyBird to mess with font sizes for small screen. Personally I like smaller fonts and hide menu bar.
To run Thunderbird hidden way, to make it visible only in tray, I use small shell script called thunderbird_hidden.sh using wmctrl:
#!/bin/bash thunderbird & while [[ $(wmctrl -l | grep Thunderbird) == "" ]]; do sleep 0.1; done wmctrl -r Thunderbird -b add,hidden wmctrl -k on
The script launches Thunderbird and waits for its window to show on screen. Then it hides it from system window list to make it show only in tray. The last line deserts the desktop from TB's window.
Instead of Firefox I use PaleMoon. This is my personal choice as Mozilla is acting very strange way recent years. Just download pminstaller.sh from PaleMoon's website and let it install. Although PaleMoon seems not to be compatible with older CPUs, pminstaller installs me some version which works.
Addons I use for PaleMoon:
1. NoScript configured with whitelist. This makes web browsing much faster by the cost of larger maintenance with allowing particular scripts.
2. Compact Moon theme with its options addon. This is a Compact Fox addons fork from right before they have been removed. Allows to make toolbar usable and make fonts smaller.
With so poor CPU, Flash is definitely needed. It is impossible to decode HTML5 video even in bad resolutions without decent hardware acceleration mostly because codecs are implemented very poor way, requiring hardware accelerators of specific types and manufacturers to work smoothly (e.g. in my notebook, GeForce Go chipset doesn't decode at all). Unfortunately recently (since beginning of 2017) Debian damaged their Flash installation scripts. In fact you need only one library for Flash and to download it you can:
1. Go to Adobe's Flash site, download tar.gz, unpack libflashplayer.so into ~/.mozilla/plugins/ and you are OK.
2. Use this script (source):
#!/bin/bash NPAPIUpstream=$(wget -qO- https://www.adobe.com/software/flash/about/ | grep Linux -A10 | grep NPAPI -A1 | grep -Eo [0-9.]+) Arch=$(dpkg --print-architecture | sed 's/amd64/x86_64/') wget https://fpdownload.adobe.com/get/flashplayer/pdc/$NPAPIUpstream/flash_player_npapi_linux.$Arch.tar.gz -nd -P . -v --progress=dot:default -O- | tar -C /usr/lib/flashplugin-nonfree/ --overwrite -xzf- libflashplayer.so && chown root:root /usr/lib/flashplugin-nonfree/libflashplayer.so
1. No tap-to-click: Resolve by executing synclient TapButton1=1 at startup.
2. Sound not working: Check with alsamixer are channels not muted. They by default are. Then speaker-test -c 2 to test stereo.
3. How to do this "autostart" in LXDE: Create or edit /home/username/.config/lxsession/LXDE/autostart, add items to file's end beginning them with @. You can comment line sout with #, I commented xscreensever away. My file looks like:
@lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE @synclient TapButton1=1 @xkbset exp 1 -accessx sticky -twokey -latchlock @hidden_thunderbird.sh @keepnote @yeahconsole
4. To mess with what happens when you close lid, edit /etc/systemd/logind.conf file. By default, it suspends on lid close. If you uncomment line and place HandleLidSwitch=ignore it will not.
These Celerons have a very specific performance scaling methods. This is not a frequency scaling like in Core or later Pentium 4 processors, but Frequency Modulation, being in fact keeping the same frequency and activating different blocks. So if I would like to have lower performance, I need to make CPU modulation controller insert inert cycles every some amount of cycles. Remember the "Rain" software on Windows 9x? That's something similar.
However, there are 2 problems. First, the modulation cannot be switched faster than few times in a second. Two: during idle time, the biggest power saving you can get from minimizing performance is not larger than 20mA - current needed to light one 5mm LED up (230mA in full CPU load). I measured it with ammeter plugged in series of power adapter. This is not made for power saving at all, but for thermal throttling as this notebook has terrible cooling solution made of a metal sheet under keyboard as heatsink and fan... on the other side of PCB pumping air from nowhere to outside case. However, Linux uses fan cooling extensively making the computer run warm, but not overheating. Because fan eats also a small current, we may indeed have some energy savings if we would use frequency modulation, but due to lower performance it will take longer time to do normal things.
After opening lid in suspend state it is needed to press any key to wake it up. No solution here, this is BIOS-specific as in my Asus F5M there's the same thing. Many dells don't require this.
After my experience with LXDE I still have no ide how to add system menu entries. They sometimes add correctly, sometimes not.
A nice portable computer, however still a bit large for PDA, as well as its battery operating times are not for PDA. Thumb-typing is also not possible and location of Page Up/PageDown keys (with Fn key) makes it not fit to productivity applications. However, modern Linux with lightweight DE and recent LibreOffice work rather nicely on it. By default memory usage is around 400-500MB leaving rest for buffers, until I view some very demanding website or play YouTube video.