Установка на Nexus 7: различия между версиями

Материал из ALT Linux Wiki
м (→‎Install tarballs: poor man's progress bar)
м (2012/2013)
 
(не показано 19 промежуточных версий 4 участников)
Строка 1: Строка 1:
{{attention|Касается варианта 2012 года, с 2013 google сменил чипсет tegra на qualcomm без линуксовых драйверов (и по слухам -- "рекомендовал" поставщикам подобных SoC таковые драйверы ''не'' поставлять).}}
== SDK ==
== SDK ==
Со страницы http://developer.android.com/sdk/index.html скачивается ADT Bundle, распаковывается (например, в /opt)Из него нужна команда {{cmd|sdk/platform-tools/adb}}, запуск которой тем или иным способом следует организовать.
Установите пакет {{pkg|android-tools}}<ref>...либо скачайте и разверните [http://developer.android.com/sdk/index.html ADT bundle]</ref>Проверка<ref>если adb "задумывается" и сообщает "no permissions", запустите его один раз с правами root, после запуска фонового процесса с ним можно работать с пользовательскими правами</ref>:
 
  host# adb devices
Один из вариантов:
  * daemon not running. starting it now on port 5037 *
  host$ sudo chgrp -R $USER /opt/adt-bundle-linux-*/
  * daemon started successfully *
  host$ sudo ln -s adt-bundle-linux-*/sdk /opt/android-sdk
  host$ mkdir ~/bin
host$ ln -s /opt/android-sdk/platform-tools/adb ~/bin/
 
Проверка:
host# /opt/android-sdk/platform-tools/adb devices
  List of devices attached  
  List of devices attached  
  xxxxxxxxxxxxxxxx        recovery
  xxxxxxxxxxxxxxxx        recovery
Строка 16: Строка 12:
  #
  #


Либо же можно добавить путь к {{path|platform-tools/}} в переменную {{term|PATH}}.
== Разблокировка ==
* запустите загрузчик (bootloader) Android. Для этого выключите устройство, затем зажмите кнопку уменьшения громкости и нажмите кнопку питания. '''Держите обе кнопки, пока не увидите интерфейс загрузчика.'''


== Включение USB Debugging ==
* подключите устройство к компьютеру с помощью USB-кабеля.
http://www.youtube.com/watch?v=mp07dPusJNA


== Разблокировка ==
* проверьте<ref>Здесь и далее вывод утилит может приводиться в сокращённом виде</ref> список устройств с помощью утилиты fastboot:
* Запустите загрузчик (bootloader) Android. Для этого выключите устройство, затем зажмите кнопку уменьшения громкости и нажмите кнопку питания.
Держите обе кнопки, пока не увидите интерфейс загрузчика.
* Подключите устройство к компьютеру с помощью USB-кабеля.
* Проверьте список устройств с помощью утилиты fastboot
  $ sudo fastboot devices
  $ sudo fastboot devices
  1234567891234567        fastboot
  1234567891234567        fastboot
* Разлочьте устройство.
 
* разлочьте устройство — на его экране появится предупреждение о последствиях разблокировки и инструкция по её произведению. '''Внимание: данная операция удалит все персональные данные с устройства!'''
  $ sudo fastboot oem unlock
  $ sudo fastboot oem unlock
* На экране устройства появится предупреждение о последствиях разблокировки. Внимание: данная операция удалит всё персональные данные с устройства!
(bootloader) erasing userdata...
* Перезагрузите устройство:
(bootloader) Bootloader is unlocked now.
 
* перезагрузите устройство:
  $ sudo fastboot reboot-bootloader
  $ sudo fastboot reboot-bootloader
или просто нажмите на кнопку питания.
rebooting into bootloader...
...или просто нажмите на кнопку питания.
 
== Поддержка множественной загрузки ==
{{attention|Не исключена потеря работоспособности устройства, будьте бдительны и осторожны!}}
 
''NB: опытным пользователям обычного Linux предстоит некоторый культурный шок от процедуры скачивания zip с файлообменника по ссылкам с форума и просмотра документации на youtube... YHBW''
 
Дальнейшие действия предполагают выполнение в каталоге, где будут сохраняться загруженные файлы, которые могут пригодиться в будущем -- наверное, стоит создать отдельный каталог и перейти в него.
 
* скачайте по ссылкам из [http://forum.xda-developers.com/showpost.php?p=34577851&postcount=2 этого сообщения]:
** MultiROM (например, {{path|multirom_v10_n7-signed.zip}})
** Modified recovery TWRP (например, {{path|TWRP_multirom_n7_20130416.img}})
** Kernel w/ kexec-hardboot patch (например, {{path|kernel_kexec_422.zip}} для Android 4.2.2 или {{path|kernel_kexec_42-2.zip}} для Android 4.2.1)
 
* сверьте контрольные суммы с указанными в сообщении:
$ md5sum multirom_v*_n7-signed.zip TWRP_multirom_n7_*.img
bc79ae7e5e4f1543375e7870a1d9b909  multirom_v10_n7-signed.zip
fafa2d33f2d967b9c7eebc759c4e0462  TWRP_multirom_n7_20130416.img
 
* прошейте TWRP_multirom_n7_''дата''.img:
$ sudo fastboot flash recovery TWRP_multirom_n7_''дата''.img
 
* скопируйте multirom_v''X''_n7-signed.zip и kernel_kexec_4''Y''.zip на устройство:
$ sudo adb push multirom_v''X''_n7-signed.zip /data/media/0/Download/
$ sudo adb push kernel_kexec_4''Y''.zip /data/media/0/Download/
 
* снова запустите на планшете загрузчик (bootloader), как описано выше
 
* при помощи кнопок громкости и питания выберите Recovery и загрузите его
 
* [https://www.youtube.com/watch?feature=player_detailpage&v=UhSRr6cKaU0#t=121s прошейте]<ref>эти две операции производятся на самом Nexus</ref> multirom_v''X''_n7-signed.zip с помощью раздела Install меню TWRP — файл будет находиться в /data/media/0/Download/:
** выбираем раздел Install
** переходим из /sdcard в корень файловой системы при помощи пункта "Up a level"
** идём в data ▷ media ▷ 0 ▷ Download
** выбираем multirom_v''X''_n7-signed.zip
** подтверждаем прошивание


== Install TWRP ==
* аналогично прошейте новое ядро kernel_kexec_4''Y''.zip из того же каталога
* Скачайте MultiROM (например, multirom_v9_n7-signed.zip), Modified recovery TWRP 2.4.4.0 (например, TWRP_multirom_n7_20130312.img) и
Kernel w/ kexec-hardboot patch: (например kernel_kexec_422.zip для Android 4.2.2) из поста на странице: http://forum.xda-developers.com/showpost.php?p=34577851&postcount=2 .
* Прошейте TWRP_multirom_n7_20130312.img:
$ fastboot flash recovery recovery.img
* Прошейте multirom_vX_n7.zip с помощью recovery.
* Прошейте новое ядро kernel_kexec_422.zip с помощью recovery


== ROM info ==
== Подготовка ROM info ==
rom_info.txt
Сохраните следующий текст в файл {{path|rom_info.txt}}, он подойдёт для всех образов ALT Linux для Nexus 7 и нужен для того, чтобы мультизагрузчик нашёл образ ОС:


  type="kexec"
  type="kexec"
Строка 53: Строка 78:
  dir_cmdline="rootsubdir=%s"
  dir_cmdline="rootsubdir=%s"


== Install tarballs ==
== Установка образов ==
Пример скрипта для установки тарболла:
* Скачайте [http://nightly.altlinux.org/sisyphus-arm/current/ отсюда], если хотите обновляться далее из Sisyphus, или [http://ftp.altlinux.ru/pub/distributions/ALTLinux/p7/images/starterkits/ здесь], если предпочитаете стабильный бранч p7, тарбол с подходящей вам средой окружения.  Например (и далее), для образа с kde4 Sisyphus:
  #!/bin/sh -x
  $ wget -c http://nightly.altlinux.org/sisyphus-arm/current/regular-nexus7-kde4-latest-armh.tar.gz
  date=20130418
* Залейте тарбол на устройство.
  flavour=kde4
  $ adb push regular-nexus7-kde4-latest-armh.tar.gz /data/media/0/multirom/roms/
* Создайте каталог для инсталляции образа. Например, так:
  adb=/opt/android-sdk/platform-tools/adb
  $ adb shell mkdir -p /data/media/0/multirom/roms/kde4-latest/root
srcdir=~/out/snapshots/$date
* Распакуйте тарбол в только что созданный каталог:
tarball=regular-arm-$flavour-$date-armh.tar.gz
  $ adb shell tar -C /data/media/0/multirom/roms/kde4-latest/root -xf /data/media/0/multirom/roms/regular-nexus7-kde4-latest-armh.tar.gz
  twrpdir=/data/media/0/multirom/roms/
* Залейте файл rom_info.txt:
  rootdir=$twrpdir/$flavour-$date/root
  $ adb push rom_info.txt /data/media/0/multirom/roms/kde4-latest/
   
 
  $adb push $srcdir/$tarball $twrpdir
Возможно держать несколько корней параллельно в разных каталогах.
  $adb shell rm -rf $rootdir
 
  $adb shell mkdir -p $rootdir
== Загрузка ALT Linux ==
  $adb shell tar -C $rootdir -xf $twrpdir/$tarball
После перезагрузки должно появиться меню MultiROM, где возможно выбрать раздел Internal и в нём, например. kde4-latest (имена пунктов совпадают с именами каталогов, в которых расположены развёрнутые чруты). Остаётся нажать Boot :)
  $adb push rom_info.txt $rootdir/../
 
== Устранение неисправностей ==
=== Ядро загружается, при проверке корневой ФС происходит сбой ===
К сожалению, на разных устройствах нужный раздел может оказаться /dev/mmcblk0p9 либо /dev/mmcblk0p10; в регулярных сборках за апрель-май 2013 предполагается первый вариант, если при загрузке образа наблюдается подобное сообщение:
 
  *** An error occurred during the file system check.
  *** Dropping you to a shell; the system will reboot
  *** when you leave the shell.
 
— придётся скорректировать /etc/fstab в чруте. Для этого:
* принудительно выключите устройство десятисекундным удержанием кнопки питания
* загрузитесь в Recovery
* подключите USB-шнур к компьютеру
* выполните команду:
  $ sudo adb shell sed -i 's/blk0p9/blk0p10/' /data/media/0/multirom/roms/kde4-latest/root/etc/fstab
* ...и можно загружаться.
 
=== root login ===
 
Пароли для root и пользователя altlinux заданы в [[m-p|mkimage-profiles]]:
root:altlinux
altlinux:root
 
Рекомендуется сменить их на свои. При изготовлении производных сборок может пригодиться {{pkg|alterator-setup}}, позволяющий организовать шаг обязательной настройки этих параметров, и соответствующая фича <tt>use/oem</tt> в m-p.
 
=== Включение USB Debugging ===
http://www.youtube.com/watch?v=mp07dPusJNA
 
== Примечания ==
<references />
 
{{Category navigation|title=ARM|category=ARM|sortkey=*}}
[[Категория:Hardware]]
[[Категория:HCL]]
[[Категория:Мини-компьютеры]]

Текущая версия от 16:24, 23 сентября 2022

Внимание! Касается варианта 2012 года, с 2013 google сменил чипсет tegra на qualcomm без линуксовых драйверов (и по слухам -- "рекомендовал" поставщикам подобных SoC таковые драйверы не поставлять).


SDK

Установите пакет android-tools[1]. Проверка[2]:

host# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
xxxxxxxxxxxxxxxx        recovery

host$ adb shell
#

Разблокировка

  • запустите загрузчик (bootloader) Android. Для этого выключите устройство, затем зажмите кнопку уменьшения громкости и нажмите кнопку питания. Держите обе кнопки, пока не увидите интерфейс загрузчика.
  • подключите устройство к компьютеру с помощью USB-кабеля.
  • проверьте[3] список устройств с помощью утилиты fastboot:
$ sudo fastboot devices
1234567891234567        fastboot
  • разлочьте устройство — на его экране появится предупреждение о последствиях разблокировки и инструкция по её произведению. Внимание: данная операция удалит все персональные данные с устройства!
$ sudo fastboot oem unlock
(bootloader) erasing userdata...
(bootloader) Bootloader is unlocked now.
  • перезагрузите устройство:
$ sudo fastboot reboot-bootloader
rebooting into bootloader...

...или просто нажмите на кнопку питания.

Поддержка множественной загрузки

Внимание! Не исключена потеря работоспособности устройства, будьте бдительны и осторожны!


NB: опытным пользователям обычного Linux предстоит некоторый культурный шок от процедуры скачивания zip с файлообменника по ссылкам с форума и просмотра документации на youtube... YHBW

Дальнейшие действия предполагают выполнение в каталоге, где будут сохраняться загруженные файлы, которые могут пригодиться в будущем -- наверное, стоит создать отдельный каталог и перейти в него.

  • скачайте по ссылкам из этого сообщения:
    • MultiROM (например, multirom_v10_n7-signed.zip)
    • Modified recovery TWRP (например, TWRP_multirom_n7_20130416.img)
    • Kernel w/ kexec-hardboot patch (например, kernel_kexec_422.zip для Android 4.2.2 или kernel_kexec_42-2.zip для Android 4.2.1)
  • сверьте контрольные суммы с указанными в сообщении:
$ md5sum multirom_v*_n7-signed.zip TWRP_multirom_n7_*.img
bc79ae7e5e4f1543375e7870a1d9b909  multirom_v10_n7-signed.zip
fafa2d33f2d967b9c7eebc759c4e0462  TWRP_multirom_n7_20130416.img
  • прошейте TWRP_multirom_n7_дата.img:
$ sudo fastboot flash recovery TWRP_multirom_n7_дата.img
  • скопируйте multirom_vX_n7-signed.zip и kernel_kexec_4Y.zip на устройство:
$ sudo adb push multirom_vX_n7-signed.zip /data/media/0/Download/
$ sudo adb push kernel_kexec_4Y.zip /data/media/0/Download/
  • снова запустите на планшете загрузчик (bootloader), как описано выше
  • при помощи кнопок громкости и питания выберите Recovery и загрузите его
  • прошейте[4] multirom_vX_n7-signed.zip с помощью раздела Install меню TWRP — файл будет находиться в /data/media/0/Download/:
    • выбираем раздел Install
    • переходим из /sdcard в корень файловой системы при помощи пункта "Up a level"
    • идём в data ▷ media ▷ 0 ▷ Download
    • выбираем multirom_vX_n7-signed.zip
    • подтверждаем прошивание
  • аналогично прошейте новое ядро kernel_kexec_4Y.zip из того же каталога

Подготовка ROM info

Сохраните следующий текст в файл rom_info.txt, он подойдёт для всех образов ALT Linux для Nexus 7 и нужен для того, чтобы мультизагрузчик нашёл образ ОС:

type="kexec"
root_dir="%m/root"
kernel_path="%r/boot/vmlinuz"
initrd_path="%r/boot/initrd.img"
base_cmdline="%b root=%d rootflags=data=writeback,discard ro console=tty1 fbcon=map:0 fbcon=vc:1-4 fbcon=rotate:1"
dir_cmdline="rootsubdir=%s"

Установка образов

  • Скачайте отсюда, если хотите обновляться далее из Sisyphus, или здесь, если предпочитаете стабильный бранч p7, тарбол с подходящей вам средой окружения. Например (и далее), для образа с kde4 Sisyphus:
$ wget -c http://nightly.altlinux.org/sisyphus-arm/current/regular-nexus7-kde4-latest-armh.tar.gz
  • Залейте тарбол на устройство.
$ adb push regular-nexus7-kde4-latest-armh.tar.gz /data/media/0/multirom/roms/ 
  • Создайте каталог для инсталляции образа. Например, так:
$ adb shell mkdir -p /data/media/0/multirom/roms/kde4-latest/root
  • Распакуйте тарбол в только что созданный каталог:
$ adb shell tar -C /data/media/0/multirom/roms/kde4-latest/root -xf /data/media/0/multirom/roms/regular-nexus7-kde4-latest-armh.tar.gz
  • Залейте файл rom_info.txt:
$ adb push rom_info.txt /data/media/0/multirom/roms/kde4-latest/

Возможно держать несколько корней параллельно в разных каталогах.

Загрузка ALT Linux

После перезагрузки должно появиться меню MultiROM, где возможно выбрать раздел Internal и в нём, например. kde4-latest (имена пунктов совпадают с именами каталогов, в которых расположены развёрнутые чруты). Остаётся нажать Boot :)

Устранение неисправностей

Ядро загружается, при проверке корневой ФС происходит сбой

К сожалению, на разных устройствах нужный раздел может оказаться /dev/mmcblk0p9 либо /dev/mmcblk0p10; в регулярных сборках за апрель-май 2013 предполагается первый вариант, если при загрузке образа наблюдается подобное сообщение:

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.

— придётся скорректировать /etc/fstab в чруте. Для этого:

  • принудительно выключите устройство десятисекундным удержанием кнопки питания
  • загрузитесь в Recovery
  • подключите USB-шнур к компьютеру
  • выполните команду:
$ sudo adb shell sed -i 's/blk0p9/blk0p10/' /data/media/0/multirom/roms/kde4-latest/root/etc/fstab
  • ...и можно загружаться.

root login

Пароли для root и пользователя altlinux заданы в mkimage-profiles:

root:altlinux
altlinux:root

Рекомендуется сменить их на свои. При изготовлении производных сборок может пригодиться alterator-setup, позволяющий организовать шаг обязательной настройки этих параметров, и соответствующая фича use/oem в m-p.

Включение USB Debugging

http://www.youtube.com/watch?v=mp07dPusJNA

Примечания

  1. ...либо скачайте и разверните ADT bundle
  2. если adb "задумывается" и сообщает "no permissions", запустите его один раз с правами root, после запуска фонового процесса с ним можно работать с пользовательскими правами
  3. Здесь и далее вывод утилит может приводиться в сокращённом виде
  4. эти две операции производятся на самом Nexus