Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
buildroot-2014.08 на базе ядра 3.10.17 для i.mx6
Alex61RUS
Добавлено 04.02.2015 16:08 Сообщение: 131
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
У кого-нибудь получилось заставить модуль SK-iMX6S-OEM загружаться с NAND?
Если есть такие напишите пожалуйста как вы это сделали. Если возможно, то прямо пунктам что за чем и как делали.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.02.2015 21:46 Сообщение: 132
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
У кого-нибудь получилось заставить модуль SK-iMX6S-OEM загружаться с NAND?
Если есть такие напишите пожалуйста как вы это сделали. Если возможно, то прямо пунктам что за чем и как делали.

ну вы даете, месяц почти прошел.. неужели самому не попробовать запилить? т.б. у вас есть положительные предпосылки:
Код
Максимум чего удаётся добиться - это начало загрузки с NAND до появления сообщения "Bad Linux ARM zImage magic!".
Кому нибудь удалось запустить этот модуль с NAND, поделитесь информацией пожалуйста!

т.е. у вас уже АРМ находит бутабельный бинарник и u-boot, далее юбут не находит ядро.
ищите, как проинициализировать и разбить нанд, потом туда складываете ядро и объясняете в скрипте юбута откуда тащить ядро. не забудьте поправить строку для ядра в части параметров разбиения нанда "mtdparts=bla-bla-bla"

ЗЫ немаловажно сначала убедиться, что в юбуте и ядре поднята работа с нандом (смотрите в соответствующих конфигах)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 05.02.2015 11:16 Редактировалось 18.02.2015 17:03 Сообщение: 133
Pavel Ivanchenko
Admin
4.39

Пункты: 91424
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
У кого-нибудь получилось заставить модуль SK-iMX6S-OEM загружаться с NAND?
Если есть такие напишите пожалуйста как вы это сделали. Если возможно, то прямо пунктам что за чем и как делали.

SK-iMX6S-OEM
Все под виртуалкой, скачал архив с первого поста, сконфигурировал как imx6sk_min_defconfig, через menuconfig изменил тип на OEM (по умолчанию Hola), поставил на сборку - не собралось (ругалось на отсутсвие какого то файла).
Изменил тип железа на Hola, пересобрал - ok
Изменил тип железа на OEM, пересобрал - ok
Выполнил скрипт uboot_rebuild.sh - ok
Залил образ на карту, запустился с нее на модуле - ok
Выполнил скрипт /root/root2nand.sh - ok
Модуль нормально грузится и работает.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.02.2015 11:35 Редактировалось 05.02.2015 11:37 Сообщение: 134
sasamy
4.70

Пункты: 77159
Регистрация: 14.08.2009
Цитата

Выполнил скрипт /root/root2nand.sh - ok
Модуль нормально грузится и работает.


В убуте есть проблемы с NAND когда используется ubifs для хранения ядра, так что полной уверенности что на всех модулях все ОК нет.

Alex61RUS

скиньте логи скрипта root2nand.sh и лог загрузки модуля с nand.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 05.02.2015 11:49 Редактировалось 05.02.2015 11:51 Сообщение: 135
Pavel Ivanchenko
Admin
4.39

Пункты: 91424
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
В убуте есть проблемы с NAND когда используется ubifs для хранения ядра, так что полной уверенности что на всех модулях все ОК нет.
Первый эксперимент был с модулем SK-iMX6S-OEM-Ind (1G SLC NAND), сейчас повторил на SK-iMX6S-OEM (1G MLC NAND) - проблем нет.
Или имеешь в виду влияние бедблоков на загрузочный раздел?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.02.2015 11:56 Сообщение: 136
sasamy
4.70

Пункты: 77159
Регистрация: 14.08.2009
Цитата

Или имеешь в виду влияние бедблоков на загрузочный раздел?


да - проблемы я словил на MLC на который были бэды - похоже убут портит таблицу бэдблоков MTD, хотя формально драйвер работает в режиме read-only. В качестве временного решения я урезал рутовый раздел - на моей плате (SK-IMX6Q) это помогло избавиться от проблемы + это сделано в перевую очередь чтобы уменьшить время монтирования корня.
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 05.02.2015 13:28 Сообщение: 137
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата

Alex61RUS
скиньте логи скрипта root2nand.sh и лог загрузки модуля с nand.


