Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2

introduction

Cet article fournit Boot Loader (U-Boot, etc.), Linux Kernel et Debian10 (buster) Root File System pour UltraZed / Ultra96 / Ultra96-V2 à l'URL suivante, et explique comment les installer. Si vous ne parvenez pas à créer Boot Loader ou Linux Kernel, veuillez.

Aperçu

Installation

Télécharger

Téléchargez-le depuis github comme suit: La dernière version actuellement est la v2019.2.1. Étant donné que certains fichiers image sont assez volumineux, j'utilise Git LFS (Large File Storage). Vous devez avoir git-lfs installé dans votre environnement.

shell$ git clone -b v2019.2.1 git://github.com/ikwzm/ZynqMP-FPGA-Linux
shell$ cd ZynqMP-FPGA-Linux
shell$ git lfs pull

Description du fichier

Format de la carte SD

  1. Créez un système de fichiers pour la partition 1 de la carte SD avec le système de fichiers VFAT.
  2. Créez un système de fichiers pour la partition 2 de la carte SD avec le système de fichiers ext4.

Pour plus d'informations sur le formatage de la carte SD sous Linux, reportez-vous à l'URL suivante.

Écriture sur la carte SD

0. Montage sur carte SD

shell# mount /dev/sdc1 /mnt/usb1
shell# mount /dev/sdc2 /mnt/usb2

1. Copier la partition de démarrage

Pour Ultra96

