Installing Arch Linux ARM on the HP Chromebook 11
I concluded in my previous post about the HP Chromebook 11 that it’s a good device for casually browsing the internet, but it’s no replacement for a regular laptop or desktop for getting stuff done.

Since that post I’ve not used the Chromebook very much, so with a vacant weekend I’ve decided to blow the dust off of the Chromebook and try to squeeze some more functionality out of it.
Enter Arch Linux for ARM.
This guide will take you through installing Arch Linux ARM on a USB stick that can be booted by your HP Chromebook 11. I’ll also explain how to go a step further and remove Chrome OS from your HP Chromebook 11 and install Arch Linux ARM directly on the eMMC (internal memory).
Prerequisits
- HP Chromebook 11
- USB Stick (2GB should be enough)
- Some time (an hour or so)
Pre-install steps
First of all, your Chromebook must be in Developer Mode. To do this, either boot while holding esc + refresh + power, or press those three keys while the Chromebook is booted.
When the device reboots it will present you with a scary message, where you should then press ctrl + D to enable Developer mode. It’ll take a couple of minutes to download and install the Developer Mode files, but when it’s done and it reboots, you can then boot Chrome OS by again pressing ctrl + D at the boot screen.
Next, you need to join your Wifi network, and then you can choose to ‘browse as guest’ or sign in to your Google profile. If you’re going to be installing to the eMMC later, it’ll be easier to just browse as guest.
When you’re logged in to Chrome, press ctrl + alt + T to open the crosh terminal. Here you can become root and enable USB booting:
$ shell
$ sudo su -
$ crossystem dev_boot_usb=1 dev_boot_signed_only=0
Using my install.sh to install Arch
Insert your USB stick, and dismiss any of the File Browser windows that open. Now, in your terminal execute the following commands, where /dev/sda is your USB stick:
$ cd /home/root
$ wget https://raw.githubusercontent.com/omgmog/archarm-usb-hp-chromebook-11/master/install.sh
$ sh install.sh /dev/sda
You’ll be prompted through the process, it shouldn’t take very long.
After the install.sh has finished creating the USB stick, you can reboot your Chromebook, and then press ctrl + U at the boot screen to boot from USB.
Login as root, with no password. You can turn on Wifi and connect to your Wifi network using the following:
$ wifi-menu mlan0
If you want to finish here, I would suggest using my post-install.sh to install Mate and lightdm, then get on with enjoying your new Arch install.
$ pacman -S wget
$ wget https://raw2.github.com/omgmog/archarm-usb-hp-chromebook-11/master/post-install.sh
$ sh post-install.sh
If you’re feeling hardcore, why stop here? Let’s install to the eMMC!
Installing Arch to the eMMC on the Chromebook
Just like with installing to the USB stick, you need to download the install.sh and then invoke it, but this time specify /dev/mmcblk0
$ pacman -S wget
$ wget https://raw2.github.com/omgmog/archarm-usb-hp-chromebook-11/master/install.sh
$ sh install.sh /dev/mmcblk0
The installer will set up the partitions as before, install Arch, and then configure the Kernel so that your Chromebook can boot in to Arch.
Regarding the modification of the PKGBUILD for trousers:
This is the only package you need to modify. When prompted, press y to edit, open in nano or your preferred text editor, find the line that reads:
arch=('i686' 'x86_64')
and replace it with
arch=('armv7h')
Doing real work on the HP Chromebook 11

