Hacker News new | past | comments | ask | show | jobs | submit login
DIY Laptop 64 bit ARM (olimex.wordpress.com)
202 points by Klasiaster on Nov 30, 2015 | hide | past | web | favorite | 78 comments

There are a few other ARM laptop projects that are interesting to watch as well:



I hope that it will be possible to boot stock Debian on them without the need for binary blob drivers or userspace programs.

Don't forget the Novena project:


Indeed, there is also http://www.lowrisc.org/about/. (not a laptop, but whole processor as open hardware).

I too am genuinely surprised that Novena wasn't the top comment here

The Asus C201 with Libreboot[1] should come very close to meeting your requirements. There is still some progress to be made on the GPU driver, but it's a usable system.

[1] http://libreboot.org/docs/hcl/c201.html

Thanks, how is the situation with the GPU on that device? Open source kernel&2D drivers, and binary blob for 3D driver?

Sadly yes. Mali is half finished, but it stalled.

However, with 2D drivers things are quite OK. This is a humble machine, so 3D acceleration is not that useful.

Lima seems dead. Meanwhile Freedreno has been getting active development for years. Where are all the Snapdragon Chromebooks?

I'd like to see something close to a solution where a fresh install of a common distro just works on the hardware... debian, ubuntu or similar preferred. It takes enough work to do so... what almost surprises me, is that there hasn't been an effort to make Ubuntu work out of the box, fresh after install on a macbook. There are a lot of macbooks that won't be seeing updates, but are more than servicable linux desktops.... I'd likely change mine over (mid-2014 rMBP) to Ubuntu if the post-install challenges weren't quite so daunting... that and Ubuntu seems to have removed the natural scrolling option.

I did a Debian Jessie install on a macbook pro last night. The only friction was setting up wifi, but I eventually figured that out with an ethernet connection and the wiki pages [1][2] and (particularly for my mid-2010 MBP/Broadcom BCM43224 adapter) [3].

I was slightly surprised at the setup needed, but once I understood why Debian don't want the default install to source non-free packages, it makes sense that you have to jump through that extra hoop.

[1] https://wiki.debian.org/MacBook/Wireless [2] https://wiki.debian.org/bcm43xx [3] https://wiki.debian.org/brcm80211

Is there still the problesm connecting/disconnecting ethernet after booting? My understanding is that apple broke thunderbolt in their interface in writing their drivers to handle connect/disconnect (iirc).

