How to Install Windows 8 on Your Google Chromebook Pixel

Google-Chromebook-Pixel-Picture.jpg

Contents


Abstract

In this tutorial, I will walk you through installing Windows 8 onto your Google Chromebook Pixel. This guide is significant in that, to the best of my knowledge, no one has ever done this before (at least anywhere on the internet). This guide will also allow you to take a device that was previously only able to browse the web and turn it into a high-end ultrabook capable of running desktop applications and light games. As the top end Pixel is selling for $750 new on eBay at the time of writing, this is significant for consumers who want a nice and portable piece of equipment while still sticking to a budget.


Motivation

I had originally received my 64GB LTE Pixel when I attended Google I/O 2013. Although I was very impressed with the hardware, I felt that the Chrome operating system was restricting the capabilities of an otherwise incredible machine. Because of this, I deciding to ditch Chrome and load a more capable OS onto the device.

Although there are multiple guides on the internet discussing how to hack/sideload/install different varieties of Linux onto the device, there were none showing how to load Windows onto the device, or if it was indeed even possible. As the majority of the applications I use every day do not run on Linux (such as IE, Office, and Photoshop), and as I am much more comfortable in a Windows environment (Full disclosure: I am a Microsoft Certified Systems Engineer), I decided to do some pioneering into previously unknown territory.

About the time I was doing this, I noticed that this site (GBATemp) was running a contest for best text tutorial. So, at that point, I figured "What the heck, let's do it."


Background Information

The Chromebook Pixel was released by Google in February 2013. The device features and Intel i5-3427U dual-core processor clocked at 1.8GHz, 4GB of DDR3-1600 RAM, and either a 32 or 64GB SSD. The 64GB model retails for $1449 and includes an LTE modem, as compared to the 32GB model at $1299. Both models include a memory card reader, two USB ports, a mini DisplayPort out, a/b/g/n wireless, and Bluetooth 3.0 connectivity. Of note is the Pixel's 12.85 inch, 2560x1700 display, which features a somewhat different 3:2 aspect ratio. You get used to the odd aspect ratio pretty quickly, especially since it looks flat-out fantastic.

As a Chromebook, the Pixel features Google’s Chrome operating system, which is essentially just the Chrome browser. Features have been added over time, but Chrome OS remains little more than a dedicated browser.

Chromebooks traditionally feature secure boot technology from Google, meaning that the device will not boot beyond the firmware level if it does not detect a Google-signed version of the Chrome OS installed on the HDD/SSD. This means that most Chromebooks cannot be made to run anything other than the Chrome OS, no matter what PC-grade hardware they are running underneath.

Luckily for us, the Pixel is unique among Chromebooks in that it has an extra, unsecured firmware slot on the board. By default, this firmware slot is loaded with SeaBIOS, an open-source, traditional BIOS implementation. With the proper modifications, this BIOS can be chain loaded from the default firmware, and then used to load whatever operating system you would like. In this guide, this operating system happens to be Windows 8.


Preparing Your Pixel

Before you can install and boot any operating system other than the Google Chrome OS on your Pixel, you need to enable unsecured, legacy booting in the firmware. And before you can do that, you need to switch your Chromebook Pixel into "Developer Mode". To do this, follow these steps:

  1. Fully power off your Pixel.
  2. Press the power button while holding Esc+Refresh to boot into recovery mode.
  3. When you see the recovery screen, press Ctrl+D, then Enter to enable developer mode on the device. When in developer mode, your Pixel will display the recovery/warning screen you just saw for 30-seconds every time you start it up. There is, unfortunately, no way to disable this. From now on, however, hitting Ctrl+D will work to immediately boot into the Chrome OS instead of having to wait for the timeout.

Your Pixel will now sit there whirring and grinding for a few minutes in order to enable developer mode. Once your device is booted in developer mode, you can access a root-level bash terminal to tweak some settings. In order to accomplish this, follow these steps:

  1. Boot your Pixel with developer mode enabled.
  2. Press Ctrl+Alt+T.
  3. Run "shell".
  4. Run "sudo bash".

You should now be inside of a root bash shell. Feel free to poke and prod the system - there are plenty of interesting things to mess with. When you're done messing around, though, let's enable some settings in the Pixel's firmware to allow us to boot the WIndows 8 installer.

  1. Enter a root shell on your Pixel.
  2. Run "crossystem dev_boot_usb=1 dev_boot_legacy=1".

