Как установить Chromium для ARM Cortex-A8 на чистом Linux 3.0.8 armv7l?

Вопрос или проблема

ЦЕЛЬ FriendlyARM mini210s

Я успешно кросс-компилировал Chromium для ARM СМОТРИТЕ ПРИМЕР ЗДЕСЬ.

Как установить Chromium на моем чистом linux 3.0.8 armv7l?

Что я сделал до сих пор

Я скопировал файлы из ./chrome/installer/linux/debian_wheezy_arm-sysroot на мою целевую платформу (не уверен, что это было правильно, но это кажется разумным)

Когда я пытаюсь запустить Chrome, я получаю следующую ошибку:

[root@target chrome-release]# ./chrome
./chrome: ошибка при загрузке общих библиотек: libattr.so.1: не удается открыть общий объектный файл: Нет такого файла или директории

ОБНОВЛЕНИЕ Я решил эту конкретную проблему здесь

ВОПРОС 1: Где я могу найти источник или бинарный файл libattr и установить его на своей целевой платформе?

Я нашел файл, но я бы хотел попробовать кросс-компилировать из исходников.

ВОПРОС 2: Как мне решить проблему последовательно, не нарушая свою целевую платформу?

Это помогло … но у меня возникло ощущение, что я нарушаю свою Linux 3.0.8 armv7l инстанцию.

