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

Side by Side Diff: docs/linux_chromium_arm.md

Issue 1324603002: [Docs] Another round of stylistic fixes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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 unified diff | Download patch
« no previous file with comments | « docs/linux_cert_management.md ('k') | docs/linux_chromium_packages.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Note this currently contains various recipes: 1 # Linux Chromium Arm Recipes
2 2
3 [TOC]
4
5 ## Recipe1: Building for an ARM CrOS device
6
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
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
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).
13
3 14
15 ## Recipe2: Explicit Cross compiling
4 16
5 --- 17 Due to the lack of ARM hardware with the grunt to build Chromium native, cross
6 18 compiling is currently the recommended method of building for ARM.
7
8 # Recipe1: Building for an ARM CrOS device
9 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-interna l users) for very high parallelism, and uses `sshfs` instead of `scp` to signifi cantly 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 (mostl y b/c of the ease of attaching files to sites).
10
11
12
13 ---
14
15
16 # Recipe2: Explicit Cross compiling
17
18 Due to the lack of ARM hardware with the grunt to build Chromium native, cross c ompiling 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 ``` 27 $ ./build/install-build-deps.sh --arm
28 $ ./build/install-build-deps.sh --arm
29 ```
30 28
31 ### Installing the rootfs 29 ### Installing the rootfs
32 30
33 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
34 automatically be installed by gclient runhooks installed if you have 'target\_ar ch=arm' in your GYP\_DEFINES. 32 automatically be installed by gclient runhooks installed if you have
33 `target_arch=arm` in your `GYP_DEFINES`.
35 34
36 To install the sysroot manually you can run: 35 To install the sysroot manually you can run:
37 ``` 36
38 $ ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py --ar ch=arm 37 ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py \
39 ``` 38 --arch=arm
40 39
41 ### Building 40 ### Building
42 41
43 To build for ARM, using the clang binary in the chrome tree, use the following s ettings: 42 To build for ARM, using the clang binary in the chrome tree, use the following
43 settings:
44 44
45 ``` 45 export GYP_CROSSCOMPILE=1
46 export GYP_CROSSCOMPILE=1 46 export GYP_DEFINES="target_arch=arm"
47 export GYP_DEFINES="target_arch=arm"
48 ```
49 47
50 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`),
51 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).
52 50
53 ## Testing 51 ## Testing
54 52
55 ### Automated Build and Testing 53 ### Automated Build and Testing
56 54
57 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)
58 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
59 FYI waterfall and one the the trybot waterfall: 57 FYI waterfall and one the the trybot waterfall:
60 58
61 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Cross-Compile 59 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Cross-Compile
62 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm 60 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm
63 61
64 62 These builders cross compile on x86-64 and then trigger testing on real ARM hard
65 These builders cross compile on x86-64 and then trigger testing 63 bots:
66 on real ARM hard bots:
67 64
68 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Tests%20%28Panda %29/ 65 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM%20Tests%20%28Panda %29/
69 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_tester 66 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_tester
70 67
71 Unfortunately, even those the builders are usually green, the testers 68 Unfortunately, even those the builders are usually green, the testers are not
72 are not yet well maintained or monitored. 69 yet well maintained or monitored.
73 70
74 There is compile-only trybot and fyi bot also: 71 There is compile-only trybot and fyi bot also:
75 72
76 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM 73 http://build.chromium.org/p/chromium.fyi/builders/Linux%20ARM
77 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_compile 74 http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_arm_compile
78 75
79 ### Testing with QEMU 76 ### Testing with QEMU
80 77
81 If you don't have a real ARM machine, you can test with QEMU. For instance, ther e are some prebuilt QEMU Debian images here: http://people.debian.org/~aurel32/q emu/. Another option is to use the rootfs generated by rootstock, as mentioned above. 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:
80 http://people.debian.org/~aurel32/qemu/. Another option is to use the rootfs
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
85 ``` 85 ```
86 Section "InputDevice" 86 Section "InputDevice"
87 Identifier "Generic Keyboard" 87 Identifier "Generic Keyboard"
88 Driver "kbd" 88 Driver "kbd"
89 Option "XkbRules" "xorg" 89 Option "XkbRules" "xorg"
90 Option "XkbModel" "pc105" 90 Option "XkbModel" "pc105"
91 Option "XkbLayout" "us" 91 Option "XkbLayout" "us"
(...skipping 20 matching lines...) Expand all
112 Device "Configured Video Device" 112 Device "Configured Video Device"
113 DefaultDepth 8 113 DefaultDepth 8
114 SubSection "Display" 114 SubSection "Display"
115 Depth 8 115 Depth 8
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 * To building for thumb reduces the stripped release binary by around 9MB, equ ating to ~33% of the binary size. To enable thumb, set 'arm\_thumb': 1 122
123 * TCmalloc does not have an ARM port, so it is disabled. 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`
125 * TCmalloc does not have an ARM port, so it is disabled.
OLDNEW
« no previous file with comments | « docs/linux_cert_management.md ('k') | docs/linux_chromium_packages.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698