Robert Foss
February 16, 2017
Reading time:
How to set up a fully functional ChromiumOS development environment on actual Chromebook hardware.
export DEV_DIR="/opt" mkdir -p $DEV_DIR export CHROMIUM_DIR="$DEV_DIR/chromiumos" mkdir -p $CHROMIUM_DIR export PATH="$DEV_DIR/depot_tools:$PATH" # The BOARD variable used here is specific for the Chromebook that is # being targeted, a more generic target like "amd64-generic" could # be more useful for you needs. export BOARD=chell # The USB_DEVICE variable refers to the USB device that will be used # for flashing ChromiumOS onto a Chromebook. # Make sure that this device does not contain anything important! export USB_DEVICE="/dev/sda" |
sudo apt install git-core gitk git-gui subversion curl cd $DEV_DIR git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git |
cd ${CHROMIUM_DIR} repo init -u https://chromium.googlesource.com/chromiumos/manifest.git repo sync -j25 |
cros_sdk -- ./build_packages --board=${BOARD} cros_sdk -- ./build_image --board=${BOARD} |
cros_sdk -- cros flash --board=${BOARD} usb:/$USB_DEVICE |
Enter Chromebook into dev-mode
This part is highly device specific, and depends on how the manufacturer of your device has chosen to implement the dev-mode switch.
A partial list of devices and how to enter them into dev-mode can be found here.
Flash ChromiumOS to Chromebook
Fire up your Chrombook device and hit Ctrl+Alt+Back, followed by 'chronos' and hit enter. Followed by the below command to install the ChromiumOS build that was just flashed.
/usr/sbin/chromeos-install |
On Chromebook
Again fire up your Chrombook device and hit Ctrl+Alt+Back, followed by 'chronos' and hit enter.
# Remount the root drive read / write sudo mount -o remount,rw / # Open port so that gdbserver can be reached sudo /sbin/iptables -A INPUT -p tcp --dport 1234 -j ACCEPT # Run gdb server, listening on port 1234 (opened in iptables command above) sudo gdbserver :1234 chrome |
On dev machine
# On x86 cros_sdk -- sudo USE=expat emerge cross-i686-pc-linux-gnu/gdb # On ARMv7 cros_sdk -- sudo USE=expat emerge cross-armv7a-cros-linux-gnueabi/gdb cros_sdk -- i686-pc-linux-gnu-gdb "/build/$BOARD/opt/google/chrome/chrome" (gdb) set sysroot /build/$BOARD/ (gdb) target remote IP_ADDR_CHROMEBOOK:1234 (gdb) continue |
This is a bit of a rough outline, and is only suitable for Chromebook devices that already are in dev-mode.
This post has been a part of work undertaken by my employer Collabora.
ChromiumOS Depo Tools
ChromiumOS Quick Start
ChromiumOS Dev Mode
ChromiumOS Debug
08/10/2024
Having multiple developers work on pre-merge testing distributes the process and ensures that every contribution is rigorously tested before…
15/08/2024
After rigorous debugging, a new unit testing framework was added to the backend compiler for NVK. This is a walkthrough of the steps taken…
01/08/2024
We're reflecting on the steps taken as we continually seek to improve Linux kernel integration. This will include more detail about the…
27/06/2024
With each board running a mainline-first Linux software stack and tested in a CI loop with the LAVA test framework, the Farm showcased Collabora's…
26/06/2024
WirePlumber 0.5 arrived recently with many new and essential features including the Smart Filter Policy, enabling audio filters to automatically…
12/06/2024
Part 3 of the cmtp-responder series with a focus on USB gadgets explores several new elements including a unified build environment with…
Comments (1)
Mr. Elder Glen Dawes:
Jan 22, 2019 at 03:43 PM
Looks like Chrome
Reply to this comment
Reply to this comment
Add a Comment