- Вопрос или проблема
- ЦЕЛЬ FriendlyARM mini210s
- Как установить Chromium на моем чистом linux 3.0.8 armv7l?
- Что я сделал до сих пор
- ОБНОВЛЕНИЕ – Установка на mini210s с Linux 3.0.8 armv7l
- ОБНОВЛЕНИЕ Попробовал установить на BeagleBone Black
- Ответ или решение
- Шаги для успешной установки Chromium:
- 1. Установка зависимостей
- 2. Проверка библиотек
- 3. Ошибки сегментации
- 4. Пересборка Chromium
- 5. Тестирование
- Заключение
Вопрос или проблема
ЦЕЛЬ 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 на вашем устройстве.