Does the scaling work okay? (I'm on a retina mbp)... IIRC the camera was another issue for recent macbooks.

Sorry, just noticed you're on a 2010... :-) ...I had an early 2011 before my current one, it was stolen a couple years ago. Used a chromebook for a while, even with RDP, but couldn't get it to VPN to work, so went back to an MBP.

I also thought you absolutely needed Ethernet in these cases, until I discovered http://cdimage.debian.org/cdimage/unofficial/non-free/cd-inc... . Yay Debian!

FYI Debian Jessie with Gnome 3 gives Ubuntu a run for its money, and has natural scrolling.

I found that I could activate natural scrolling through the GUI, but only for the trackpad. For the external mouse, there's no natural scrolling checkbox, and I'll need to change some config file.

Yea, I was thinking trackpad :/

I found these instructions helpful for getting Debian booting on a Macbook, without having to use refit/refind: https://gist.github.com/andrewlkho/23b5b5bcf853b3473421

Wifi doesn't work out of the box, but it's just a matter of putting the packages on a USB stick, and installing them.

I'm not sure rMBP users are the target audience for Ubuntu. Many people buy those machines in part due to the Apple ecosystem, not just for the nice hardware, so they wouldn't switch regardless of how easy the installer is.

Even so, a lot of us who use server-side Linux would happily convert our last generation rMBP to client-side Linux when we upgraded to a new machine if getting Linux completely working on a client machine changed from something to brag about ("I don't know what you're talking about; it's easy", as a way of saying, "easy for me, because I'm highly skilled") to something that was so reliable that it said nothing good at all about its user.

I really don't like being so dependant on Apple, a company that has decided to optimize its product designs for thinness, fashion, and ways for people to whom folders are "rocket science" to buy stuff and amuse themselves, for our client-side *nix workstations, but desktop Linux isn't as attractive a competitor as I keep wishing it were.

I agree with your overall point. I, too, wish that installing Debian on a Macbook were as easy as installing OSX on a Macbook, or as easy as installing Debian on a Thinkpad.

I'm not sure, though, that easy installation would make desktop Linux much more attractive for most users.

I can't speak for most users... but for current *nix users, it would be a very attractive alternative. I'd just assume use linux or windows over osx, except I prefer bash, and in windows it's a little wonky.

The GUI experience in osx is the most off for me. I'm used to hitting the super/win key, typing in an appname, then enter to open... similar between linux and windows... OSX doesn't do that... though my most-used apps are docked.

Not to mention my muscle memory is really pc centric, and going back and forth sucks. Even when I switch keys around, ctrl/cmd are backwards in terminal.. then to top it off, my work issued mbp is locked down so I can't use most of the apps that could switch it around per-app.

Right now it doesn't look like anyone's even tried running Debian on the 64-bit Allwinner SoC that Olimex are using or publicly documented just how open the official drivers for it are. Some of the recent Allwinner SoCs have been quite heavily reliant on binary blobs.

Didn't we already go through this dance with the Netbook fad a few years ago? Or is the idea that low end ARM chips are now powerful enough to make the Netbook idea work?

The netbook idea worked fine for me! (And my current portable is an old Thinkpad X60, which might as well be a netbook.) As far as I could tell the low-end market just got sucked into tablets when the iPad came out. Maybe the economics will work out a bit better now that the tablet hype is over and we've gone through another couple of transistor doublings.

Apple was also better at making a low-end simple application-like computing device than assorted OEMs and Microsoft ever were.

Looking back, it's obvious that Microsoft dropped the ball on that one. They could have made iWindows for people willing to sacrifice power, flexibility and freedom for mobility, reliability and ease-of-use.

Which makes me wonder why Ubuntu didn't take off on netbooks back then. Even today, this market segment seems perfect for desktop Linux, but nobody is enthusiastic about shipping it.

Well, Ubuntu's basically Windows if you squint. iOS and Android are very different compared to both.

I'm typing this on an original Asus EEEPC netbook, expanded the DRAM to 2GB but still works well for me.

I had an Eee 1000H for years - it was great! But the SSD eventually wore out, and by that point they were no longer selling netbooks.

I think the chromebooks have shown that ARM is perfectly serviceable in a low end laptop... I really like the smaller form factor, but really need more speed... x86 VMs are unfortunately an essential requirement for work.

I can see the reasoning behind the binary blob drivers but what's your reason for not liking userspace programs?

I think he means binary userspace programs.


This is great, I love the idea of building a complete laptop from the ground up to dispel all the "magic" that goes on inside a manufacturer built consumer model.

Hypothetically speaking, if I was a super-paranoid type who wanted to build my own laptop from scratch so that I trusted every component installed, how would I go about verifying the CPU / SOC was not a threat?

I guess I'm asking if there's anything equivalent to an MD5 checksum for hardware?

It seems that backdoors are being discovered in parts as esoteric as hard drive controller firmware, so I'm wondering if it's practical to believe I could build a personal computing device that is trustworthy.

According to Ken Thompson's lecture at his Turing Award, you can't:


Practically speaking, you can verify that it's unlikely that there is no backdoor, but it'd take a fair bit of effort.

Impractically speaking, you could singlehandedly reimplement decades of computer engineering starting with a pencil, paper, and a bucket of sand.

From NAND to Tetris in 12 steps


I prefer placing rocks in an infinite desert to simulate the the flow of data through a computer myself.

Model your threat and then mitigate it, for example if you are worried about China buy an Intel CPU made in the US, if you are worried about the US buy Huawei gear.

Lets just leave it at you don't posses the budget to make any reasonably legitimate claims about your op sec.

If one of your use cases is browsing the internet, you might as well just give up.

If they can put stuxnet on Iranian PLCs you're fucked, however, in reality no one really gives a shit about what porn you might be watching or whatever other irrelevant activities you might be doing.

"Stuxnet functions by targeting machines using the Microsoft Windows operating system and networks, then seeking out Siemens Step7 software."[0]

Needless to say, if you run Microsoft software, you're going to have a bad time.


The best you can do is use a processor with an open-source design. Stallman used a MIPS CPU like this for a while.

The processor Stallman was using wasn't open-source. The MIPS instruction set was opened up, but most of the implementations weren't.

But what about fabbing or the PLC? Can you verify those? or disk controllers, &c.

Bunnie huang also showed that even sdcards have potent microcontrollers ..

Seems a little backwards to me to design your case and then design the motherboard to fit inside it, but I've never built any laptops so I'll just watch and see where this goes.

This is Olimex's blog, and they design and sell dev boards, so it makes some kind of sense to leave the part that you have full control over to the end, I suppose.

Tooling for injection molded plastic is very expensive so for small-volume runs like this one it's likely cheaper and quicker to get off-the-shelf plastic.

The proper way would be to build all parts to fit each other, so you got everything done properly. I imagine that is how Apple does their things anyways.

You have to start somewhere to be able to set your constraints. If you already know how the hardware works and what will be required there. It makes sense to do a gross estimate for the enclosure and design a board to fit.

When I have kids, something like this is going to be their only hardware until they're around 15 or so.

Would you mind elaborating on your reasoning?

Can't speak for the parent, but I have similar thoughts with my kids. My reasoning is pretty simple: technology that's already finely packaged and integrated might as well be magic, and it really makes it hard to want to open the hood and tinker with stuff. Personally, I think tinkering with computers had a big impact on me because it revealed that computers are just another kind of machine, subject to tweaking and understanding. I don't think of them as inscrutable monoliths as a result. I'd like my kids to have that same attitude toward technology in general, so the more they can build for themselves, the better.

Regarding why it might be the only hardware, I'm probably not as extreme on that front, but I think I can understand the motivation. With a choice between the slick user experience of a well-integrated touch device or the hacked together experience of roll-your-own Linux on roll-your-own hardware, I'm not sure how many kids would voluntarily choose the harder (but ultimately more rewarding) road. A certain amount of struggle and adversity seems to be important for making knowledge seem worthwhile and for pushing kids to explore. My own kids are most proud of themselves when they do something that's not easy for them, even though they usually complain the whole time they're doing it.

Can't speak for the parent either, but this seems like a good setup to produce grandchildren that look in-depth at generic structures and understand how to (re)configure them into creative output, so I intend to take a similar approach.

When I was in grade school, I started reading library books, and gravitated towards the programming books. They were mostly BASIC on Apple IIe hardware. I used BASIC on whatever hardware I could get my hands on, and my mom bought me a calculator that had a BASIC interpreter. Even once we got a PC, its capabilities were sub-par. I didn't get a machine that reflected the state of the art until I built one myself in the late nineties.

Having severely-limited hardware made me invest lots and lots of time into figuring out how it worked. I would like to pass that experience on to my kids, so they can be masters of their own technology world instead of passive consumers of other peoples'.

Did you screw up your machine? Do you know how to re-install the OS? Here's a printout of the page that tells you how. Have data you didn't back up? Well, here's a protip, you can mount the hard disk on another machine, maybe your sister will let you use hers.

I had the same experience. With the Apple II machines, you could simply turn them on and punch BASIC into them straight away, which in retrospect, I think is a fantastic way to be introduced to programming.

I did the same with the C64. Another big advantage was: if it didn't work you just had to reset it and everything was fine (OS in ROM).

My brother let me tinker with his C64 (when I was about 10 years old) and that started my career in programming.

I don't want to speak for vinceguidry but when I was a teen my first car was a Mazda RX-4 with a blown tip seal. My job (with Dad's guidance) was to swap the blown motor for a fresh one and if I could get the car running it would be mine. I remember fondly both the car and the time I spent wrenching on it with my Dad.

