Setting up a dual boot on the Chromebook Pixel

All of this information is pillaged from different sources in order to create an easy to follow guide to getting ArchLinux running on the Pixel.  This sets up Arch on the SSD, while still having ChromeOS intact.  I am a huge fan of the work that has gone into Crouton, but still found times where I needed a full OS without hiccups (virtualization anyone?).  

1.  Place your Pixel into Developer Mode:


Hold Esc+Refresh and then tap the Power Button.  When you see the recovery screen press Ctrl-D to continue booting ChromeOS.

2.  Enable Legacy Bios:


Within ChromeOS press Ctrl+Alt+T.  This will open a Crosh shell.  At the prompt type crosh> shell and press enter.  Now at the bash prompt type

chronos@localhost / $ sudo crossystem dev_boot_usb=1 dev_boot_legacy=1

3.  Repartition the HDD:

This is very easy using the ChrUbuntu script.  Within ChromeOS press Ctrl+Alt+(Forward Arrow).  This will take you to a login prompt with very small font.  enter chronos and press enter.  Now type

curl -L -O; sudo bash s9ryd 

It will ask you how much space to allocate for ChrUbuntu.  Anything 5GB or more will be fine for a basic ArchLinux installation.  I allocated 25GB on my 64GB Pixel to save room for a lot of test chroots within Crouton. If you are only going to have ChromeOS on the drive, I would allocate most of the storage to ArchLinux.  

Once you have decided on your storage press enter.  This will cause the Pixel to reboot and re-partition the HDD.  This will reset ChromeOS, so make sure you have backed up any important local files you have.  Follow the ChromeOS setup until you are back at the standard desktop.

4.  Download and install ArchBang to a flash drive: 

Download the newest x86_64 iso of archbang from  You will need a flash drive that is at least 1GB.  Now enter the ChromOS bash again as outlined in step 2.  At the bash enter

chronos@localhost / $ cd /home/chronos/user/Downloads 


chronos@localhost ~/Downloads $ sudo umount /dev/sdb*

                  *This is just to make sure your flash drive is unmounted. 

Now type

$ sudo dd if=archbang-2013.09.01-x86_64.iso of=/dev/sdb bs=1M

When it has finished, leave the flash drive in your Pixel and power it off.  When you turn your Pixel back on instead of pressing Ctrl+D you will now press Ctrl+L to enter the legacy bios.  Press ESC when prompted and select your flash drive to boot from.  at the ArchBang prompt screen press Tab and add mem=4G to the end of the options and press enter.  

5.  Install ArchBang: 

You should now be greeted with an OpenBox desktop.  Right click anywhere on the desktop and select Install.  The install is pretty straightforward.   I am not going to go in depth here because there are extensive online resources to reference.  Only 2 caveats are needed.

Under (2) Disk preparation select (1) Partition by hand.  Then select Done.  For swap select NONE.  For / select /dev/sda7

Under (5) Install bootloader choose Syslinux

After installation you should be able to remove the flash drive, reboot, select Crtl+L and be brought back to ArchBang.  At this point the screen is set to a very high resolution.  The touchpad and touchscreen will not be working but we will fix that!  The following steps will be to make the system fully usable with a Gnome DM.  I have chosen Gnome because of the near release of HiDpi support.  These steps can be slightly modified to work with KDE or XFCE as well.  

6.  Working out the kinks:

The Gnome installation is already documented very well in the ArchLinux wiki and will not be covered here.  After setting up a working Gnome desktop with GDM follow these steps.

For the following files and folders make sure the permissions are 755 root:root.

Download files and folder from *Contents of config files added below. 

Place  Default in /etc/gdm/Init

Place xorg.conf in /etc/X11/

place chromeos.conf in /etc/modules-load.d/

Backup your folder /user/share/X11/xkb and then replace it with the one provided.

Now reboot your Pixel and you should have a little bit better resolution, touchpad/touchscreen working, and all of the Pixel keyboard shortcuts working when holding down the search key.

To increase the DPI I installed the gnome-tweak-tool and set the text scaling factor to 1.2

For multitouch support install touchegg from AUR.  

Thanks to drinkcat, ericwright90, thirteen37, and Jay Lee

#Contents of /etc/gdm/Init/Default