# /root/root2nand.sh
/root/root2nand.sh: line 8: ubiformat: not found
/root/root2nand.sh: line 9: ubiattUBIFS error (pid 222): ubifs_mount: cannot open "ubi0:rootfs", error -19
ach: not found
/root/root2nand.sh: line 10: ubimkvol: not found
mount: mounting ubi0:rootfs on /mnt failed: No such device
tar: removing leading '/' from member names
mkdir: can't create directory '/mnt/dev': File exists
mkdir: can't create directory '/mnt/proc': File exists
mkdir: can't create directory '/mnt/sys': File exists
mkdir: can't create directory '/mnt/tmp': File exists
mkdir: can't create directory '/mnt/mnt': File exists
umount: can't umount /mnt: Invalid argument
MTD CONFIG:
chip_0_device_path = "/dev/mtd0"
chip_1_device_path = "(null)"
search_exponent = 2
data_setup_time = 80
data_hold_time = 60
address_setup_time = 25
data_sample_time = 6
row_address_size = 3
column_address_size = 2
read_command_code1 = 0
read_command_code2 = 48
boot_stream_major_version = 1
boot_stream_minor_version = 0
boot_stream_sub_version = 0
ncb_version = 3
boot_stream_1_address = 0
boot_stream_2_address = 0
-- We add the 1k-padding to the uboot.
.tmp_kobs_ng: verifying using key '00000000000000000000000000000000'
.tmp_kobs_ng: is a valid bootstream for key '00000000000000000000000000000000'
mtd: opening: "/dev/mtd0"
NFC geometry :
ECC Strength : 16
Page Size in Bytes : 8628
Metadata size : 10
ECC Chunk Size in byte : 512
ECC Chunk count : 16
Block Mark Byte Offset : 7792
Block Mark Bit Offset : 0
====================================================
mtd: opened '/dev/mtd0' - '(null)'
mtd: max_boot_stream_size_in_bytes = 6291456
mtd: boot_stream_size_in_bytes = 413696
mtd: boot_stream_size_in_pages = 51
mtd: #1 0x00400000 - 0x00a00000 (0x00465000)
mtd: #2 0x00a00000 - 0x01000000 (0x00a65000)
FCB
m_u32Checksum = 0x00000000
m_u32FingerPrint = 0x20424346
m_u32Version = 0x01000000
m_NANDTiming.m_u8DataSetup = 80
m_NANDTiming.m_u8DataHold = 60
m_NANDTiming.m_u8AddressSetup = 25
m_NANDTiming.m_u8DSAMPLE_TIME = 6
m_u32PageDataSize = 8192
m_u32TotalPageSize = 8628
m_u32SectorsPerBlock = 128
m_u32NumberOfNANDs = 0
m_u32TotalInternalDie = 0
m_u32CellType = 0
m_u32EccBlockNEccType = 8
m_u32EccBlock0Size = 512
m_u32EccBlockNSize = 512
m_u32EccBlock0EccType = 8
m_u32MetadataBytes = 10
m_u32NumEccBlocksPerPage = 15
m_u32EccBlockNEccLevelSDK = 0
m_u32EccBlock0SizeSDK = 0
m_u32EccBlockNSizeSDK = 0
m_u32EccBlock0EccLevelSDK = 0
m_u32NumEccBlocksPerPageSDK = 0
m_u32MetadataBytesSDK = 0
m_u32EraseThreshold = 0
m_u32Firmware1_startingPage = 512
m_u32Firmware2_startingPage = 1280
m_u32PagesInFirmware1 = 51
m_u32PagesInFirmware2 = 51
m_u32DBBTSearchAreaStartAddress = 256
m_u32BadBlockMarkerByte = 7792
m_u32BadBlockMarkerStartBit = 0
m_u32BBMarkerPhysicalOffset = 8192
m_u32BCHType = 0
m_NANDTMTiming.m_u32TMTiming2_ReadLatency = 0
m_NANDTMTiming.m_u32TMTiming2_PreambleDelay = 0
m_NANDTMTiming.m_u32TMTiming2_CEDelay = 0
m_NANDTMTiming.m_u32TMTiming2_PostambleDelay = 0
m_NANDTMTiming.m_u32TMTiming2_CmdAddPause = 0
m_NANDTMTiming.m_u32TMTiming2_DataPause = 0
m_NANDTMTiming.m_u32TMSpeed = 0
m_NANDTMTiming.m_u32TMTiming1_BusyTimeout = 0
m_u32DISBBM = 0
DBBT
m_u32Checksum = 0x00000000
m_u32FingerPrint = 0x54424244
m_u32Version = 0x01000000
m_u32DBBTNumOfPages = 0
Firmware: image #0 @ 0x400000 size 0x66000 - available 0x600000
Firmware: image #1 @ 0xa00000 size 0x66000 - available 0x600000
-------------- Start to write the [ FCB ] -----
mtd: erasing @0:0x0-0x100000
mtd: Writing FCB0 [ @0:0x0 ] (21b4) *
mtd: Writing FCB1 [ @0:0x80000 ] (21b4) *
mtd: erasing @0:0x100000-0x200000
mtd: Writing FCB2 [ @0:0x100000 ] (21b4) *
mtd: Writing FCB3 [ @0:0x180000 ] (21b4) *
mtd_commit_bcb(FCB): status 0

