Criando Kernels personalizados para o ChrUbuntu no Samsung Chromebook XE500C21

0

Estou tentando criar kernels personalizados para o meu Samsung XE500C21 executando o ChrUbuntu. Eu preciso de kernels que sejam pelo menos 3.4.0 porque estou tentando rodar o VMWare Workstation. Estou executando o ChrUbuntu 13.04. Eu tentei todos os scripts bash Acer C7 e nenhum deles funcionou para mim. Eu preciso de um especificamente para o Samsung XE500C21. Por favor ajude.

    
por pr0d1gy 24.11.2013 / 20:23

1 resposta

0

Finalmente, resolvi meu problema. O seguinte tutorial que fiz explica como obter cabeçalhos de kernel personalizados 3.4.0 instalados e funcionando no seu Chromebook Samsung Série 5. Nota: Você deve ter um processador não-ARM para que isso funcione. Além disso, use este tutorial para instalar o Chrubuntu 12.04 no seu Samsung Série 5, se você ainda não o fez:

Antes de executar o script, verifique se você está logado como root.

1. Execute este script que eu modifiquei nos tutoriais do Acer C7 ( NOTE : NÃO sobrescreva o kernel quando receber a mensagem. Basta pressionar sim. sobrescrever o kernel, ele pode causar mau funcionamento da instalação do Chrubuntu):

#!/bin/bash
#Edited 11/27/2013 
#Fixes the old_bins directory not found error

set -x

#
# Grab verified boot utilities from ChromeOS.
#
mkdir -p /usr/share/vboot

#
#Make a new directory called old_bins
#
mkdir -p /usr/bin/old_bins


mount -o ro /dev/sda3 /mnt

#
#copy the vbutil_* commands to the old_bins directory
#
cp /mnt/usr/bin/vbutil_* /usr/bin/
cp /mnt/usr/bin/vbutil_* /usr/bin/old_bins


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.git
cd kernel
git checkout origin/chromeos-3.4

#
# 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.8.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.4.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

2. Não deve completar a primeira execução. Você receberá um erro sobre fstack-protector-strong . Navegue até /usr/src/kernel/arch/x86/Makefile e edite a Linha 78 de stackp-y := -fstack-protector-strong para stackp-y := -fstack-protector-all

3. Execute o script novamente com o Makefile recém-modificado. Novamente, não sobrescreva o kernel.

4. Você deve receber mais alguns erros, mas não se preocupe. Agora é hora de abrir o VMware Workstation. Quando o prompt do Kernel 3.4.0 estiver faltando, aponte a caixa de prompt para: /usr/src/linux-headers-3.4.0/include

5. Você terminou! Tudo deveria estar funcionando agora. O crédito vai para michaela_elise (Reddit) para criar o script original e apontar o problema -fstack-protector-strong . ( OBSERVAÇÃO : Você pode precisar reinicializar depois de executar o script pela segunda e última vez. Eu tive uma falha com o VMware Workstation logo depois de executar o segundo script.)

    
por 28.11.2013 / 09:45