Sailfish OS - Hardware Adaptation Development Kit - Часть первая

Итак, далее в статьях будет представлен очень вольный перевод Hardware Adaptation Development Kit для Sailfish OS . Повествование будет вестись по мере продвижения и погружения. Данная работа делается как заявка работы в Открытой Мобильной платформе - мол типа возьмите меня на работу. Ну поехали. Сегодня настраиваем SDK.
Sailfish OS - Hardware Adaptation Development Kit - Часть первая

Первоочередная необходимость для адаптации Sailfish OS для вашего устройства это:
1 - иметь само устройство (Логично да?)
2 - иметь 64 битный линуксовый дистрибутив (У меня стоит Kbuntu 15.04)

Условные обозначения:

Если команда начинается с MER_SDK $ то она вводится в chroot окружении SDK Sailfish (Которую мы настроим чуть позже).
Пример:
Код BASH:
  1. MER_SDK $
  2. echo "run this command in the Mer SDK terminal"
Так же и с HA(hardware adaptation) SDK - его команды начинаются с HABUILD_SDK $

Корневая директория сборки

Вся сборка будет происходит в папке, которую мы определим через переменную $MER_ROOT. Данная папочка займёт много гигабайт места (более 16), так что позаботесь о наличии места. Официальная инструкция рекомендует определить $MER_ROOT как $HOME/mer/ , что мы и сделаем.
Код BASH:
  1. HOST $
  2. export MER_ROOT=$HOME/mer/
заметьте, что если команда введена с префиксом HOST $ то она вводится в вашем домашнем окружении без chroot

Настройка необходимых переменных окружения

Программисты народ ленивый, поэтому, все переменные, которые мы будем использовать часть мы запишем в переменные окружения и сохраним.
Первыми идут переменные HD SDK
Код BASH:
  1. cat <<'EOF' > $HOME/.hadk.env
  2. export MER_ROOT="$HOME/mer"
  3. export ANDROID_ROOT="$MER_ROOT/android/droid"
  4. export VENDOR="lge"
  5. export DEVICE="hammerhead"
  6. # ARCH conflicts with kernel build
  7. export PORT_ARCH="armv7hl"
  8. export RELEASE="3.2.0.12"
  9. EOF
Думаю, если приглядеться всё понятно, но всё же:
PLATFORM_SDK_ROOT - корневая папка SDK
ANDROID_ROOT - папочка для hybris обвязки
VENDOR - производитель железки на которую портируем
DEVICE - кодовое название железки (тут Nexus 5)
PORT_ARCH - архитектура железки.

Далее 2 вспомогательных файлика, которые нам облегчат жизнь далее:
Код BASH:
  1. cat <<'EOF' >> $HOME/.mersdkubu.profile
  2. function hadk() { source $HOME/.hadk.env; echo "Env setup for $DEVICE"; }
  3. export PS1="HABUILD_SDK [${DEVICE}] $PS1"
  4. hadk
  5. EOF
  6. cat <<'EOF' >> $HOME/.mersdk.profile
  7. function hadk() { source $HOME/.hadk.env; echo "Env setup for $DEVICE"; }
  8. hadk
  9. EOF
То есть мы создали функцию hadk которую можем использовать для быстрой настройки окружения.

Качаем и настраиваем MerSDK

Наконец то начинаем заниматься делом, качаем SDK MER на котором основана SailfishOS
Если у вас не установлен curl то надо бы его поставить.
Код BASH:
  1. export MER_ROOT=$HOME/mer
  2. cd
  3. curl -k -O http://releases.sailfishos.org/sdk/installers/latest/Jolla-latest-SailfishOS_Platform_SDK_Chroot-i486.tar.bz2
  4. sudo mkdir -p $MER_ROOT/sdks/sfossdk
  5. sudo tar --numeric-owner -p -xjf Jolla-latest-SailfishOS_Platform_SDK_Chroot-i486.tar.bz2 -C $MER_ROOT/sdks/sfossdk
  6. echo "export MER_ROOT=$MER_ROOT" >> ~/.bashrc
  7. echo 'alias sdk=$MER_ROOT/sdks/sfossdk/mer-sdk-chroot' >> ~/.bashrc
  8. exec bash
  9. echo 'PS1="MerSDK $PS1"' >> ~/.mersdk.profile
  10. cd
Скачали - распаковали - пульнули в нужную папку - создали переменные окружения.
Заходим в SDK
Код BASH:
  1. sdk
Дальше по уму нам бы обновить все составляющие SDK - в официальной документации этого не сказано, но я всё же обновлюсь.
Код BASH:
  1. sudo zypper ref
  2. sudo zypper up
Следующий этап - установить в SDK пакеты android-tools createrepo zip - различные утилиты для android, утилита для создания локального репозитория RPM, который нам понадобиться далее и великого архиватора ZIP
Код BASH:
  1. MER_SDK $
  2. sudo zypper in android-tools android-tools-hadk zip

Настраиваем Android окружение

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

Находясь в MER SDK качаем окружение UBUNTU ... для андройда...да будет весёлая матрёшка...
Код BASH:
  1. MER_SDK $
  2. hadk
  3. TARBALL=ubuntu-trusty-20180613-android-rootfs.tar.bz2
  4. cd
  5. curl -O https://releases.sailfishos.org/ubu/$TARBALL
  6. UBUNTU_CHROOT=$MER_ROOT/sdks/ubuntu
  7. sudo mkdir -p $UBUNTU_CHROOT
  8. sudo tar --numeric-owner -xvjf $TARBALL -C $UBUNTU_CHROOT
Ну и входим в Ubuntu chroot.
Код BASH:
  1. MER_SDK $
  2. hadk
  3. ubu-chroot -r $MER_ROOT/sdks/ubuntu
На сегодня всё - мы имеем мартёшку необходимую нам в дальнейшем. В следующей серии - Сборка Android HAL
Комментарии (2)
  1. Спасибо ,дальше где?
Copyright 2016-2024 NeoChapay