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

Материал из SRNS
Перейти к: навигация, поиск
(Запуск Linux с карты памяти)
Строка 12: Строка 12:
  
 
== Запуск Linux с карты памяти ==
 
== Запуск Linux с карты памяти ==
Готовые релизы Linux можно найти по данной [http://www.wiki.xilinx.com/Zynq+Releases ссылке]. Выберем релиз [http://www.wiki.xilinx.com/Zynq+2014.2+Release 2014.2], т.к. он основа на ядре 3.14, к которому применим preempt_rt  [https://www.kernel.org/pub/linux/kernel/projects/rt/ патч].
+
*Готовые релизы Linux можно найти по данной [http://www.wiki.xilinx.com/Zynq+Releases ссылке]. Выберем релиз [http://www.wiki.xilinx.com/Zynq+2014.2+Release 2014.2], т.к. он основа на ядре 3.14, к которому применим preempt_rt  [https://www.kernel.org/pub/linux/kernel/projects/rt/ патч].
 
+
*Распаковываем архив:
Подготавливаем карту памяти как в этой [[Blog:Ustinov/07.10.2013_Прошивка_AM3517 | статье]].  
+
<source lang="bash">
 
+
tar xvJf 2014.2-release.tar.xz
Из скачанного архива ''2014.2-release.tar.xz'' на карту памяти копируем следующие файлы:
+
</source>
 +
*Подготавливаем карту памяти как в этой [[Blog:Ustinov/07.10.2013_Прошивка_AM3517 | статье]].
 +
*Из скачанного архива ''2014.2-release.tar.xz'' на карту памяти копируем следующие файлы:
 
* boot.bin
 
* boot.bin
 
* uImage
 
* uImage
 
* devicetree.dtb
 
* devicetree.dtb
 
* uramdisk.image.gz
 
* uramdisk.image.gz
Карточку вставляем в ZYNQ, джамперы (SW16) выставляем в комбинацию '''00110''', что выглядит как:  
+
*Карточку вставляем в ZYNQ, джамперы (SW16) выставляем в комбинацию '''00110''', что выглядит как:  
  
 
[[Файл:Wiki 7.1 boot mode switch.jpg]]
 
[[Файл:Wiki 7.1 boot mode switch.jpg]]
  
На компе запускаем скрипт:
+
*На компе запускаем скрипт:
 
<source lang="bash">
 
<source lang="bash">
 
#!/usr/bin/kermit
 
#!/usr/bin/kermit
Строка 36: Строка 38:
 
</source>
 
</source>
  
Включаем плату и видим загрузку Linux. Для логина используем Username & Password: '''root'''.
+
*Включаем плату и видим загрузку Linux. Для логина используем Username & Password: '''root'''.
  
 
== Прошиваем Linux в QSPI Flash ==
 
== Прошиваем Linux в QSPI Flash ==
После загрузки Linux с карты памяти, примонтируем её:
+
*После загрузки Linux с карты памяти, примонтируем её:
 
<source lang="bash">mount /dev/mmcblk0p1 /mnt </source>
 
<source lang="bash">mount /dev/mmcblk0p1 /mnt </source>
Далее вводим команду:
+
*Далее вводим команду:
 
<source lang="bash">cat /proc/mtd</source>
 
<source lang="bash">cat /proc/mtd</source>
Видим следующее:
+
*Видим следующее:
  
 
[[Файл:ZYNQ mtd.png]]
 
[[Файл:ZYNQ mtd.png]]
Строка 55: Строка 57:
 
'''mtd3''' отведен для '''uramdisk.image.gz'''
 
'''mtd3''' отведен для '''uramdisk.image.gz'''
  
Соответственно, переходим в подмантированную папку ''/mnt'' и вводим следующие команды для записи:
+
*Соответственно, переходим в подмантированную папку ''/mnt'' и вводим следующие команды для записи:
 
<source lang="bash">flashcp -v boot.bin /dev/mtd0
 
<source lang="bash">flashcp -v boot.bin /dev/mtd0
 
flashcp -v uImage /dev/mtd1
 
flashcp -v uImage /dev/mtd1
 
flashcp -v devicetree.dtb /dev/mtd2
 
flashcp -v devicetree.dtb /dev/mtd2
 
flashcp -v uramdisk.image.gz /dev/mtd3</source>
 
flashcp -v uramdisk.image.gz /dev/mtd3</source>
Чтобы грузиться с QSPI Flash необходимо переключить джамперы (SW16) в комбинацию '''00010'''.
+
*Чтобы грузиться с QSPI Flash необходимо переключить джамперы (SW16) в комбинацию '''00010'''.
 +
 
 +
== Модификация FS ==
 +
* Качаем FS по-умолчанию: [http://www.wiki.xilinx.com/file/view/arm_ramdisk.image.gz/419243558/arm_ramdisk.image.gz RamDisk].
 +
* Распаковываем его:
 +
<source lang="bash">gunzip ramdisk.image.gz</source>
 +
* Монтируем распакованное содержимое:
 +
<source lang="bash">
 +
chmod u+rwx ramdisk.image
 +
mkdir tmp_mnt/
 +
sudo mount -o loop ramdisk.image tmp_mnt/
 +
cd tmp_mnt/
 +
</source>
 +
* Делаем нужные изменения.
 +
* Отмантироваемся и запаковываем:
 +
<source lang="bash">
 +
sudo umount tmp_mnt/
 +
gzip ramdisk.image
 +
</source>
 +
* Для загрузки в железку данный образ должен быть "обернут" в U-Boot:
 +
<source lang="bash">mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz</source>
 +
 
 +
 
 +
*Кроме того, можно создать изначально пустой образ и затем уже заполнять его файлами, как описано выше:
 +
<source lang="bash">
 +
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
 +
</source>
 +
 
 +
Если в заранее скачанном релизе имеем уже "завернутый" образ, то перед тем как его модифицировать, по вышеуказанному мануалу, его необходимо развернуть, пропустив первые 64 байта:
 +
<source lang="bash">
 +
dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.image.gz
 +
</source>
  
 
[[Категория:HOWTO]]
 
[[Категория:HOWTO]]
  
 
{{wl-publish: 2014-06-24 16:13:30 +0400 | Ustinov }}
 
{{wl-publish: 2014-06-24 16:13:30 +0400 | Ustinov }}

Версия 16:51, 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 по-умолчанию: 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

Если в заранее скачанном релизе имеем уже "завернутый" образ, то перед тем как его модифицировать, по вышеуказанному мануалу, его необходимо развернуть, пропустив первые 64 байта:

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

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

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

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

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

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