Uboot linux что такое

U-Boot

Образ

mkimage добавляет 64 байта информации: название, контрольную сумму и пр.

Для отображения информации об образе:

Создание образа

Корневая файловая система

Запись образа во Flash

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Для записи созданного образа ядра или КФС во Flash требуется:

Создание из образа оригинального файла

Для получения из образа U-Boot оригинального файла у файла образа нужно убрать начальные 64 байта, например:
dd if=uImage of=zImage bs=1 skip=64

Переменные

Загрузка

Несколько команд могут быть разделены символом ‘;’.

Задержка

Параметры ядра

Идентификатор ядра

Сохранение переменных

Пример вывода команды:

Проверка контрольной суммы

Проверка КС кода самого U-Boot не выполняется.

Доступ к переменным из Linux

Пример файла конфигурации для Тион, Тион-Про:

Пример чтения переменой ethaddr :

MAC-адрес

Для плат на базе процессора:

Flash

Команда mtdparts выводит список текущих разделов, например:

Командой protect off выполняется снятие программной или аппаратной защиты от записи или стирания Flash. Например, защиту с раздела nor0,2 можно снять командой:

Заставка

Для заставки используется изображение в формате bmp с индексированной палитрой из 256 цветов. Для преобразования изображения можно воспользоваться GIMP.

Перенаправление вывода консоли на экран:
setenv stdout lcd

При использовании (U-Boot 2010.09 из Git-репозитория ниже и U-Boot 1.3.3 начиная с svn598 патчей для плат на основе EP93xx) тип дисплея задаётся переменной panel :

Дисплей
VGAvga
3.5″ (320×240)3.5
5.7″ (640×480)5.7
8″ (640×480)8
8″ (800×600)8-800×600
8″ (800×600)
A080SN01
8-800x600n

Указанный дисплей используется после сброса (переменную panel следует сохранить ).

Для отображения фона и символов используется нулевой и 15-ый цвета палитры, соответственно.

Источник

Русские Блоги

Конфигурация U-Boot, общие команды и загрузка ramfs Linux

Обзор

Файл конфигурации

Важная информация о конфигурации U-Boot определена в файле:

Например, общий файл конфигурации по умолчанию для MX6:

В этом файле конфигурации (или при самостоятельном воссоздании нового файла конфигурации) вы можете настроить некоторые часто используемые функции следующим образом:

Команда запуска конфигурации должна загрузить uImage из толстого раздела mmc0 по адресу памяти 0x40007000, а затем запустить ядро ​​отсюда.

После настройки U-Boot есть 3 секунды, чтобы нажать Enter для входа в интерфейс командной строки.Если он настроен на 0, процесс запуска не может быть прерван.

Это конфигурация, относящаяся к сети, которая поддерживает функции загрузки Ethernet MII, ping, dhcp и tftp.

Настройте выход последовательного порта по умолчанию как ttySAC2.

переменнаяОписание
bootargsСодержимое этой переменной передается ядру Linux в качестве параметров загрузки (также называемых «командной строкой»).
bootcmdЭта переменная определяет командную строку, которая автоматически выполняется, когда начальный обратный отсчет не прерывается. Эта команда выполняется только тогда, когда bootdelay определяет переменные!
bootdelayПосле сброса U-Boot будет ждать это количество секунд перед выполнением содержимого переменной bootcmd. В этот период печатается обратный отсчет, и обратный отсчет можно прервать, нажав любую кнопку.
ethaddrEthernet MAC-адрес первого / единственного интерфейса Ethernet
ipaddrIP-адрес; требуется команда tftp
loadaddrАдрес загрузки по умолчанию таких команд, как tftp или load
serveripIP-адрес TFTP-сервера; требуется команда tftp.

Общие команды и практики

Вот некоторые наиболее часто используемые команды после ввода командной строки:

