Howto: Install ALARM on Acer CB5-311-T6R7 Chromebook

This forum is for supported devices using an ARMv7 nVidia SoC.

Howto: Install ALARM on Acer CB5-311-T6R7 Chromebook

Postby raumzeit » Mon Aug 31, 2015 10:53 pm

Hi everybody,

last weekend, I went to a Hackathon at our local Hackerspace here in Vienna (http://www.metalab.at). There, I took the opportunity to dig into the install procedure of ArchLinuxARM for my Acer Chromebook 13 (NVidia Tegra K1), which I (more or less) successfully accomplished.
I've got alarm running, and two extra PKGBUILDs to share, one for the proprietary Tegra K1 drivers, and the other for the ChromeOS kernel 3.10.18. Additionally, I modified a chrubuntu script to use the archlinuxarm-armv7 root filesystem, such that an initial installation is relatively easy to accomplish. There are only some (hopefully) minor glitches, that need some attention, which I will explain at the bottom of this post. Apart from that, I've got full GL, and GLES support, and xfce4 running on that machine. Sound and Wifi are also working fine.

Initial Install:
For the initial installation, I've used my modified chrubuntu script (archlinux.sh), which is avialable through my github repo:

https://github.com/RaumZeit/LinuxOnAcerCB5-311/tree/archlinux

Just follow the instructions in the README.md to perform an initial installation of alarm, including Xorg/XFCE4 and some basic utilities.
Please note, that for now, installation is assumed to target the internal EMMC storage, using the newly created partitions 6 and 7 for kernel and rootfs, respectively. If you want to install it somewhere else, you need to manually change my ChromeOS kernel PKGBUILD later.
This initial installation does not package the necessary Linux kernel yet, but copies the existing ChromeOS kernel to partition 6. I've been just too lazy for now, to include the linux-nyan kernel package build procedure in the installer script, so you just need to do this later, once alarm is running. However, this immediately brings up some problems that explain, why I even bothered to create a linux kernel package for this chromebook:
The pre-existing ChromeOS kernel lacks full systemd support.
That is why some other users experienced kernel panics and other things during shutdown/reboot. Nevertheless, the existing ChromeOS kernel is still just fine to boot into alarm later on, before compiling one that entirely supports alarm/systemd.

Regarding the proprietary NVidia Tegra K1 drivers, I've create a package gpu-nvidia-tegra-k1, that basically downloads the NVidia driver blobs and packages them more or less nicely. For now, I've commented out the libjpeg.so provided in the Nvidia driver package since it conflicts with libjpeg-turbo (I leave it commented out until I split the gpu-nvidia-tegra-k1 package into individual subpackages). Anyway, this package is automagically installed by my archlinux.sh installer script, but can also be investigated in my github fork of the archlinuxarm/PKGBUILDS here:

https://github.com/RaumZeit/PKGBUILDs/t ... a-tegra-k1

Once you booted into alarm, create your own user and put it into the wheel and video group, such that sudo and
NVidia device access is granted. The preexisting alarm user can then be savely removed. Also do not forget to change the default passwords!

Next, you need to compile a kernel that is capable of supporting systemd, since this is the default in ArchLinuxARM. Therefore, as mentioned earlier, I've created a package linux-nyan, that you may use for this job. It is available here:

https://github.com/RaumZeit/PKGBUILDs/t ... linux-nyan

In short, this package just pulls the latest ChromeOS 3.10 kernel frome googles git repo, and patches it to comply with GCC5. Additionally, the Marvel Chipset used for Wifi in this chromebook comes with two additional devices, an accesspoint (AP) and a Peer2Peer device (P2P) which troubles NetworkManager. Therefore, I've also included a patch that deactivates these two.
Just clone my archlinuxarm/PKGBUILDs fork, using the acer_cb_tegrak1 branch, and build and install the core/linux-nyan package using makepkg, like so:

$this->bbcode_second_pass_code('', '
makepkg -si
')

At the end of the installation, you will be prompted to copy the kernel to /dev/mmcblk0p6, which should be the right partition in case you did not left the howto guide above ;) Otherwise, just dd it onto the partition you use for the alarm kernel.

To get pulseaudio working, I modified the /etc/pulse/default.pa by adding
$this->bbcode_second_pass_code('', '
load-module module-alsa-sink device=hw:1,0
')

Thats it!

For me, everything works fine, except for Suspending to RAM! After installing pm-utils from the alarm repo, I can easily put the Chromebook into suspend mode via
$this->bbcode_second_pass_code('', 'pm-suspend') from a virtual terminal. If I issue the same command from within X, the system just freezes and needs a hard reboot. For now, I do not know how to fix this, so if anybody knows a solution to this, please tell me.

P.S.: At the time of writing this, the latest chromium browser from alarm repo still segfaults on all my ArchLinuxARM devices. Until this is fixed, install midori, or firefox, or use the old chromium package here http://archlinuxarm.org/forum/viewtopic.php?f=60&t=9109&start=10#p48213

Edit: In the meantime, I've managed to get suspend-to-ram working, and also the headphone jack issues a command that instructs pulseaudio to switch the output port upon plug/unplug events. I set up a new instructions-page for the installation and a basic setup using my modified chrubuntu script, which can be found here: http://www.tbi.univie.ac.at/~ronny/acer-cb5-311.html
Acer CB5-311, Asus Flip, Tinker Board, Samsung ARM Chromebook, NSA 325, ix4-300d, WandBoard Quad, Raspberry Pi B, BeagleBoard ...and a dead Pandaboard :sad:
raumzeit
 
Posts: 73
Joined: Mon Oct 17, 2011 8:37 pm
Location: Vienna AT

Re: Howto: Install ALARM on Acer CB5-311-T6R7 Chromebook

Postby morpheus302 » Thu Nov 26, 2015 6:56 pm

Excuse my noob question.
I have managed to install chrubuntu on my acer CB5-311-T8BT but could'nt fix the headphone jack problem.

Can you detail how to boot from archlinux instead of chromeos?? am i missing something?
morpheus302
 
Posts: 1
Joined: Thu Nov 26, 2015 6:52 pm

Re: Howto: Install ALARM on Acer CB5-311-T6R7 Chromebook

Postby raumzeit » Sun Dec 06, 2015 8:21 pm

Hi Morpheus302,
I think I do not get exactly what you mean. Which attempts did you try in order to get headphone jack detection working?
I've detailed how to do that using acpid at my how-to page http://www.tbi.univie.ac.at/~ronny/acer ... dphonejack This should, in principle, work with ubuntu as well.

Getting archlinux onto you chromebook will, on the other hand, removes your chrubuntu installation, not ChromeOS.
The installation procedure is also described at my how-to page.

Best,

RaumZeit

P.S.: The NVIDIA xorg driver does not work with Xorg 1.18 (which is default in ALARM since November) due to ABI change from 19 to 20!
You need to downgrade using the following packages:
$this->bbcode_second_pass_code('', '
xorg-server-common-1.17.2-4-armv7h.pkg.tar.xz
xorg-server-1.17.2-4-armv7h.pkg.tar.xz
xf86-input-synaptics-1.8.2-2-armv7h.pkg.tar.xz
xf86-input-evdev-2.9.2-1-armv7h.pkg.tar.xz
')
Acer CB5-311, Asus Flip, Tinker Board, Samsung ARM Chromebook, NSA 325, ix4-300d, WandBoard Quad, Raspberry Pi B, BeagleBoard ...and a dead Pandaboard :sad:
raumzeit
 
Posts: 73
Joined: Mon Oct 17, 2011 8:37 pm
Location: Vienna AT

Re: Howto: Install ALARM on Acer CB5-311-T6R7 Chromebook

Postby Arial7 » Fri Dec 18, 2015 2:51 pm

Do you have these packages in your cache and can you share them?

I just installed ALARM and cannot figure out how to downgrade.

Thanks in advance

EDIT:

Okay, I've got it workin using the mirror at:
http://fraggod.net/static/mirror/packages/archlinuxarm/armv7h/
Arial7
 
Posts: 1
Joined: Fri Dec 18, 2015 2:48 pm


Return to nVidia

Who is online

Users browsing this forum: No registered users and 1 guest