This command will both enable your Pixel to boot from a USB device, and to boot using it's unsecured firmware (SeaBIOS) slot. Now we can officially boot into the Windows installer! But wait, there's no DVD drive on the Pixel...


Making a Windows USB Installer

Since your Pixel doesn't have a DVD drive, you will need to install Windows via a USB drive. There are numerous guides around the internet detailing how to do this, but many require special tools that may or may not still work. Below I will walk you through a method to create a bootable Windows installer USB flash drive that requires nothing more than another working Windows machine, the Windows install disk, and a USB drive large enough for the install files.

  1. Copy the files off of the Windows install disk or .iso to a known location on your hard drive. The contents of a .iso file can be extracted using any program that can read the file format, such as PowerISO, WinRAR, or equivalent.
  2. Insert your USB thumb drive into your Windows machine. Your thumb drive will need to be at least 4GB in size to hold all of the files required for a Windows installation.
  3. Open an Administrator-level command prompt.
  4. Run "diskpart". This is the Windows command line disk partitioning tool.
  5. Once inside the diskpart shell, enter "list disk". This will return a list of all available disks on your system.
  6. After identifying which disk is your USB drive, enter "select disk <disk number of your USB drive>" to operate on that disk.
  7. Run the command "clean" to wipe any existing partitioning information off of the USB drive. THIS WILL WIPE ALL OF THE DATA ON YOUR DRIVE. Back it up first.
  8. Run "create partition primary" to create a new primary partition on the USB drive that is the full size of the drive
  9. Run "select partition 1" to verify future operations are on partition 1 (the one we just made).
  10. Set the partition as active (bootable) by running the "active" command
  11. Format the partition as a new NTFS partition by running "format fs=ntfs quick". This may take some time depending on the size of your USB drive.
  12. Enter "assign" to force Windows to assign your newly formatted USB drive a drive letter and mount it.
  13. Exit diskpart ("exit") and move your command prompt session to the "boot" subdirectory of the directory to which you extracted your Windows install disk files to in step 1. This can be done by entering "cd /d <path to root of extracted files>\boot".
  14. To prepare the USB drive to boot the Windows installer, run the command "bootsect.exe /nt60 <drive letter of USB drive>". This tells the partition on the USB flash drive that it will be booting using the NT 6.0 bootloader.
  15. Finally, copy all of the files from the Windows install disk onto the USB flash drive. Voila! You now have a working Windows 8 USB install disk.


Installing Windows on the Device

Okay, by now you should have yourself a Chromebook Pixel in developer mode with legacy and USB boot enabled, as well as a Windows 8 install USB drive. To install Windows on your Pixel, follow these steps:

  1. Grab your USB hub and insert your Windows USB install drive, a USB mouse, and a USB keyboard. The Windows installer does not detect the Pixel’s keyboard or touchpad, necessitating the use of the latter two devices.
  2. Completely power off your Pixel.
  3. Power on your Pixel. When the warning screen is shown, press Ctrl+L to boot into the legacy BIOS.
  4. When prompted, press ESC on the keyboard to bring up the boot device selection list.
  5. Select your USB thumb drive from the list.
  6. The Windows installer will now load. A new thing with Windows 8 is that you have to enter your product key in order to actually proceed with the installation, so have yours ready. If you do not have yours handy, or are too lazy to make it handy, here is my Windows 8 Pro product key: CBCD4-FDGYM-HKHP9-N8M6D-M7RDH. This will get you through the installer, but will not allow you to activate, as apparently even though I bought it from the Microsoft Redmond campus employee store, it’s not actually legit. But again, it will allow you to at least install Windows, so you’re welcome.
  7. When you arrive at the step asking the drive on which you would like to install Windows 8, select “Advanced options”. You will now see that there are a TON of partitions on your Pixel’s drive already. If you want to install Windows, you will need to delete ALL of them. THIS WILL WIPE ALL OF THE DATA ON YOUR DRIVE. Back it up first.
  8. From there it’s just a standard Windows install. You can do it! I believe in you!


First Boot

After the Windows installer has completed, your system will reboot. When once again greeted with the scary Google warning screen, press Ctrl+L to boot via the BIOS and into Windows. YOU MUST DO THIS EVERY TIME FROM NOW ON.