командаОписание
helpРаспечатать онлайн-справку
bootmЗапустить зеркалирование приложений из памяти
bootzЗапустить Linux zImage из памяти
ext4loadЗагрузить двоичные файлы из раздела Ext4
ext4lsСписок файлов в каталоге
fatinfoРаспечатать информацию о файловой системе
fatlsСписок файлов в каталоге
fatloadЗагрузить двоичный файл из файловой системы dos
mdОтображение памяти
mmМодификация памяти (автоинкремент)
mtestПростой тест RAM
mwЗапись в память
mmcПодсистема MMC
pingОтправить ICMP ECHO_REQUEST на хост
printenvПечатать переменные среды
resetСбросить CPU
setenvУстановить переменные среды
saveenvСохранить переменные среды в постоянное хранилище
usbподсистема usb
tftpbootИспользуйте протокол TFTP для загрузки образа по сети

Установить переменные среды

использовать setenv Чтобы установить переменные среды, связанные с tftp, а затем используйте printenv Распечатайте эти переменные

использовать saveenv (Если есть эта команда) для сохранения этих переменных

Команда памяти

использовать md с mw Чтобы отобразить и изменить данные памяти, md с mw Формат команды аналогичен

Подсистема USB / MMC

Сначала с usb start Дайте U-образному диску нормально работать, а затем используйте fatload С первого раздела U диска с номером устройства 0 u-boot.bin Копировать в память 0x82000000 Место, а потом по памяти 0x82000000 Должность u-boot.bin Скопируйте в область размещения u-boot eMMC (здесь сектор 0x2-0x400)

Если на USB / MMC-диске уже есть раздел FAT / EXT4, вы можете его использовать fatls/ext4ls Чтобы просмотреть информацию о файлах в разделе

Вот список всей информации о файлах из первого раздела FAT U-диска с номером устройства 0.

Теперь попробуйте загрузить и запустить ramfs Linux с диска U

Сначала пройдите сюда fatload Загрузите образ ядра, DTB и образ ramfs с диска U в память, затем настройте параметры загрузки ядра Linux и, наконец, запустите ramfs Linux из памяти.

Используйте tftp для загрузки и запуска Linux ramfs

Первое использование ping Команда для обеспечения связи с tftp сервером

Загрузите и запустите Linux ramfs с tftp-сервера

Сначала пройдите сюда tftpboot Загрузите образ ядра, DTB и образ ramfs в память, затем настройте параметры загрузки ядра Linux и, наконец, запустите ramfs Linux из памяти.

Интеллектуальная рекомендация

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Разработчик PL / SQL удаленно входит в систему с ошибкой идентификатора соединения Oracle TNS

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Мозга

Обратитесь к источнику: IBM DeveloperWorks: https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/ содержание: 1. Введение в Cmake 2, обработка каталога файлов с несколькими источниками 3, найти и ис.

Settings.System.getInt, чтобы получить некоторые настройки в Setting

В пользовательских компонентахpropertiesНеправильное использование неправильноVueГрамматика модифицировать.

Источник

Русские Блоги

Система Linux от uboot до процесса запуска ядра

1. BROM загрузки:

Когда процессор ARM включен, его указатель регистра ПК указывает на начало фрагмента ПЗУ, встроенного в ИС.Этот фрагмент ПЗУ называется BROM (загрузочный диск), и система загружается через этот фрагмент BROM. Пространство BROM относительно невелико, обычно 32/64 КБ, и размер ShareRAM на ИС также отличается, поэтому процесс загрузки ИС также будет другим.
BROM будет хранить загрузочную программу при включении. Эта программа обычно содержит следующее содержимое:

Программа загрузки в BROM настраивается и разрабатывается производителем микросхемы. Он будет определять, входить ли в режим флэш-памяти или режим запуска в соответствии с другим оборудованием, а также определять, с какого носителя загружаться. Затем прочитайте загрузочную программу на MBREC с загрузочного носителя на ShareRAM и перейдите к выполнению. BROM доступен только для чтения и фиксируется при потоковой передаче SOC, поэтому в основном он не будет изменен после получения SOC, а все настраиваемые элементы реализованы в загрузчике.

2. Загрузка загрузчика (загрузка второй стадии):

3. загрузочный загрузчик

Нам нужно заботиться о том, чтобы:

