ALT Mobile

Материал из ALT Linux Wiki
Версия от 13:05, 21 ноября 2023; Bircoph (обсуждение | вклад) (перечень вынесен в отдельную страницу для удобства чтения)

В рамках проекта ALT Mobile проводится работа по поддержке мобильных устройств на базе проекта Sisyphus.

Поддерживаемое оборудование

rk3399s

Поддерживаются устройства на базе rk3399s, в частности Pinephone Pro и совместимая модель от F+ tech.

Скиф

Специалистами Элвис обеспечена работа на системе на кристалле Скиф. Поддержка реализована в качестве производной ALT Mobile, использует ядро, отсутствующее в Сизифе.

QEMU

Есть сборки образов виртуалок для архитектур x86_64, aarch64, riscv.

Они вполне достаточны для работ над мобильным интерфейсом, адаптацией приложений. При подключении внешнего модема, поддерживаемого ModemManager (в идеале Quectel EG25-G) возможна и работа с мобильными сетями и сопутствующей телефонией).

Образы

Образы для aarch64 оборудования и qemu для поддерживаемых архитектур доступны на ftp.

Инструмент сборки образов (mkimage-profiles) доступен в git.

Сборка

Для самостоятельной сборки образов следует склонировать вышеуказанный git и перейти в ветку next.

Затем следует на целевой архитектуре собрать соответствующую цель сборки. Например, для сборки образа для pinephone pro нужно на aarch64 хосте выполнить:

make vm/pinephone-phosh.img ARCH=aarch64 DEBUG=1

Кросс-компиляция образов не поддерживается.

Для изменения состава пакетов см. pkg.in/lists/mobile. Параметры и сценарий сборки настраиваются в conf.d/phone.mk. Детальная информация по работе с инструментом сборки содержится в документации mkimage-profiles.

Установка

На железо

1. На телефоне должен быть установлен загрузчик tow-boot на SPI flash. На большинстве моделей tow-boot штатно установлен на SPI; если это не так, то установите его по следующей инструкции: https://tow-boot.org/devices/pine64-pinephonePro.html

Примечание: Рекомендуется всегда использовать последнюю версию tow-boot, чтоб не спотыкаться об уже исправленные проблемы.


2. Образ можно установить и на emmc, и на microsd. Как таковая "прошивка" не требуется, достаточно скопировать распакованный образ на носитель.

Для загрузки телефона в режиме экспорта emmc как usb-диска, нужно при загрузке зажать кнопку Volume Up до загорания синего индикатора LED. После этого emmc будет доступно как /dev/sdX. Аналогично можно подключить и microsd через любое устройство чтения таких носителей.

3. Копирование на носитель:

xzcat pinephone-phosh-latest-aarch64.img.xz | dd of=/dev/sdX oflag=direct,sync iflag=fullblock bs=1M status=progress

4. Изменение раздела файловой системы

Рекомендуется (но не обязательно) расширить файловую систему образа на весь носитель. Сделать это можно следующими командами:

echo ", +" | sfdisk -N 1 /dev/sdX
resize2fs -p /dev/sdX1

где sdX — устройство, куда был записан образ.

5. Загрузка.

Для загрузки с emmc достаточно включить телефон, для загрузки с microsd нужно при загрузке зажать кнопку Volume Down до смены цвета индикатора LED на бирюзовый.

В виртуальной машине

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Преамбула

В этом разделе будет описано, как попробовать ALT Mobile в виртуальной машине. Разумеется, возможности работать с телефонией, камерой и прочими аппаратными устройствами при этом не будет, но такую среду можно использовать для адаптации приложений под мобильный интерфейс.

Получение образа диска

Качаем отсюда:

http://beta.altlinux.org/mobile/latest/

образ вида

phosh-20231004-x86_64.img.xz

Примечание: Обратите внимание, нам нужен x86_64! Но также поддерживаются архитектуры aarch64 и risc-v, действия для них аналогичны.

Распаковываем образ диска, куда-нибудь, например в /home/petr/images/phosh-20231004-x86_64.img

Qemu

С ускорением

