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.

  • 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 Apr 15 '13 at 21:39
  • Acer C7 Chromebook has hardware that is typical for Acer Aspire netbooks, so there is no unique drivers in kernel. – Ivan Zelenskyy Apr 15 '13 at 23:35

I followed the instructions from the following link


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


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 \
  ./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
  • Thank you! Also, did you tried to pack in same way an Canonical's "3.8.0-xx-generic" kernel? – Ivan Zelenskyy May 13 '13 at 6:01
  • 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: 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. – user224791 May 16 '13 at 15:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.