Процесс загрузки ядра с помощью Uboot состоит в том, чтобы определить, как запустить ядро, прочитав bootcmd в переменной среды env. Например, uboot хочет прочитать раздел ядра с флэш-памяти nand по адресу памяти 0x30007FC0 и запустить ядро. Вы можете использовать следующую команду: bootcmd = nand read.jffs2 ядро ​​0x30007FC0, bootm 0x30007FC0. Ключом к запуску ядра является команда bootm.
Реализация команды bootm находится в функции do_bootm () в uboot:
Исходный файл: cmd_bootm.c

Сначала определите, следует ли за адресом загрузки команда bootm.Если параметр адреса загрузки не указан, адрес загрузки по умолчанию назначается для addr, в противном случае адрес, присоединенный к команде bootm, будет использоваться в качестве адреса загрузки. Затем ключ должен прочитать заголовок uboot с адреса загрузки и проанализировать его. Исходя из приведенной выше логики кода, мы видим, что он будет судить, согласован ли адрес загрузки, передаваемый ih_load и bootm в ubootheader, и, таким образом, различать два случая:

С учетом вышеизложенного знания, как нам установить адрес в заголовке uboot, фактически этот шаг заключается в использовании инструмента mkimage для указания адреса загрузки и рабочего адреса при создании uImage.

Есть две ситуации для создания зеркальных головок и загрузки адресов:
Первое:

В этом случае uboot переместит ядро.Zimage, который не включает заголовок uboot, перемещается, поэтому адрес загрузки и адрес входа должны быть установлены одинаково. Что произойдет, если адрес за tftp и bootm также будет 0x30008000? Как видно из приведенного выше кода, если он один и тот же, он не будет выполнять действие транспорта, только печатать сообщение, а затем переходить к адресу записи для выполнения. В настоящее время адресом входа является заголовок uboot, который не является исполняемым zImage, поэтому Сообщит об ошибке.
Второй тип:

В приведенном выше do_bootm мы получили информацию, относящуюся к образу ядра, проанализировав заголовок uboot, который включает адрес входа в ядро, и на последнем этапе загрузки он перейдет к ядру для выполнения. Этот шаг реализован в функции do_bootm_linux (). Перейдите через указатель на функцию thekernel () с тремя параметрами к точке входа ядра (zImage) и начните выполнение. На этом этапе задача u-boot завершена, и управление полностью передано ядру (zImage).

do_bootm_linux (), определенный в arch \ arm \ lib \ bootm.c, потому что мы уже знаем адрес записи, поэтому просто перейдите к адресу записи, чтобы запустить ядро ​​linux.

4. Загрузка ядра

(1) декомпрессия zImage
(2) ядро ​​начинает этап сборки
(3) Ядро запускает стадию языка c (start_kernel для создания первого процесса)

zImage распаковать
На этом этапе задействованы только три файла:
(1)arch/arm/boot/compressed/vmlinux.lds
(2)arch/arm/boot/compressed/head.S
(3)arch/arm/boot/compressed/misc.c
Сначала перейдите к функции start в head.S, чтобы начать выполнение. Вы можете увидеть конкретный процесс в сочетании с файлом lds. Этот раздел не представляет слишком много.

Основными задачами, выполняемыми в этой части, являются проверка идентификатора процессора, проверка идентификатора компьютера, создание таблицы страниц инициализации, настройка среды выполнения кода C, переход к первой реальной функции C ядра start_kernel для запуска выполнения.
Этот этап включает в себя две важные структуры:

Этот этап обычно вызывается предыдущим кодом распаковки, и для входа на этот этап требуется:
MMU = off, D-cache = off, I-cache = dont care,r0 = 0, r1 = machine id.
Все списки идентификаторов машин сохраняются в файле arch / arm / tools / mach-types, и соответствующий файл заголовка будет сгенерирован в kernel / include / generate / mach-types.h во время компиляции. в. Ядро найдет соответствующую структуру struct machine_desc в соответствии с входящим идентификатором машины и использует функцию обратного вызова для запуска ядра.