Установка Qemu-KVM
# apt-get install /usr/bin/qemu-kvm
Запуск системы

От обычного пользователя, не от рута, в консоли должен быть $, а не #, запускаем следующую команду:

$ kvm -m 4G -k en-gb -hda /home/petr/images/phosh-20231004-x86_64.img

Здесь:

  • kvm - указывает, что запускаем при помощи qemu-kvm
  • -m 4G - для машины будет выделено 4 ГБ ОЗУ
  • -k en-gb - будет использоваться английская раскладка
  • -hda /home/petr/images/phosh-20231004-x86_64.img - путь к нашему образу

Вы можете подправить данные параметры под свои.

Инструкции по запуску в qemu образов для aarch64 и riscv64:

https://www.altlinux.org/Ports/aarch64/QEMU

https://www.altlinux.org/Ports/riscv64/QEMU

Запуск GUI

Устанавливаем viewer:

# apt-get install /usr/bin/remote-viewer

Открываем адрес:

$ remote-viewer vnc://localhost:5900

Без ускорения

Установка Qemu

Ставим Qemu и интерфейс на SDL. Если его не поставить, а у вас установлен lbvirt, Qemu вместо GUI будет стучаться на 127.0.0.1:5900.

# apt-get install qemu-system-x86 qemu-ui-sdl
Запуск системы

От обычного пользователя, не от рута, в консоли должен быть $, а не #, запускаем следующую команду:

$ qemu-system-x86_64 -m 4G -k en-gb -hda /home/petr/images/phosh-20231004-x86_64.img -smp cpus=4 -net user

Здесь:

  • qemu-system-x86_64 - указывает, что мы эмулируем x86_64 компьютер
  • -m 4G - для машины будет выделено 4ГБ ОЗУ
  • -k en-gb - будет использоваться английская раскладка
  • -hda /home/petr/images/phosh-20231004-x86_64.img - путь к нашему образу
  • -smp cpus=4 - будет использовано 4 ядра процессора
  • -net user - будет использована сеть компьютера

Вы можете подправить данные параметры под свои.

Результат

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


Использование

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

Логины по-умолчанию: root, pwd:altlinux; user:altlinux, pwd:271828.

Обновление

Обновлять следует методом, который гарантирует работоспособность среды обновления в процессе обновления. Например, если запустить обновление в GUI консоли phosh и в процессе обновления будет перезагружен phosh, обновление прервётся и система может оказаться неработоспособной.

Поддерживаемые способы:

screen

Стандартный apt-get update && apt-get dist-upgrade -a рекомендуется выполнять в менеджерах терминалов screen или tmux, гарантирующих продолжение работы при прерывании родительских процессов. Рекомендуется использовать ssh или последовательный порт для контроля над процессом.

В таком сценарии пользователь сам должен перезагрузить устройство по необходимости (например, при обновлении ядра).

packagekit

Packagekit работает путём скачивания обновлений, перезагрузки и установки всех пакетов в контроллируемом окружении и последующей перезагрузки для полноценной работы. Интерфейсом для работы с packagekit является Gnome Software ("магазин" приложений из Сизифа).

Статус ПО

Доступно всё программное обеспечение из репозитория Сизиф. Детальная информация на отдельной странице.

TODO

Перечень открытых задач достаточно большой, поэтому его можно найти на отдельной странице.

Известные проблемы

Полностью разряженная батарея

При полностью разряженной батарее телефон может не загрузиться даже при подключении к сети. Эта проблема решена с свежих версиях tow-boot, необходимо обновиться. Если нет батарея уже полностью разряжена и нет возможности обновить tow-boot, нужно зарядить её на внешнем устройстве, можно подать питание 5V ненадолго.

Система перестала загружаться в ходе обновления

Обновляться следует рекомендуемыми способами. Если система уже сломана, следует записать новый образ, перед этим необходимо сохранить все важные пользовательские данные (в первую очередь ~/.local и ~./config).

Галерея

Для увеличения изображения, кликните на превью.

Контакты

Список почтовой рассылки mobile-devel.

Телеграм канал Alt Linux Mobile.

О проблемах в конкретных пакетах можно открывать баги в багзилле.