Windows will boot and you will be greeted with a friendly blue… what? A friendly blue rectangle on the left hand side of your screen. This can’t be right!

This friendly blue rectangle is actually the first boot welcome screen for Windows 8. The reason that it is smashed into the left ¼ of your screen is because although Windows 8 comes with a driver for your HD 4000 graphics, and correctly detects your display resolution of 2560x1700, Intel did not test the driver for such crazy display densities before they released it and it is buggy!

In order to be able to actually get into Windows to do anything, we need to work around this. Follow these steps:

  1. Reboot your machine with your install disk, keyboard, and mouse combo connected once again.
  2. Press Ctrl+L to boot via the BIOS.
  3. Press ESC when prompted to bring up the boot device selection list.
  4. Select and boot from your Windows USB install device.
  5. When the installer loads, instead of selecting "Install now", choose "Repair your computer".
  6. From here, select "Troubleshoot", then "Advanced Options", then "Command Prompt". You will be dropped into an Administrator command prompt.
  7. In order to allow us to get into Windows without any display issues, we are going to have to force Windows to boot with the default graphics driver at 800x600 resolution. To accomplish this, run the command "bcdedit /set {default} vga on".
  8. Reboot your Pixel and boot into your Windows 8 install. You will now find that you can see what is going on and walk through the first boot wizard. Go ahead and set everything up all the way to your desktop.


Installing Drivers

Now that you have finally made it to the Windows desktop, don’t forget to input your personal, legit product key and activate it – otherwise all of your attempts at running Windows Update will fail (I spent far too long wondering why nothing would update when I first started messing with Windows 8).

As with any new Windows install, we now need to go and get all of our updated drivers, especially the one for the HD 4000 graphics so it can drive the display properly. Let me save you some time, though! Windows Update will get most of your drivers for you automatically, so just focus on getting one driver – the one for your wireless card.

This can be done fairly easily. Go into device manager and get the hardware ID of your wireless card (PCI\VEN_168C&DEV_0034) and search it on the Microsoft Update Catalog. This should return you a list of Microsoft verified drivers for that device. Just so you know, it’s an Atheros AR5BMD222 Wireless Network adapter.

Download the .cab file from the site containing the driver you want, extract the files from it, and transfer them to the Pixel. You can then update the device drivers of the unknown Networking device by using Computer Management.

After you have your wireless card up and running, and are connected to a wireless network, go ahead and run Windows Update. It should pull down your new Intel HD 4000 Graphics driver, which can push the native resolution of your display just fine! I would suggest 200% scaling, though, because everything in desktop mode will now be incredibly tiny. Don't forget to disable Windows from booting in 800x600 resolution by running "bcdedit /deletevalue {default} vga" from an Administrative command prompt.


Caveats

Having reached this point, you are probably starting to realize there are a few caveats with using Windows 8 on the Pixel right now:

  1. Your keyboard won’t work.
  2. Your touchpad won’t work.
  3. Your touchscreen won’t work.
  4. The system sometimes powers off instead of going into standby.
  5. You have no battery indicator.
  6. You cannot adjust screen brightness.
  7. You cannot adjust the audio level.

Issues 1, 2, and 3 stem from the fact that all input methods on the device are hanging off of the proprietary (only in Chromebooks) Google embedded controller (or GoogleEC for short). In Device Management, this would be the Unknown device with hardware ID "ACPI\VEN_GGL&DEV_0002". There is currently NO DRIVER available for Windows that will allow it to interface correctly with this device.

Issue 4 stems from the unique way in which Google handles their Trusted Platform Module (TPM) on the Pixel. There is a known fix for this on Linux, but I have yet to determine an equivalent operation on Windows.

Issues 5, 6, and 7 stem from what I’m assuming are non-standard hardware interfaces used by the Pixel.


Future Work

Solve the issues in the caveats section.

For issues 1, 2, and 3, I have begun to petition developers at Google for resources related to the GoogleEC in order to perhaps develop a Windows Kernel Mode driver to interface with the device. You can follow all the progress, petition for more help, or ask your own questions in this thread on Google Groups.

Issue 4 seems to be related to how the Chromebook handles power management. If I can simply find a way to make the software ignore shutdown requests from the firmware, then I believe this would cease to be an issue. The equivalent fix for Linux is mentioned here.

