Прошивка ядра в ac100: различия между версиями
Нет описания правки |
Zombah (обсуждение | вклад) м (fix links) |
||
Строка 1: | Строка 1: | ||
==Бэкап== | ==Бэкап== | ||
Перед прошивкой лучше сохранить содержимое партиции, которую будете перешивать, чтобы можно было просто откатиться. | Перед прошивкой лучше сохранить содержимое партиции, которую будете перешивать, чтобы можно было просто откатиться. | ||
Как это провернуть написано на странице '''[[Бэкап]]'''. | Как это провернуть написано на странице '''[[Backup|Бэкап]]'''. | ||
==Sosboot== | ==Sosboot== | ||
Строка 22: | Строка 22: | ||
(через кабель USB-miniUSB с другого компьютера, Windows, Linux) | (через кабель USB-miniUSB с другого компьютера, Windows, Linux) | ||
Для этого нужно раздобыть '''nvflash''' ([http://ac100.grandou.net/nvflash#debian_ubuntu_package deb пакет], либо в [ | Для этого нужно раздобыть '''nvflash''' ([http://ac100.grandou.net/nvflash#debian_ubuntu_package deb пакет], либо в [http://narod.yandex.ru/disk/23988759001/linux_for_tegra_os_pack_rel_10.9.3.run linux4tegra] для линукса, либо [[File:Nvflash-win.zip|версию для windows]]. Для windows также потребуется установить драйвер устройства. Он есть в скачиваемом архиве). | ||
'''Замечание''': под Linux'ом nvflash надо запускать с правами '''root'''. | '''Замечание''': под Linux'ом nvflash надо запускать с правами '''root'''. | ||
Строка 72: | Строка 72: | ||
</pre> | </pre> | ||
===2. Используя утилиту [ | ===2. Используя утилиту [https://github.com/muromec/putusb putusb]=== | ||
(putusb от muromec, через кабель USB-miniUSB с другого компьютера, Linux (Windows? утилита написана на python. Кажется, должно работать и под Windows)) | (putusb от muromec, через кабель USB-miniUSB с другого компьютера, Linux (Windows? утилита написана на python. Кажется, должно работать и под Windows)) | ||
Текущая версия от 15:29, 16 января 2015
Бэкап
Перед прошивкой лучше сохранить содержимое партиции, которую будете перешивать, чтобы можно было просто откатиться. Как это провернуть написано на странице Бэкап.
Sosboot
Если используете прошивку с устройства, то позаботьтесь о том, чтобы у вас работал sosboot. Он нужен в случае, если новое ядро не заработает.
Модули
При обновлении ядра нужно обновлять модули.. Иначе модули от старого ядра не загрузятся и часть функционала работать не будет.
Обновление ядра
Если у Вас стоит ubutntu с кастомным ядром, и вы хотите поставить ядро из deb пакета, то придется немного схитрить, т.к. инсталлятор в deb пакете ядра без initrd не считает валидными и ругается. Чтобы обойти эту проблему, нужно не перезагружая систему залить (командой dd) в партицию с ядром (не перепутайте номер) образ инсталлятора ubuntu (тот самый, с помощью которого ставилась убунту). Теперь deb пакет должен поставиться без проблем. Замечание: стоит иметь в виду, что ubuntu использует в cmdline uuid для обозначения root партиции. Поэтому будьте аккуратнее, обновляясь на кастомное ядро.
Прошивка нового ядра
На данный момент существует 4 способа прошивки ядра в 5 или 6 раздел (5 - SOS, 6 - основной):
Для прошивки с другого компьютера необходимо включить AC100 в режиме восстановления - для этого надо зажать CTRL+ESC и нажать кнопку включения. Индикатор питания должен загореться, а экран останется чёрным.
1. Используя утилиту nvflash
(через кабель USB-miniUSB с другого компьютера, Windows, Linux)
Для этого нужно раздобыть nvflash (deb пакет, либо в linux4tegra для линукса, либо Файл:Nvflash-win.zip. Для windows также потребуется установить драйвер устройства. Он есть в скачиваемом архиве). Замечание: под Linux'ом nvflash надо запускать с правами root.
Общая схема работы такова: 1. Загружаем фастбут в оперативную память устройства (чтобы оно смогло выполнять последующие команды) 2. Выполняем все прочие команды пока не надоест, либо пока что-нибудь не упадет с ошибкой 3. В случае какой-нибудь ошибки нужно выключить и опять включить девайс (>8 секунд удержания кнопки питания, затем, когда погаснет индикатор питания, нажать снова) и начинать с пункта 1. (т.е., залить фастбут, и только после этого выполнять команды)
nvflash в линуксовой версии лежит в папке после распаковки linux4tegra/nvflash В версии для windows - в той папке, в которую вы установили.
Заливка бутлоадера: Linux (если используете nvflash 12 версии, то надо использовать harmony/fastboot.bin):
./nvflash --bl ../prebuilt/fastboot.stock.bin --go
Windows:
nvflash --bl fastboot.stock.bin --go
Дальнейшее использование:
nvflash -r <команды> --go
Внимание: ключ -r сообщает nvflash, что fastboot.bin уже в оперативке устройства; ключ --go - что после выполнения основной команды необходимо вернуть управление фастбуту (в противном случае девайс перестанет отзываться на команды и придется его перезагружать и заново заливать фастбут в оперативку). Замечание: имя файла загрузчика может быть не fastboot.stock.bin, а fastboot.bin или каким-то другим.
Запись раздела (рекомендуется использовать эту команду):
nvflash -r --download N path-to-my-img.img --go
где N - номер раздела, в который осуществляется прошивка, и path-to-my-img.img - путь к образу, который в этот раздел будем прошивать.
Посекторная запись (используйте с осторожностью, можно ошибиться с расчетами):
nvflash -r --rawdevicewrite 768 128 path-to-my-img.img --go
Пример прошивки ядра в 6-ю партицию из-под linux:
./nvflash --bl ../prebuilt/fastboot.stock.bin --go ./nvflash -r --download 6 /home/ubuntu/Downloads/2.38.3-hf-savalik-b0ea71b.0p12.img
Пример прошивки ядра в 6-ю партицию из-под windows:
nvflash --bl fastboot.stock.bin --go nvflash -r --download 6 ubuntu-11.10-preinstalled-desktop-armel+ac100.bootimg
2. Используя утилиту putusb
(putusb от muromec, через кабель USB-miniUSB с другого компьютера, Linux (Windows? утилита написана на python. Кажется, должно работать и под Windows))
Для этого вам нужно будет установить пакеты python-qt4 и python-usb (если нет такого пакета - посмотрите в настройки источников приложений (в последних версиях Убунту - Центр приложений Ubuntu, в меню ищем пункт Источники приложений) и установите флажки universe и multiverse). Запускается командой
sudo python qt-putusb.py
Интерфейс графический и довольно тривиальный.
3. Используя dd
(с самого устройства)
Для этого нужно иметь ядро, с которого видно разделы на внутреннем SSD и найти среди них нужные (SOS ~ 5MB, LNX ~ 8MB). Если все ок, вы нашли нужный раздел и уверены, что это именно тот раздел, который нужен, то (четырежды подумайте, стоит ли, если вы не уверены в себе) просто пишем ядро командой dd:
dd if=/my/image/path.img of=/dev/mmcblk0pX
где X - номер вашего раздела. Возможно, у вас не mmcblk0, а mmcblk3 - такое тоже бывает. Просто будьте внимательны и осторожны.
Пример (внимание, в примере 2, а не 12):
sudo dd if=zImage.2.6.38.3-c.bmw+.sd.img of=/dev/mmcblk0p2
4. Используя flash-kernel
(с самого устройства)
sudo flash-kernel
По умолчанию ядро берется из /boot/vmlinuz, рамдиск — из /boot/initrd.img и cmdline из /boot/bootimg.cfg
Для работы flash-kernel необходим установленный abootimg. Образ ядра, прошитый в данный момент времени, должен быть с ramdisk, хотя бы минимальным. Пустой cpi.gz тоже подойдет.