setxkbmap -model chromebook && rmmod chromeos_laptop && modprobe chromeos_laptop


#Contents of /etc/modules-load.d/chromeos.conf



#Contents of /etc/X11/xorg.conf

Section "ServerLayout"

Identifier         " Configured"

Screen          0  "Screen0" 0 0

InputDevice        "Mouse0" "CorePointer"

InputDevice        "Keyboard0" "CoreKeyboard"


Section "Files"

ModulePath   "/usr/lib/xorg/modules"

FontPath         "/usr/share/fonts/X11/misc"

FontPath         "/usr/share/fonts/X11/cyrillic"

FontPath         "/usr/share/fonts/X11/100dpi/:unscaled"

FontPath         "/usr/share/fonts/X11/75dpi/:unscaled"

FontPath         "/usr/share/fonts/X11/Type1"

FontPath         "/usr/share/fonts/X11/100dpi"

FontPath         "/usr/share/fonts/X11/75dpi"

FontPath         "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"

FontPath         "built-ins"


Section "Module"

Load  "glx"

Load  "extmod"

Load  "record"

Load  "dbe"

Load  "dri"

Load  "dri2"


Section "InputDevice"

Identifier  "Keyboard0"

Driver          "kbd"


Section "InputDevice"

Identifier  "Mouse0"

Driver          "synaptics"

Option "TapButton1" "1"

Option "TapButton2" "2"

Option "TapButton3" "3"

Option "ClickFinger1" "1"

Option "ClickFinger2" "2"

Option "ClickFinger3" "3"

Option "VertEdgeScroll" "off"

Option "TwoFingerScroll" "on"

Option "HorizEdgeScroll" "off"

Option "CircularScrolling" "off"

Option "PalmDetect" "on"

#        Option "HorizHysteresis" "50"

#        Option "VertHysteresis" "50"

#        Option "PalmMinWidth"  "5"

#        Option "PalmMinZ"          "40"


Section "Monitor"

Identifier   "Monitor0"

VendorName   "Monitor Vendor"

ModelName        "Monitor Model"

DisplaySize        272 181

Modeline "1712x1133_60.00"  162.25  1712 1832 2008 2304  1133 1136 1146 1175 -hsync +vsync

Option "PreferredMode" "1712x1133_60.00"


Section "Device"

            ### Available Driver options are:-

            ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",

            ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",

            ### <percent>: "<f>%"

            ### [arg]: arg optional

            #Option         "AccelMethod"            # <str>

            #Option         "DRI"                    # [<bool>]

            #Option         "ColorKey"               # <i>

            #Option         "VideoKey"               # <i>

            #Option         "Tiling"                 # [<bool>]

            #Option         "LinearFramebuffer"  # [<bool>]

            #Option         "Shadow"                 # [<bool>]

            #Option         "SwapbuffersWait"        # [<bool>]

            #Option         "TripleBuffer"           # [<bool>]

            #Option         "XvPreferOverlay"        # [<bool>]

            #Option         "DebugFlushBatches"  # [<bool>]

            #Option         "DebugFlushCaches"   # [<bool>]

            #Option         "DebugWait"              # [<bool>]

            #Option         "HotPlug"                # [<bool>]

            #Option         "RelaxedFencing"         # [<bool>]

            #Option         "Throttle"               # [<bool>]

            #Option         "UseVmap"                # [<bool>]

            #Option         "ZaphodHeads"            # <str>

            #Option         "DelayedFlush"           # [<bool>]

            #Option         "FallbackDebug"          # [<bool>]

            #Option         "BufferCache"            # [<bool>]

Identifier  "Card0"

Driver          "intel"

BusID           "PCI:0:2:0"


Section "Screen"

Identifier "Screen0"

Device         "Card0"

Monitor        "Monitor0"

SubSection "Display"

Viewport   0 0

Depth         1

Modes "1712x1133"


SubSection "Display"

Viewport   0 0

Depth         4

                    Modes "1712x1133"


SubSection "Display"

Viewport   0 0

Depth         8

                    Modes "1712x1133"


SubSection "Display"

Viewport   0 0

Depth         15

                    Modes "1712x1133"


SubSection "Display"

Viewport   0 0

Depth         16

                    Modes "1712x1133"


SubSection "Display"

Viewport   0 0

Depth         24

                    Modes "1712x1133"