Перенос ОС linux с SD карты на микросхему eMMC

встраиваемые модели

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение Olej » 06 сен 2019, 15:16

simzov писал(а): 2. Основная работа с одноплатником производится по ssh. Вывод лога загрузки ОС в uart сейчас отключен.
Вот лог загрузки UBoot с sd-карты (отучить загрузчик от uart мы пока не сумели):

Код: Выделить всё

...
switch to partitions #0, OK
mmc0 is current device
reading boot.scr
** Unable to read file boot.scr **
Плохое место, относительно boot.scr
simzov писал(а):
Перенос делался побайтным копированием (там есть некоторые детали, которые пока не затрагиваем), типа такого:
Нет. На eMMC записывался образ sdcard.img, который генерирует buildroot в результате сборки. Этот же образ записывается на sd-карту, с которой плата грузится и работает.
А это абсолютно одно и то же: изучение образов *.img показывает, что это и есть побайтный образ диска.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение Olej » 06 сен 2019, 15:23

simzov писал(а): Ядро взято из репозитория Freescale.

Код: Выделить всё

# uname -a
Linux buildroot 4.9.11 #14 SMP PREEMPT Thu Aug 22 10:50:05 EEST 2019 armv7l GNU/Linux
Кто есть Freescale? Производитель (платы)? Freescale Semiconductor, Inc.?
Ссылка на репозиторий (посмотреть)?
.dts для вашего устройства тоже оттуда?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение Olej » 06 сен 2019, 17:11

simzov писал(а): С помощью DIP-переключателя.
Это хоть хорошо. Это много определённее.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение Olej » 06 сен 2019, 17:21

simzov писал(а): Так же, наша микросхема eMMC "из коробки" содержит несколько разделов:

Код: Выделить всё

# ls /dev | grep mmcblk1
mmcblk1
mmcblk1boot0
mmcblk1boot1
mmcblk1p1
mmcblk1p2
mmcblk1rpmb


Разделы

Код: Выделить всё

mmcblk1p1
mmcblk1p2
созданы в результате записи образа. Изначально их нет.
Странно, очень странно...
mmcblk1p1 в вашем образе - это FAT /boot, что же тогда mmcblk1boot0 и mmcblk1boot1 ?
Можете показать fdisk -l для /dev/mmcblk1 ? Что он видит в его структуре?

simzov
Интересующийся
Сообщения: 8
Зарегистрирован: 04 сен 2019, 13:35
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение simzov » 06 сен 2019, 17:50

Olej писал(а):
simzov писал(а): Ядро взято из репозитория Freescale.

Код: Выделить всё

