Novena: OpenSource-Laptop

Andrew „Bunnie“ Huang und Sean “xobs” Cross haben sich vor 1,5 Jahren das Ziel gesetzt, einen eigenen Laptop zu bauen. Einen OpenSource-Laptop. Einen Laptop um Hardware zu hacken.

Andrew sagt in seinem Blog zwar, das es eine relativ nutzlose Beschäftigung sei, aber das hätte noch niemanden abgehalten.

Building your own laptop makes about as much sense as retrofitting a Honda Civic with a 1000hp motor, but the lack of practicality never stopped the latter activity, nor ours.

Seine primäre Motivation  war die Entscheidung etwas zu bauen das er häufig benutzt. Ein gutes Bett hatte er schon, also viel die Wahl auf den Laptop. Der Zweite Grund fand sich in dem Umstand, das er etwas neues über Hardware lernen wollte. Der dritte Grund war seine Begeisterung für offene Hardware, sein Wunsch in alles hineinzuschauen, und sein Motto: Wenn Du es nicht hacken kannst, gehört es nicht Dir.

The final bit of motivation is my passion for Open hardware. I’m a big fan of opening up the blueprints for the hardware you run – if you can’t Hack it, you don’t Own it.

Die Ziele die sich die beiden für ihr Projekt gesetzt haben, sind umfangreich, und bergen eine Menge interessanter Ansätze. Diese Ansätze führen zu reichlich neuen Schwiergkeiten und Vorteilen.

Freie Wahl der Komponenten bis hin zum Display bedingt die Auswahl von gut verfügbaren Komponenten. Zwei Netzwerkschnittstellen, eingebundene FPGA, flexible Wahl der Akkus, offen zugängliches Gehäuse, … .

Novena Laptop

Alles in allem sollte es ein flexibler Laptop werden, mit dem und an dem man Hardware- und Sicherheits-Hacks genau so gut wie beinahe beliebige Veränderungen vornehmen konnte.

  • All the components should have a reasonably complete set of NDA-free documentation. This single requirement alone culled many choices. For example, Freescale is the only SoC vendor in this performance class where you can simply go to their website, click a link, and download a mostly complete 6,000-page programming manual. It’s a ballsy move on their part and I commend them for the effort.

  • Low cost is not an objective. I’m not looking to build a crippled platform based on some entry-level single-core SoC just so I can compete price-wise with the likes of Broadcom’s non-profit Raspberry Pi platform.

  • On the other hand, I can’t spec in unicorn hair, although I come close to that by making the outer case from genuine leather (I love that my laptop smells of leather when it runs). All the chips are ideally available off the shelf from distributors like Digi-Key and have at least a five year production lifetime.

  • Batteries are based off of cheap and commonly available packs used in RC hobby circles, enabling users to make the choice between battery pack size, runtime, and mass. This makes answering the question of “what’s the battery life” a bit hard to answer – it’s really up to you – although one planned scenario is the trans-Siberian railroad trek, which is a week-long trip with no power outlets.

  • The display should also be user-configurable. The US supply chain is weak when it comes to raw high-end LCD panels, and also to address the aforementioned trans-Siberian scenario, we’d need the ability to drive a low-power display like a Pixel Qi, but not make it a permanent choice. So, I designed the main board to work with a cheap LCD adapter board for maximum flexibility.

  • No binary blobs should be required to boot and operate the system for the scenarios I care about. This one is a bit tricky, as it heavily limits the wifi card selection, I don’t use the GPU, and I rely on software-only decoders for video. But overall, the bet paid off; the laptop is still very usable in a binary-blob free state. We prepared and gave a talk recently at 30C3 using only the laptops.

  • The physical design should be accessible – no need to remove a dozen screws just to pull off the keyboard. This design requires removing just two screws.

  • The design doesn’t have to be particularly thin or light; I’d be happy if it was on par with the 3cm-thick Thinkpads or Inspirons I would use back in the mid 2000′s.

  • The machine must be useful as a hardware hacking platform. This drives the rather unique inclusion of an FPGA into the mainboard.

  • The machine must be useful as a security hacking platform. This drives the other unusual inclusion of two Ethernet interfaces, a USB OTG port, and the addition of 256 MiB DDR3 RAM and a high-speed expansion connector off of the FPGA.

  • The machine must be able to build its own firmware from source. This drives certain minimum performance specs and mandates the inclusion of a SATA interface for running off of an SSD.

Nun, 1,5 Jahre später, sind zwei Prototypen fertig. Und komplett OpenSource, für jedermann nachbaubar. Wie gut die Prototypen funktionieren konnte man sehen, als die beiden Entwickler den SD-Karten-Hack auf der 30C3 mit eben diesen Geräten vorgeführt haben: Die Microcontroller auf den SD-Karten so ändern, das sie Schadcode ausführen.

Novena Prototypen

Das Feedback zu den Geräten ist dabei so positiv, das die beiden jetzt eine Crouwdfunding-Kampagne starten um ein Modell mit Gehäuse zu produzieren.

Alles in allem: Glückwunsch, ganze Arbeit!

Der Blog von Andrew: Article on Novena

Der Blog von Sean: Novena Bootloader

Das Wiki mit allen Sourcen und Layouts: Novena Wiki

Makezine-Artikel: Building an Open Source Laptop

Golem: Open-Source-Laptop für Hacker

Golem: Chumby-Mitbegründer entwickelt offene Laptop-Platine

Der SD-Karten-Hack:

Heise: Trau niemals einer Speicherkarte

Golem: Offene SD-Karten für eingebettete Trojaner