24.06.2014 Настройка и ресурсы Xilinx ZYNQ ZC702

Материал из SRNS
Перейти к: навигация, поиск
Строка 65: Строка 65:
  
 
== Модификация FS ==
 
== Модификация FS ==
 +
* Изменения FS скачанного выше релиза.
 +
Необходимо развернуть образ FS из обертки u-boot. Для этого следует пропустить первые 64 байта:
 +
<source lang="bash">
 +
dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.image.gz
 +
</source>
 +
Теперь разархивируем полученный архив в папку:
 +
<source lang="bash">
 +
mkdir ./tmp_mnt/
 +
gunzip -c ramdisk.image.gz | sudo sh -c 'cd ./tmp_mnt/ && cpio -i'
 +
cd ./tmp_mnt
 +
</source>
 +
Далее выполняем нужные изменения и снова запечатываем в архив:
 +
<source lang="bash">
 +
sh -c 'cd ./tmp_mnt/ && sudo find . | sudo cpio -H newc -o' | gzip -9 > new_initramfs.cpio.gz
 +
</source>
 +
Теперь необходимо образ "завернуть" в u-boot:
 +
<source lang="bash">mkimage -A arm -T ramdisk -C gzip -d new_initramfs.cpio.gz uramdisk.image.gz</source>
 +
Образ готов для загрузки как с SD, так и с QSPI Flash.
 +
 +
*Модификация стандартной FS
 
Качаем FS по-умолчанию: [http://www.wiki.xilinx.com/file/view/arm_ramdisk.image.gz/419243558/arm_ramdisk.image.gz RamDisk].
 
Качаем FS по-умолчанию: [http://www.wiki.xilinx.com/file/view/arm_ramdisk.image.gz/419243558/arm_ramdisk.image.gz RamDisk].
 
Распаковываем его:
 
Распаковываем его:
Строка 76: Строка 96:
 
</source>
 
</source>
 
Делаем нужные изменения.
 
Делаем нужные изменения.
Отмантироваемся и запаковываем:
+
Размонтируем и запаковываем:
 
<source lang="bash">
 
<source lang="bash">
 
sudo umount tmp_mnt/
 
sudo umount tmp_mnt/
 
gzip ramdisk.image
 
gzip ramdisk.image
 
</source>
 
</source>
Для загрузки в железку данный образ должен быть "обернут" в U-Boot:
+
Соответственно, для загрузки в железку данный образ должен быть "обернут" в U-Boot:
 
<source lang="bash">mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz</source>
 
<source lang="bash">mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz</source>
 
  
 
Кроме того, можно создать изначально пустой образ и затем уже заполнять его файлами, как описано выше:
 
Кроме того, можно создать изначально пустой образ и затем уже заполнять его файлами, как описано выше:
Строка 91: Строка 110:
 
tune2fs ramdisk.image -i 0
 
tune2fs ramdisk.image -i 0
 
chmod a+rwx ramdisk.image
 
chmod a+rwx ramdisk.image
</source>
 
 
Если в заранее скачанном релизе имеем уже "завернутый" образ, то перед тем как его модифицировать, по вышеуказанному мануалу, его необходимо развернуть, пропустив первые 64 байта:
 
<source lang="bash">
 
dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.image.gz
 
 
</source>
 
</source>
  

Версия 20:27, 26 июня 2014

ZYNQ ZC702.jpg

Содержание

About

Как всегда для сохранения ценной информации, используем SRNS.ru. Полезная информация для ZYNQ не станет исключением.

Запуск Linux с карты памяти

Готовые релизы Linux можно найти по данной ссылке. Выберем релиз 2014.2, т.к. он основа на ядре 3.14, к которому применим preempt_rt патч. Распаковываем архив:

tar xvJf 2014.2-release.tar.xz

Подготавливаем карту памяти как в этой статье. Из скачанного архива 2014.2-release.tar.xz на карту памяти копируем следующие файлы:

  • boot.bin
  • uImage
  • devicetree.dtb
  • uramdisk.image.gz

Карточку вставляем в ZYNQ, джамперы (SW16) выставляем в комбинацию 00110, что выглядит как:

Wiki 7.1 boot mode switch.jpg

На компе запускаем скрипт:

#!/usr/bin/kermit
set line /dev/ttyUSB0
set FLOW none
set speed 115200
set serial 8n1
SET CARRIER-WATCH Off
connect

Включаем плату и видим загрузку Linux. Для логина используем Username & Password: root.

Прошиваем Linux в QSPI Flash

После загрузки Linux с карты памяти, примонтируем её:

mount /dev/mmcblk0p1 /mnt

Далее вводим команду:

cat /proc/mtd

Видим следующее:

ZYNQ mtd.png

mtd0 отведен для boot.bin

mtd1 отведен для uImage

mtd2 отведен для devicetree.dtb

mtd3 отведен для uramdisk.image.gz

Соответственно, переходим в подмантированную папку /mnt и вводим следующие команды для записи:

flashcp -v boot.bin /dev/mtd0
flashcp -v uImage /dev/mtd1
flashcp -v devicetree.dtb /dev/mtd2
flashcp -v uramdisk.image.gz /dev/mtd3
  • Чтобы грузиться с QSPI Flash необходимо переключить джамперы (SW16) в комбинацию 00010.

Модификация FS

  • Изменения FS скачанного выше релиза.

Необходимо развернуть образ FS из обертки u-boot. Для этого следует пропустить первые 64 байта:

dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.image.gz

Теперь разархивируем полученный архив в папку:

mkdir ./tmp_mnt/
gunzip -c ramdisk.image.gz | sudo sh -c 'cd ./tmp_mnt/ && cpio -i'
cd ./tmp_mnt

Далее выполняем нужные изменения и снова запечатываем в архив:

sh -c 'cd ./tmp_mnt/ && sudo find . | sudo cpio -H newc -o' | gzip -9 > new_initramfs.cpio.gz

Теперь необходимо образ "завернуть" в u-boot:

mkimage -A arm -T ramdisk -C gzip -d new_initramfs.cpio.gz uramdisk.image.gz

Образ готов для загрузки как с SD, так и с QSPI Flash.

  • Модификация стандартной FS

Качаем FS по-умолчанию: RamDisk. Распаковываем его:

gunzip ramdisk.image.gz

Монтируем распакованное содержимое:

chmod u+rwx ramdisk.image
mkdir tmp_mnt/
sudo mount -o loop ramdisk.image tmp_mnt/
cd tmp_mnt/

Делаем нужные изменения. Размонтируем и запаковываем:

sudo umount tmp_mnt/
gzip ramdisk.image

Соответственно, для загрузки в железку данный образ должен быть "обернут" в U-Boot:

mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz

Кроме того, можно создать изначально пустой образ и затем уже заполнять его файлами, как описано выше:

dd if=/dev/zero of=ramdisk.image bs=1024 count=8192
mke2fs -F ramdisk.image -L "ramdisk" -b 1024 -m 0
tune2fs ramdisk.image -i 0
chmod a+rwx ramdisk.image

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты