build_armssh_slide

Кросс-компиляция под ARM — OpenSSH

Продолжим серию статей про кросс-компиляцию различных библиотек под ARM архитектуру из под Linux (Прошла статья была про кросс-компиляцию Midnight Commander, можно посмотреть по ССЫЛКЕ).

Задача, как обычно, незатейлива — кросс-компиляция OpenSSH из под системы Ubuntu 14.04.

Что конкретно будем компилировать:

  • openssh-5.8p1
  • openssl-1.0.2d
  • zlib-1.2.8

Исходники zlib вы можете найти в архиве в статье про компиляцию mc (ссылка в начале этой статьи). Ссылка на исходники openssh и openssl находятся в конце этой статьи.

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

И так, приступим. Сначала создаем необходимые каталоги, где будет происходить кросс-магия:

$ mkdir /tmp/openssh

$ mkdir /tmp/openssh/builds

$ mkdir /tmp/openssh/sources

Скачиваем исходники всех нужных библиотек и разархивируем. Для архива исходников из этой статьи выполняем в каталоге /tmp/openssh/sources следующее:

:/tmp/openssh/sources$  tar -xf arm_openssh.tar.gz && for f in *.tar*; do tar xf $f; done

После, разархивируем zlib из архива из прошлой статьи в эту же директорию.

Исходники готовы. Приступим к кросс-компиляции.

Кросс-компиляция zlib-1.2.8:

Для этого в корне исходников создаем файлик my_make со следующим содержимым:

Даем права данному скрипту на выполнение:

$ chmod 755 /tmp/openssh/sources/zlib-1.2.8/my_make

Выполняем его:

$ /tmp/openssh/sources/zlib-1.2.8/my_make

После успешного процесса сборки, в каталоге /tmp/openssh/builds появится первая собранная библиотека build_zlib-1.2.8.

Далее необходимо повторять подобное с оставшимися исходниками. Копируем в следующий исходник скрипт, даем права, выполняем, радуемся. Поэтому привожу только скрипты для my_make.

Кросс-компиляция openssl-1.0.2d:

Код скрипта my_make:

Выполняем. Процесс относительно долгий. Ошибок быть не должно.

Кросс-компиляция openssh-5.8p1:

Код скрипта my_make:

Внимание! Первая попытка сборки может провалиться, предположительно с ошибками о strip. Поэтому попробуйте следующий скрипт с отключением strip:

И повторите попытку. Не знаю как у вас, у меня все это завершилось также с ошибками как на картинке:

build_armssh

Но в итоге openssh был успешно собран. Не знаю чем это чревато для работы ssh, но эта сборка была запущена и успешно протестирована.

Если кто знает, как полностью избавится от подобных ошибок или как это может повлиять на стабильность работы — пишите в комментариях к статье, буду очень признателен!

На этом все, можете благополучно пользоваться данной сборкой на системах с архитектурой ARM и радоваться возможностям протокола ssh.

Всем спасибо за внимание!

Архив с исходниками к этой статье: ССЫЛКА

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">