Issue 5, 6, and 7 will need to be addressed, but likely after the previous 4, so I haven’t put much thought into them yet. The audio problem seems to stem from the fact that there is no specific driver install for the audio controller. Although the audio controller identifies as being as being a Creative SoundBlaster card, none of the drivers I have yet tried have worked correctly.

If you have any questions, comments, feedback, suggestions or otherwise, please post it either in this thread or in the one on Google Groups. Your help and insight could one day lead to the Pixel playing perfectly with Windows!


About the Author

The author of this tutorial has a Bachelors of Science in Computer Engineering from the University of Pittsburgh, where he is currently pursuing his Ph.D. in the same field. The author also holds a number of Microsoft certifications, including Microsoft Certified Systems Engineer, Microsoft Certified Systems Administrator, and Microsoft Certified Technology Specialist for Windows 7, as well as the CompTIA Network+ certification.
 

PityOnU

Well-Known Member
OP
Member
Joined
Jul 5, 2012
Messages
1,182
Trophies
1
XP
1,614
Country
United States
so what method are you useing for fedora? right now i just got xfce4 running with terrible res

I disabled firmware write-protect by removing a screw from the motherboard. I then flashed a coreboot build to the firmware chip, which basically acts like a traditional BIOS (it also fixes a handful of bugs in the stock firmware which Google never addressed [citation needed]).

After that, the Pixel just becomes a regular x86 system. You can install whatever you want with a bootable USB stick. You just can't use Chrome OS anymore.
 
  • Like
Reactions: Margen67

sirocyl

Are we Geniuses or what?
Newcomer
Joined
Apr 30, 2012
Messages
92
Trophies
1
Age
31
XP
324
Country
United States
Just gonna make a bump.
Issues 1, 2, and 3 stem from the fact that all input methods on the device are hanging off of the proprietary (only in Chromebooks) Google embedded controller (or GoogleEC for short). In Device Management, this would be the Unknown device with hardware ID "ACPI\VEN_GGL&DEV_0002". There is currently NO DRIVER available for Windows that will allow it to interface correctly with this device.

Issue 4 stems from the unique way in which Google handles their Trusted Platform Module (TPM) on the Pixel. There is a known fix for this on Linux, but I have yet to determine an equivalent operation on Windows.

Issues 5, 6, and 7 stem from what I’m assuming are non-standard hardware interfaces used by the Pixel.
[......]
For issues 1, 2, and 3, I have begun to petition developers at Google for resources related to the GoogleEC in order to perhaps develop a Windows Kernel Mode driver to interface with the device. You can follow all the progress, petition for more help, or ask your own questions in this thread on Google Groups.
The EC is actually well-documented, and seems to have been for a while, and source is available, from what I've read. It just takes a little digging to get to it.


This video covers how the EC works, or you could just read the presentation here:
https://docs.google.com/presentatio...4Sjs8/pub?start=false&loop=false&delayms=3000

Google's EC source is provided at https://chromium.googlesource.com/chromiumos/platform/ec/
From what I've read, the EC just emulates a standard i8042 PS/2 keyboard controller on x86 platforms, such as the Pixel.
EC also controls backlight brightness and other LED's, powers up internal hardware peripherals such as the WiFi/BT, and provides battery information to, and power management control from, the OS.
The audio level problem is interesting. If it can play audio, you should be able to use Windows's volume controls to change it. You either have the wrong audio output selected on the volume control, or you're using the keyboard's volume buttons, which might be EC special sauce.
As far as touch, the touchscreen controller and touchpad might be supported by Windows already, in some fashion. It's unlike Google to use completely non-standard hardware.

I really want to get on the ball of supporting Windows, and other alternative OS's, on the Chromebook Pixel (and other Chromebooks, possibly) with an EC driver, and it doesn't look too far out of reach.
 
  • Like
Reactions: Margen67

PityOnU

Well-Known Member
OP
Member
Joined
Jul 5, 2012
Messages
1,182
Trophies
1
XP
1,614
Country
United States
Just gonna make a bump.

The EC is actually well-documented, and seems to have been for a while, and source is available, from what I've read. It just takes a little digging to get to it.

This video covers how the EC works, or you could just read the presentation here:
https://docs.google.com/presentatio...4Sjs8/pub?start=false&loop=false&delayms=3000