Now that you’ve got Arch installed you can start using the Chromebook to do some real work. I use Geany as my text editor, have git, ruby, gem, jekyll and many other important applications installed.
I even authored this blog post from Arch on my Chromebook!
Let me know if you have any problems, or if you can improve the process in any way.
Mentioned elsewhere on this site
- Video: Installing Arch Linux ARM on the HP Chromebook 11
Just to follow up from my earlier post about Installing Arch Linux on the HP Chromebook 11, I’ve put together a video of the process to show how simple it…
- Max Glenister Uses This
…I’ve been getting in to organising hackdays, building an arcade table in to a coffee table (still WIP!) and installing Arch Linux on the HP Chromebook 11.
Related posts
- Making suspend on lid-close work with Arch Linux on the HP Chromebook 11
The more time that I spend using Arch Linux on my HP Chromebook 11, the more things I find to tweak and tinker with (like getting a proper editor working with Zed). The latest thing I’ve addressed is making suspend work when the lid is closed. After speaking to my resident Arch guru about it, he pointed me to a blog post that he wrote on the subject, before actually showing me how to make it work.
- Using the Zed editor with Arch Linux ARM on your Chromebook
I’ve been using Arch Linux on my HP Chromebook 11 for a little while now. One of the problems I’ve had with the setup has been that Sublime Text is not available for the ARM architecture.
- Running a Tailscale exit node in a local VM
I run Tailscale on my laptops, phone and NAS, and wanted to add an exit node so I could route traffic through my own connection when I’m out and about. The obvious place to put it was the NAS, since it’s already always on, but the NAS also holds everything I’d least like exposed if something went wrong. Making it double up as an exit node, with every device’s outbound traffic flowing through it, didn’t sit right. What I wanted instead was a disposable, isolated VM living on the same machine doing that job, leaving the NAS untouched.
Discussion
- 2014
- R
I’m having issues getting this to work. I encounter the following issues during the install process:”[: 13: Illegal number /dev/sda” - This is thrown at the start, doesn’t seem to cause any actual issues. It still recognizes /dev/sda as my paramMounting Filesystems from /dev/sda”mount: /dev/sda3 already mounted or /tmp/root busy”“mount: according to mtab, /dev/sda3 is already mounted on /tmp/root””[: 109: Illegal number: /dev/sda”I’ve tried forcing a umount of /tmp/root before this step.Writing uboot to /dev/sda11360+0 records in1360+0 records out”umount: /tmp/root: device is busy.”Nothing seems to outright fail, but trying to boot with Ctrl+U just results in a beep, and it returning to the Recovery Menu
- R
I’m using a 32GB drive.I had to replace the $P variables with the actual partitions, but I was able to run the partition script without any troubles.
- R
I went through the script and did each of the steps manually.I think the illegal number error is due to on line 11, using -eq to compare strings.The first resource busy error was due to /tmp/root not being unmounted before trying to remount it.The second error was do to trying to umount /tmp/root when /tmp/root/dev, /tmp/root/proc, etc were still mounted. umounting them in reverse order doesn’t cause any issues.So, nothing seems to have failed in the script, just some warnings. However, it still won’t boot from the flash drive.So I’m wondering if I’m doing something wrong at the boot prompt or if I missed a step.
- R
I believe my problem is the same one outlined here: http://archlinuxarm.org/for…Basically, larger drives may initialize too slowly for U-BOOT to detect them. There’s a patch, but it hasn’t been merged in.I tried the install script on a 16GB drive and it booted just fine.Thanks for your help.
- R
Hey. thanks for this. It was super helpful. Two things I noticed: When installing on mmcblk0 afterwards it doesn’t recognize the terminal so I needed to switch my environment to TERM=rxvt in order to get the wifi-menu working so I can do anything else.Also my chromebook won’t wake from sleep and the window manager won’t load when I come back from terminal using CTRL-ALT-F7. Haven’t solved that one.
- PN
Hi. Thanks for writing this up. I got as far as running the ‘sh install.sh /dev/sda’ and got two error lines in response:install.sh: 12: declare: not foundinstall.sh: 13: Syntax error: “(“ unexpectedDidn’t get any further. Does that mean anything to you?
- PN
OK. I have run those two lines manually and they work correctly. But they won’t work within the script. So I am guessing that for whatever reason the script can’t find the declare command. Does that help at all?The script is running in the /home/root directory
- PN
Thanks. That’s sorted it. Thanks for the prompt response.
- JM
I’ve ran through the steps a few times. I’ve followed the steps to install it on the eMMC but I get 5 choices for libgl when I go through the post installation script. When I install the followinig packages step by step, mate-extra & lightdm-gtk2-greeter cause the following text to appear.resolving dependencies…:: There are 5 providers available for libgl::: Repository extra1) mesa-libgl:: Repository alarm2) gpu-viv-bin-mx6q-dfb 3) gpu-viv-bin-mx6q-fb 4) gpu-viv-bin-mx6q-wl 5) gpu-viv-bin-mx6q-x11After I select the default (1) choice, it proceeds with the installation. When it tries to change directories to /etc/X11/xorg.conf.d/ it fails to do that & then downloads the 10-monitor & 50-touchpad files into the current directory I started in. No problem, I make the directory & copy the files in there. When I reboot my HP chromebook 11 it comes up with a blank screen. Any ideas on what I’m doing wrong & did you come across these problems? Searching the web for answers with the libgl dependency is scarce. Thanks for your time.
- JM
I figured out the problem. When I ran your script, there was an unresolveable conflict between mate & mate-extra. This caused it to stop installing the remaining packages within that command. Also, I installed all of the packages that started with X, but I don’t know if that made a difference. Thanks for your blog post & video for how to install arch!
- T
How difficult would it be to install Debian and LUKS partition encryption on this machine? Any tips? Great work, - if it weren’t for this article and your script, I might have passed on ordering a Chromebook. Thanks!
- S
i keep getting a watchdog messege over and over again help?
- S
it says mmcblk0 dose not exist ? and wont install to to hard emmc?
- B
I successfully installed arch to my usb stick using your installer script, but when attempting to boot using
CTRL + U, my chromebook 11 just beeps at me and throws me back to that screen; Any idea what might be wrong? - S
yeah it did that to me aswell try using a diffrent usb 4gb worked for me as the 8gb didnt?
- R
I’ve followed all of these steps but all I ended up with was a blank screen…..all the steps completed corretly…but I has to install yaourt and trousers manually, because the install.sh script didn’t install everything correctly. Any ideas on how I can fix this blank screen? I probably bricked the device :x
- R
pacman -Syyu yaourt devtools-alarm base-devel git libyaml parted dosfstoolsThis line in install.sh causes problems. yaourt is not available in pacman repo, so need to add line to /etc/pacman.conf for this to work[archlinuxfr]SigLevel = NeverServer = http://repo.archlinux.fr/arm/This will then install yaourt from pacman: pacman -Sy yaourtThen you can install base-devel from packman, which allows you to install trousers.I did this, but still get blank screen on ctrl + d on boot?Hmmm..
- R
Hello Max,I get he error dd: failed to open ‘arch-eMMC.kpart’ no such file or directory on the last step, any ideas?
- RM
Hello Max, the file arch-eMMC.kpart doesn’t exist, anywhere I can generate or copy this into the correct directory? Thanks, Richard.
- RM
Got the error : Error reading keyblockThis file doesn’t exist :/usr/share/vboot/devkeys/kernel.keyblockAny ideas?Thanks for your replys thus far Max.
- RM
I cant actually boot into ChromeOS as I get that blank screen, will I have to recover ChromeOS and then do all of the steps again, do you think? Or is there an alternative?Thanks.
- RM
I got it, thanks. Ill let you know how it goes. Thanks for your help. Richard.
- RM
Hello Max, Luckily I had a spare arch USB lying around so I managed to get the kernel files off there, upload them to FTP and wget them back onto the USB instance, phew! All working now and I have CTRL+D into arch from boot menu. Thanks for all of your help.Richard.
- RM
Hello Max, sorry to bother you again. I got as far as the command line from CTRL+D but when I start x I just get another blank screen? I have done $X -configure and copied your .conf files to /etc/X11/xorg.conf.d but doesn’t seem to work? Do you need to work on the post-install.sh script? Richard
- RM
I have solved the issues, thanks for the tutorial, it’s a very good start for someone looking to do this on their chromebook, however I think that you need to fully understand the entire process in order to get this working. Simply running the install script will most likely not work for the majority of people.All the best, Richard.
- CD
Would this allow me to use Skype with chromebook 11’s camera/microphone?
- PK
Can I make HP Chromebook 11 Android and ArchLinuxARM dual boot system? Can I perform regular LAMP development work on HP Chromebook 11? Please confirm.
- PK
Thanks for reply. I am in the search of a computer in which I can install both Android and ArchLinuxARM. If you know such a computer then please send me its details. I shall be thankful to you for this.
- M
Is there any chance to enable USB boot without booting? Is like I’m stuck at boot. I managed to use the shell code, but after rebooting it is not saved so I’m locked off.Even developer login seems not to work pressing ctrl d I’m stuck in a view to check/uncked for safe check.Any advice?
- B
Works great for creating the USB to boot to. But when trying to install to eMMC it gives some errors and then things start to kerplode:> Cannot resolve “package-query>=1.4” a dependency of “yaourt”.> The following package cannot be upgraded due to unresolvable dependencies: yaourt> Do you want to skip the above package for this upgrade?
- S
I have the same problem, even try to install package-query from source by makepkg -si, but no lucky. Any idea here?
- B
I’ve just been working from the USB drive if I want to mess with Arch Linux. I had managed to get it working pretty well a couple of times by manually installing and fixing a few things. But it got a little painful when I’d break things and had to start all over again. I feel like at some point one of us will take the initiative to take what’s here and get it updated so that it’s working smoothly again; but in the meantime it’s tough with all the pieces that need to come together.
- B
It’s still a great project and I learned a ton. Thanks so much for putting all this together.
- Z
So just how well does it run? I’m sure it’s not speedy but is it at least acceptable?
- Z
So editing documents and light development (python) is fine?
- J
Great Article, but I’m curious : do you get any kind of Hardware acceleration (3D ? ) out of this ? what FPS does glxgears give you ?
- AT
Hi Max,I’ve got to booting off the USB and installing, but I’m getting an error when I try to start X. It stops after trying to load GLX and dumps back to the command line. Checking the logs the message is ‘EXYNOS_BO_MAP failed: invalid argument’. I also noticed some errors further back in the log file relating to the ‘fb’ extension. Google has failed me unfortunately.Do you have any idea what might be going wrong please?Thank you
- AT
Thanks for the quick reply Max.I asked on #archlinux-arm too, and the only thing they could think of was that it might be something to do with the DRM module, but I don’t know where to go from there.Any info (even if its just broken for now) would be greatly appreciated. Thank you :)
- J
What’s it like Hardware-Acceleration wise ? any 3D Support ?
- B
Thanks for the post, Max. Any idea if your script would work on the Samsung ARM Chromebook?
- B
Nice! That’s awesome Max thanks so much. I’ll take a look this weekend and delve back into the darkness that is Linux.
- B
I only get around 120fps with xf86-video-fbdev, care to share your xorg config or any package I may miss?
- B
Worked like a charm. Thanks so much man this is perfect.
- B
Just wanted to confirm that this is so awesome and it works great for anyone wanting to dust off their Chromebook. I’ve been sucked into it for hours installing things with pacman and tinkering. Thanks again, Max.
- B
Many thanks!
- JO
Hi Max, thank you for posting this.I had a couple of issues though:The link https://github.com/jquagga/…changed to:https://github.com/jquagga/…That was the easy one, my real problem is that there is no boot directory in my HP Chromebook 11 file system. Not in /root or /home/root.Have HP updated their file structure??Best regardsJohn
- K
He said it has 2% less battery, not that it only had 2% battery.
- BL
The Chromebook 11 only has 16GB of internal storage, has this been a problem for you?
- PK
is there a way to create a android live-usb on a hp chromebook ?
- DF
Hi Max,When I try to boot from the USB it says:** Unable to read “/u-boot/boot.scr.uimg” from usb 0:12**.Repeated the prior steps twice now and same result. Any ideas?
- DF
Thanks Max,I’ll give it a go when I have a few minutes and let you know!
- K
Got everything up and running after I realized that you have to use a USB 2.0 drive. I am now having issues with the audio not working at all. Please help if you can.
- K
Nevermind. I got the audio working, now to get the microphone working.
- A
How did you fix the audio? I’m still frozen there.
- PN
Hi. Just returned to this script after a few months, and it looks as if it may be broken in that it is unable to locate either parted or partprobe. I have checked that the path is set up correctly, and manually checked the directories, and they are not present. Having done a bit of research it appears that a recent update to ChromeOS has replaced them with some other similar utilities e.g partx.
- A
Sorry Max, can you please provide some directions on how to make the audio work? The drivers were copied from the chromebook, and I can see a DAISY device in the preference panels, but it’s not working, and I don’t know were to start debugging it. Thank you!
- PN
Max, will do. Thanks for the very prompt response. I’ll check it out in the morning and get back to you.
- PN
Hi Max. Ok i tried this and have had a number of issues I have been working through which all seem to be based around the partx tool having problems reading the partition table (msdos) of my USB drive. After writing a new partition table (gpt) with fdisk, partx was able to proceed, although I got a could not stat /dev/sda12 error. Although running partx -l /dev/sda confirms that sda12 is there.Eventually the script ran to a conclusion but on reboot I get the following:** Unable to use usb 0:12 for fatload **Loading file “/boot/vmlinux.uimg” from usb 0:3 (Root)…and the boot hangs there. I am guessing this has something to do with the /dev/sda12 error mentioned above. I’ll have another couple of goes to see if I can get partx to read all the partitions correctly.
- PN
Just a further update, another run went through without any obvious errors, but on boot I got a bad image error. At this point I am thinking there could be an issue with the USB drive, so I’ll try a different one later and see how that goes.
- A
and after completely wiping Chrome OS and replacing it with ArchLinux, how would one go back?
- L
I’m trying to run the patched script but it’s failing since it can’t find cpgt. Any suggestions?
- 2015
- H
Hi every one, I’m getting real mad since yesterday, I’m trying to install Arch on my hp chromebook 11 but it fails again and again… My bootable key is ready but at computer reboot, I’ve got errors :Reading /u-boot/boot.scr.uimg349 bytes read## Executing script at 42000000Loading file “/Vmlinux.uimg” from usb device 0:2 (kernel)File not found /Vmlinux.uimg Card did not respond to voltage select!mmc_init err -17, time 11297mmc1(part 0) is current devicemmc_init err -19, time 3759Partition 12 not valid on device 1**Unable to use mmc 1:12 for fatloadBad partition 2ERROR: Could not boot from USB or SDSMDK5250#=Unknown command ‘=’ -try ‘help’I’ve tried to make it on sevral USB keys and SD Cards nothing works…I really want to replace chrome os by arch so if anyone could help, it would be great !!!thanks in advanceregardsthibault
- B
Hi Max, just wondering are you still using the chromebook or have you upgraded?
- 2017
- A
How can I login as root after installing install.sh on a usb and rebooting and entering ctrl + u?What is the command?
Join the conversation
Reply from your own site with a Webmention (how?).
