ChrUbuntu (Acer): ¿Cómo cargar el kernel 3.8.0-16 en lugar de 3.4.0?

5

Tengo un Acer C7 Chromebook con una CPU Intel, y había instalado allí ChrUbuntu. Actualicé (Chr) Ubuntu a la versión diaria 13.04 usando dist-upgrade. Pero descubrí que todavía uso el kernel de Linux Google v.3.4.0, no Canonical v.3.8.0. Entonces, ¿cómo puedo cambiar el kernel?

Encontré cómo hacerlo en computadoras normales con GRUB, pero es Chromebook, por lo que no hay Grub.

Ivan Zelenskyy
fuente
por lo que vale, puede haber controladores en el kernel de Google que no están disponibles en Canonical's vanilla 3.8.0. las cosas podrían romperse / dejar de funcionar si se cambia el núcleo.
nc4pk
El Chromebook Acer C7 tiene un hardware típico de los netbooks Acer Aspire, por lo que no hay controladores únicos en el núcleo.
Ivan Zelenskyy

Respuestas:

5

Seguí las instrucciones del siguiente enlace

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

y actualicé el script para Kernel 3.8.0 para Acer C7 que se ejecuta en 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
fuente
¡Gracias! Además, ¿trató de empacar de la misma manera el núcleo "3.8.0-xx-generic" de Canonical?
Ivan Zelenskyy
1
La fuente del kernel que se construye utilizando el script mencionado anteriormente incluye un error de regresión, que hará que la luz de fondo de la pantalla C7 no se encienda cuando regrese de la suspensión. Esto hace que la suspensión sea inútil cuando se usa la pantalla interna, ya que no se activará hasta el punto de que puede usar la pantalla y debe reiniciar para recuperarla. Ver aquí: bugs.launchpad.net/ubuntu/+source/linux/+bug/1156306 Estoy trabajando en un parche para solucionar el problema. Lo publicaré aquí una vez que tenga algo funcionando.