Во время компиляции две структурные переменные, определенные выше, struct proc_info_list, будут связаны с сегментом между __proc_info_begin и __proc_info_end файла образа ядра vmlinux. struct machine_desc будет связана с сегментом между __arch_info_begin и __arch_info_end файла образа ядра vmlinux. Соответствуя * (. Proc.info.init) и * (. Arch.info.init) соответственно, вы можете обратиться к следующему сценарию подключения vmlinux.lds.

В конце этапа сборки он перейдет к этапу языка C. и продолжит запуск. В head-common.S инструкция b start_kernel переходит к коду C для выполнения.

Ядро запускает стадию языка Си
Функция входа языка C определена в kernel / init / main.c. Она запускает выполнение через функцию start_kernel. Она вызовет много функций, связанных с платформой. Определение этой части функции все еще находится в каталог kernel / arch / arm / mach-XXX.

Например, в определении машины вы можете использовать функцию, определенную для соответствующей машины в start_kernel:

Для платформы smdk2410 соответствующая структура machine_desc инициализируется в файле linux / arch / arm / mach-s3c2410 / mach-smdk2410.c:

Макрос MACHINE_START определяется в файле arch / arm / include / asm / mach / arch.h:

attribute((section(«.arch.info.init»))) указывает, где структура будет сохранена в будущем.

Помните информацию в vmlinux.lds, упомянутую выше?

Таким образом, содержимое, определенное выше, будет размещено в этом сегменте между __arch_info_begin и __arch_info_end. Это позволяет явно найти структуру в файле сборки.

Далее кратко представим процесс запуска процессора следующим образом:
Для SMP загрузочный ЦП будет выполнять функцию cpu_init во время инициализации системы для инициализации ЦП. Конкретная последовательность вызовов: start_kernel—> setup_arch—> setup_processor—> cpu_init. Для других процессоров в системе загрузочный процессор инициализирует каждый оперативный процессор в конце инициализации системы. Конкретная последовательность вызова:

Функция __cpu_up связана с архитектурой процессора. Для ARM вызывающая последовательность

Ключевыми каталогами кода являются:

Источник

Banana Pi: через U-Boot к Arch Linux

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такоеУже четвёртый год подряд, с момента выпуска Raspberry Pi, на рынки всего мира поставляются различные микрокомпьютеры на отличных от x86 архитектурах, которые выполняют роль медиацентров, контроллеров умных домов, веб-серверов и чего только душа гика не пожелает!

К 2014-2015 году не все были довольны вычислительными возможностями «малинки» и начался выпуск десятков его клонов с более мощным железом. У большинства из них есть недостатки: фиксированная устаревшая версия ядра и загрузчика, небольшой выбор дистрибутивов. Под катом расскажу о том, как сбросить оковы вендора на примере Banana Pi.

Предыстория

Во второй половине 2014 года захотелось иметь домашний сервер, выбор встал между классическим на архитектуре x86 с процессором серии Intel Atom и чем-то новым для меня — микрокомпьютером на базе ARM.

После оценки соотношений цены/производительности/возможностей выбор пал на Banana Pi — кроху с двухъядерным Allwinner A20, 1 гигабайтом DDR3, гигабитным LAN’ом, SATA разъёмом и прочими прелестями подобных устройств. Наигравшись пару дней, я смастерил из пластмассовых деталей корпус, в который Banana и была заточена и долго служила для всяких мелких задач.

Дистрибутив стоял Bananian — это Debian 7 Wheezy урезанный во многом для экономии ресурсов. Более нового Debian 8.x нет и по сей день, можете сами представить насколько там старый софт, который получает лишь заплатки безопасности. Всё это безобразие продолжалось до середины лета…

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Наконец в июле возникла необходимость поднять веб-сервер и сопутствующие ему сервисы для своего pet project. Пора было сменить старый Debian на что-то менее консервативное и более удобное для меня.

Постановка задачи

