The ASUS Chromebook Flip C100P (veyron_minnie) is the world's first 10" convertible Chromebook with a full metal chassis, so a user can go from laptop to tablet form factor in a snap. The ASUS Chromebook Flip is powered by a Rockchip quad-core processor with 2GB RAM for incredible performance.
It has a 10-finger multi-touch screen, with a comfortable wide key-pitch keyboard and up to 8 hours battery life for all-day mobile use. The connectivity with dual-band WiFi 802.11ac & BT4.0 support can also provide up to 3 times the speed of 802.11n for faster data transfer. Carved from a single block of aluminum for a seamless design, the ASUS Chromebook Flip is not only beautiful, but durable, too.
These instructions will create a dual-booting environment where you can switch between booting Arch Linux ARM and the stock ChromeOS. No changes are made to the internal eMMC drive, and your new Arch Linux ARM install will run completely from external storage. This is the recommended setup for those that just want to take a test drive, or don't want to give up ChromeOS.
You must be running the latest ChromeOS prior to installation.
Switch to developer mode
Turn off the laptop. To invoke Recovery mode, you hold down the ESC and Refresh keys and poke the Power button. At the Recovery screen press Ctrl-D (there's no prompt - you have to know to do it). Confirm switching to developer mode by pressing enter, and the laptop will reboot and reset the system. This takes about 15-20 minutes.
Note: After enabling developer mode, you will need to press Ctrl-D each time you boot, or wait 30 seconds to continue booting. Enable booting from external storage
After booting into developer mode, hold Ctrl and Alt and poke the T key. This will open up the crosh shell.
- Type shell to get into a bash shell.
- Type sudo su to become root.
- Then type this to enable USB booting:
crossystem dev_boot_usb=1 dev_boot_signed_only=0
Reboot the system to allow the change to take effect.
Create a root USB or SD for dual booting These instructions are written for installing to a USB drive with the sda device, assuming no other USB drives are plugged in. For an SD card, click here to magically adjust the instructions for the mmcblk1 device that an SD card will register as.
Get a root shell as described in the previous section. Since ChromeOS will automatically mount any partitions it finds, unmount everything now:
umount /dev/sda*
Start fdisk to create a GPT partition table:
fdisk /dev/sda
At the fdisk prompt: Type g. This will create a new empty GPT partition table. Write the partition table and exit by typing w. Partition the micro SD card:
cgpt create /dev/sda
cgpt add -i 1 -t kernel -b 8192 -s 32768 -l Kernel -S 1 -T 5 -P 10 /dev/sda
To create the rootfs partition, we first need to calculate how big to make the partition using information from cgpt show. Look for the number under the start column for Sec GPT table which is 15633375 in this example:
localhost / # cgpt show /dev/sda
start size part contents
0 1 PMBR
1 1 Pri GPT header
8192 32768 1 Label: "Kernel"
Type: ChromeOS kernel
UUID: E3DA8325-83E1-2C43-BA9D-8B29EFFA5BC4
Attr: priority=10 tries=5 successful=1
15633375 32 Sec GPT table
15633407 1 Sec GPT header
Replace the xxxxx string in the following command with that number to create the root partition:
cgpt add -i 2 -t data -b 40960 -s `expr xxxxx - 40960` -l Root /dev/sda
Tell the system to refresh what it knows about the disk partitions:
partx -a /dev/sda
Format the root partition:
mkfs.ext4 /dev/sda2
Download and extract rootfs tarball:
cd /tmp
curl -LO http://os.archlinuxarm.org/os/ArchLinuxARM-veyron-latest.tar.gz
mkdir root
mount /dev/sda2 root
tar -xf ArchLinuxARM-veyron-latest.tar.gz -C root
Flash the kernel to the kernel partition:
dd if=root/boot/vmlinux.kpart of=/dev/sda1
Unmount the root partition:
umount root
sync
Reboot the computer. At the splash screen, instead of pressing Ctrl-D to go to ChromeOS, press Ctrl-U to boot to the external drive. After logging in as root (password is "root"), you can connect to a wireless network by running:
wifi-menu
Mainline Kernel
The installation above will use the ChromeOS 3.14 kernel. The mainline kernel can be used instead, though some hardware may not be working yet. Two options are available to switch to the mainline kernel:
Replace kernel packages after installation Install linux-armv7 packages, replacing the linux-veyron package, and the firmware-veyron package:
pacman -S linux-armv7 linux-armv7-chromebook firmware-veyron
Type y and hit enter when prompted to flash the kernel to the kernel partition. Remove the veyron-libgl and xf86-video-armsoc-rockchip packages. Mali is not supported in mainline.
pacman -R veyron-libgl xf86-video-armsoc-rockchip
Reboot. Perform a new installation with the above steps using the armv7-chromebook tarball:
http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-chromebook-latest.tar.gz
Install the firmware-veyron package, or copy it to the drive for later installation for wifi support.
pacman -S firmware-veyron
Additional Packages
X.org video driver package: xf86-video-armsoc-rockchip
Mali EGL and GLES drivers: veyron-libgl
How to install archlinux :
https://archlinuxarm.org/platforms/armv7/rockchip/asus-chromebook-flip-c100p
http://www.muktware.io/how-to-install-arch-linux-arm-on-asus-chromebook-flip/
http://kmkeen.com/c100p-tweaks/
Other tips :
install xorg-server :
pacman -Syu xorg-server xorg-xinit xorg-server-utils
keyboard : if you have a gb keyboard run : localectl set-x11-keymap gb chromebook (see Chrome_OS_devices#xkeyboard_configuration)
timezone : il you live in Europe/Paris you may need to run : timedatectl set-timezone Europe/Paris
audio : https://wiki.debian.org/InstallingDebianOn/Asus/C201#Audio (working for me, User:Pierro78)
also on https://hackaday.io/project/8770-archmbook :
To enable audio run
amixer -c 0 sset “Right Speaker Mixer Right DAC” unmute
amixer -c 0 sset “Left Speaker Mixer Left DAC” unmute
sudo alsactl store
that will enable sound somehow (I still only have sound from one youtube instance, but for me that is ok)
video player : vlc seems to work better than smplayer with mpv but you need to set video output mode and alsa-audio-device as explained on http://kmkeen.com/c100p-tweaks/
wifi after suspend/resume : for wifi to work after resume blacklist btsdio as explained by keenerd : https://archlinuxarm.org/forum/viewtopic.php?f=60&t=9477
Issues :
after suspend/resume wifi didn't reconnect well to the 5Ghz band of my archer C7 but the regular 2.4Ghz band seems to be doing fine
chromium 55 doesn t seem to work as of 31th of december 2016 but chromium 54 is OK : https://archlinuxarm.org/forum/viewtopic.php?f=15&t=11034
it looks like there are issues getting xorg hardware acceleration / 3D working, see : https://archlinuxarm.org/forum/viewtopic.php?f=9&t=10675
See also :
General information (Crouton, etc ...) : http://www.bitkistl.com/2016/06/chromebook-flip-c100-user-guide.html
Facebook Group : Asus Chromebook Flip C100PA - Flippin' Awesome : https://www.facebook.com/groups/1880671302151825/
(as of 2016 there is more activity in the google plus communities though ...)
wifi-menu
pacman -Sy
pacman -S alsa-utils
alsamixer
sudo pacman -S xorg-server xorg-xinit xorg-server-utils
pacman -S xorg-apps
sudo pacman -S mesa
sudo pacman -S xorg-twm xorg-xclock xterm
sudo pacman -S xf86-input-synaptics
pacman -S xf86-video-armsoc-rockchip
wget .../20-.txt
mv 20-.txt /etc/share/X11/xorg.d/20-.conf
sync
startx
Create a xorg config file along with some better touchpad settings /usr/share/X11/xorg.conf.d/20-armsoc.conf
Section "Device"
Identifier "Mali"
Driver "modesetting"
Option "ShadowFB" "false"
EndSection
Section "Screen"
Identifier "DefaultScreen"
Device "Mali"
DefaultDepth 24
EndSection
Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
MatchIsTouchpad "on"
Option "Sensitivity" "0.45"
Option "FingerHigh" "12"
Option "FingerLow" "1"
Option "IgnoreThumb" "true"
Option "IgnorePalm" "true"
Option "TapButton1" "0"
Option "TapButton2" "0"
Option "TapButton3" "0"
Option "TapButton4" "0"
Option "ClickFinger1" "1"
Option "ClickFinger2" "3"
Option "ClickFinger3" "3"
Option "ButtonMoveEmulate" "false"
Option "ButtonIntegrated" "true"
Option "ClickTime" "25"
Option "BottomEdge" "25"
Option "SwipeLeftButton" "8"
Option "SwipeRightButton" "9"
Option "SwipeUpButton" "0"
Option "SwipeDownButton" "0"
Option "ScrollDistance" "75"
EndSection
Section "DRI"
Mode 0666
EndSection
Section "Module"
Disable "glamoregl"
Disable "fbdev"
EndSection
References
Maybe look at: https://serverfault.com/questions/794954/add-swap-partition-on-zram-device-using-udev-rule for this project
https://www.linux.org/threads/trying-to-create-a-swapfile.33635/