Install Linux Debian on the Samsung “Alex” Chromebook (x86, not ARM)

November 14th, 2012

Note: this guide only works for the Chromebooks that have a x86 processor (the Intel Atom). If your Chromebook has an ARM processor you might want to check this other guide: https://chromeos-cr48.blogspot.com/2012/10/arm-chrubuntu-1204-alpha-1-now.html

After becoming a semi-finalist for the Google Apps Developer Challenge 2012 with my HTML5 Photo Viewer application I received from Google a brand new Samsung Chromebook! I have tried the Chrome OS for a bit and I think it’s awesome those people that need a PC exclusively for browsing the web, writing e-mails and occasionally videochat. But if you have followed my blog, you know that I want to get the most out of my hardware (and you probably do too)!

It turns out that you cannot boot whatever you want from the USB drive. The Chromebook will complain that it is not a valid ChromeOS installation drive. This means that without opening the case and tinkering with the hardware you cannot install Windows or boot a regular Linux image. We can however make a new partition, copy an existing installation of Linux to it, make a copy of the ChromeOS kernel and modify the partition table to make it the default boot partition. The following steps are based on the instructions I found on this page. I included some more details and modified the installer script to make a few extra security checks.

  1. Turn off your Chromebook.
  2. Open the lid to the left of the Chromebook logo. There is a small switch that can be turned on or off. Use a small clip to switch it to enable developer mode.
  3. Turn on the Chromebook. At the blue screen where you are asked to recover ChromeOS, press CTRL+D. This will boot the computer in developer mode.
  4. Select a WiFi connection, then press CTRL+ ALT + → (two keys to the right of the ESC button).
  5. From the console, log-in with the user chronos.
  6. Type sudo su to gain privileged access.
  7. Enable the developer firmware by typing: chromeos-firmwareupdate --mode=todev
  8. The computer will reboot. Repeat steps from 3 to 6.
  9. Type wget https://www.pierotoffanin.com/chromebook/x86-chrdebian.sh
  10. Type sh x86-chrdebian.sh
  11. Type the number of gigabytes you want to reserve for Debian. A value of 9 is recommended.
  12. After the system reboots, press again CTRL+D. ChromeOS will fix your partitions.
  13. Repeat steps 4,5,6,9,10.
  14. Wait for the script to download and install Debian. This might take a while (2GB of downloads).
  15. When the installation is over, press Enter to boot into Debian.

The username is user and the password is chromebook. The root password is chromebook/linux.com.

Enjoy your new awesome Debian Chromebook!

If you get sick of Debian and want to boot back to ChromeOS, open a terminal and type:

sudo cgpt add -i 6 -P 0 -S 1 /dev/sda

If you want to boot back to Debian, simply open a console (as described in step 4,5,6) and type:

cgpt add -i 6 -P 5 -S 1 /dev/sda

If something goes wrong, do not panic! Prepare a USB drive to recover ChromeOS following the instructions provided here and start over: https://support.google.com/chromeos/bin/answer.py?hl=en&answer=1080595

As long as you do not open the case there is no risk of damaging the computer.


Follow me @pierotofy and don't forget to
  • Anonymous

    Worked great, Debian is running perfectly!

  • Maxmuen

    thank you, worked like a charm

  • J M Martin

    I installed exactly as shown but had no wireless post install. Any idea why? Thank you.

  • cell 3478194263

    I tried it on my Samsung with an Atom chip and would not reboot as Debian. The script output was the following. Any ideas??

    Oh good. Tou’re running a developer BIOS…

    Chome OS model is: SAMS ALEX THETA-US 1663

    and you’re running on a x86-based Chromebook, awesome!

    Press [Enter] to continue…read: 31: arg count
    Stopping powerd to keep display from timing out…
    powerd stop/waiting
    32768*0 records in
    32768*0 records out
    16777216 bytes (15 MB) copied, 1.99078 s, 8.4 MB/s
    Setting Debian Kernel arguments and resigning kernel partition…
    INFO: Making change to 6 on /dev/sda.
    Kernel C: Replaced config from /mnt/stateful_partition/foo.6
    ERROR: Failed to resign Kernel C. Message: ERROR: Error verifying key block.
    e2fsck 1.42 (29-Nov-2011)
    e2fsck: need terminal for interactive repairs
    reiser2fs 1.42 (29-Nov-2011)
    The filesystem is already 2097152 blocks long. Nothing to do!
    Installation is over! Review the console output for any errors that might have occurred
    Your username and password will be:
    User: user
    Password: chromebook
    Default root password is: chromebook/linux.com
    Press [Enter] to reboot in Debian.read: 176: arg count

    • Anonymous

      I would try to restore the chromebook to factory defaults (by reinstalling ChromeOS) and then try again.

      • cell 3478194263

        Tried that, no go. After redownloading the distro, I got the same results. Do you have the specific model number and OS info this worked for? I can then compare that to what I have. Should it always prompt for partition size? If so, can you give me the text of the prompt so that I can see what’s keeping it from reaching that point in the script. Does it prompt when you first run the install script, or after a reboot?

        • Anonymous

          You can look at the x86-chrdebian.sh file with a text editor to see what conditions are being checked before asking the partition size;

          My Chromebook is a SAMS ALEX EPSILON-US 4507

          • cell 3478194263

            I solved one problem; the reason the script wasn’t prompting was because one needs to do a “bash x86…” instead of “sh x86…”

        • cell 3478194263

          OK: “bash x86…” instead of “sh x86…” makes the interactive prompts in the script work. And I think the problem with it not completing the install is due to the minimal amount of memory in the particular chromebook I was working with, so the distro can’t load (but it would be nice if the script figured that out and reported it…)

  • cell 3478194263

    PS It never prompted for partition size, as your article suggested it would…

  • J M Martin

    Could the discovery of this error in the script be why I can not get wireless after install or is it unrelated?

    As bad as I want Debian I don’t want to try again unless this solves wireless issues…..

    Thanks.

  • Chan Pak Ho

    hello guys ! i had a problem in step 10. When i type sh x86-chrdebian.sh and wait few min my chromebook will display recover page i cant continue!

  • http://mejorenbici.es/ Rubén Carbonero

    Hi there! I’d love to use Crunchbang instead of Debian. I’m by no means an expert on these things, but will try your installer to see whether this can be done. The Alex Chromebook looks like a neat machine but Chrome OS is still not too powerful for my tastes… Thank you for your great work!