Copiez les fichiers sous target / Ultra96 / boot / sur la partition 1 de la carte SD (/ dev / sdc1 dans l'exemple ci-dessous).

shell# cp target/Ultra96/boot/*                                           /mnt/usb1
Pour Ultra96-V2

Copiez les fichiers sous target / Ultra96-V2 / boot / sur la partition 1 de la carte SD (/ dev / sdc1 dans l'exemple ci-dessous).

shell# cp target/Ultra96-V2/boot/*                                        /mnt/usb1
Pour UltraZed

Copiez les fichiers sous target / UltraZed-EG-IOCC / boot sur la partition 1 de la carte SD (/ dev / sdc1 dans l'exemple ci-dessous).

shell# cp target/UltraZed-EG-IOCC/boot/*                                  /mnt/usb1

2. Générer la partition RootFS

Extrayez le contenu de debian10-rootfs-vanilla.tgz sur la partition 2 de la carte SD (/ dev / sdc2 dans l'exemple ci-dessous). C'est une bonne idée de copier à l'avance le paquet Debian du pilote de périphérique vers home / fpga du système de fichiers racine extrait. Vous pourrez le copier ultérieurement via le réseau.

shell# tar xfz debian10-rootfs-vanilla.tgz -C                             /mnt/usb2
shell# mkdir                                                              /mnt/usb2/home/fpga/debian
shell# cp linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb   /mnt/usb2/home/fpga/debian
shell# cp linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb /mnt/usb2/home/fpga/debian
shell# cp fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb       /mnt/usb2/home/fpga/debian
shell# cp udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb       /mnt/usb2/home/fpga/debian
shell# cp u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb     /mnt/usb2/home/fpga/debian

3. Réglez fstab pour rendre la partition de démarrage visible

Il est pratique de garder la partition de démarrage visible du côté Linux à tout moment. Dans ce cas, il est judicieux de configurer fstab pour monter la partition de démarrage à l'avance. Notez que fstab est déjà configuré pour monter les configfs.

shell# mkdir /mnt/usb2/mnt/boot
shell# cat <<EOT >> /mnt/usb2/etc/fstab
/dev/mmcblk0p1	/mnt/boot	auto	defaults	0	0
EOT

A part: vous pouvez écrire cela dans debian10-rootfs-vanilla.tgz à l'avance, mais vous vous demandez peut-être pourquoi vous vous souciez de le définir plus tard. La raison en est que debian10-rootfs-vanilla.tgz est partagé avec Ultra96 et UltraZed. La partition de démarrage Ultra96 SD-Card est / dev / mmcblk0p1 '', tandis que la partition de démarrage UltraZed SD-Card est / dev / mmcblk1p1 ''. De plus, UltraZed a aussi / dev / mmcblk0p1, et si vous l'écrivez dans debian10-rootfs-vanilla.tgz à l'avance, UltraZed accédera par erreur à un autre périphérique. Par conséquent, bien que ce soit gênant, j'ai décidé de le régler plus tard.

4. paramètres réseau

L'Ultra96 / Ultra96-V2 se connecte au réseau via WiFi. Il peut être bon de créer à l'avance un fichier de paramètres côté hôte et de l'écrire dans RootFS. Bien sûr, vous pouvez démarrer Ultra96 / Ultra96-V2 plus tard et le configurer ici.

Ici, le SSID est ssssssss, la phrase de passe est ppppppppp et la clé d'accès chiffrée est xxxx.

Tout d'abord, entrez le SSID et la phrase de passe dans wpa_passphrase pour créer une clé d'accès chiffrée.

shell# wpa_passphrase ssssssss ppppppppp
network={
	ssid="ssssssss"
	#psk="ppppppppp"
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
4.1 Directement décrit dans /etc/network/interfaces.d/wlan0

Écrivez le SSID et la clé d'accès chiffrée directement dans le fichier de configuration réseau (/etc/network/interfaces.d/wlan0).

/mnt/usb2/etc/network/interfaces.d/wlan0



auto  wlan0
iface wlan0 inet dhcp
	wpa-ssid ssssssss
	wpa-psk  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4.2 Décrit dans /etc/wpa_supplicant/wpa_supplicant.conf

Dans le fichier de configuration réseau (/etc/network/interfaces.d/wlan0), écrivez que wpa_supplicant.conf doit être lu au moment du démarrage pour configurer le Wifi comme suit:

/mnt/usb2/etc/network/interfaces.d/wlan0



auto  wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Décrivez le SSID et la clé d'accès chiffrée dans le fichier de configuration Wifi (/etc/wpa_supplicant/wpa_supplicant.conf).

/etc/wpa_supplicant/wpa_supplicant.conf


ctrl_interface=/run/wpa_supplicant
update_config=1

network={
	ssid="ssssssss"
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

Pour les SSID furtifs, vous devez forcer une analyse. Dans ce cas, ajoutez scan_ssid = 1``` à /etc/wpa_supplicant/wpa_supplicant.conf.

/etc/wpa_supplicant/wpa_supplicant.conf


ctrl_interface=/run/wpa_supplicant
update_config=1

network={
	ssid="ssssssss"
	scan_ssid=1
	key_mgmt=WPA-PSK
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

Lors de la connexion à un SSID sans mot de passe, il semble préférable de définir key_mgmt = NONE``` (NONE est en majuscule).

/etc/wpa_supplicant/wpa_supplicant.conf


ctrl_interface=/run/wpa_supplicant
update_config=1

network={
	ssid="ssssssss"
	scan_ssid=1
	key_mgmt=NONE
}

5. Démontez la carte SD

shell# umount /mnt/usb1
shell# umount /mnt/usb2

Installation de packages de pilotes de périphériques

Démarrez Ultra96 / Ultra96-V2 / UltraZed et connectez-vous en tant que root

root'password is "admin".

debian-fpga login: root
Password:
root@debian-fpga:~#

Installer le package d'images Linux

debian10-rootfs-vanilla.tgz a déjà le package d'images Linux v2019.2.1 (linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64. deb) est installé. Par conséquent, le travail suivant n'est pas nécessaire, mais veuillez vous y référer lors de la réinstallation pour une raison quelconque.

root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb
(Reading database ... 26393 files and directories currently installed.)
Preparing to unpack linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb ...
Unpacking linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) over (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
Setting up linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...

Installer le package d'en-tête Linux

Installez linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb en utilisant dpkg.

root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb
Selecting previously unselected package linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 26393 files and directories currently installed.)
Preparing to unpack linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb ...
Unpacking linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
Setting up linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga (4.19.0-xlnx-v2019.2-zynqmp-fpga-2) ...
make: Entering directory '/usr/src/linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga'
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --syncconfig Kconfig
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/bin2c
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
make: Leaving directory '/usr/src/linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga'

Installation du pilote de périphérique fclkcfg

Installez fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb à l'aide de dpkg.

root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb
Selecting previously unselected package fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 45373 files and directories currently installed.)
Preparing to unpack fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb ...
Unpacking fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.3.0-1) ...
Setting up fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.3.0-1) ...

installation du pilote de périphérique udmabuf

Installez udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb à l'aide de dpkg.

root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb
Selecting previously unselected package udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 45379 files and directories currently installed.)
Preparing to unpack udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb ...
Unpacking udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.4.6-0) ...
Setting up udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga (1.4.6-0) ...

À partir de la v2019.2, un package de u-dma-buf, qui est un autre nom pour udmabuf, est également disponible. Si nécessaire, c'est une bonne idée de l'installer également. La raison du changement de nom de udmabuf en u-dma-buf est qu'un autre module du noyau portant le même nom que udmabuf a été ajouté au noyau Linux 5.0. Par conséquent, le nom udmabuf n'est pas disponible dans Linux Kernel 5.0 et versions ultérieures. Donc u-dma-buf est fourni à la place.