К дистрибутиву было поставлено несколько требований: должен «из коробки» иметь репозитории покрывающие все нужды, программы в них должны быть наиболее приближённые к последним доступным версиям. Я слежу за развитием дистрибутивов и входящих в них программ, но при этом ленюсь компилировать всё из сорцов, поэтому очевидным выбором стал Arch Linux.

На сайте производителя в разделе загрузок меня ждал просроченный на год образ с зашитым необновляемым ядром (3.4.100), загрузчиком такой же давности причём от другого устройства (Cubieboard 2). На сайте Arch Linux’а поддержки Banana Pi не было заявлено. Исходя из всего этого оставалось только одно: скомпоновать и запустить дистрибутив самому.

Матчасть

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Das U-Boot (происхождение названия как-то связано с субмаринами и игрой слов на немецком и английском языках, см. U-boat)
Это загрузчик операционной системы, ориентированный на устройства c архитектурами MIPS, PowerPC, ARM и другими. Умеет он многое: загружает систему с NAND, NOR, SPI, MMC, SATA, USB, TFTP, NFS, может сам храниться в ПЗУ устройства или внешней памяти, имеет встроенный dhcp клиент и shell, принимает сигналы с клавиатуры, выводит на UART, HDMI, VGA, аналоговое видео. Естественно для поддержки всего этого нужно иметь драйверы.

Тут и начинается отличие от x86 платформ — ARM не имеет ACPI (усовершенствованного интерфейса управления конфигурацией и питанием) и UEFI (интерфейса взаимодействия между операционной системой и «прошивкой» устройства) и именно поэтому не существует как таковых унифицированных дистрибутивов для ARM компьютеров, но движение в сторону UEFI и ACPI идёт уже несколько лет. А пока это движение идёт мы находимся в реальном суровом мире и загрузчик нужно компилировать самостоятельно для разного железа. Железо это описывается в структуре данных под названием Device Tree (dt). Подробнее о DT можно узнать на посвящённом ему сайте: devicetree.org.

В комплекте с исходными кодами загрузчика поставляется набор конфигурационных файлов для компиляции, а также Device Tree для 1089 устройств. Гугл, к сожалению, не находит этот список, поэтому он доступен по ссылке: U-boot supported devices.

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

От теории к практике

Находим в появившемся каталоге u-boot-2015.07/configs свою «железку» и запоминаем название файла. Для Banana Pi конфигурационный файл называется Bananapi_defconfig.

Ещё помните, что ядро Arch Linux ARM дистрибутиве хранится в zImage? Об этом нужно позаботиться заранее и перед компиляцией добавить возможность загружать самораспаковывающиеся ядра. Точной информации о том уже включено ли это по умолчанию у меня нет, поэтому в каталоге u-boot-2015.07/include/configs/ нужно найти заголовочный файл для платформы Вашего микрокомпьютера (для Banana Pi это sun7i.h) и написать внутри:

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

Теперь этап компиляции. Все операции происходят в каталоге u-boot-2015.07.

Непосредственно компиляция загрузчика:

В итоге в нашей рабочей папке должно появиться много файлов с префиксом u-boot. u-boot.bin содержит исполняемый файл загрузчика, но нужен нам файл с постфиксом «with-spl». SPL — небольшая программа, которая располагается непосредственно перед загрузчиком и загружает сам U-Boot в оперативную память. Для Banana Pi это файл u-boot-sunxi-with-spl.bin. Сохраним его, он пригодится чуть позже.

Следующий шаг — подготовка флеш-карты с которой будет загружаться система. Как должна выглядеть её разметка:

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Подключим флеш-карту через кард-ридер и запустим утилиту fdisk:

Добавим MBR разметку:

После всего этого ввести «w», тем самым записать изменения на диск.

Почему именно такие разделы? U-Boot’ом можно управлять с помощью скриптов, он читает их только из первого раздела накопителя, причём раздел этот должен быть с файловой системой FAT. В этот же раздел будет смонтирован каталог /boot будущего Arch Linux’а для удобного доступа к ядрам как из U-Boot скриптов, так и для быстрой подмены ядер с любого попавшегося компьютера. Второй раздел предназначен для корня системы. Остальные по желанию.