-------------- Start to write the [ DBBT ] -----
mtd: erasing @0:0x200000-0x300000
mtd: Writing DBBT0 [ @0:0x200000 ] (2000) *
mtd: Writing DBBT1 [ @0:0x280000 ] (2000) *
mtd: erasing @0:0x300000-0x400000
mtd: Writing DBBT2 [ @0:0x300000 ] (2000) *
mtd: Writing DBBT3 [ @0:0x380000 ] (2000) *
mtd_commit_bcb(DBBT): status 0

---------- Start to write the [ .tmp_kobs_ng ]----
mtd: Writting .tmp_kobs_ng: #0 @0: 0x00400000 - 0x00466000
mtd: erasing @0:0x400000-0x500000
mtd: The last page is not full : 4096
mtd: We write one page for save guard. *
mtd: Writting .tmp_kobs_ng: #1 @0: 0x00a00000 - 0x00a66000
mtd: erasing @0:0xa00000-0xb00000
mtd: The last page is not full : 4096
mtd: We write one page for save guard. *
#

Вот так выглядит лог исполнения root2nand.sh при использовании образа из сообщения №14.
Ругается на отсутствие утилит для работы с ubifs.
Лог загрузки с NAND выложить не могу, т.к. плата не загружается.
Сейчас собираю заново свой минимальный образ с включенными в menuconfig утилитах ubifs.
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 05.02.2015 13:53 Сообщение: 138
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата

Все под виртуалкой, скачал архив с первого поста, сконфигурировал как imx6sk_min_defconfig, через menuconfig изменил тип на OEM (по умолчанию Hola), поставил на сборку - не собралось (ругалось на отсутсвие какого то файла).

При сборке по первому посту ругается на невозможность скопировать файл u-boot-nand.imx в несуществующую папку /output/target/boot
Лог выглядит так:
cp: cannot create regular file '/home/user/buildroot-2014.08-sk/output/target/boot/u-boot-nand.imx': No such file or directory
После создания этой папки вручную перезапуска make сборка продолжается. Как закончится отпишусь...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.02.2015 15:54 Редактировалось 05.02.2015 15:57 Сообщение: 139
sasamy
4.70

Пункты: 77159
Регистрация: 14.08.2009
Цитата

Лог выглядит так:
cp: cannot create regular file '/home/user/buildroot-2014.08-sk/output/target/boot/u-boot-nand.imx': No such file or directory


Это похоже из-за минимального конфига - в обычных конфигах ядро собирается раньше убута и эта директория

output/target/boot/

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

buildroot-2014.08-sk/boot/uboot/uboot.mk

cp -dpf $(@D)/$(UBOOT_BIN) $(BINARIES_DIR)/u-boot-nand.imx
mkdir -p $(TARGET_DIR)/boot
cp -dpf $(@D)/$(UBOOT_BIN) $(TARGET_DIR)/boot/u-boot-nand.imx
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 05.02.2015 17:29 Редактировалось 05.02.2015 17:32 Сообщение: 140
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Спасибо за подсказку про скрипт uboot_rebuild.sh.
Результаты следующие:
Если компилировать с включенным пунктом ubifs, загрузка платы с карты зависает:
U-Boot 2014.04 (Feb 05 2015 - 10:41:20)

CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz
CPU: Temperature 42 C, calibration data: 0x5b053b5f
Reset cause: POR
Board: SK-iMX6-OEM
DRAM: 512 MiB
NAND: 1024 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

Net: FEC
Normal Boot
Hit any key to stop autoboot: 0
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 1048576 bytes (1024 KiB)
UBI: logical eraseblock size: 1032192 bytes
UBI: smallest flash I/O unit: 8192
UBI: VID header offset: 8192 (aligned 8192)
UBI: data offset: 16384
UBI error: ubi_scan_add_used: two LEBs with same sequence number 4
UBI error: ubi_init: cannot attach mtd1
UBI error: ubi_init: UBI error: cannot initialize UBI, error -22
UBI init error 22
UBIFS error (pid 0): ubifs_get_sb: cannot open "ubi0:rootfs", error -19
UBIFS error (pid 0): ubifs_mount: Error reading superblock on volume 'ubi0:rootfs' errno=-19!

ubifsmount - mount UBIFS volume

Usage:
ubifsmount <volume-name>
- mount 'volume-name' volume
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem

Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem

Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
Kernel image @ 0x12000000 [ 0x000000 - 0x4531c0 ]
## Flattened Device Tree blob at 12800000
Booting using the fdt blob at 0x12800000
reserving fdt memory region: addr=12800000 size=b000
Using Device Tree in place at 12800000, end 1280dfff

Starting kernel ...

далее ничего не происходит!

Но, если отключить этот пункт, сделать make, а затем ОБЯЗАТЕЛЬНО выполнить uboot_rebuild.sh (чего я не знал), то плата начинает запускаться, как с SD карты, так и с NAND.
Sasamy, убедительная просьба добавить в сборку создание папки boot и дополнить описание в первом посте на счёт необходимости выполнения скрипта uboot_rebuild.sh, чтоб другим новичкам, вроде меня, было по-легче.
Заранее спасибо, буду прикручивать к модулю свой WF111.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux