Создание microSD-карты с образом: различия между версиями

Материал из Wiren Board
м (Откат правок A.Degtyarev (обсуждение) к последней версии Sikmir)
Метка: откат
 
(не показаны 62 промежуточные версии 8 участников)
Строка 1: Строка 1:
==Подготовка образа==
<languages/>
===elftosb===
<translate>


По инструкции с [http://eewiki.net/display/linuxonarm/iMX233-OLinuXino#iMX233-OLinuXino-Bootloader:U-Boot] , раздел “Freescale Utilities: elftosb”
==Запись готового образа на карточку== <!--T:1-->


<pre>
===Выбор нужного образа=== <!--T:2-->
git clone git://github.com/eewiki/elftosb.git
 
cd elftosb
<!--T:3-->
make CC=gcc
*Зайдите на [https://github.com/wirenboard/wirenboard/releases страницу готовых образов в Github] и выберите нужный образ:
sudo cp ./bld/linux/elftosb /usr/local/bin/
**для Wiren Board 4 - название оканчивается на ''_wb4''
</pre>
**для Wiren Board Smart Home 3.5 - название оканчивается на ''_wb3''
***если серийный номер вашего Wiren Board Smart Home 3.5 больше 300 - используйте образ с ''newwifi'' в названии
**для WB rev. 2.8 - название оканчивается на ''_wb28''
*:У образа будет расширение .dd, либо .dd.gz, либо img.zip
*Распакуйте архив
*Следуйте инструкции для вашей операционной системы
 
=== Для Windows === <!--T:4-->
 
<!--T:5-->
* скачайте программу для записи образов(например, [http://netcologne.dl.sourceforge.net/project/win32diskimager/Archive/Win32DiskImager-0.9.5-install.exe Win32DiskImager])
* вставьте microSD-карту в ридер
* узнайте букву, под которой она появилась (например "F:")
* проигнорируйте сообщения о необходимости отформатировать диск перед использованием, если такое появится
* убедитесь, что другие программы не используют флеш-карту
* в Win32DiskImager выберите распакованный образ карты, выберите букву диска и нажмите кнопку ''Write''


===Загрузчик===
=== Для Linux === <!--T:6-->


По инструкции с [http://eewiki.net/display/linuxonarm/iMX233-OLinuXino#iMX233-OLinuXino-Bootloader:U-Boot] , раздел “Bootloader: U-Boot”
<!--T:7-->
*вставьте microSD-карту в ридер
*узнайте название устройства, соответствующего карте. Обычно это /dev/mmcblk0 или /dev/sdX (где X - буква). В этом может помочь команда <pre>dmesg | tail</pre>
*:<b> Не перепутайте название устройства! Неправильно указав название устройства, вы навсегда потеряете все данные на вашем компьютере!</b>
*отмонтируйте разделы карты, которые Linux примонтировал автоматически:
**если устройство называется /dev/mmcblk0, то разделы называются /dev/mmcblk0p1, /dev/mmcblk0p2 и т.д.
**если устройство называется /dev/sdb, то разделы называются /dev/sdb1, /dev/sdb2 и т.д.
*:Пример команды:<pre>umount /dev/mmcblk0p1</pre>
*запишите образ на карту:<pre>sudo dd if=sdcard.dd of=/dev/mmcblk0 bs=4M</pre>
, где "sdcard.dd" - путь к ранее скачанному распакованному файлу с образом.


<!--T:8-->
Пример процесса целиком:
<pre>
<pre>
git clone git://git.denx.de/u-boot.git
wget https://github.com/wirenboard/wirenboard/releases/download/0.6-20140614/sdcard_20140614.img.zip
cd u-boot/
unzip sdcard_20140614.img.zip
git checkout v2013.07 -b tmp
umount /dev/mmcblk0p2
umount /dev/mmcblk0p1
sudo dd if=sdcard_20140614.img of=/dev/mmcblk0 bs=4M conv=fdatasync
sync
</pre>
</pre>


патчи:
==Создание образа по частям== <!--T:9-->


<pre>
<!--T:10-->
wget -c https://raw.github.com/eewiki/u-boot-patches/master/v2013.07/0001-mx23_olinuxino-uEnv.txt-bootz-n-fixes.patch
'''Внимание!''' Это сложный вариант самостоятельной подготовки образа карточки. Лучше воспользуйтесь вариантом, описанным выше.
 
patch -p1 < 0001-mx23_olinuxino-uEnv.txt-bootz-n-fixes.patch
<!--T:11-->
</pre>
'''Внимание!''' На 6 ноября 2015 инструкция ниже ещё и безнадёжно устарела.


сборка:
===Сборка вместе=== <!--T:12-->


<pre>
<!--T:13-->
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
Согласно [http://eewiki.net/display/linuxonarm/iMX233-OLinuXino]
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mx23_olinuxino_config
 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-  u-boot.sb
<!--T:14-->
</pre>
* разбить флешку на два раздела
* записать u-boot на первый раздел
* создать фс на втором разделе
* скопировать rootfs на второй раздел


<!--T:15-->
Сначала надо выяснить имя устройства с флеш-картой. Воспользуйтесь поиском. Можно, к примеру, попробовать запустить gparted и посмотреть в нём.
Устройство может быть /dev/sdb, а может выглядеть и как /dev/mmcblk0


===Сборка ядра===
<!--T:16-->
Найдя устройство создаем переменную чтобы облегчить себе использование нижеследующих комманд
<pre>
<pre>
git clone git://github.com/evgeny-boger/build_kernel.git
MYDISK="/dev/sdb"
cd build_kernel
</pre>
</pre>
Между кавычками пишем название своего устройства с флеш-картой.


обязательно!
===Таблица разделов=== <!--T:17-->


<pre>
<!--T:18-->
cp system.sh.sample system.sh
Перед запуском убедитесь, что разделы на карточке не примонтированы.
</pre>


и добавить в system.sh строчку
<!--T:19-->
Теперь с помощью скрипта создадим разделы на карте.
[https://github.com/wirenboard/wirenboard/blob/master/image/create_partitions.sh]


<!--T:20-->
Скачиваем скрипт:
<pre>
<pre>
PULL_DEV=1
wget [https://raw.github.com/wirenboard/wirenboard/master/image/create_partitions.sh]
</pre>
</pre>


затем
<!--T:21-->
 
Запускаем скрипт и указываем ему имя устройства с флеш-картой:
<pre>
<pre>
./build_kernel.sh
sudo bash create_partitions.sh $MYDISK
</pre>
</pre>


из menuconfig можно просто выйти, всё нужное по-умолчанию стоит
===Загрузчик=== <!--T:22-->


Здесь и далее /dev/sdb - устройство microSD-карты.
<!--T:23-->
См. [[Special:MyLanguage/Сборка U-Boot|Сборка U-Boot]].


<!--T:24-->
Готовый образ u-boot для записи в раздел: [https://github.com/wirenboard/wirenboard/tree/master/contrib/u-boot u-boot]


<!--T:25-->
Скачиваем образ
<pre>
wget "https://github.com/wirenboard/wirenboard/blob/master/contrib/u-boot/u-boot.sb.cl25?raw=true" -O u-boot.sb
</pre>


<!--T:26-->
Теперь выясняем имена разделов на карте. Скрипт выше отработал и разделил карту на разделы, нам надо узнать название первого из этих разделов.
Если название устройства microSD-карты имело вид <b>/dev/sdX</b>, то первый раздел будет иметь название <b>/dev/sdX1</b>.
Если устройство называлось <b>/dev/mmcblkX</b> , то первый раздел - <b>/dev/mmcblkXp1</b> (обратите внимание на <b>p</b> перед номером раздела).


<!--T:27-->
Найдя имя первого раздела укажите его тут:
<pre>
MYDISK1="/dev/sdb1"
</pre>


===Сборка образа===
<!--T:28-->
Теперь заливаем образ раздела на карту
<pre>
sudo dd if=u-boot.sb of=$MYDISK1 bs=512 seek=4
</pre>


* Скачать https://github.com/contactless/wirenboard
===Создание фс=== <!--T:29-->


<!--T:30-->
Находим название второго раздела на флешке и прописываем его в переменную
<pre>
<pre>
cd rootfs
MYDISK2="/dev/sdb2"
sudo create_rootfs.sh (для Ubuntu, Debian)
</pre>
</pre>


кроме этого, можно взять готовый образ с http://eewiki.net/display/linuxonarm/iMX233-OLinuXino и (опционально) залить туда конфиги из папки configs. Важно не потерять файл boot/uEnv.txt
<!--T:31-->
<b>rootfs</b> станет названием этого раздела.


<!--T:32-->
<pre>
sudo mkfs.ext4 $MYDISK2 -L rootfs
</pre>


Логин: '''root''',
===Копирование образа на раздел=== <!--T:33-->
Пароль: '''wirenboard'''


===Сборка вместе===
<!--T:34-->
Готовый образ (включая ядро, dtbs, модули и прошивки): [https://github.com/wirenboard/wirenboard/releases releases]


Согласно [http://eewiki.net/display/linuxonarm/iMX233-OLinuXino]
<!--T:35-->
См. также [[Special:MyLanguage/Сборка образа|Сборка образа]]
 
<!--T:36-->
<pre>
wget https://github.com/wirenboard/wirenboard/releases/download/0.1/rootfs.tar.gz
</pre>


* разбить флешку на два раздела
<!--T:37-->
* записать u-boot на первый раздел
Теперь надо примонтировать созданную файловую систему созданную нами ранее. ''Как это сделать в терминале?''
* создать фс на втором разделе
* скопировать rootfs на второй раздел


<!--T:38-->
По-умолчанию в Ubuntu она монтируется в <b>/media/$USER/rootfs/</b>. Найдите куда система смонтировалась на вашем компьютере.


<!--T:39-->
Распаковываем образ на раздел:
<pre>
<pre>
sudo cp -rp rootfs/* /media/user/mountpoint
sudo tar xfpz rootfs.tar.gz -C /media/$USER/rootfs/
</pre>
</pre>


здесь /media/user/mountpoint - точка монтирования раздела карты:


<!--T:40-->
Отмонтируем файловую систему:
<pre>
<pre>
user@host:~$ mount
umount /media/user/rootfs
....
....
/dev/sdb1 on /media/user/mountpoint type ext4 (rw,nosuid,nodev,uhelper=udisks2)
</pre>
</pre>


==Пример== <!--T:41-->


* скопировать ядро, dtbs, модули и прошивки на второй раздел:
<!--T:42-->
 
ОС Ubuntu, свежая SD-карта подключенная к встроенному считывателю и определяющаяся как /dev/mmcblk0.
[https://github.com/wirenboard/wirenboard/ Репозиторий] скачан, мы находимся в его корне.


<!--T:43-->
Образ rootfs.tar.gz находится внутри папки rootfs.


версия берётся из последних строчек вывода tools/rebuild.sh
<!--T:44-->
<pre>
<pre>
export kernel_version=3.12.0-rc2-imxv5-x0.7
cd image
</pre>
sudo umount /dev/mmcblk0p1
sudo ./create_partitions.sh  /dev/mmcblk0
sudo dd if=../contrib/u-boot/u-boot.sb  of=/dev/mmcblk0p1 bs=512 seek=4
sudo ./create_fs.sh /dev/mmcblk0p2


<!--T:45-->
# Ubuntu automount:
udisksctl mount -b /dev/mmcblk0p2


<!--T:46-->
#extract rootfs
sudo tar xfpz ../rootfs/rootfs.tar.gz -C /media/$USER/rootfs/


<pre>
<!--T:47-->
tools/copy_kernel.sh /media/user/mountpoint
umount /dev/mmcblk0p2
</pre>
</pre>


Отмонтируем файловую систему
<!--T:48-->
 
См. также [[Special:MyLanguage/Стандартный образ ФС|Стандартный образ ФС]].
<pre>
</translate>
umount /media/user/mountpoint
</pre>

Текущая версия на 22:07, 21 марта 2024

Другие языки:

Запись готового образа на карточку

Выбор нужного образа

  • Зайдите на страницу готовых образов в Github и выберите нужный образ:
    • для Wiren Board 4 - название оканчивается на _wb4
    • для Wiren Board Smart Home 3.5 - название оканчивается на _wb3
      • если серийный номер вашего Wiren Board Smart Home 3.5 больше 300 - используйте образ с newwifi в названии
    • для WB rev. 2.8 - название оканчивается на _wb28
    У образа будет расширение .dd, либо .dd.gz, либо img.zip
  • Распакуйте архив
  • Следуйте инструкции для вашей операционной системы

Для Windows

  • скачайте программу для записи образов(например, Win32DiskImager)
  • вставьте microSD-карту в ридер
  • узнайте букву, под которой она появилась (например "F:")
  • проигнорируйте сообщения о необходимости отформатировать диск перед использованием, если такое появится
  • убедитесь, что другие программы не используют флеш-карту
  • в Win32DiskImager выберите распакованный образ карты, выберите букву диска и нажмите кнопку Write

Для Linux

  • вставьте microSD-карту в ридер
  • узнайте название устройства, соответствующего карте. Обычно это /dev/mmcblk0 или /dev/sdX (где X - буква). В этом может помочь команда
    dmesg | tail
    Не перепутайте название устройства! Неправильно указав название устройства, вы навсегда потеряете все данные на вашем компьютере!
  • отмонтируйте разделы карты, которые Linux примонтировал автоматически:
    • если устройство называется /dev/mmcblk0, то разделы называются /dev/mmcblk0p1, /dev/mmcblk0p2 и т.д.
    • если устройство называется /dev/sdb, то разделы называются /dev/sdb1, /dev/sdb2 и т.д.
    Пример команды:
    umount /dev/mmcblk0p1
  • запишите образ на карту:
    sudo dd if=sdcard.dd of=/dev/mmcblk0 bs=4M

, где "sdcard.dd" - путь к ранее скачанному распакованному файлу с образом.

Пример процесса целиком:

wget https://github.com/wirenboard/wirenboard/releases/download/0.6-20140614/sdcard_20140614.img.zip
unzip sdcard_20140614.img.zip
umount /dev/mmcblk0p2
umount /dev/mmcblk0p1
sudo dd if=sdcard_20140614.img of=/dev/mmcblk0 bs=4M conv=fdatasync
sync

Создание образа по частям

Внимание! Это сложный вариант самостоятельной подготовки образа карточки. Лучше воспользуйтесь вариантом, описанным выше.

Внимание! На 6 ноября 2015 инструкция ниже ещё и безнадёжно устарела.

Сборка вместе

Согласно [1]

  • разбить флешку на два раздела
  • записать u-boot на первый раздел
  • создать фс на втором разделе
  • скопировать rootfs на второй раздел

Сначала надо выяснить имя устройства с флеш-картой. Воспользуйтесь поиском. Можно, к примеру, попробовать запустить gparted и посмотреть в нём. Устройство может быть /dev/sdb, а может выглядеть и как /dev/mmcblk0

Найдя устройство создаем переменную чтобы облегчить себе использование нижеследующих комманд

MYDISK="/dev/sdb"

Между кавычками пишем название своего устройства с флеш-картой.


Таблица разделов

Перед запуском убедитесь, что разделы на карточке не примонтированы.

Теперь с помощью скрипта создадим разделы на карте. [2]

Скачиваем скрипт:

wget [https://raw.github.com/wirenboard/wirenboard/master/image/create_partitions.sh]

Запускаем скрипт и указываем ему имя устройства с флеш-картой:

sudo bash create_partitions.sh $MYDISK

Загрузчик

См. Сборка U-Boot.

Готовый образ u-boot для записи в раздел: u-boot

Скачиваем образ

wget "https://github.com/wirenboard/wirenboard/blob/master/contrib/u-boot/u-boot.sb.cl25?raw=true" -O u-boot.sb

Теперь выясняем имена разделов на карте. Скрипт выше отработал и разделил карту на разделы, нам надо узнать название первого из этих разделов. Если название устройства microSD-карты имело вид /dev/sdX, то первый раздел будет иметь название /dev/sdX1. Если устройство называлось /dev/mmcblkX , то первый раздел - /dev/mmcblkXp1 (обратите внимание на p перед номером раздела).

Найдя имя первого раздела укажите его тут:

MYDISK1="/dev/sdb1"

Теперь заливаем образ раздела на карту

sudo dd if=u-boot.sb of=$MYDISK1 bs=512 seek=4

Создание фс

Находим название второго раздела на флешке и прописываем его в переменную

MYDISK2="/dev/sdb2"

rootfs станет названием этого раздела.

sudo mkfs.ext4 $MYDISK2 -L rootfs

Копирование образа на раздел

Готовый образ (включая ядро, dtbs, модули и прошивки): releases

См. также Сборка образа

wget https://github.com/wirenboard/wirenboard/releases/download/0.1/rootfs.tar.gz

Теперь надо примонтировать созданную файловую систему созданную нами ранее. Как это сделать в терминале?

По-умолчанию в Ubuntu она монтируется в /media/$USER/rootfs/. Найдите куда система смонтировалась на вашем компьютере.

Распаковываем образ на раздел:

 sudo tar xfpz rootfs.tar.gz -C /media/$USER/rootfs/


Отмонтируем файловую систему:

umount /media/user/rootfs

Пример

ОС Ubuntu, свежая SD-карта подключенная к встроенному считывателю и определяющаяся как /dev/mmcblk0. Репозиторий скачан, мы находимся в его корне.

Образ rootfs.tar.gz находится внутри папки rootfs.

cd image
sudo umount /dev/mmcblk0p1
sudo ./create_partitions.sh  /dev/mmcblk0
sudo dd if=../contrib/u-boot/u-boot.sb  of=/dev/mmcblk0p1 bs=512 seek=4
sudo ./create_fs.sh /dev/mmcblk0p2

# Ubuntu automount:
udisksctl mount -b /dev/mmcblk0p2

#extract rootfs
sudo tar xfpz ../rootfs/rootfs.tar.gz -C /media/$USER/rootfs/

umount /dev/mmcblk0p2

См. также Стандартный образ ФС.