[转帖]Linux Chromium Arm Recipes

痴心易碎 提交于 2020-03-10 07:48:32

Linux Chromium Arm Recipes

https://chromium.googlesource.com/chromium/src/+/master/docs/linux/chromium_arm.md

 

Recipe1: Building for an ARM CrOS device

https://sites.google.com/a/chromium.org/dev/developers/how-tos/-quickly-building-for-cros-arm-x64

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

Installing the sysroot

A prebuilt sysroot image is kept up to date on Cloud Storage. It will automatically be installed by gclient runhooks if target_cpu=["arm"] is present in your .gclient file.

To install the sysroot manually you can run:

./build/linux/sysroot_scripts/install-sysroot.py --arch=arm

Building

To build for ARM, using the clang binary in the chrome tree, use the following gn args:

target_cpu = "arm"

Testing

Automated Build and Testing

Chromium's testing infrastructure for ARM/Linux is somewhat limited. There are currently two builders setup, one on the FYI waterfall and one the the try bot waterfall:

These bots run x86-64 linux and cross-compile the ARM targets. Tests are run on ARM hardware via swarming.

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.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!