Question

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.

Was it helpful?

Solution

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.)

OTHER TIPS

Samsung chromebooks have ARM processors, so I'm not sure they will. I suggest you give up. I have exhaustively researched about installing linux-headers-3.4.0 on my Acer Chromebook, but with no avail. People say it works, and I have run at least 10 different scripts, but all of them fail. I installed 64 bit ChrUbuntu 12.04 via goo.gl/tnyga.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top