копиране на ядрото и uboot в sdcard

Имам платка Freescale I.MX ARM, за която подготвям буутлоудъра, ядрото и основната файлова система на sdcard. Малко съм объркан относно реда, в който разделям и копирам файловете си в sdcard. Да кажем, че имам празна sdcard с размер 4GB. Използвах gparted, за да го разделя първо на:

Първият дял е с размер 400 MB като FAT32 система. това е моят дял за зареждане Вторият дял е останалата част от картата като ext3. Това е дялът на основната файлова система.

Да кажем, че моята sdcard е под /dev/sdb.

Сега видях много документи, които се различават леко в начина на копиране на файловете за зареждане.

Кой е правилният начин?

Метод 1:

(без монтиране на sdb дялове: sudo dd if=u-boot.bin of=/dev/sdb bs=512 seek=2 sudo dd if=uImage of=/dev/sdb bs=512 seek=2

Монтирайте sdb2 за копиране на rootfs: монтирайте /dev/sdb2 /mnt/rootfs копирайте rootfs: tar -xf tarfile /mnt/rootfs

Метод 2: Монтиране на sdb1 зареждащ дял: mount /dev/sdb1 /mnt/boot копие uboot и ядро: cp u-boot.bin /mnt/boot/ cp uImage /mnt/boot/

След това копирайте rootfs както по-горе!

Което е правилното. Опитах две, но sddcard дори не се зарежда. Когато опитах метод 1, картата се стартира, докато не каже, че rootfs не е намерен в дяла. Извадих картата и я поставих и открих, че първият дебел 32 дял е някак си „унищожен“, тъй като пише „неразпределен“ на gparted.

Моля помогнете.


person user907810    schedule 30.01.2014    source източник


Отговори (3)


Трябва да маркирате първия дял като стартиращ. Проверете подробностите за първия си дял в gparted или помощната програма за дискове.

От дисковата помощна програма можете да маркирате дял за стартиращ. като изберете конкретен дял и отидете в опцията „още действия“ --> „редактиране на типа дял“.

person Pratik Agrawal    schedule 08.04.2014

по-долу е скрипт за флаш двоични файлове върху SD карта за моята платка Arndale OCTA. Можете да видите разположението на двоичните файлове на буутлоудъра:

BL1

dd iflag=dsync oflag=dsync if=arndale_octa.bl1.bin of=/dev/sde bs=512 seek=1

BL2

dd iflag=dsync oflag=dsync if=../arndale_octa.bl2.bin of=/dev/sde bs=512 seek=31

uboot

dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sde bs=512 seek=63

ядро и доверен софтуер, ....

Моля, обърнете внимание: 1) Таблицата на дяловете е на отместване на SDcard 0 (seek 0), тогава трябва да изпълните:fdisk /dev/sde и да създадете раздели, които не се припокриват с блокове, заети от ядрото или софтуера за доверие. 2) добавете опцията "dsync" в командата dd, за да гарантирате, че всички записани данни се записват незабавно в SD картата

person Houcheng    schedule 18.04.2014

В повечето случаи процесорът imx изисква буутлоудър с отместване 0x400. Така че каквото и да правите за u-boot е правилно, трябва да използвате командата dd за това.

sudo dd if=u-boot.bin of=/dev/sdb bs=512 seek=2

Докато разделяте sd картата, уверете се, че запазвате достатъчно място за u-boot изображение. Така че започнете първия си стартиращ дял на да кажем 1 MB отместване.

Можете просто да копирате вашите uImage и променливи на средата (uEnv.txt или boot.scr) чрез командата cp.

За rootfs също можете да следвате същите стъпки като ядрото.

person GeekyJ    schedule 26.10.2015