A bit of Context
When in the course of 2011 it became apparent that Netbooks saw interesting sales figures, especially the low-powered Atom netbooks, often running some form of Linux, it was only natural that hardware vendors started talking about even lower-power portable devices. I was thrilled by the fact that an ARM powered laptop could be launched in 2012, and when the Raspberry Pi story began in earnest at the end of that year, I decided that I needed to do a port of Slackware to the ARM architecure in order to be prepared for the flood of cool devices. But hey! I hear you say… an ARM port of Slackware already exists! Yes indeed, Stuart Winter had been developing his SlackwareARM (formerly ARMedslack) port for a long time. In fact, the characteristics of the ARM based devices were so different from regular Intel-compatible computers that ARMedslack package build scripts had to be vastly modified and the sources heavily patched to produce working packages. Also, since Stuart is working alone on the port, he chose for a large degree of automation of his build environent and -scripts which made the source tree of the ARMedslack port pretty much incompatible with the official Slackware source tree in terms of interchangeability. But my goals were different:
- I wanted to create a port using SlackBuild scripts which are compatible with official Slackware – i.e. Pat Volkerding should be able to just grab an unaltered script for the ARM port and build a 64-bit Slackware package with it. And eventually, the ARM port would be able to merge with official Slackware sources
- I want to target modern ARM architectures. SlackwareARM targets older generations of ARM CPU’s – notably those are small embedded devices (like your home NAS, or WAN router) that lack hardware floating point support or with a somewhat older ARMv6 CPU (the Raspberry Pi). But I wanted to use my port on “powerful” ARM tablets, and/or laptops and squeeze every bit of performance out of those. While Stuart’s SlackwareARM will work on the new devices, my port will not work on those older devices!
- For me this was going to be a learning experience. I knew very little about ARM architecture, and I felt that I had to get intimately familiar with the many differences between a regular Intel-compatible computer and an ARM based device. Therefore I wanted to build a new Slackware from scratch, not re-using Stuart’s work unless to help me get the concepts clear. I did pick Stuart’s brains a lot though!
- Because I am an old and forgetful guy, the whole process should be properly documented. Creating the 64-bit port of Slackware in 2008/2009 took me a lot of time but I did not write down all that I did, and I have regrets about that.
So, I bought a TrimSlice computer, which is a small-formfactor fanless desktop computer basically, sporting one GB of RAM, a 32 GB SSD harddisk and a dual-core ARM CPU. I did use the donation money which had been slowly accumulating up to that point and shelled out 350 euros. Unfortunately, the little computer never became the hit I expected it to be (it is a real cool bit of hardware) and eventually my porting effort stalled for lack of motivation… I was not going to spend hundreds of hours on a port for a device which would be used by only one Slackware user… me.
I almost convinced myself to kick some new life into the port when ZaReason launched the ZaTab, a tablet which allows full root access and had fairly open hardware (unlike most tablets which are inaccessible pieces of shi^H^H^Htech). But again, the specs were not so great, and it never became the hit which would have convinced me I should spend hundreds of hours on getting Slackware running on it… let alone giving it a proper touch interface using KDE’s Plasma Active. So, that idea dried up as well.
And since this week, the Samsung ChromeBook can be bought in dutch shops. I had held a few of these laptops in my hands when friends and collegues brought them to the office. All of those were imported from the US, and they looked/felt/handled great. But, ChromeOS? They should be running Slackware, is what I am convinced of. Unfortunately, being the sole provider of income for my family and with a job that pays average, and without pay raises for a long time, I just do not have the financial room to buy a 300 euro laptop just to hack on it. That’s when I decided to ask for some financial backing.
Raising the Money to buy a real Device
What I did not expect to happen… I asked for 300 euros and lots of people donated in the 24 hours that followed. One of those donations was 299 euros (!) which was in itself enough to reach my goal. The supporters who left me a message basically said “do what you like with the money” which means that I have quite a bit left (more than 600 euros!) now that I have actually ordered a ChromeBook. That money will go into the purchase of additional hardware. I am going to finish an ARM port first, and then decide if the new hardware should be an ARM tablet, or another ARM based computer for which there is enough interest to make the work worthwhile. However, if any of you decides that you do need your money back, I will of course comply, without hard feelings.
I want to mention the people who made it possible for me to buy this computer. Some of them asked to remain anonymous and I will respect that. I will also not mention the amounts of money – I value all of your contributions equally. People paid what they could afford and that alone, gives me a warm feeling about our little community. Big thanks go out to (and I will keep this list updated):
- Daniel Cash
- Gudkov Ilya
- Abdur-Rahman Rozell
- Willy Sudiarto Raharjo
- GREGORY ZAYACHUK
- Gabriel Yong
- Michael Stewart
- Jaime Lee
- Andreas Vögele
- Patrick Volkerding
- Grzegorz Gibas
- FERENC KURUCZ
- Thomas Løcke
- Korneliusz Jarzębski
- Etienne Casaert
- Gil ANDRE
- Phillip Bevan
- Matthias Hambach
- Thiago Diniz Macena Silvino
- Didier COURTAUD
- Aurelio Bignoli
- Peter Vajo
- Ventrice Humphrey
- Guido Ascioti
- Corey Wells
- Henry Fanson
- Jason Laprade
- Roberto Puzzanghera
- Laurent Chamontin
- Christophe NGUYEN MINH TAN
- Neil Dick
- Chekkizhar N
- christian laubscher
- Jeff Ruby
- Andrew Conway
- Ger Wesselink
- Tomasz Ratajczak
- Ioan Szentpali
- Gunnar Florus
- Charles Coffee
- Isaque Galdino de Araujo
- Giovanni Milanesi
- John Johnson
- Marcin Herda
- g miller
- ISIS Productions, LLC
- Scott Searcy
And 4 further anonymous backers.
- I will resume my ARM hard-float porting effort (yes, this may affect the update frequency of other packages I maintain).
- That porting effort will not be “behind the curtains” like it has been so far. I will upload packages and scripts and will welcome ideas and feedback
- The Chromebook will be the target hardware to build a bootable Slackware image.
- I will upload the from-scratch cross-compiler and minirootfs which I created already
- I am going to document on docs.slackware.com about porting to a new architecture from scratch.
- I will also tickle Pat Volkerding’s interest in the ARM port – seeing that he too, donated, tells me he is interested 🙂
I am going to work on cleaning up my existing set of scripts, and then build a place to host all of that. I had been thinking about setting up a repository on GitHub, but since I still need to host my binaries and packages, so I think I may just setup a GIT server on taper.alienbase.nl. After all it already is my primary package mirror, and it also hosts the Slackware Documentation Project. I have to wait for the delivery of the laptop anyway, and I should at least attempt to boot my current half-way port on the TrimSlice before continuing on the ChromeBook (the TrimSlice has been running SlackwareARM until this moment…)
Update: I have not had the time to play a lot with the ChromeBook yet. What I have been concentrating on instead, is preparing a git repository for the cross-compiler & rootfs scripts, and for the package source tree: I am running way behind slackware-current but still, I have 876 packages compiled already… and their SlackBuild source directories will go public through a git repository as well. My git-fu was quite rusty, and I have been reading the git book chapters on setting up a git server. I am now playing around with commit access versus read-only cloning and getting a feel of managing it all. I will not be using a commercial provider like GitHub, as I simply consider this another learning experience 🙂
Well, here it is, right after running through the initial configuration.
I did not have much time at work, where I had it delivered this morning. However I made sure that I did a hard reset of the local configuration in order to bring it into “developer mode” where you get root console access to the underlying ChromeOS. The instructions for entering developer mode can be found on the Samsung Chromebook specific page on the Chromium OS Wiki (Chromium OS is the Open Source variant of the ChromeOS which runs on the laptop).
There is no more time today, but this weekend I am going to dump my ARM rootfs on a SD card and see if the ChromeOS kernel will actually boot my binaries. Fedora and ARM community have a page on that topic and Arch has a bootable image even, which I could inspect. I’ll talk to Stuart too.
The scripts, patches and tools are maintained in a GIT repository: http://taper.alienbase.nl/gitweb/
Source tarballs, tools and scripts can also be found here: http://taper.alienbase.nl/mirrors/alienarm/bootstrap/
I also uploaded the packages which were created from those sources: http://taper.alienbase.nl/mirrors/alienarm/slackware/
If you want to play with a small root filesystem containing armv7hl binaries (the one that gets created by the “stage1.sh” bootstrapping script) you can download one here: http://taper.alienbase.nl/mirrors/alienarm/rootfs/armv7hl/tegra/