-1

I am trying to install VMware Workstation on my Samsung XE500C21 running Chrubuntu 12.04. I was able to retrieve and install the generic linux headers for 3.4.0. However, whenever I try to start up VMware Workstation I still get:

Kernel headers for version 3.4.0 were not found.

And even after pointing to the headers in /usr/src I get:

C header files matching your running kernel were not found.

Anybody have any ideas on how I can get VMware Workstation up and working on my Chrubuntu machine? I've been researching and experimenting for two days now.

Running uname -r gives: 3.4.0

Also, I read that VMware Player can run on any Linux distribution: https://superuser.com/questions/571384/can-vmware-player-run-on-an-acer-a7-running-chrubuntu

But I'm not sure why VMware Workstation will not work with the generic 3.4.0 headers.

4

2 回答 2

1

Finally, I solved my problem. The following tutorial I made explains how to get custom 3.4.0 kernel headers installed and working on your Samsung Series 5 Chromebook. Note: You must have a non-ARM processor for this to work. Also, use this tutorial to install Chrubuntu 12.04 to your Samsung Series 5 if you haven't done so already: http://chromeos-cr48.blogspot.com/2012/04/chrubuntu-1204-now-with-double-bits.html

Make sure before you run through the script to log in as root.

1. Run this script that I modified from the Acer C7 tutorials(NOTE: DO NOT overwrite the kernel when you get the message. Just hit yes. If you overwrite the kernel, it may cause your Chrubuntu installation to malfunction):

#!/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. It should not complete the first run. You'll get an error about fstack-protector-strong. Navigate to /usr/src/kernel/arch/x86/Makefile and edit Line 78 from stackp-y := -fstack-protector-strong to stackp-y := -fstack-protector-all

3. Run the script again with the newly modified Makefile. Again, do not overwrite the kernel.

4. You should get some more errors, but don't worry. Now it is time to open up VMware Workstation. When you get the Kernel 3.4.0 headers are missing prompt, point the prompt box to: /usr/src/linux-headers-3.4.0/include

5. You're done! Everything should be working now. Credit goes to michaela_elise(Reddit) for creating the original script and pointing out the -fstack-protector-strong problem. (NOTE: You may need to reboot after running the script for the second and last time. I had a glitch with VMware Workstation right after I ran the script a second time.)

于 2013-11-28T05:20:02.560 回答
0

三星 chromebook 有 ARM 处理器,所以我不确定它们是否会。我建议你放弃。我对在我的 Acer Chromebook 上安装 linux-headers-3.4.0 进行了详尽的研究,但无济于事。人们说它有效,我已经运行了至少 10 个不同的脚本,但都失败了。我通过 goo.gl/tnyga 安装了 64 位 ChrUbuntu 12.04。

于 2013-11-27T17:09:25.547 回答