Difference between revisions of "Acer C710 Chromebook"

From ArchWiki
Jump to: navigation, search
(Compile A Custom Kernel (optional): moved to talk page while I get I working)
m (add ja link)
 
(71 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
[[Category:Acer]]
 
[[Category:Acer]]
The following is a work in progress, of getting arch working on Acer's new C7 200$ [[Chromebook]]. From opening the box to an Arch Linux command line.
+
[[ja:Acer C710 Chromebook]]
 +
{{Related articles start}}
 +
{{Related|Chromebook}}
 +
{{Related|Acer C720 Chromebook}}
 +
{{Related articles end}}
  
Currently you'll need a second computer already running *nix. In the future If there's enough requests I'll create a way to install Arch without the need for a second computer. Much like the cr48-ubuntu script. If you're already running Ubuntu on your C7 then you can just skip to creating your own arch image.
+
{{Poor writing|WIP guide, need to improve "Disabling The Hardware Write Protection"}}
  
== Installing Arch onto an Acer C7 Chromebook ==
+
This page is a work in progress guide to running [[Arch Linux]] on the Acer C7 [[Chromebook]].
Currently Archlinux does work on the C7 but the install process is a bit odd. Currently I have no way to replace the chromeos kernel, and I'd really like to. If you manage to figure it out PLEASE let me know how. In the mean time the system does work really well (for a chromebook) with Arch.
+
  
=== Backup all your data! ===
+
Over seven [http://us.acer.com/ac/en/US/content/models/chromebooks/chromebook-c models] exist.
I'm assuming you're buying the system to install Arch, and that there's no personal data on the device. But if that's not the case
+
  
{{Warning|'''*BACK UP YOUR DATA.*'''}}
+
== Installation ==
  
Off device too, the hard disk gets wiped clean by design when you enter Dev Mode.
+
Go to the [[Chromebook]] page, read the [[Chromebook#Introduction|Introduction]] and continue by following the [[Chromebook#Installation|Installation]] guide.
  
=== Enabling Dev Mode ===
+
== Post Installation Configuration ==
First step is to enable Dev mode on the system so we can run some unsigned code. '''This will wipe all your data!'''
+
  
To enter Dev Mode:
+
For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see the [[Chromebook#Post installation configuration|Post installation configuration]] on the [[Chromebook]] page.
* Press hold down the {{Keypress|Esc+F3 (Refresh)}} keys, and press the {{Keypress|Power}} button.
+
::This enters recovery mode,
+
* Now press {{Keypress|Ctrl+d}} (there's no prompt). It will ask you to confirm, then the system will reboot into dev-mode.
+
::Dev Mode will always show the scary boot screen and you need to press {{Keypress|Ctrl+d}} or wait 30 seconds to continue booting.
+
  
If you want to boot fromDirect_bootstrapping_Archlinux a chromium type usb drive you'll have to run "crossystem dev_boot_usb=1" from ChromeOS and reboot once to boot from USB drives with {{Keypress|Ctrl+u}}. But we don't care about that.
+
== Disabling The Hardware Write Protection ==
 +
{{Warning|This section is a work in progress following it while this warning still exists will probably leave you with a non working system.}}
  
{{Note|If you need to hard reset. Press the refresh/F3 and press the power button. This will hard reset the system. It's occasionally useful, but use it with care - it wont sync the disk or shut down nicely, so there's a nonzero chance of trashing the contents of your disk.}}
+
You would need an aluminium foil to short the hardware write-protection jumper.
  
(all of this was stolen from [http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c7-chromebook])
+
=== Disabling steps ===
Direct_bootstrapping_Archlinux
+
* bridge write protect jumper
=== Partitioning For Arch ===
+
** disconnect power cord and battery
Next you need to make room for Arch by repartitioning the Chromebook.
+
** void warrenty by removing base cover screw (pictured)
 +
** bridge jumper with tin foil (pictured)
  
You can use the following script to repartition your C7 to make room for Arch Linux. (It will also probably work on other chromebooks as well.)
+
=== Enabling steps ===
 +
** remove power, battery, base cover and foil, replace base cover, battery, power
  
It will prompt you for sizes, then it will partition your disk for installing Arch, then reboot. After it reboots the C7 will reinstall ChromeOS to factory, but you'll have the partitions needed for installing Arch in the later sections.
+
== See Also ==
 
+
* [http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c7-chromebook Official developer information, straight from Chromium.org]
{{bc|<nowiki>if [ "$1" != "" ]; then
+
* [http://github.com/jay0lee/chrubuntu-script The ChrUbuntu script official Github]
  target_disk=$1
+
* [http://chromeos-cr48.blogspot.com/2013/05/chrubuntu-one-script-to-rule-them-all_31.html The official ChrUbuntu script site for the older script. It has tips on cgpt commands and other info.]
  echo "Got ${target_disk} as target drive"
+
* [http://johnlewis.ie/neutering-the-developer-mode-screen-on-your-chromebook/ Source for BIOS modification (for different device, this page shows correct procedure for C7)]
  echo ""
+
* [http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c7-chromebook#TOC-Entering-Developer-Mode Acer C7: Entering Developer Mode]
  echo "WARNING! All data on this device will be wiped out! Continue at your own risk!"
+
* [https://johnlewis.ie/mediawiki/index.php?title=Flashing_stock_firmware_to_a_coreboot_build_on_Acer_C7_(C710) Original C710 flash guide]
  echo ""
+
* [https://johnlewis.ie/mediawiki/index.php?title=Flashing_coreboot_build_to_stock_firmware_or_different_coreboot_build_on_Acer_C7_(C710) Return to stock guide (untested)]
  read -p "Press [Enter] to partition for Arch Linux on ${target_disk} or CTRL+C to quit"
+
 
+
  ext_size="`blockdev --getsz ${target_disk}`"
+
  aroot_size=$((ext_size - 65600 - 33))
+
  parted --script ${target_disk} "mktable gpt"
+
  cgpt create ${target_disk}
+
  cgpt add -i 6 -b 64 -s 32768 -S 1 -P 5 -l KERN-A -t "kernel" ${target_disk}
+
  cgpt add -i 7 -b 65600 -s $aroot_size -l ROOT-A -t "rootfs" ${target_disk}
+
  sync
+
  blockdev --rereadpt ${target_disk}
+
  partprobe ${target_disk}
+
  crossystem dev_boot_usb=1
+
else
+
  target_disk="`rootdev -d -s`"
+
  # Do partitioning (if we haven't already)
+
  ckern_size="`cgpt show -i 6 -n -s -q ${target_disk}`"
+
  croot_size="`cgpt show -i 7 -n -s -q ${target_disk}`"
+
  state_size="`cgpt show -i 1 -n -s -q ${target_disk}`"
+
 
+
  max_archlinux_size=$(($state_size/1024/1024/2))
+
  rec_archlinux_size=$(($max_archlinux_size - 1))
+
  # If KERN-C and ROOT-C are one, we partition, otherwise assume they're what they need to be...
+
  if [ "$ckern_size" =  "1" -o "$croot_size" = "1" ]
+
  then
+
    while :
+
    do
+
      read -p "Enter the size in gigabytes you want to use for Arch Linux. Acceptable range is 5 to $max_archlinux_size  but $rec_archlinux_size is the recommended maximum: " archlinux_size
+
      if [ ! $archlinux_size -ne 0 2>/dev/null ]
+
      then
+
        echo -e "\n\nNumbers only please...\n\n"
+
        continue
+
      fi
+
      if [ $archlinux_size -lt 5 -o $archlinux_size -gt $max_archlinux_size ]
+
      then
+
        echo -e "\n\nThat number is out of range. Enter a number 5 through $max_archlinux_size\n\n"
+
        continue
+
      fi
+
      break
+
    done
+
    # We've got our size in GB for ROOT-C so do the math...
+
 
+
    #calculate sector size for rootc
+
    rootc_size=$(($archlinux_size*1024*1024*2))
+
 
+
    #kernc is always 16mb
+
    kernc_size=32768
+
 
+
    #new stateful size with rootc and kernc subtracted from original
+
    stateful_size=$(($state_size - $rootc_size - $kernc_size))
+
 
+
    #start stateful at the same spot it currently starts at
+
    stateful_start="`cgpt show -i 1 -n -b -q ${target_disk}`"
+
 
+
    #start kernc at stateful start plus stateful size
+
    kernc_start=$(($stateful_start + $stateful_size))
+
 
+
    #start rootc at kernc start plus kernc size
+
    rootc_start=$(($kernc_start + $kernc_size))
+
 
+
    #Do the real work
+
   
+
    echo -e "\n\nModifying partition table to make room for Arch."
+
    echo -e "Your Chromebook will reboot, wipe your data and then"
+
    echo -e "you should re-run this script..."
+
    umount /mnt/stateful_partition
+
   
+
    # stateful first
+
    cgpt add -i 1 -b $stateful_start -s $stateful_size -l STATE ${target_disk}
+
 
+
    # now kernc
+
    cgpt add -i 6 -b $kernc_start -s $kernc_size -l KERN-C ${target_disk}
+
 
+
    # finally rootc
+
    cgpt add -i 7 -b $rootc_start -s $rootc_size -l ROOT-C ${target_disk}
+
 
+
    reboot
+
    exit
+
  fi
+
fi</nowiki>}}
+
 
+
=== Create Arch Disk Image ===
+
 
+
==== Create Image File ====
+
* First we need to create an Arch Image to do things with. It's recommended that you use arch to create this image (because that's how I did it), but you can probably do this from any linux system.
+
# truncate -s 1G arch.img
+
 
+
==== Convert Image To A Partition ====
+
* Convert image to a ext3 filesystem.
+
# mkfs.ext3 arch.img
+
* Mount image to install to
+
# mkdir /mnt/arch_install
+
# mount -o arch.img /mnt/arch_install
+
 
+
==== Install Arch onto this new image ====
+
There's plenty of ways to go about this, the method I recommend is  [[Install_from_Existing_Linux#Method_2:_Bootstrapping_the_arch_installation_scripts|Directly bootstrapping Archlinux.]] If you go this way you can just follow the [[Installation_Guide]]. But anyway you choose to create your Arch linux install should work, unless you do something very strange, in that case good luck!
+
 
+
=== Copy Arch Image To C7 ===
+
The following is a quick mockup to get you started. It's incomplete, be careful, you'll be left with an unworking system if you follow this guide!
+
 
+
You should now have the following
+
# An image of Arch Linux
+
# A freshly partitioned Acer C7
+
# A copy of the kernel
+
# A copy of the kernel modules
+
 
+
From there all you need to do is;
+
 
+
* get the arch.img on the C7
+
* download a copy of your kernel
+
* download a copy of your kernel modules
+
* mount your image
+
* mount your root-c partition
+
* repack/resign the kernel
+
* dd the kernel
+
* copy over the kernel modules
+
* copy over cgpt
+
* set boot with cgpt
+
* reboot
+
* be happy
+
 
+
== Compile A Custom Kernel (optional) ==
+
 
+
The following is a work in progress as I try to get it working myself.  Most of it has been stolen from http://superuser.com/questions/583269/chrubuntu-acer-how-to-load-kernel-3-8-0-16-instead-3-4-0 and  
+
http://velvet-underscore.blogspot.com/2013/01/chrubuntu-virtualbox-with-kvm.html
+
 
+
== Problems AKA: Work In Progress ==
+
{{Stub}}
+
 
+
== See alse ==
+
* [http://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/acer-c7-chromebook Developer information on Official site]
+

Latest revision as of 07:48, 5 November 2015

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements.Tango-edit-clear.png

Reason: WIP guide, need to improve "Disabling The Hardware Write Protection" (Discuss in Talk:Acer C710 Chromebook#)

This page is a work in progress guide to running Arch Linux on the Acer C7 Chromebook.

Over seven models exist.

Installation

Go to the Chromebook page, read the Introduction and continue by following the Installation guide.

Post Installation Configuration

For information on general Chromebook post installation configuration (hotkeys, power key handling ...) see the Post installation configuration on the Chromebook page.

Disabling The Hardware Write Protection

Warning: This section is a work in progress following it while this warning still exists will probably leave you with a non working system.

You would need an aluminium foil to short the hardware write-protection jumper.

Disabling steps

  • bridge write protect jumper
    • disconnect power cord and battery
    • void warrenty by removing base cover screw (pictured)
    • bridge jumper with tin foil (pictured)

Enabling steps

    • remove power, battery, base cover and foil, replace base cover, battery, power

See Also