Я пытаюсь собрать собственные ядра для своего Samsung XE500C21 под управлением ChrUbuntu. Мне нужны ядра не ниже 3.4.0, потому что я пытаюсь запустить VMWare Workstation. Я использую ChrUbuntu 13.04. Я перепробовал все bash-скрипты Acer C7, и ни один из них мне не помог. Мне нужен один специально для Samsung XE500C21. Пожалуйста помоги.
1 ответ
Наконец-то я решил свою проблему. В следующем уроке, который я сделал, объясняется, как установить и установить собственные заголовки ядра 3.4.0 на ваш Chromebook Samsung Series 5. Примечание: у вас должен быть процессор не-ARM, чтобы это работало. Кроме того, используйте это руководство для установки Chrubuntu 12.04 на Samsung Series 5, если вы этого еще не сделали: http://chromeos-cr48.blogspot.com/2012/04/chrubuntu-1204-now-with-double-bits .html
Прежде чем запускать скрипт, обязательно войдите в систему как root.
1. Запустите этот сценарий, который я изменил из учебников по Acer C7 (ПРИМЕЧАНИЕ: НЕ перезаписывайте ядро при получении сообщения. Просто нажмите да. Если вы перезапишите ядро, это может привести к сбоям в установке 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. Это не должно завершить первый запуск. Вы получите ошибку о fstack-protector-strong
. Перейдите в /usr/src/kernel/arch/x86/Makefile
и отредактируйте строку 78 из stackp-y := -fstack-protector-strong
в stackp-y := -fstack-protector-all
3. Запустите сценарий снова с вновь измененным Makefile. Опять же, не перезаписывайте ядро.
4. Вы должны получить еще несколько ошибок, но не волнуйтесь. Теперь пришло время открыть VMware Workstation. Когда вы получаете приглашение Kernel 3.4.0, в котором отсутствует заголовок, укажите в окне приглашения: /usr/src/linux-headers-3.4.0/include
5. Вы сделали! Все должно работать сейчас. Автор благодарности michaela_elise(Reddit) за создание оригинального сценария и указание на -fstack-protector-strong
. (ПРИМЕЧАНИЕ . Может потребоваться перезагрузка после запуска сценария во второй и последний раз. У меня был сбой с VMware Workstation сразу после запуска второго скрипта.)