OLD | NEW |
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 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 (to say the least) |
56 in its infancy. There are currently two builders setup, one on the | 56 in its infancy. There are currently two builders setup, one on the |
57 FYI waterfall and one the the trybot waterfall: | 57 FYI waterfall and one the the trybot waterfall: |
58 | 58 |
59 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Cross-Compile | 59 * [Linux ARM Cross-Compile](http://build.chromium.org/p/chromium.fyi/builders/
Linux%20ARM%20Cross-Compile) |
60 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm | 60 * [linux_arm](http://build.chromium.org/p/tryserver.chromium.linux/builders/li
nux_arm) |
61 | 61 |
62 These builders cross compile on x86-64 and then trigger testing on real ARM hard | 62 These builders cross compile on x86-64 and then trigger testing on real ARM hard |
63 bots: | 63 bots: |
64 | 64 |
65 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Tests%20%28Panda
%29/ | 65 * [Linux ARM Tests (Panda)](http://build.chromium.org/p/chromium.fyi/builders/
Linux%20ARM%20Tests%20%28Panda%29/) |
66 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_tester | 66 * [linux_arm_tester](http://build.chromium.org/p/tryserver.chromium.linux/buil
ders/linux_arm_tester) |
67 | 67 |
68 Unfortunately, even those the builders are usually green, the testers are not | 68 Unfortunately, even those the builders are usually green, the testers are not |
69 yet well maintained or monitored. | 69 yet well maintained or monitored. |
70 | 70 |
71 There is compile-only trybot and fyi bot also: | 71 There is compile-only trybot and fyi bot also: |
72 | 72 |
73 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM | 73 * [Linux ARM](http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM) |
74 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_compile | 74 * [linux_arm_compile](http://build.chromium.org/p/tryserver.chromium.linux/bui
lders/linux_arm_compile) |
75 | 75 |
76 ### Testing with QEMU | 76 ### Testing with QEMU |
77 | 77 |
78 If you don't have a real ARM machine, you can test with QEMU. For instance, | 78 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: | 79 there are some prebuilt QEMU Debian images here: |
80 http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs | 80 http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs |
81 generated by rootstock, as mentioned above. | 81 generated by rootstock, as mentioned above. |
82 | 82 |
83 Here's a minimal xorg.conf if needed: | 83 Here's a minimal xorg.conf if needed: |
84 | 84 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 Modes "1024x768" "800x600" "640x480" | 116 Modes "1024x768" "800x600" "640x480" |
117 EndSubSection | 117 EndSubSection |
118 EndSection | 118 EndSection |
119 ``` | 119 ``` |
120 | 120 |
121 ### Notes | 121 ### Notes |
122 | 122 |
123 * To building for thumb reduces the stripped release binary by around 9MB, | 123 * 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` | 124 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. | 125 * TCmalloc does not have an ARM port, so it is disabled. |
OLD | NEW |