Как я кросс-компилирую Хром для ARM?

Существует целый набор входных драйверов для http://cgit.freedesktop.org/xorg/driver/ X.Org (ищите 'xf86-вход -'). Которые обычно используются, xf86-input-keyboard и xf86-input-mouse. Мультиплексирование многих устройств может быть сделано любой некоторыми вещами стороны ядра (как moused+sysmouse и kbdmux FreeBSD) или путем присоединения всех устройств ввода данных к X.Org и управления ими с XInput.

12
19.05.2017, 16:46
1 ответ

Теперь, когда я на работе, я напишу пошаговый ответ. Сначала кажется, что вы делаете шаги в неправильном порядке. Поэтому я пронумерую эти шаги в порядке их выполнения.

  1. mkdir -pv ~/chromium
  2. cd ~/chromium
  3. git config --global user.name "Joel Maranhao"
  4. git config --global user.email "youremail@example.com"
  5. git config --global core.autocrlf false
  6. git config --global core. filemode false
  7. git config --global color.ui true
  8. git клон https://chromium.googlesource.com/chromium/tools/depot_tools
  9. export PATH=$PATH:~/chromium/depot_tools See Update Notes 1
  10. mkdir -v ~/chromium/buildhost See Update Note 2
  11. cd . ./buildhost См. Примечание 2
  12. fetch --nohooks chromium
  13. cd src && ./build/install-build-deps.sh См. Примечание 3
  14. sudo apt-get install gcc-arm-linux-gnueabihf
  15. sudo apt-get install g++-4. 8-multilib-arm-linux-gnueabihf
  16. ./build/install-build-deps.sh --arm See Note 3
  17. gclient sync
  18. GYP_CROSSCOMPILE=1 GYP_DEFINES=target_arch=arm arm_float_abi=hard component=shared_library linux_use_gold_flags=1 См. Примечание 4
  19. gclient runhooks
  20. ninja -C out/Debug chrome

Примечание Шаги 17 - 19. Шаг 18 заменяет операторы экспорта из Recipe 2 в файле chromium.gyp_env (Это эффективно переключает компилятор сборки на clang). Шаг 19 импортирует настройки chromium.gyp_env, и запустит соответствующие скрипты сборки в правильном порядке.

Предупреждение: Тестирование шагов

Я протестирую эти шаги на моей ВМ XUbuntu и сообщу о резервном копировании/обновлении и т.д.


Примечания к обновлению

  1. Сделать изменение постоянным для переменной PATH рекомендуется, если вы собираетесь сделать это несколько раз. Найдите следующее:

# установите PATH таким образом, чтобы она включала личную корзину пользователя, если она существует. если [ -d "$HOME/bin" ] ; тогда PATH="$HOME/bin:$PATH" fi

in $HOME\.profile. Добавить PATH=$PATH:~/chromium/depot_tools, так что итоговый if выглядит так:

# устанавливает PATH, так что он включает приватный bin пользователя, если он существует. если [ -d "$HOME/bin" ] ; тогда PATH="$HOME/bin:$PATH" PATH=$PATH:~/chromium/depot_tools

Если нужно, создайте каталог $HOME/bin (Его не существовало на моей ВМ), затем выйдите из системы и снова войдите.


  1. Из Изучая вашу почту, во время загрузки данных Gigs и Gigs из репозитория, я вижу, что вы запустили скрипт fetch и загрузили исходный код в каталог depot_tools. Это распространенная ошибка, которую легко исправить, создав отдельный каталог, как это сделал я. Это позволяет держать инструменты, необходимые для управления и манипулирования файлами сборки, отдельно от элементов, которые вы собираете. Это также гарантирует, что создаваемые вами элементы не будут загрязнены инструментами, используемыми для их сборки.
  2. Первый проход build-deps.sh загружает все инструменты сборки, независимо от того, перекрестная компиляция это или нет. Шаг 14 и 15 необходимы на случай, если скрипт пожалуется на Held Packages. 2-я передача (Шаг 16), устанавливает кросс-компиляцию. Обновлю эту заметку по мере сборки.
  3. По какой-то причине у нас с операционной системой возникли проблемы с файлом gyp_env. Из-за этого я обновил Шаг 18 для включения необходимых экспортов. Если вы заинтересованы в использовании файла gyp_env, обратитесь к Gyp User Documentation, Configuring the Builds, и Common Gyp Build Parameters
13
27.01.2020, 19:56

Теги

Похожие вопросы