netbooks.md (11618B)
1 # Long live netbooks! 2 3 [*Netbook*](https://en.wikipedia.org/wiki/Netbook) was a term used 4 around 2010 to describe small laptops. They could be anywhere from 8" 5 to 11" in screen size. One of the most popular lines of netbooks were the 6 [Asus eee PCs](https://en.wikipedia.org/wiki/Asus_Eee_PC). 7 8 The appeal was clear: you could bring this tiny computer around and take 9 advantage of any free wifi connection - be it on a train, in a pub or 10 at school - to surf the web. 11 12 Netbooks had an unfortunate destiny for at least two reasons. Firstly, 13 laptop technology was not at a point where you could have a small, 14 relatively powerful and cheap device all in one. Most netbooks were 15 underpowered and struggled to run Windows out of the box. Secondly, 16 smartphones and tablets, that came out very shortly after, quickly 17 overtook the netbooks' market share and sent them to oblivion. 18 19 This post is going to be in two parts: first I want to talk about the 20 netbook I got in 2010 and how it turned out to be useful in 2022. The 21 second part is going to be a list of steps I took to set it up after 22 re-installing OpenBSD on it. 23 24 ## Part 1: My "darkstar" 25 26 ### In the 2010's 27 28 Back in 2010, when I was in high school, I started going on 4-5 days 29 long trips about once every two months or so. I did not have a laptop, 30 only a desktop PC, so my mother thought it was a good idea to get me 31 a netbook. She chose an Asus 1001px, a very standard 10" netbook. 32 It was in many ways an unremarkable machine, with 1Gb of ram and a weak 33 dual core CPU. But it got its job done. 34 35 ![My netbook](darkstar.jpg) 36 37 It ran some Windows monstrosity that I did not dare touching (was it 38 Vista or 7?). I immediately installed Linux on it. My favorite distro 39 at the time was [Slackware](http://www.slackware.com/), but I decided to 40 try out Arch on this one. I used the hostname *darkstar*, because it was 41 the default on Slackware and it fit nicely with its black plastic. I 42 have used that name for this laptop on every other OS I installed on it 43 ever since. 44 45 Arch Linux was a bad choice: since I would use this netbook only once 46 every two months, every time I updated it something broke. Or, as an Arch 47 fanboy would say nowadays, something "required manual intervention". At 48 some point I got rid of Arch and installed Slackware. 49 50 I also used it without problems at the beginning of university, in 2013, 51 but after a few months I bought a more powerful 15" regular laptop. 52 All in all I have not used my darkstar much, but it was a useful tool. 53 54 ### Distro hopping in 2020 55 56 When the first lockdowns came in March 2020 I decided to use my netbook 57 for some little experiments. Nothing crazy, just trying out some distros 58 and play around with them - I had not *distro-hopped* since 2011 or so. 59 60 I installed [Alpine](https://www.alpinelinux.org/) first. It was fine, 61 but the lack of man pages by default did not amuse me. Then I tried 62 [Void](https://voidlinux.org/), that I ended up installing on my main 63 laptop later that year, and I am still using it as my main OS to this day. 64 Finally I decided to try something different and went with OpenBSD. 65 66 ### Backpacking in 2022 67 68 Earlier this year I traveled around Europe for a couple of weeks, 69 mainly to attend the 70 [Rubik's Cube European Championship](https://www.worldcubeassociation.org/competitions/Euro2022) 71 and other events. I wanted to travel with just a backpack, no suitcase, 72 and my main laptop is quite large and heavy. I did not want to rely on 73 my smartphone alone, so I thought that carrying around my old netbook 74 could be a good compromise. 75 76 I kept OpenBSD, because I figured I would mostly be using it in tty only, 77 no X, and the command line utilities seem more polished and cohesive on 78 OpenBSD than on Linux. Using something like Firefox was doable in case 79 of emergency, but definitely not a pleasant experience. Some things like 80 streaming videos from YouTube were completely impossible - but there 81 were workarounds, like using [yt-dlp](https://github.com/yt-dlp/yt-dlp). 82 83 I decided to buy a larger battery, that also made it stand a bit taller, 84 kinda like a typewrite, and some extra RAM - I maxed it out at 2Gb, it 85 cannot handle more. Since the hard drive was not easily accessible without 86 taking apart the whole thing, I did not upgrade to an SSD drive at first. 87 I was afraid of not being able to detach and re-attach the keyboard and 88 touchpad connectors without damaging them. 89 90 My little netbook turned out to be more useful than I thought: the 91 organization team at a cube competition I attended during that trip was 92 short on laptops, and mine was perfectly capable of displaying pdf files. 93 The fact that there was no file manager installed made it a bit hard 94 for other people to operate it when I was not around, but in the end we 95 managed to use it. 96 97 ![My netbook getting work done at a cube competition](scramble.jpg) 98 99 After the trip I kept using it occasionally, as a "sofa laptop". I wrote 100 a couple of these blog posts on it. Who needs more than 1Gb of ram to 101 write some Markdown and push it with rsync? 102 103 A few weeks ago I changed my mind about the hard drive and tried 104 disassemblying *darkstar* completely, just to reassemble it and check 105 that all went well. And it did! So I bought a cheap SSD and used it to 106 replace the original hard drive. 107 108 ![The original hard disk and all the pieces I had to remove to reach it](hd.jpg) 109 110 Of course when putting everything back together I somehow improperly 111 attached the keyboard, so that it worked in the BIOS but not after boot, 112 and I also damaged the touchpad connector. Luckily I was able to fix 113 both these issues. 114 115 I was finally ready to install OpenBSD 7.1 on the new SSD. 116 117 ## Part 2: Installing and configuring OpenBSD 118 119 This section is probably more useful for me as a personal note than for 120 anyone else who might be reading it. Nonetheless, I figured people might 121 be curious, and it does not hurt to publish it here. If you don't care 122 about it, just skip to the "Conclusions" section at the end. 123 124 The whole install process was super simple and took about 6 minutes. 125 The new SSD drive probably helped a lot here. After the installation of the 126 base system was completed, I made a few tweaks and added some packages. 127 I am not one of those cool people who have a git repository with all their 128 config files and script that put everything into place automatically, I just 129 do everything by hand. Since I don't reinstall my OS every other day it is 130 not a big deal. 131 132 ### Security patches 133 134 First I updated the base system by installing the newest security patches 135 with `syspatch(8)` 136 137 ``` 138 # syspatch 139 Get/Verify syspatch71-001_wifi.tgz 100% |********************| 4423KB 00:003 140 Installing patch 001_wifi 141 syspatch: updated itself, run it again to install missing patches 142 ``` 143 144 Ok then, one more time 145 146 ``` 147 # syspatch 148 (...) 149 Errata can be reviewed under /var/syspatch 150 ``` 151 152 All good now! 153 154 ### Enabling doas for the regular user 155 156 OpenBSD's `doas` is roughly the equivalent of Linux's `sudo`. Unlike `sudo`, 157 we just need a one-line config file to use it: 158 159 ``` 160 # echo 'permit persist :wheel' > /etc/doas.conf 161 ``` 162 163 ### Swap caps lock and escape 164 165 I like to have the Caps Lock key function as Escape, and vice versa. To have 166 this in X one can use `setxkbmap -option caps:swapescape`, but for the OpenBSD 167 console we need to use `wsconsctl(8)`, or to edit `wsconsctl.conf(5)` if we 168 want to make it permanent: 169 170 ``` 171 # cat > /etc/wsconsctl.conf 172 keyboard.map+="keycode 58 = Escape" 173 keyboard.map+="keycode 1 = Caps_Lock" 174 ^D 175 ``` 176 177 The change won't happen until we reboot or we issue the 178 corresponding `wsconsctl` commands. 179 180 ### Generating ssh keys 181 182 Simply run 183 184 ``` 185 $ ssh_keygen 186 ``` 187 188 to get a new pair for RSA keys. Using another device (with its own ssh key), I then 189 copy the public key to my server's `.ssh/authorized_keys` file. 190 191 ### Installing and configuring syncthing 192 193 I use [syncthing](https://syncthing.net/) to share some files and folders 194 between my devices. It is a nice and flexible piece of software that does 195 not rely on any centralized service. I use it both to keep important files 196 synchronized between my main devices and to quickly exchange 197 data locally between my phone and my laptop (e.g. pictures). One of the 198 advantages about its decentralized structure is that in the latter case 199 I do not need an internet connection (nor a cable). 200 201 After installing syncthing with 202 203 ``` 204 # pkg_add -u syncthing 205 ``` 206 207 I enabled the corresponding service 208 209 ``` 210 # rcctl enable syncthing 211 ``` 212 213 I also want it to run as my user instead as the default `_syncthing` user: 214 215 ``` 216 # rcctl set syncthing user sebastiano 217 ``` 218 219 Finally, I had to adjust the file descriptor limits. As documented in the 220 official doc `/usr/local/share/doc/pkg-readmes/syncthing`: 221 222 ``` 223 Syncthing is fairly hungry for file descriptors and the default limits may be 224 insufficient. On OpenBSD, Syncthing uses kqueue(2) to "watch" files, and since 225 kqueue(2) doesn't support recursive watching, each file has be watched 226 individually. The upshot of this is that each file in a watched folder will use 227 one file descriptor. 228 229 If you run Syncthing via the rc.d(8) script, then you can give 230 Syncthing more file descriptors by adding the following to login.conf(5): 231 232 syncthing:\ 233 :openfiles-cur=4096:\ 234 :openfiles-max=4096:\ 235 :tc=daemon: 236 237 Don't forget to rebuild the login.conf.db file (if necessary): 238 239 # [ -f /etc/login.conf.db ] && cap_mkdb /etc/login.conf 240 241 Note that in addition to ulimits, there is a kernel-level file descriptor limit 242 which may also need to be adjusted. This limit is managed through the 243 kern.maxfiles sysctl(8). 244 ``` 245 246 So let's be generous and set these limits very high: 247 248 ``` 249 # echo "kern.maxfiles=4000000" > /etc/sysctl.conf 250 # cat > /etc/login.conf 251 252 syncthing:\ 253 :openfiles-cur=1000000:\ 254 :openfiles-max=1000000:\ 255 :tc=daemon: 256 ^D 257 ``` 258 259 I can then configure syncthing using its web-based interface. To avoid 260 opening up a full-fledged web browser on this poor little thing, I can 261 use *ssh port forwarding* from my other laptop: 262 263 ``` 264 # ssh -N -L 8888:localhost:8384 darkstar 265 ``` 266 267 (I won't go into detail on this command; `darkstar` is the hostname of my 268 netbook, `8384` is syncthing's default port for its web-based interface, 269 `8888` was picked arbitrarily.) 270 271 I can then open `http://localhost:8888` from my other laptop to access 272 my netbook's syncthing configuration and add other devices and shared 273 folders. 274 275 ### All the rest 276 277 Now all that is left to do is pretty straightforward: install some more programs 278 (such as a browser, a media player and a pdf reader), copy my config files (e.g. 279 `.profile`, `.nexrc`) from my shared folder, clone some of my git repos. 280 281 Nothing that is worth describing in detail here. 282 283 ## Conclusions 284 285 I like my netbook, and I am glad that I found some practical use for 286 it even after 12 years. Its size make it a nice sofa companion, and 287 its clicky keyboard is just a pleasure to type on - much better than the 288 mushy one of my main laptop! It is always a pleasure for me to make good 289 use of a piece of hardware that most people would consider obsolete and 290 throw away without thinking about it twice. 291 292 Netbooks were not successful in their time, but I think similar devices 293 could find their niche today. After all, 13" laptops are quite popular 294 among the few who actually need one over a tablet or a smartphone. I 295 am even considering getting an 11" laptop as my next main device - but 296 of course I would never replace my current one as long as it is working 297 fine :-) 298 299 Long live netbooks! 300 301 To conclude, here is a picture of my netbook being used to write this 302 very post: 303 304 ![My netbook working on this blog post](final.jpg)