Google's EC source is provided at https://chromium.googlesource.com/chromiumos/platform/ec/
From what I've read, the EC just emulates a standard i8042 PS/2 keyboard controller on x86 platforms, such as the Pixel.
EC also controls backlight brightness and other LED's, powers up internal hardware peripherals such as the WiFi/BT, and provides battery information to, and power management control from, the OS.
The audio level problem is interesting. If it can play audio, you should be able to use Windows's volume controls to change it. You either have the wrong audio output selected on the volume control, or you're using the keyboard's volume buttons, which might be EC special sauce.
As far as touch, the touchscreen controller and touchpad might be supported by Windows already, in some fashion. It's unlike Google to use completely non-standard hardware.

I really want to get on the ball of supporting Windows, and other alternative OS's, on the Chromebook Pixel (and other Chromebooks, possibly) with an EC driver, and it doesn't look too far out of reach.

It is well documented with available source, but translating that into a Windows driver requires skill I do not have, so I have no idea how large of a job it would be.

I'm fairly certain that once Windows is able to correctly interface with the EC, everything else will fall into place via class drivers and etc.
 
  • Like
Reactions: Margen67

Avery Freeman

New Member
Newbie
Joined
Mar 25, 2015
Messages
1
Trophies
0
Age
42
XP
42
Country
United States
Hi,

I was just wondering if you have ever gotten SeaBIOS to work as an EFI bootloader, rather than Legacy? I'm thinking this might solve the problem of having to hit CTRL-L every time you boot the machine.

Also, how are the touchpad/touchscreen drivers coming? Have they been ported to windows yet?

Thanks,
Avery
 
  • Like
Reactions: Margen67

pratya chakma

New Member
Newbie
Joined
Sep 14, 2015
Messages
1
Trophies
0
Age
31
XP
52
Country
Bulgaria
Hi,

I am using KrojamSoft BatchRenameFiles Tool as it is a powerful tool, that allows you to quickly rename all the files in a specified directory. You can remove spaces, replace spaces with underscore, Uppercase/lowercase filename, add a prefix/suffix, remove/replace strings and also catalog files by adding an incremental number to the file name.With BatchRenameFiles Tool, you can quickly and easily change the name, attributes of files/folders. It can sort file names by name, date, time. Supported preview mode of all changes before making them.


Thanks,

Dorian Markich
 
  • Like
Reactions: Margen67

coolstar

New Member
Newbie
Joined
Sep 23, 2015
Messages
3
Trophies
0
Age
25
XP
46
Country
United States
Hi, I'm a developer who has done some work with the Chrome EC and coreboot firmware. While I don't have a Chromebook Pixel, I have released some drivers and patches for the Acer C720P chromebook.

Here's what I know about the Pixel:
  • Keyboard is indeed running off the Chrome EC - Windows Driver
  • Backlight is controlled via the Intel HD Graphics - fixable with a coreboot update
  • Battery is controlled via EC - fixable with a simple ACPI patch
  • Trackpad and Touch Screen are connected via I2C on the Graphics Card - no known possible fixes
  • Trackpad is an Atmel I2C Trackpad - No Drivers Currently
  • Touch Screen is an Atmel I2C MaxTouch Touch Screen - Windows Driver
Overall the issues with Windows on the Pixel are fixable with drivers/ACPI patches/coreboot updates except the I2C bus that the trackpad and touch screen are connected to as they're connected to the graphics card because Ivy Bridge didn't have dedicated I2C buses (which were added in Haswell)
 

sirocyl

Are we Geniuses or what?
Newcomer
Joined
Apr 30, 2012
Messages
92
Trophies
1
Age
31
XP
324
Country
United States
A bit of a necro, but I'm gonna vouch for @coolstar's authenticity. I recently happened upon his developments on Chromebook firmware as a side-quest to jailbreaking my niece's iPod and fixing up a family member's Chromebook.

I kinda want to get a Pixel 2, for its open-source firmware and moddability, high specs and mostly brand-free design.
Now that the Chromebook Pixel 2 has been out a while, it seems like everything except audio and trackpad work under on it, which is pretty great!
(information via https://coolstar.org/chromebook/windows.html)

If anyone else is interested in hacking the Chromebook, check out the subreddit at https://www.reddit.com/r/chrultrabook/ :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: This movie rip so werid has 1080p quality but the audios ripped with movie theater audio quality