[root@target chrome-release]# ./chrome
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется ./chrome)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется ./chrome)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libkeyed_service_content.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libkeyed_service_content.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libkeyboard.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libbase_prefs.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libstorage.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libstorage.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libnet.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libnet.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgfx.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libgfx.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libmessage_center.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libviews.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libviews.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libevents_devices.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libcontent.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libcontent.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libv8.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libv8.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libdbus.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libskia.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libppapi_proxy.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libppapi_proxy.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libprinting.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libdomain_reliability.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libapp_list.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libmojo_common_lib.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libblink_web.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libblink_web.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgcm.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libmedia.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libmedia.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libbase_i18n.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libui_base.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libui_base.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libstorage_common.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libppapi_host.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libsessions_content.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libcc.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libcc.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libbase.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libbase.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libevents_base.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/liburl_matcher.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgin.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libcompositor.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libash.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libash.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libmojo_system_impl.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgtk2ui.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libgtk2ui.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libpolicy_component.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libpolicy_component.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libsql.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libblink_platform.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libdevice_bluetooth.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libdevice_bluetooth.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/liburl_lib.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libcrcrypto.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libcrcrypto.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libaura.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libipc.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libipc.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libsync_core.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgpu.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libgpu.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgesture_detection.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libevents.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libppapi_shared.so)
./chrome: /lib/libc.so.6: версия `GLIBC_2.9' не найдена (требуется /usr/lib/libgio-2.0.so.0)
./chrome: /lib/libc.so.6: версия `GLIBC_2.9' не найдена (требуется /lib/libglib-2.0.so.0)
./chrome: /lib/libc.so.6: версия `GLIBC_2.11' не найдена (требуется /usr/lib/libcairo.so.2)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libcc_surfaces.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libcc_surfaces.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libdevice_battery.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libdevice_battery.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libwebkit_gpu.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgl_wrapper.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libmedia_blink.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgpu_blink.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libipc_mojo.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgles2_utils.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgles2_implementation.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.15' не найдена (требуется /sdcard/chrome-release/lib/libgles2_implementation.so)
./chrome: /lib/libc.so.6: версия `GLIBC_2.10' не найдена (требуется /lib/libdbus-1.so.3)
./chrome: /lib/libc.so.6: версия `GLIBC_2.11' не найдена (требуется /usr/lib/libfreetype.so.6)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libwtf_unittest_helpers.so)
./chrome: /lib/libstdc++.so.6: версия `GLIBCXX_3.4.11' не найдена (требуется /sdcard/chrome-release/lib/libgl_in_process_context.so)
./chrome: /lib/libresolv.so.2: версия `GLIBC_2.9' не найдена (требуется /usr/lib/libkrb5.so.3)

ОБНОВЛЕНИЕ – Установка на mini210s с Linux 3.0.8 armv7l

Когда я пробую это:

# LD_PRELOAD=/lib/libc-2.13.so;/lib/libresolv-2.13.so ./chrome -v
Сегментационная ошибка

Как получить больше информации о причине этой сегментационной ошибки?

$ file ./chrome
./chrome: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), динамически связанный (использует общие библиотеки), для GNU/Linux 2.6.26, не обрезан

Как мне узнать, должен ли этот скомпилированный файл работать на моем SBC с Linux 3.0.8 armv7l?

Также спрашивал в группе chromium-dev

ОБНОВЛЕНИЕ Попробовал установить на BeagleBone Black

root@beaglebone:~/chromium# uname -a
Linux beaglebone 3.8.13-bone67 #1 SMP Wed Sep 24 21:30:03 UTC 2014 armv7l GNU/Linux

Я получаю ту же сегментационную ошибку

root@beaglebone:~/chromium# ./chrome
Сегментационная ошибка

Определить тип файла

root@beaglebone:~/chromium# file chrome
chrome: ELF 32-bit LSB shared object, ARM, версия 1 (SYSV), динамически связанный (использует общие библиотеки), для GNU/Linux 2.6.26, BuildID[sha1]=0x99f2a5210e0831419cf2bb4c9c64839cf03673f4, не обрезан

Чтобы решить проблему libattr.so.1: не удается открыть общий объектный файл: Нет такого файла или директории, я скачал библиотеку в версии armhf здесь и установил на своем SBC, но у меня все еще есть проблема SEGFAULT

Ответ или решение

Установка Chromium на платформу ARM Cortex-A8 с bare Linux 3.0.8 (armv7l) может быть сложной задачей из-за зависимости от библиотек и совместимости версий. Я постараюсь подробным образом ответить на ваш вопрос, чтобы помочь решить проблемы, которые вы испытываете.

Шаги для успешной установки Chromium:

1. Установка зависимостей

Перед запуском Chromium необходимо убедиться, что все необходимые библиотеки установлены на вашем устройстве. Вы упомянули, что у вас возникли проблемы с libattr.so.1 и libstdc++. Чтобы установить эти библиотеки, выполните следующие шаги:

  • Установите libattr:

    Если вы можете скачать бинарные версии библиотек, вы можете использовать это место, чтобы загрузить libattr и распаковать его на вашем устройстве:

    wget http://ftp.nluug.nl/os/Linux/distr/fatdog/arm/packages/beta/libattr-2.4.47-armhf-1.tbz
    tar -xvf libattr-2.4.47-armhf-1.tbz
    cp lib/* /lib/
  • Убедитесь, что у вас установлены нужные версии libstdc++ и glibc. Ваша система требует определенные версии, которые могут быть недоступны в старых системах. Вам может потребоваться скомпилировать новую версию из исходников.

2. Проверка библиотек

Проверьте, существует ли libstdc++ и соответствует ли она необходимым версиям:

strings /lib/libstdc++.so.6 | grep GLIBCXX

Вы должны видеть версии, такие как GLIBCXX_3.4.11 и GLIBCXX_3.4.15.

Если их нет, вы можете загрузить более новую версию libstdc++:

  • Можно попытаться собрать более новую версию gcc и получить новую libstdc++ из неё.
  • Посетите официальный сайт GNU, загрузите исходники и следуйте инструкциям по сборке для вашей платформы.

3. Ошибки сегментации

Если вы столкнулись с проблемой сегментации (Segmentation fault), попробуйте следующие подходы для диагностики:

  • Используйте gdb для отладки:

    gdb ./chrome

    Затем в gdb выполните команды:

    run
  • Если происходит ошибка сегментации, вы можете использовать команду bt для получения обратного трассировки, чтобы понять, где происходит сбой.

  • Также попробуйте запустить с strace, чтобы увидеть системные вызовы:

    strace ./chrome

4. Пересборка Chromium

После установки необходимых библиотек, попробуйте пересобрать Chromium с настройками для вашей системы. Убедитесь, что в конфигурации сборки указаны все требуемые пути к библиотекам.

Пример команды для сборки с использованием gn:

gn gen out/Default --args='target_os="linux" target_arch="arm"'
ninja -C out/Default chrome

5. Тестирование

После выполнения всех вышеуказанных действий, попробуйте заново запустить Chromium:

./chrome -v

Если проблемы сохраняются, внимательно просмотрите сообщения об ошибках и возвращаемые трассировки.

Заключение

Проблема с запуском Chromium на конфигурации ARM Cortex-A8 может зависеть от совместимости библиотек и версий, а также наличия необходимых зависимостей. Следуйте указанным шагам, чтобы установить недостающие библиотеки и выполнить необходимую диагностику, что поможет вам успешно запустить Chromium на вашем устройстве.

Оцените материал
Добавить комментарий

Капча загружается...