ChrUbuntu (Acer): How to load kernel 3.8.0-16 instead 3.4.0?

5

4

I have an Acer C7 Chromebook with an Intel CPU, and I had installed there ChrUbuntu. I updated (Chr)Ubuntu to 13.04 daily version using dist-upgrade. But I found that I still use Google v.3.4.0 Linux kernel, not Canonical v.3.8.0. So how can I change kernel?

I found how to do it on normal computers with GRUB, but it is Chromebook, so there is no Grub.

Ivan Zelenskyy

Posted 2013-04-15T21:32:30.587

Reputation: 153

for what it's worth - there may be drivers in Google's kernel that aren't available in Canonical's vanilla 3.8.0. things could break/stop working if the kernel is changed. – nc4pk – 2013-04-15T21:39:48.407

Acer C7 Chromebook has hardware that is typical for Acer Aspire netbooks, so there is no unique drivers in kernel. – Ivan Zelenskyy – 2013-04-15T23:35:50.393

Answers

5

I followed the instructions from the following link

(http://velvet-underscore.blogspot.com/2013/01/chrubuntu-virtualbox-with-kvm.html)

and updated the script for Kernel 3.8.0 for Acer C7 running on Chrubuntu:

#!/bin/bash

set -x

#
# Grab verified boot utilities from ChromeOS.
#
mkdir -p /usr/share/vboot
mount -o ro /dev/sda3 /mnt
cp /mnt/usr/bin/vbutil_* /usr/bin
cp /mnt/usr/bin/dump_kernel_config /usr/bin
rsync -avz /mnt/usr/share/vboot/ /usr/share/vboot/
umount /mnt

#
# On the Acer C7, ChromeOS is 32-bit, so the verified boot binaries need a
# few 32-bit shared libraries to run under ChrUbuntu, which is 64-bit.
#
apt-get install libc6:i386 libssl1.0.0:i386

#
# Fetch ChromeOS kernel sources from the Git repo.
#
apt-get install git-core
cd /usr/src
git clone  https://git.chromium.org/git/chromiumos/third_party/kernel-next.git
cd kernel-next
git checkout origin/chromeos-3.8

#
# Configure the kernel
#
# First we patch ``base.config`` to set ``CONFIG_SECURITY_CHROMIUMOS``
# to ``n`` ...
cp ./chromeos/config/base.config ./chromeos/config/base.config.orig
sed -e \
  's/CONFIG_SECURITY_CHROMIUMOS=y/CONFIG_SECURITY_CHROMIUMOS=n/' \
  ./chromeos/config/base.config.orig > ./chromeos/config/base.config
./chromeos/scripts/prepareconfig chromeos-intel-pineview
#
# ... and then we proceed as per Olaf's instructions
#
yes "" | make oldconfig

#
# Build the Ubuntu kernel packages
#
apt-get install kernel-package
make-kpkg kernel_image kernel_headers

#
# Backup current kernel and kernel modules
#
tstamp=$(date +%Y-%m-%d-%H%M)
dd if=/dev/sda6 of=/kernel-backup-$tstamp
cp -Rp /lib/modules/3.4.0 /lib/modules/3.4.0-backup-$tstamp

#
# Install kernel image and modules from the Ubuntu kernel packages we
# just created.
#
dpkg -i /usr/src/linux-*.deb

#
# Extract old kernel config
#
vbutil_kernel --verify /dev/sda6 --verbose | tail -1 > /config-$tstamp-orig.txt
#
# Add ``disablevmx=off`` to the command line, so that VMX is enabled (for VirtualBox & Co)
#
sed -e 's/$/ disablevmx=off/' \
  /config-$tstamp-orig.txt > /config-$tstamp.txt

#
# Wrap the new kernel with the verified block and with the new config.
#
vbutil_kernel --pack /newkernel \
  --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
  --version 1 \
  --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
  --config=/config-$tstamp.txt \
  --vmlinuz /boot/vmlinuz-3.8.0 \
  --arch x86_64

#
# Make sure the new kernel verifies OK.
#
vbutil_kernel --verify /newkernel

#
# Copy the new kernel to the KERN-C partition.
#
dd if=/newkernel of=/dev/sda6

Mondip Sen

Posted 2013-04-15T21:32:30.587

Reputation: 81

Thank you! Also, did you tried to pack in same way an Canonical's "3.8.0-xx-generic" kernel? – Ivan Zelenskyy – 2013-05-13T06:01:06.200

1

The kernel source that is built using the script mentioned above includes a regression bug, which will cause the C7 display back-light to fail to come on when it comes back from suspend. This effectively makes suspend useless when using the internal display, since it will not wake to the point that you can use the display and you must hard-boot to get it back. See here: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1156306 I am working on a patch to fix the issue. I will post it here once I have something working.

– None – 2013-05-16T15:03:12.107