# uname -a
Linux buildroot 4.9.11 #14 SMP PREEMPT Thu Aug 22 10:50:05 EEST 2019 armv7l GNU/Linux
Кто есть Freescale? Производитель (платы)? Freescale Semiconductor, Inc.?
Ссылка на репозиторий (посмотреть)?
.dts для вашего устройства тоже оттуда?
Freescale, они же NXP Semiconductors, они же Phillips (вроде бы).
[url=git://git.freescale.com/imx/linux-imx.git]Ссылка на git Freescale[/url]
.dts взят из buildroot и модифицирован под нашу "материнку".

simzov
Интересующийся
Сообщения: 8
Зарегистрирован: 04 сен 2019, 13:35
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение simzov » 06 сен 2019, 17:55

Olej писал(а):
simzov писал(а): Так же, наша микросхема eMMC "из коробки" содержит несколько разделов:

Код: Выделить всё

# ls /dev | grep mmcblk1
mmcblk1
mmcblk1boot0
mmcblk1boot1
mmcblk1p1
mmcblk1p2
mmcblk1rpmb


Разделы

Код: Выделить всё

mmcblk1p1
mmcblk1p2
созданы в результате записи образа. Изначально их нет.
Странно, очень странно...
mmcblk1p1 в вашем образе - это FAT /boot, что же тогда mmcblk1boot0 и mmcblk1boot1 ?
Можете показать fdisk -l для /dev/mmcblk1 ? Что он видит в его структуре?
что же тогда mmcblk1boot0 и mmcblk1boot1 ?
- это, предположительно, области для размещения загрузчика. Я в этом не уверен.

Вот fdisk -l для /dev/mmcblk1:

Код: Выделить всё

Disk /dev/mmcblk1: 3.6 GiB, 3867148288 bytes, 7553024 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
Disklabel type: dos
Disk identifier: 0x3f570b60

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение Olej » 06 сен 2019, 18:22

simzov писал(а): Так же, наша микросхема eMMC "из коробки" содержит несколько разделов:

Код: Выделить всё

# ls /dev | grep mmcblk1
mmcblk1
mmcblk1boot0
mmcblk1boot1
mmcblk1p1
mmcblk1p2
mmcblk1rpmb
Посмотрев по вашим ссылкам, смотрю там с загрузкой из eMMC совсем не так просто, и они в обсуждениях активно ссылаются в обсуждениях на использование mmcblk1boot0, mmcblk1boot1. И вообще там много хлопот с обсуждением eMMC. См.:
Изображение

В ответах техподдержки, при обсуждении разбивки и конфигурации пространства eMMC, они плотно ссылаются на страницы:
Ventana Bootloader
Falcon Mode
Может это вам что-то подскажет.
Я уже глубже в их обсуждения не влезал...

P.S. Вообще то, как я предполагаю, с этими делами мы уже влезаем в ... "производителе-зависимую" область - то, как это принято и делается на определённом семействе SBC, в вашем случае iMX6UL ... iMX6UL - run u-boot from eMMC:
As an addendum: I did not use the MMC's boot partitions (/dev/mmcblk1boot0 or /dev/mmcblk1boot1) because I didn't have any way to set "boot_config" as per this post: Boot from eMMC mmcblk3boot0 or mmcblk3boot1.
I am convinced the SPL and u-boot need to be in /dev/mmcblk1 (the user area) because it's where the ROM bootloader is reading from.

kAndrew
Интересующийся
Сообщения: 3
Зарегистрирован: 04 сен 2019, 13:33
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение kAndrew » 18 сен 2019, 20:45

Добрый вечер, Спасибо за советы. еММС запустилась. Как оказалось у нас было сразу 2 проблемы: аппаратная и программная.
Во-первых для выбора загрузки с еММС необходимо было (кроме дип-переключателя) переустановить резистор согласно описанию от производителя - с этим разобрались и переустановили. Во вторых по умолчанию на плате производителя используется sd карта, а у нас на этом месте еММС, поэтому пришлось пересобрать u-boot (с определением макроса #define CONFIG_MX6UL_EVK_EMMC_REWORK) для еММС вместо sd-карты. Ну и напоследок еще пришлось загрузить u-boot на спец-раздел еММС (/dev/mmcblk1boot0) чтобы он начал грузиться и переключаться на образ linux из user area. (Хотя в документации написано что можно выбрать user area в качестве загрузочной области, но так не сработало).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение Olej » 18 сен 2019, 20:56

Ну и хорошо...
Если остальные пункты и понятные ... я как-то более-менее близко к ним был, то вот такого я нигде в описаниях вашего производителя не видел - это уже конструктивные доработки:
kAndrew писал(а): Во-первых для выбора загрузки с еММС необходимо было (кроме дип-переключателя) переустановить резистор согласно описанию от производителя - с этим разобрались и переустановили.
Хотя, вроде бы, внимательно всё вычитал.
Ну это они дали! :-o
А как после такого действия с загрузкой с SD карты если понадобится?

kAndrew
Интересующийся
Сообщения: 3
Зарегистрирован: 04 сен 2019, 13:33
Контактная информация:

Re: Перенос ОС linux с SD карты на микросхему eMMC

Непрочитанное сообщение kAndrew » 19 сен 2019, 11:54

Цитата из i.MX 6UltraLite EVK Board Hardware User’s Guide

On the i.MX 6UltraLite EVK board, the default boot device is USDHC interface. There are two SD slots
on the board, one MicroSD (USDHC-2) on the Main board, one standard SD (USDHC-1) on the Base
board, MicroSD (USDHC-2) is the default boot device. If the developer wants to boot from the SD
(USDHC-1) by default, need to remove R613 (10K) and install R642 (10K). The location of the R613 and
R642 is on the bottom side as show in the following figure.

Загрузка с SD карты при переставленном резисторе тоже возможна, если выбрать загрузку с SD дип-переключателем.

Ответить

Вернуться в «Одноплатные компьютеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя