24.06.2014 Настройка и ресурсы Xilinx ZYNQ ZC702
Материал из SRNS
Ustinov (обсуждение | вклад) (→Запуск Linux с карты памяти) |
Ustinov (обсуждение | вклад) |
||
Строка 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
|
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, что выглядит как:
- На компе запускаем скрипт:
#!/usr/bin/kermit
set line /dev/ttyUSB0
set FLOW none
set speed 115200
set serial 8n1
SET CARRIER-WATCH Off
connect
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
- Видим следующее:
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
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/
mkdir tmp_mnt/
sudo mount -o loop ramdisk.image tmp_mnt/
cd tmp_mnt/
- Делаем нужные изменения.
- Отмантироваемся и запаковываем:
sudo umount tmp_mnt/
gzip ramdisk.image
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
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
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.