После разметки нужно очистить место для загрузчика. Крайне важно не затереть первые 512 байт(MBR) и не затронуть 1024 секторы и далее (исходя из таблицы выше):

Теперь уже можно вставить флешку в устройство назначения, включить его и посмотреть как оно весело мигает LED’ами, подхватывает ip-адрес через dhcp, пытается достучаться до tftp сервера чтобы загрузиться и дружелюбно приглашает Вас в свой Shell показывая его через выдеовыход или UART.

Но одного загрузчика мало, остаётся ещё несколько компонентов: скрипт для управления U-Boot’ом и сам дистрибутив Arch Linux.
Отправляемся на os.archlinuxarm.org и скачиваем архив с подходящим нашей архитектуре дистрибутивом. Для Banana это ArchLinuxARM-armv7-latest.tar.gz. Распаковываем в отдельную директорию и продолжаем манипуляции с флеш-картой.

Создадим файловые системы и примонтируем их в заданном порядке:

Скопируем всё содержимое распакованного архива в /mnt:

Заглянем в первый раздел флешки (/mnt/boot). Внутри нас ждёт папка dtbs и сжатый образ ядра — zImage. dtbs — это именно те Device Tree Binary, о которых шла речь выше.
Для ARMv7 есть целых 301 dtb. Список можно увидеть здесь или непосредственно открыв директорию boot/dtbs дистрибутива на своём компьютере. Если dtb есть, то ядро заведётся с почти 100% вероятностью. Для Banana Pi нужный файл — sun7i-a20-bananapi.dtb. Он нужен нам для последнего и завершающего этапа — написания скрипта для U-Boot’а и, естественно, запуска всей полученной системы.

Приступим. Создадим прямо на месте (в /mnt/boot) файл boot.cmd и начнём писать.

Первым делом прикажем U-Boot’у загружать в RAM образ ядра:

Затем dtb для нужного девайса:

Установим параметры для запуска ядра:

И скажем ему загружаться из этой области памяти, тем самым передавая управление уже ядру Linux.

Области памяти доступные для загрузки у каждой модели свои и к сожалению я не знаю как определять их самостоятельно. Буду очень рад, если кто-то расскажет об этом простыми словами в комментариях.

Написанный нами скрипт остаётся только скомпилировать. Для этого в пакете uboot-tools есть утилита mkimage, воспользуемся ей:

boot.cmd при желании можно удалить, загрузчику нужен лишь boot.scr.

И последний штрих — добавляем в etc/fstab новой системы разделы, которые будут подключаться при запуске:

Флешку можно вставлять в девайс и радоваться свежей системе. Демон dhcpd сам подхватит адрес если в Вашей сети есть DHCP сервер. SSH сервер по умолчанию добавлен в автозагрузку. Аккаунт на дефолтных образах Arch Linux ARM изначально всегда один: root/root. Обязательно смените пароль и добавьте юзера с ограниченными полномочиями.

Uboot linux что такое. Смотреть фото Uboot linux что такое. Смотреть картинку Uboot linux что такое. Картинка про Uboot linux что такое. Фото Uboot linux что такое

Что получили? Звёзды так сошлись, что поддержка моего микрокомпьютера есть в списке из 1089 устройств поддерживаемых U-Boot и среди 301-го среди поддерживаемых mainline ядром для ARMv7. Поэтому получили именно то, что и хотели: систему с самым свежим программым обеспечением, которое стабильно обновляется из репозиториев, включая ядро системы (на данный момент уже 4.1.4). Стабильная ветка загрузчика обновляется раз в 3 месяца и требуется лишь скомпилировать его и повторить процедуру установки, как сделано выше.

Для ленивых

Подготовил образ для Banana Pi:
Ссылка, Зеркало #1, Зеркало #2.
md5 образа в архиве: f36d707c4c1fd857b50d37501b4a3d7a
Записать образ на флеш-карту можно с помощью утилиты dd, либо win32diskimager (для Windows пользователей).

Источники

Желаю удачи тем, кто захочет повторить это у себя дома и буду рад справедливой критике.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *