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

Материал из Wiren Board
Строка 18: Строка 18:
=== For Windows ===
=== For Windows ===


* скачайте программу для записи образов(например, [http://netcologne.dl.sourceforge.net/project/win32diskimager/Archive/Win32DiskImager-0.9.5-install.exe Win32DiskImager])
* download a program to record images(for example, [http://netcologne.dl.sourceforge.net/project/win32diskimager/Archive/Win32DiskImager-0.9.5-install.exe Win32DiskImager])
* вставьте microSD-карту в ридер
* insert the microSD card into the reader
* узнайте букву, под которой она появилась (например "F:")  
* find out the letter under which it appeared (for example "F:")
* проигнорируйте сообщения о необходимости отформатировать диск перед использованием, если такое появится
* ignore messages about the disk format before use, if such appear
* убедитесь, что другие программы не используют флеш-карту
* make sure no other programs are using this card
* в Win32DiskImager выберите распакованный образ карты, выберите букву диска и нажмите кнопку ''Write''
* in Win32DiskImager, select the unpacked map image, select the drive letter, and then click ''Write''





Версия 13:01, 3 июня 2019

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

Recording the finished image on the card

Selecting the desired image

  • Go to the finished images page in Github and select the desired image:
    • for Wiren Board 4 - name ends as _wb4
    • for Wiren Board Smart Home 3.5 - ends as _wb3
      • if the serial number of your Wiren Board Smart Home 3.5 is more than 300 - use the image with newwifi in the title
    • for WB rev. 2.8 - ends as _wb28
    The image will have an .dd extension, either .DD.gz, or img.zipper .dd, or .dd.gz, or img.zip
  • Unpack the archive
  • Follow the instructions for your operating system


For Windows

  • download a program to record images(for example, Win32DiskImager)
  • insert the microSD card into the reader
  • find out the letter under which it appeared (for example "F:")
  • ignore messages about the disk format before use, if such appear
  • make sure no other programs are using this card
  • in Win32DiskImager, select the unpacked map image, select the drive letter, and then click 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/contactless/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/contactless/wirenboard/master/image/create_partitions.sh]

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

sudo bash create_partitions.sh $MYDISK


Загрузчик

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

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

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

wget "https://github.com/contactless/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/contactless/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


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