> if I could get the [X] running it would be mine

This is huge. As a kid, this would motivate me to learn everything about X. Heck, for many values of X, I would find this motivating today!!

I love it.

But how did he handle the knowledge gap, where he could help but you would benefit from working through it yourself?

I imagine the same way I would do it, by having them try it out, fail, then explain where they went wrong. Do it for them, then undo it and have them try again.

Thank you for a wonderful idea.

The problem is the keyboards. I fancy the concept of having a small ARM laptop, but I'm too accustomed to Thinkpad's and mechanical keyboards.

Something like a Thinkpad 701C or the Zeos Pocket PC would be my dream for a portable note taking device.

Aren't both of those just robust rubber domes with scissor switches? The quality of portable Bluetooth keyboards with those specs have steadily improved.

If you're looking for a portable Thinkpad-quality keyboard, the closest thing you're going to get was ironically originally made for Pocket PCs years ago -- it's a 4-segment folding keyboard, the design of which appears to have been updated to work with Bluetooth and is now selling as the ludicrously overpriced "Amigo 2.0" or the Chinese-branded GK 308.

You probably could get a spare-part Thinkpad keyboard to work somehow, if it doesn't already speak USB internally.

I'm intrigued by ARM machines in general. I want to see where this goes.

This looks very promising as a laptop that could be upgrade-able like a desktop PC.

