16 343
правки
Lexszero (обсуждение | вклад) |
|||
(не показано 14 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
{{DISPLAYTITLE: Сборка образа для загрузки в режиме USB Mass-Storage}} | |||
== Совместимость == | |||
Инструкция актуальна только для контроллера [[Wiren Board 5]], информацию о прошивке других версий контроллера читайте на странице [[Wiren_Board_Software | Программное обеспечение Wiren Board]]. | |||
== Описание == | |||
Эта инструкция описывает, как собрать bootstream для загрузки Linux с USB Mass Storage Gadget. При этом содержимое SD-карты становится доступно по USB как обычная флешка. | Эта инструкция описывает, как собрать bootstream для загрузки Linux с USB Mass Storage Gadget. При этом содержимое SD-карты становится доступно по USB как обычная флешка. | ||
Готовые собранные файлы и работа с ними описываются в [[Wiren Board 5: Восстановление прошивки]]. | |||
<!--T:2--> | |||
Структура bootstream: | Структура bootstream: | ||
* '''U-Boot SPL''' - первичный загрузчик, проводит начальную инициализацию | * '''U-Boot SPL''' - первичный загрузчик, проводит начальную инициализацию | ||
Строка 9: | Строка 22: | ||
** '''DTB''' - информация о периферии, необходимая для работы ядра. Дописывается в конец '''zImage''', в конфиге должна быть включена опция ''CONFIG_ARM_APPENDED_DTB'' | ** '''DTB''' - информация о периферии, необходимая для работы ядра. Дописывается в конец '''zImage''', в конфиге должна быть включена опция ''CONFIG_ARM_APPENDED_DTB'' | ||
[https://github.com/contactless/ | <!--T:3--> | ||
[https://github.com/contactless/wirenboard/tree/https://github.com/contactless/wirenboard/blob/master/contrib/u-boot/wb5_usbfw.sb Скачать готовый bootstream] | |||
== Сборка Linux == | == Сборка Linux == <!--T:4--> | ||
* Получить исходники ядра из git, | <!--T:5--> | ||
* Получить исходники ядра из git,'' | |||
<nowiki> | <nowiki> | ||
$ git clone https://github.com/contactless/linux.git | $ git clone https://github.com/contactless/linux.git | ||
$ cd linux | $ cd linux | ||
$ git checkout | $ git checkout dev/v4.1.15 </nowiki> | ||
* Скачать initramfs | * Скачать initramfs из [https://github.com/contactless/wirenboard/tree/master/initramfs_usbgadget репозитория] и распаковать | ||
<nowiki> | <nowiki> | ||
$ unzip initramfs_usbgadget.zip | $ unzip initramfs_usbgadget.zip | ||
Строка 24: | Строка 39: | ||
* Инициализировать окружение для сборки ядра. При необходимости, изменить в этом файле переменные ''DT'' и ''CROSS_COMPILE'' | * Инициализировать окружение для сборки ядра. При необходимости, изменить в этом файле переменные ''DT'' и ''CROSS_COMPILE'' | ||
<nowiki> | <nowiki> | ||
$ . ./scripts/kbuild-env.sh</nowiki> | $ . ./scripts/kbuild-env.sh | ||
$ set +e</nowiki> | |||
* Задать конфиг ядра | * Задать конфиг ядра | ||
<nowiki>$ make mxs_usbgadget_defconfig</nowiki> | <nowiki>$ make mxs_usbgadget_defconfig</nowiki> | ||
Строка 32: | Строка 48: | ||
<nowiki>$ ./scripts/kbuild-dtb.sh</nowiki> | <nowiki>$ ./scripts/kbuild-dtb.sh</nowiki> | ||
== Сборка U-Boot == | == Сборка U-Boot == <!--T:6--> | ||
<!--T:7--> | |||
* Получить исходники U-Boot из git. Нужна ветка ''wb_v2015.07'' | * Получить исходники U-Boot из git. Нужна ветка ''wb_v2015.07'' | ||
<nowiki> | <nowiki> | ||
Строка 41: | Строка 58: | ||
$ git checkout wb_v2015.07</nowiki> | $ git checkout wb_v2015.07</nowiki> | ||
* Задать конфиг U-Boot | * Задать конфиг U-Boot | ||
<nowiki>$ make | <nowiki>$ make mx28_wirenboard5_usbgadget_defconfig</nowiki> | ||
* Скопировать ранее собранный образ '''[[kernel+initramfs]+DTB]''' в директорию U-Boot | * Скопировать ранее собранный образ '''[[Special:MyLanguage/kernel+initramfs]+DTB]''' в директорию U-Boot | ||
$ cp ../linux/zImage-imx28-evk ./zImage | |||
* Собрать совмещенный образ '''[U-Boot+[[kernel+initramfs]+DTB|kernel+initramfs]+DTB]''' в директорию U-Boot | |||
$ cp ../linux/zImage-imx28-evk ./zImage | |||
* Собрать совмещенный образ '''[U-Boot+[[kernel+initramfs]+DTB]]''', пригодный для загрузки по USB (bootstream) | * Собрать совмещенный образ '''[U-Boot+[[kernel+initramfs]+DTB]]''', пригодный для загрузки по USB (bootstream) | ||
<nowiki>$ make -j4 u-boot.sb</nowiki> | <nowiki>$ CROSS_COMPILE='arm-linux-gnueabi-' make -j4 u-boot.sb</nowiki> | ||
== Сборка mxsldr == | == Сборка mxsldr == <!--T:8--> | ||
<!--T:9--> | |||
Эта утилита нужна для загрузки полученного образа по USB. | Эта утилита нужна для загрузки полученного образа по USB. | ||
Требуется установленная библиотека ''libusb-1.0'' (<nowiki>apt-get install libusb-1.0-0-dev</nowiki>) | Требуется установленная библиотека ''libusb-1.0'' (<nowiki>apt-get install libusb-1.0-0-dev</nowiki>) | ||
<nowiki> | <!--T:10--> | ||
<nowiki> | |||
$ cd .. | $ cd .. | ||
$ git clone http://git.denx.de/mxsldr.git | $ git clone http://git.denx.de/mxsldr.git | ||
Строка 58: | Строка 79: | ||
$ make</nowiki> | $ make</nowiki> | ||
== Загрузка собранного образа с помощью mxsldr == | == Загрузка собранного образа с помощью mxsldr == <!--T:11--> | ||
<nowiki>$ ./mxsldr ../u-boot/u-boot.sb</nowiki> | <!--T:12--> | ||
<nowiki>$ ./mxsldr ../u-boot/u-boot.sb</nowiki> | |||
</translate> |