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

Side by Side Diff: docs/linux_chromium_arm.md

Issue 1468763002: Update ARM linux docs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Linux Chromium Arm Recipes 1 # Linux Chromium Arm Recipes
2 2
3 [TOC] 3 [TOC]
4 4
5 ## Recipe1: Building for an ARM CrOS device 5 ## Recipe1: Building for an ARM CrOS device
6 6
7 This recipe uses `ninja` (instead of `make`) so its startup time is much lower 7 This recipe uses `ninja` (instead of `make`) so its startup time is much lower
8 (sub-1s, instead of tens of seconds), is integrated with goma (for 8 (sub-1s, instead of tens of seconds), is integrated with goma (for
9 google-internal users) for very high parallelism, and uses `sshfs` instead of 9 google-internal users) for very high parallelism, and uses `sshfs` instead of
10 `scp` to significantly speed up the compile-run cycle. It has moved to 10 `scp` to significantly speed up the compile-run cycle. It has moved to
11 https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building -for-cros-arm-x64 11 https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building -for-cros-arm-x64
12 (mostly b/c of the ease of attaching files to sites). 12 (mostly b/c of the ease of attaching files to sites).
13 13
14 14
15 ## Recipe2: Explicit Cross compiling 15 ## Recipe2: Explicit Cross compiling
16 16
17 Due to the lack of ARM hardware with the grunt to build Chromium native, cross 17 Due to the lack of ARM hardware with the grunt to build Chromium native, cross
18 compiling is currently the recommended method of building for ARM. 18 compiling is currently the recommended method of building for ARM.
19 19
20 These instruction are designed to run on Ubuntu Precise. 20 These instruction are designed to run on Ubuntu Precise.
21 21
22 ### Installing the toolchain 22 ### Installing the toolchain
23 23
24 The install-build-deps script can be used to install all the compiler 24 The install-build-deps script can be used to install all the compiler
25 and library dependencies directly from Ubuntu: 25 and library dependencies directly from Ubuntu:
26 26
27 $ ./build/install-build-deps.sh --arm 27 $ ./build/install-build-deps.sh
28 28
29 ### Installing the rootfs 29 ### Installing the rootfs
30 30
31 A prebuilt rootfs image is kept up-to-date on Cloud Storage. It will 31 A prebuilt rootfs image is kept up-to-date on Cloud Storage. It will
32 automatically be installed by gclient runhooks installed if you have 32 automatically be installed by gclient runhooks installed if you have
33 `target_arch=arm` in your `GYP_DEFINES`. 33 `target_arch=arm` in your `GYP_DEFINES`.
34 34
35 To install the sysroot manually you can run: 35 To install the sysroot manually you can run:
36 36
37 ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py \ 37 ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py \
38 --arch=arm 38 --arch=arm
39 39
40 ### Building 40 ### Building
41 41
42 To build for ARM, using the clang binary in the chrome tree, use the following 42 To build for ARM, using the clang binary in the chrome tree, use the following
43 settings: 43 settings:
44 44
45 export GYP_CROSSCOMPILE=1 45 export GYP_CROSSCOMPILE=1
46 export GYP_DEFINES="target_arch=arm" 46 export GYP_DEFINES="target_arch=arm"
47 47
48 There variables need to be set at gyp-time (when you run `gyp_chromium`), 48 There variables need to be set at gyp-time (when you run `gyp_chromium`),
49 but are not needed at build-time (when you run make/ninja). 49 but are not needed at build-time (when you run make/ninja).
50 50
51 ## Testing 51 ## Testing
52 52
53 ### Automated Build and Testing 53 ### Automated Build and Testing
54 54
55 Chromium's testing infrastructure for ARM/Linux is (to say the least) 55 Chromium's testing infrastructure for ARM/Linux is somewhat limited.
56 in its infancy. There are currently two builders setup, one on the 56 There are currently two builders setup, one on the FYI waterfall and one
57 FYI waterfall and one the the trybot waterfall: 57 the the trybot waterfall:
58
59 * [Linux ARM Cross-Compile](http://build.chromium.org/p/chromium.fyi/builders/ Linux%20ARM%20Cross-Compile)
60 * [linux_arm](http://build.chromium.org/p/tryserver.chromium.linux/builders/li nux_arm)
61
62 These builders cross compile on x86-64 and then trigger testing on real ARM hard
63 bots:
64
65 * [Linux ARM Tests (Panda)](http://build.chromium.org/p/chromium.fyi/builders/ Linux%20ARM%20Tests%20%28Panda%29/)
66 * [linux_arm_tester](http://build.chromium.org/p/tryserver.chromium.linux/buil ders/linux_arm_tester)
67
68 Unfortunately, even those the builders are usually green, the testers are not
69 yet well maintained or monitored.
70
71 There is compile-only trybot and fyi bot also:
72 58
73 * [Linux ARM](http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM) 59 * [Linux ARM](http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM)
74 * [linux_arm_compile](http://build.chromium.org/p/tryserver.chromium.linux/bui lders/linux_arm_compile) 60 * [linux_arm_compile](http://build.chromium.org/p/tryserver.chromium.linux/bui lders/linux_arm_compile)
75 61
62 These bots run x86-64 linux and cross-compile the ARM targets. Tests are
63 run on ARM hardware via swarming.
64
76 ### Testing with QEMU 65 ### Testing with QEMU
77 66
78 If you don't have a real ARM machine, you can test with QEMU. For instance, 67 If you don't have a real ARM machine, you can test with QEMU. For instance,
79 there are some prebuilt QEMU Debian images here: 68 there are some prebuilt QEMU Debian images here:
80 http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs 69 http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs
81 generated by rootstock, as mentioned above. 70 generated by rootstock, as mentioned above.
82 71
83 Here's a minimal xorg.conf if needed: 72 Here's a minimal xorg.conf if needed:
84 73
85 ``` 74 ```
(...skipping 30 matching lines...) Expand all
116 Modes "1024x768" "800x600" "640x480" 105 Modes "1024x768" "800x600" "640x480"
117 EndSubSection 106 EndSubSection
118 EndSection 107 EndSection
119 ``` 108 ```
120 109
121 ### Notes 110 ### Notes
122 111
123 * To building for thumb reduces the stripped release binary by around 9MB, 112 * To building for thumb reduces the stripped release binary by around 9MB,
124 equating to ~33% of the binary size. To enable thumb, set `'arm_thumb': 1` 113 equating to ~33% of the binary size. To enable thumb, set `'arm_thumb': 1`
125 * TCmalloc does not have an ARM port, so it is disabled. 114 * TCmalloc does not have an ARM port, so it is disabled.
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698