Hope to see more about this :)

I'd get one in a heartbeat if it had a full hd screen and an old thinkpad like keyboard with a nub. Seriously, ready to give up on the wintel boxes as of yesterday.

I'd really like to see a laptop built on Nvidias X1. Maybe projects like this will push ARM on laptops?

Hardware isn't the problem and hasn't been for some time, software is. Partly because Android is Linux for chip manufacturers. Once there is something software wise that enough people want to buy and use the hardware itself is, at least somewhat, straight forward.

Well, Chromebooks do linux, sort of. And they are pretty fast, sort of. It would be have to have a hardware that's faster and supports full OpenGl. Nvidia does have their linux for Tegra thing. But yeah, better software would definitely be nice, too.

Well there are two ringing endorsements, sort of.

They're also super cheap, super light, and have super long battery. And ARM is interesting. I've been liking it since back in the day hacking on the Game Boy Advance.

How can this thing be 64-bit ARM when it doesn't even have a motherboard or processor?

Sounds interesting! Does anyone know anything about how much it might end up costing.

Cortex A53? Nice toy but A57 or A72 would make much more sense in laptop form factor.

A53s are the low power (& low performance) 64 bit ARM cores. They are sort of equivalent to the 32 bit A7. A57 is sort of equivalent to the A15 - high power and high performance, so not quite so useful for laptops.

Having said all that:

- I have a Samsung Chromebook 2012 which is dual A15. It still has great battery life.

- What's really going to be interesting are laptops based around the 64 bit big.LITTLE, for example the Snapdragon (either dual or quad A57 + quad A53), where, if the kernel is smart enough, you can trade battery life for performance depending on what the user is doing.

- What's really going to be interesting are laptops based around the 64 bit big.LITTLE, for example the Snapdragon (either dual or quad A57 + quad A53), where, if the kernel is smart enough, you can trade battery life for performance depending on what the user is doing.

Now this would be very interesting indeed!

The cool thing about Olimex is that their hardware designs are open-source, so anyone could make a compatible motherboard with the faster chips.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact