Создание microSD-карты с образом: различия между версиями
м (Откат правок A.Degtyarev (обсуждение) к последней версии Sikmir) Метка: откат |
Fizikdaos (обсуждение | вклад) (→Пример) |
||
(не показано 18 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
==Запись полного образа на карточку== | |||
* Скачайте архив с последним образом (расширение .dd, либо .dd.gz, либо img.zip) со страницы [https://github.com/contactless/wirenboard/releases releases] | |||
* Распакуйте образ архив с образом | |||
'''Образ с названием, оканчивающимся на _wb28 предназначен для WB rev. 2.8 и не подходит для Wiren Board Smart Home!''' | |||
'''Для Wiren Board Smart Home с серийными номерами больше 300 необходимо использовать образ с "newwifi" в названии''' | |||
'''В стандартном образе нет раздела подкачки, из-за этого может не хватать оперативной памяти для полного обновления ОС (через apt-get), решением может быть как создание отдельного файла подкачки, так и [[#Расширение корневого раздела|создание раздела]]''' | |||
* скачайте программу для записи образов( | === Для Windows === | ||
* вставьте | * скачайте программу для записи образов, например ([http://netcologne.dl.sourceforge.net/project/win32diskimager/Archive/Win32DiskImager-0.9.5-install.exe Win32DiskImager]) | ||
* | * вставьте флеш-карту в ридер | ||
* | * Найдите диск (например "F:"), соответствующий карте. Диск появляется в списке дисков, когда вы вставляете флешку. | ||
* Проигнорируйте сообщения о необходимости отформатировать диск перед использованием. | |||
* убедитесь, что другие программы не используют флеш-карту | * убедитесь, что другие программы не используют флеш-карту | ||
* | * В программе Win32DiskImager выберите распакованный образ карты, выберите букву диска и нажмите кнопку '''Write''' | ||
=== Для Linux === | |||
* вставьте флеш-карту в ридер | |||
* отмонтируйте раздел (umount /dev/mmcblk0p1, где /dev/mmcblk0p1 - раздел на флешке) | |||
* проверьте существование устройства флеш-карты, обычно это /dev/mmcblk0 для встроенного ридера и /dev/sdX (X - буква) - для внешнего. | |||
Название устройства можно посмотреть например в dmesg | tail | |||
* накатите образ на флеш-карту | |||
<b> Не перепутайте название устройства! Неправильно указав название устройства, вы рискуете навсегда потерять все данные на вашем компьютере! </b> | |||
<pre> | |||
sudo dd if=sdcard.dd of=/dev/mmcblk0 bs=4M | |||
</pre> | |||
здесь "sdcard.dd" - путь к распакованному файлу с образом. | |||
Пример для Linux: | |||
<pre> | <pre> | ||
wget https://github.com/ | wget https://github.com/contactless/wirenboard/releases/download/0.6-20140614/sdcard_20140614.img.zip | ||
unzip sdcard_20140614.img.zip | unzip sdcard_20140614.img.zip | ||
umount /dev/mmcblk0p2 | umount /dev/mmcblk0p2 | ||
Строка 50: | Строка 44: | ||
</pre> | </pre> | ||
== | ===Расширение корневого раздела=== | ||
По-умолчанию образ рассчитан на флеш-карту размером 4Гб и в нём нет раздела подкачки памяти (swap-раздела). Если ваша флеш-карта большего размера, то рекомендуется создать swap раздел, а так же расширить корневой раздел так, чтобы он занимал всё доступное пространство. | |||
* Для начала нужно создать раздел подкачки (если вы считаете, что в нём нет необходимости, то можно пропустить этот шаг). Раздела размером 128Мб должно быть достаточно. Разместить раздел нужно в '''конце''' диска, чтобы осталось место для расширения корневого раздела (для этого можно воспользоваться дружелюбной утилитой cfdisk). | |||
<pre> | |||
cfdisk /dev/mmcblk0 | |||
</pre> | |||
Далее нужно расширить корневой раздел на всё оставшееся место. | |||
Менять таблицу разделов на этот раз будем при помощи утилиты ''fdisk''. Процедура расширения раздела проста, мы удалим текущий раздел, а затем создадим новый, начинающийся ровно с того же цилиндра, но заканчивающийся на цилиндре перед наши разделом подкачки. При этом изменяться будет только таблица разделов, данные самих разделов меняться не будут. | |||
* Запустим fdisk. | |||
<pre> | |||
fdisk -u /dev/mmcblk0 | |||
</pre> | |||
* Выводим текущую таблицу разделов | |||
<pre> | |||
Command (m for help): p | |||
Disk /dev/mmcblk0: 8001 MB, 8001683456 bytes | |||
4 heads, 16 sectors/track, 244192 cylinders, total 15628288 sectors | |||
Units = sectors of 1 * 512 = 512 bytes | |||
Sector size (logical/physical): 512 bytes / 512 bytes | |||
I/O size (minimum/optimal): 512 bytes / 512 bytes | |||
Disk identifier: 0x00000000 | |||
Device Boot Start End Blocks Id System | |||
/dev/mmcblk0p1 8192 40959 16384 53 OnTrack DM6 Aux3 | |||
/dev/mmcblk0p2 40960 7796735 3877888 83 Linux | |||
/dev/mmcblk0p3 13628288 15628287 1000000 83 Linux | |||
</pre> | |||
Стартовый цилиндр изменяемого нами раздела имеет номер 40960, запомним его, он потребуется нам далее. | |||
* Удалим раздел | |||
<pre> | |||
Command (m for help): d | |||
Partition number (1-4): 2 | |||
Command (m for help): p | |||
Disk /dev/mmcblk0: 8001 MB, 8001683456 bytes | |||
4 heads, 16 sectors/track, 244192 cylinders, total 15628288 sectors | |||
Units = sectors of 1 * 512 = 512 bytes | |||
Sector size (logical/physical): 512 bytes / 512 bytes | |||
I/O size (minimum/optimal): 512 bytes / 512 bytes | |||
Disk identifier: 0x00000000 | |||
Device Boot Start End Blocks Id System | |||
/dev/mmcblk0p1 8192 40959 16384 53 OnTrack DM6 Aux3 | |||
/dev/mmcblk0p3 13628288 15628287 1000000 83 Linux | |||
</pre> | |||
* И создадим заново, обратив внимание на то, что стартовый цилиндр и номер создаваемого раздела, должны быть в точности таким же, как у удаленного т.е. 40960 и 2. | |||
<pre> | |||
Command (m for help): n | |||
Partition type: | |||
p primary (2 primary, 0 extended, 2 free) | |||
e extended | |||
Select (default p): p | |||
Partition number (1-4, default 2): 2 | |||
First sector (2048-15628287, default 2048): 40960 | |||
Last sector, +sectors or +size{K,M,G} (40960-13628287, default 13628287): '''<Enter>''' | |||
</pre> | |||
* Проверяем, что всё правильно, убеждаемся, что каждый следующий раздел начинается со следующего цилиндра от предыдущего. | |||
<pre> | |||
Command (m for help): p | |||
Disk /dev/mmcblk0: 8001 MB, 8001683456 bytes | |||
4 heads, 16 sectors/track, 244192 cylinders, total 15628288 sectors | |||
Units = sectors of 1 * 512 = 512 bytes | |||
Sector size (logical/physical): 512 bytes / 512 bytes | |||
I/O size (minimum/optimal): 512 bytes / 512 bytes | |||
Disk identifier: 0x00000000 | |||
Device Boot Start End Blocks Id System | |||
/dev/mmcblk0p1 8192 40959 16384 53 OnTrack DM6 Aux3 | |||
/dev/mmcblk0p2 40960 13628287 6793664 83 Linux | |||
/dev/mmcblk0p3 13628288 15628287 1000000 83 Linux | |||
</pre> | |||
* Записываем изменения на диск. | |||
<pre> | |||
Command (m for help): w | |||
The partition table has been altered! | |||
Calling ioctl() to re-read partition table. | |||
WARNING: Re-reading the partition table failed with error 16: Устройство или ресурс занято. | |||
The kernel still uses the old table. The new table will be used at | |||
the next reboot or after you run partprobe(8) or kpartx(8) | |||
Syncing disks. | |||
</pre> | |||
===Сборка вместе=== | * Выходим из parted набрав '''q''' и и просим ядро обновить свою информацию о разделе командой '''partx'''. | ||
<pre> | |||
root@wirenboard:~# partx /dev/mmcblk0p2 | |||
# 2: 40960- 13628287 ( 13587328 sectors, 6956 MB) | |||
</pre> | |||
* Обновляем таблицу ФС для нового размера командой '''resize2fs'''. | |||
<pre> | |||
root@wirenboard:~# resize2fs /dev/mmcblk0p2 | |||
resize2fs 1.42.5 (29-Jul-2012) | |||
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required | |||
old_desc_blocks = 1, new_desc_blocks = 1 | |||
[ 1159.480000] EXT4-fs (mmcblk0p2): resizing filesystem from 969472 to 1698416 blocks | |||
[ 1159.910000] EXT4-fs (mmcblk0p2): resized filesystem to 1698416 | |||
The filesystem on /dev/mmcblk0p2 is now 1698416 blocks long. | |||
</pre> | |||
Перезагружаем машину и убеждаемся, что всё прошло хорошо. | |||
<pre> | |||
root@wirenboard:~# df -h | |||
Filesystem Size Used Avail Use% Mounted on | |||
rootfs 6.4G 801M 5.4G 13% / | |||
... | |||
</pre> | |||
Осталось доделать раздел подкачки. | |||
* Форматируем раздел подкачки | |||
<pre> | |||
root@wirenboard:~# mkswap /dev/mmcblk0p3 | |||
</pre> | |||
* Добавляем раздел подкачки в /etc/fstab и активируем его. | |||
<pre> | |||
echo "/dev/mmcblk0p3 swap swap defaults 0 0" >> /etc/fstab | |||
swapon -a | |||
</pre> | |||
==Создание образа по частям== | |||
'''не нужно в случае записи полного образа по инструкции выше''' | |||
===Сборка вместе=== | |||
Согласно [http://eewiki.net/display/linuxonarm/iMX233-OLinuXino] | Согласно [http://eewiki.net/display/linuxonarm/iMX233-OLinuXino] | ||
* разбить флешку на два раздела | * разбить флешку на два раздела | ||
* записать u-boot на первый раздел | * записать u-boot на первый раздел | ||
Строка 69: | Строка 188: | ||
* скопировать rootfs на второй раздел | * скопировать rootfs на второй раздел | ||
Сначала надо выяснить имя устройства с флеш-картой. Воспользуйтесь поиском. Можно, к примеру, попробовать запустить gparted и посмотреть в нём. | Сначала надо выяснить имя устройства с флеш-картой. Воспользуйтесь поиском. Можно, к примеру, попробовать запустить gparted и посмотреть в нём. | ||
Устройство может быть /dev/sdb, а может выглядеть и как /dev/mmcblk0 | Устройство может быть /dev/sdb, а может выглядеть и как /dev/mmcblk0 | ||
Найдя устройство создаем переменную чтобы облегчить себе использование нижеследующих комманд | Найдя устройство создаем переменную чтобы облегчить себе использование нижеследующих комманд | ||
<pre> | <pre> | ||
Строка 80: | Строка 197: | ||
Между кавычками пишем название своего устройства с флеш-картой. | Между кавычками пишем название своего устройства с флеш-картой. | ||
===Таблица разделов=== | |||
===Таблица разделов=== | |||
Перед запуском убедитесь, что разделы на карточке не примонтированы. | Перед запуском убедитесь, что разделы на карточке не примонтированы. | ||
Теперь с помощью скрипта создадим разделы на карте. | Теперь с помощью скрипта создадим разделы на карте. | ||
[https://github.com/ | [https://github.com/contactless/wirenboard/blob/master/image/create_partitions.sh] | ||
Скачиваем скрипт: | Скачиваем скрипт: | ||
<pre> | <pre> | ||
wget [https://raw.github.com/ | wget [https://raw.github.com/contactless/wirenboard/master/image/create_partitions.sh] | ||
</pre> | </pre> | ||
Запускаем скрипт и указываем ему имя устройства с флеш-картой: | Запускаем скрипт и указываем ему имя устройства с флеш-картой: | ||
<pre> | <pre> | ||
Строка 102: | Строка 213: | ||
</pre> | </pre> | ||
===Загрузчик=== | ===Загрузчик=== | ||
См. [[Сборка U-Boot]]. | |||
См. [[ | |||
Готовый образ u-boot для записи в раздел: [https://github.com/contactless/wirenboard/tree/master/contrib/u-boot u-boot] | |||
Готовый образ u-boot для записи в раздел: [https://github.com/ | |||
Скачиваем образ | Скачиваем образ | ||
<pre> | <pre> | ||
wget "https://github.com/ | wget "https://github.com/contactless/wirenboard/blob/master/contrib/u-boot/u-boot.sb.cl25?raw=true" -O u-boot.sb | ||
</pre> | </pre> | ||
Теперь выясняем имена разделов на карте. Скрипт выше отработал и разделил карту на разделы, нам надо узнать название первого из этих разделов. | Теперь выясняем имена разделов на карте. Скрипт выше отработал и разделил карту на разделы, нам надо узнать название первого из этих разделов. | ||
Если название устройства microSD-карты имело вид <b>/dev/sdX</b>, то первый раздел будет иметь название <b>/dev/sdX1</b>. | Если название устройства microSD-карты имело вид <b>/dev/sdX</b>, то первый раздел будет иметь название <b>/dev/sdX1</b>. | ||
Если устройство называлось <b>/dev/mmcblkX</b> , то первый раздел - <b>/dev/mmcblkXp1</b> (обратите внимание на <b>p</b> перед номером раздела). | Если устройство называлось <b>/dev/mmcblkX</b> , то первый раздел - <b>/dev/mmcblkXp1</b> (обратите внимание на <b>p</b> перед номером раздела). | ||
Найдя имя первого раздела укажите его тут: | Найдя имя первого раздела укажите его тут: | ||
<pre> | <pre> | ||
Строка 127: | Строка 232: | ||
</pre> | </pre> | ||
Теперь заливаем образ раздела на карту | Теперь заливаем образ раздела на карту | ||
<pre> | <pre> | ||
Строка 133: | Строка 237: | ||
</pre> | </pre> | ||
===Создание фс=== | ===Создание фс=== | ||
Находим название второго раздела на флешке и прописываем его в переменную | Находим название второго раздела на флешке и прописываем его в переменную | ||
<pre> | <pre> | ||
Строка 141: | Строка 244: | ||
</pre> | </pre> | ||
<b>rootfs</b> станет названием этого раздела. | <b>rootfs</b> станет названием этого раздела. | ||
<pre> | <pre> | ||
sudo mkfs.ext4 $MYDISK2 -L rootfs | sudo mkfs.ext4 $MYDISK2 -L rootfs | ||
</pre> | </pre> | ||
===Копирование образа на раздел=== | ===Копирование образа на раздел=== | ||
Готовый образ (включая ядро, dtbs, модули и прошивки): [https://github.com/contactless/wirenboard/releases releases] | |||
См. также [[Сборка образа]] | |||
См. также [[ | |||
<pre> | <pre> | ||
wget https://github.com/ | wget https://github.com/contactless/wirenboard/releases/download/0.1/rootfs.tar.gz | ||
</pre> | </pre> | ||
Теперь надо примонтировать созданную файловую систему созданную нами ранее. ''Как это сделать в терминале?'' | Теперь надо примонтировать созданную файловую систему созданную нами ранее. ''Как это сделать в терминале?'' | ||
По-умолчанию в Ubuntu она монтируется в <b>/media/$USER/rootfs/</b>. Найдите куда система смонтировалась на вашем компьютере. | По-умолчанию в Ubuntu она монтируется в <b>/media/$USER/rootfs/</b>. Найдите куда система смонтировалась на вашем компьютере. | ||
Распаковываем образ на раздел: | Распаковываем образ на раздел: | ||
<pre> | <pre> | ||
Строка 175: | Строка 271: | ||
Отмонтируем файловую систему: | Отмонтируем файловую систему: | ||
<pre> | <pre> | ||
Строка 181: | Строка 276: | ||
</pre> | </pre> | ||
==Пример== | ==Пример== | ||
ОС Ubuntu, свежая SD-карта подключенная к встроенному считывателю и определяющаяся как /dev/mmcblk0. | ОС Ubuntu, свежая SD-карта подключенная к встроенному считывателю и определяющаяся как /dev/mmcblk0. | ||
[https://github.com/ | [https://github.com/contactless/wirenboard/ Репозиторий] скачан, мы находимся в его корне. | ||
Образ rootfs.tar.gz находится внутри папки rootfs. | Образ rootfs.tar.gz находится внутри папки rootfs. | ||
<pre> | <pre> | ||
cd image | cd image | ||
Строка 198: | Строка 289: | ||
sudo ./create_fs.sh /dev/mmcblk0p2 | sudo ./create_fs.sh /dev/mmcblk0p2 | ||
# Ubuntu automount: | # Ubuntu automount: | ||
udisksctl mount -b /dev/mmcblk0p2 | udisksctl mount -b /dev/mmcblk0p2 | ||
#extract rootfs | #extract rootfs | ||
sudo tar xfpz ../rootfs/rootfs.tar.gz -C /media/$USER/rootfs/ | sudo tar xfpz ../rootfs/rootfs.tar.gz -C /media/$USER/rootfs/ | ||
umount /dev/mmcblk0p2 | umount /dev/mmcblk0p2 | ||
</pre> | </pre> | ||
См. также [[ | |||
См. также [[Стандартный образ ФС]]. |
Версия 17:18, 28 апреля 2015
Запись полного образа на карточку
- Скачайте архив с последним образом (расширение .dd, либо .dd.gz, либо img.zip) со страницы releases
- Распакуйте образ архив с образом
Образ с названием, оканчивающимся на _wb28 предназначен для WB rev. 2.8 и не подходит для Wiren Board Smart Home!
Для Wiren Board Smart Home с серийными номерами больше 300 необходимо использовать образ с "newwifi" в названии
В стандартном образе нет раздела подкачки, из-за этого может не хватать оперативной памяти для полного обновления ОС (через apt-get), решением может быть как создание отдельного файла подкачки, так и создание раздела
Для Windows
- скачайте программу для записи образов, например (Win32DiskImager)
- вставьте флеш-карту в ридер
- Найдите диск (например "F:"), соответствующий карте. Диск появляется в списке дисков, когда вы вставляете флешку.
- Проигнорируйте сообщения о необходимости отформатировать диск перед использованием.
- убедитесь, что другие программы не используют флеш-карту
- В программе Win32DiskImager выберите распакованный образ карты, выберите букву диска и нажмите кнопку Write
Для Linux
- вставьте флеш-карту в ридер
- отмонтируйте раздел (umount /dev/mmcblk0p1, где /dev/mmcblk0p1 - раздел на флешке)
- проверьте существование устройства флеш-карты, обычно это /dev/mmcblk0 для встроенного ридера и /dev/sdX (X - буква) - для внешнего.
Название устройства можно посмотреть например в dmesg | tail
- накатите образ на флеш-карту
Не перепутайте название устройства! Неправильно указав название устройства, вы рискуете навсегда потерять все данные на вашем компьютере!
sudo dd if=sdcard.dd of=/dev/mmcblk0 bs=4M
здесь "sdcard.dd" - путь к распакованному файлу с образом.
Пример для Linux:
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
Расширение корневого раздела
По-умолчанию образ рассчитан на флеш-карту размером 4Гб и в нём нет раздела подкачки памяти (swap-раздела). Если ваша флеш-карта большего размера, то рекомендуется создать swap раздел, а так же расширить корневой раздел так, чтобы он занимал всё доступное пространство.
- Для начала нужно создать раздел подкачки (если вы считаете, что в нём нет необходимости, то можно пропустить этот шаг). Раздела размером 128Мб должно быть достаточно. Разместить раздел нужно в конце диска, чтобы осталось место для расширения корневого раздела (для этого можно воспользоваться дружелюбной утилитой cfdisk).
cfdisk /dev/mmcblk0
Далее нужно расширить корневой раздел на всё оставшееся место.
Менять таблицу разделов на этот раз будем при помощи утилиты fdisk. Процедура расширения раздела проста, мы удалим текущий раздел, а затем создадим новый, начинающийся ровно с того же цилиндра, но заканчивающийся на цилиндре перед наши разделом подкачки. При этом изменяться будет только таблица разделов, данные самих разделов меняться не будут.
- Запустим fdisk.
fdisk -u /dev/mmcblk0
- Выводим текущую таблицу разделов
Command (m for help): p Disk /dev/mmcblk0: 8001 MB, 8001683456 bytes 4 heads, 16 sectors/track, 244192 cylinders, total 15628288 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 40959 16384 53 OnTrack DM6 Aux3 /dev/mmcblk0p2 40960 7796735 3877888 83 Linux /dev/mmcblk0p3 13628288 15628287 1000000 83 Linux
Стартовый цилиндр изменяемого нами раздела имеет номер 40960, запомним его, он потребуется нам далее.
- Удалим раздел
Command (m for help): d Partition number (1-4): 2 Command (m for help): p Disk /dev/mmcblk0: 8001 MB, 8001683456 bytes 4 heads, 16 sectors/track, 244192 cylinders, total 15628288 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 40959 16384 53 OnTrack DM6 Aux3 /dev/mmcblk0p3 13628288 15628287 1000000 83 Linux
- И создадим заново, обратив внимание на то, что стартовый цилиндр и номер создаваемого раздела, должны быть в точности таким же, как у удаленного т.е. 40960 и 2.
Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (2048-15628287, default 2048): 40960 Last sector, +sectors or +size{K,M,G} (40960-13628287, default 13628287): '''<Enter>'''
- Проверяем, что всё правильно, убеждаемся, что каждый следующий раздел начинается со следующего цилиндра от предыдущего.
Command (m for help): p Disk /dev/mmcblk0: 8001 MB, 8001683456 bytes 4 heads, 16 sectors/track, 244192 cylinders, total 15628288 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 40959 16384 53 OnTrack DM6 Aux3 /dev/mmcblk0p2 40960 13628287 6793664 83 Linux /dev/mmcblk0p3 13628288 15628287 1000000 83 Linux
- Записываем изменения на диск.
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Устройство или ресурс занято. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
- Выходим из parted набрав q и и просим ядро обновить свою информацию о разделе командой partx.
root@wirenboard:~# partx /dev/mmcblk0p2 # 2: 40960- 13628287 ( 13587328 sectors, 6956 MB)
- Обновляем таблицу ФС для нового размера командой resize2fs.
root@wirenboard:~# resize2fs /dev/mmcblk0p2 resize2fs 1.42.5 (29-Jul-2012) Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 [ 1159.480000] EXT4-fs (mmcblk0p2): resizing filesystem from 969472 to 1698416 blocks [ 1159.910000] EXT4-fs (mmcblk0p2): resized filesystem to 1698416 The filesystem on /dev/mmcblk0p2 is now 1698416 blocks long.
Перезагружаем машину и убеждаемся, что всё прошло хорошо.
root@wirenboard:~# df -h Filesystem Size Used Avail Use% Mounted on rootfs 6.4G 801M 5.4G 13% / ...
Осталось доделать раздел подкачки.
- Форматируем раздел подкачки
root@wirenboard:~# mkswap /dev/mmcblk0p3
- Добавляем раздел подкачки в /etc/fstab и активируем его.
echo "/dev/mmcblk0p3 swap swap defaults 0 0" >> /etc/fstab swapon -a
Создание образа по частям
не нужно в случае записи полного образа по инструкции выше
Сборка вместе
Согласно [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
См. также Стандартный образ ФС.