Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(293)

Unified Diff: docs/linux_chromium_arm.md

Issue 1309473002: WIP: Migrate Wiki content over to src/docs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: docs/linux_chromium_arm.md
diff --git a/docs/linux_chromium_arm.md b/docs/linux_chromium_arm.md
new file mode 100644
index 0000000000000000000000000000000000000000..927be6e79497a92460fc6f0df9f21e2b9645a430
--- /dev/null
+++ b/docs/linux_chromium_arm.md
@@ -0,0 +1,123 @@
+Note this currently contains various recipes:
+
+
+
+---
+
+
+# Recipe1: Building for an ARM CrOS device
+This recipe uses `ninja` (instead of `make`) so its startup time is much lower (sub-1s, instead of tens of seconds), is integrated with goma (for google-internal users) for very high parallelism, and uses `sshfs` instead of `scp` to significantly speed up the compile-run cycle. It has moved to https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building-for-cros-arm-x64 (mostly b/c of the ease of attaching files to sites).
+
+
+
+---
+
+
+# Recipe2: Explicit Cross compiling
+
+Due to the lack of ARM hardware with the grunt to build Chromium native, cross compiling is currently the recommended method of building for ARM.
+
+These instruction are designed to run on Ubuntu Precise.
+
+### Installing the toolchain
+
+The install-build-deps script can be used to install all the compiler
+and library dependencies directly from Ubuntu:
+
+```
+$ ./build/install-build-deps.sh --arm
+```
+
+### Installing the rootfs
+
+A prebuilt rootfs image is kept up-to-date on Cloud Storage. It will
+automatically be installed by gclient runhooks installed if you have 'target\_arch=arm' in your GYP\_DEFINES.
+
+To install the sysroot manually you can run:
+```
+$ ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py --arch=arm
+```
+
+### Building
+
+To build for ARM, using the clang binary in the chrome tree, use the following settings:
+
+```
+export GYP_CROSSCOMPILE=1
+export GYP_DEFINES="target_arch=arm"
+```
+
+There variables need to be set at gyp-time (when you run gyp\_chromium),
+but are not needed at build-time (when you run make/ninja).
+
+## Testing
+
+### Automated Build and Testing
+
+Chromium's testing infrastructure for ARM/Linux is (to say the least)
+in its infancy. There are currently two builders setup, one on the
+FYI waterfall and one the the trybot waterfall:
+
+http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Cross-Compile
+http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm
+
+
+These builders cross compile on x86-64 and then trigger testing
+on real ARM hard bots:
+
+http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Tests%20%28Panda%29/
+http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_tester
+
+Unfortunately, even those the builders are usually green, the testers
+are not yet well maintained or monitored.
+
+There is compile-only trybot and fyi bot also:
+
+http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM
+http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_compile
+
+### Testing with QEMU
+
+If you don't have a real ARM machine, you can test with QEMU. For instance, there are some prebuilt QEMU Debian images here: http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs generated by rootstock, as mentioned above.
+
+Here's a minimal xorg.conf if needed:
+
+```
+Section "InputDevice"
+ Identifier "Generic Keyboard"
+ Driver "kbd"
+ Option "XkbRules" "xorg"
+ Option "XkbModel" "pc105"
+ Option "XkbLayout" "us"
+EndSection
+
+Section "InputDevice"
+ Identifier "Configured Mouse"
+ Driver "mouse"
+EndSection
+
+Section "Device"
+ Identifier "Configured Video Device"
+ Driver "fbdev"
+ Option "UseFBDev" "true"
+EndSection
+
+Section "Monitor"
+ Identifier "Configured Monitor"
+EndSection
+
+Section "Screen"
+ Identifier "Default Screen"
+ Monitor "Configured Monitor"
+ Device "Configured Video Device"
+ DefaultDepth 8
+ SubSection "Display"
+ Depth 8
+ Modes "1024x768" "800x600" "640x480"
+ EndSubSection
+EndSection
+```
+
+### Notes
+ * To building for thumb reduces the stripped release binary by around 9MB, equating to ~33% of the binary size. To enable thumb, set 'arm\_thumb': 1
+ * TCmalloc does not have an ARM port, so it is disabled.

Powered by Google App Engine
This is Rietveld 408576698