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

Материал из SRNS
Перейти к: навигация, поиск
(Запуск Linux с карты памяти)
(Запуск Linux с карты памяти)
Строка 26: Строка 26:
  
  
  |[[Файл:Wiki 7.1 boot mode switch.jpg|SD boot mode]]  [[Файл:Таблица режимов переключателя sw16.jpg|750px|sw16 modes]]
+
  |[[Файл:Wiki 7.1 boot mode switch.jpg|250px|SD boot mode]]  [[Файл:Таблица режимов переключателя sw16.jpg|660px|sw16 modes]]
  
  

Версия 12:59, 24 июля 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, что выглядит как:


|SD boot mode
Ошибка создания миниатюры: convert: unable to open image `/app/images/c/c7/___sw16.jpg': No such file or directory @ error/blob.c/OpenBlob/2641.
convert: no images defined `/tmp/transform_48348e0466cb-1.jpg' @ error/convert.c/ConvertImageCommand/3044.


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

#!/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

Установка PetaLinux SDK

Заходим тык. Качаем PetaLinux 2014.2 Installation archive for Zynq and MicroBlaze для релиза 2014.2.

Переходим в папку, куда закачали, там выполняем:

./petalinux-v2014.2-final-installer.run <путь установки>

После установки запускаем скрипт:

source <путь, куда устанавливали>/settings.sh

Проверяем, сработал ли скрипт:

echo $PETALINUX

Выключаем отправку статистики на сервера Xilinx:

petalinux-util --webtalk off

Беспарольный доступ

Настройки, аналогичны этому примеру, за исключением некоторых но. Dropbear при старте платы всегда генерирует новые ключи, потому как грузится Linux из RAM. Соответвенно, забираем их из /etc/dropbear/ себе на комп. По вышеописанной инструкции модификации FS вносим эти файлы в /etc/dropbear/ и создаем в /home/root/.ssh файл authorized_keys. В него вносим содержимое нашего открытого ключа.

Устанавливаем все права как: Обратите внимание, что права устанавливаются именно для подмонтированной файловой системы, а не для файлов, используемых нашим компом!

chmod 700 ./home/root
chmod 700 ./home/root/.ssh
chmod 600 ./home/root/.ssh/authorized_keys

Собираем FS и грузимся со всеми нашими модификациями.

Компиляция исходников

Необходимо установить ISE, есть на сервере. Далее по окончании установки и каждый раз при открытии новой консоли необходимо устанавливать параметры среды $PATH, запуская скрипт:

source <путь установки ISE>/14.7/ISE_DC/settings64.sh

После этого уже можно стандартно использовать компилятор. Для ZYNQ zc702 он называется arm-xilinx-linux-gnueabi-gcc, ну или arm-xilinx-linux-gnueabi-g++.


Ссылка на гайды и вики

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

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

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

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

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