root@debian-fpga:~# cd /home/fpga/debian
root@debian-fpga:/home/fpga/debian# dpkg -i u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb
Selecting previously unselected package u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga.
(Reading database ... 45384 files and directories currently installed.)
Preparing to unpack u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga_2.1.3-0_arm64.deb ...
Unpacking u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga (2.1.3-0) ...
Setting up u-dma-buf-4.19.0-xlnx-v2019.2-zynqmp-fpga (2.1.3-0) ...

Mettre à niveau à partir de la v2019.1

Changements depuis la version v2019.1

À partir de la version v2019.1, les modifications suivantes ont été apportées.

Par conséquent, vous pouvez passer de la v2019.1 à la v2019.2 en suivant les étapes ci-dessous.

Procédure de mise à niveau

1. Mettez à jour Debian10 (buster)

Diverses applications de Debian10 (buster) ont été mises à jour. Si votre Ultra96 / Ultra96-V2 / UltraZed est connecté à votre réseau, vous pouvez passer de la v2019.1 à la v2019.2 avec la commande apt. Démarrez Ultra96 / Ultra96-V2 / UltraZed, connectez-vous en tant que root et exécutez apt update et apt upgrade.

debian-fpga login: root
Password:
root@debian-fpga:~# apt update
   :
   (Omission)
   :
root@debian-fpga:~# apt upgrade
   :
   (Omission)
   :

Cette méthode mettra à niveau l'ensemble du package. Soyez prudent si vous avez un package que vous ne souhaitez pas mettre à niveau.

2. Mise à niveau du package d'images Linux

https://github.com/ikwzm/ZynqMP-FPGA-Linux vers linux-image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Il est prêt, veuillez donc l'installer avec dpkg.

3. Mise à niveau du package d'en-tête Linux

https://github.com/ikwzm/ZynqMP-FPGA-Linux vers linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Il est prêt, veuillez donc l'installer avec dpkg.

4. Mise à niveau du pilote de périphérique

Maintenant que la version du noyau Linux est en place, le pilote de périphérique doit être compatible avec la nouvelle version du noyau Linux. udmabuf et fclkcfg ont un package sur https://github.com/ikwzm/ZynqMP-FPGA-Linux, alors installez-le avec dpkg.

5. Installez le compilateur d'arborescence de périphériques

Étant donné que la version de compilation de l'arborescence de périphériques de Debian 9 adoptée dans la v2018.2 est ancienne (elle ne supportait pas les symboles), à partir de https://git.kernel.org/pub/scm/utils/dtc/dtc.git J'ai téléchargé, construit et installé la v1.4.7. Dans Debian10 adopté dans la v2019.1, la version de device-tree-compiler est la v1.4.7 et prend en charge les symboles. Cependant, je n'ai pas remarqué cela lorsque je faisais la v2019.1 et tout comme la v2018.2 de https://git.kernel.org/pub/scm/utils/dtc/dtc.git. J'ai téléchargé 4.7 et construit et installé. Le système de fichiers racine Debian10 de la version v2019.2 a le compilateur d'arborescence de périphériques fourni par Debian10 installé. Lors de la mise à niveau à partir de la v2019.1, il est recommandé de supprimer / usr / local / bin / dtc et d'installer device-tree-compiler avec la commande apt.

6. Mise à niveau de la partition de démarrage

Boot Loader, Linux Kernel Image, uEnv pour la partition de démarrage.Contient du txt. v2019 de github.2.Télécharger 1 et cibler/[Ultra96|Ultra96-V2|UltraZed-EG-IOCC]/Copiez les fichiers sous boot sur la partition de démarrage. Cependant, uEnv.Il écrasera également txt, donc uEnv.C'est une bonne idée de faire une sauvegarde si vous avez apporté des modifications importantes à txt.

Pour 6.1 Ultra96

Copiez les fichiers sous target / Ultra96 / boot / sur la partition 1 de la carte SD (/ mnt / boot dans l'exemple ci-dessous).

shell# cp target/Ultra96/boot/* /mnt/boot
6.2 Pour Ultra96-V2

Copiez les fichiers sous target / Ultra96-V2 / boot / sur la partition 1 de la carte SD (/ mnt / boot dans l'exemple ci-dessous).

shell# cp target/Ultra96-V2/boot/*  /mnt/boot
6.3 Pour UltraZed

Copiez les fichiers sous target / UltraZed-EG-IOCC / boot sur la partition 1 de la carte SD (/ mnt / boot dans l'exemple ci-dessous).

shell# cp target/UltraZed-EG-IOCC/boot/* /mnt/boot

référence

Depuis la version v2019.2, l'environnement de construction de Boot Loader (U-Boot, etc.) a été divisé en référentiels distincts pour chaque cible. Veuillez vous référer à l'URL suivante.

La dernière version pour le moment est v2019.2.1, mais veuillez vous référer aux articles suivants lors de l'installation de versions antérieures.

Recommended Posts

Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (LibMali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build) [Unfinished]
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation) [Inachevé]
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis)