Debian GNU / Linux (Version v2019.2) Boot-Image für UltraZed / Ultra96 / Ultra96-V2

Einführung

Dieser Artikel enthält Boot Loader (U-Boot usw.), Linux-Kernel und Debian10 (Buster) -Stammdateisystem für UltraZed / Ultra96 / Ultra96-V2 unter der folgenden URL und erläutert deren Installation. Wenn Sie Probleme beim Erstellen des Boot Loader oder des Linux-Kernels haben, wenden Sie sich bitte an uns.

Überblick

Installation

herunterladen

Laden Sie es wie folgt von github herunter: Die aktuellste Version ist derzeit v2019.2.1. Da einige Bilddateien ziemlich groß sind, verwende ich Git LFS (Large File Storage). Sie müssen git-lfs in Ihrer Umgebung installiert haben.

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

Dateibeschreibung

SD-Kartenformat

  1. Erstellen Sie mit dem VFAT-Dateisystem ein Dateisystem für Partition 1 der SD-Karte.
  2. Erstellen Sie mit ext4 File System ein Dateisystem für Partition 2 der SD-Karte.

Informationen zum Formatieren der SD-Karte unter Linux finden Sie unter der folgenden URL.

Schreiben auf SD-Karte

0. SD-Kartenhalterung

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

1. Kopieren Sie die Boot-Partition

Für Ultra96

Kopieren Sie die Dateien unter Ziel / Ultra96 / boot / auf Partition 1 der SD-Karte (/ dev / sdc1 im folgenden Beispiel).

shell# cp target/Ultra96/boot/*                                           /mnt/usb1
Für Ultra96-V2

Kopieren Sie die Dateien unter Ziel / Ultra96-V2 / boot / auf Partition 1 der SD-Karte (/ dev / sdc1 im folgenden Beispiel).

shell# cp target/Ultra96-V2/boot/*                                        /mnt/usb1
Für UltraZed

Kopieren Sie die Dateien unter target / UltraZed-EG-IOCC / boot auf Partition 1 der SD-Karte (/ dev / sdc1 im folgenden Beispiel).

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

2. Generieren Sie eine RootFS-Partition

Extrahieren Sie den Inhalt von debian10-rootfs-vanilla.tgz auf Partition 2 der SD-Karte (/ dev / sdc2 im folgenden Beispiel). Es ist eine gute Idee, das Debian-Paket des Gerätetreibers vorab nach home / fpga des extrahierten Root-Dateisystems zu kopieren. Sie können es später über das Netzwerk kopieren.

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. Setzen Sie fstab, um die Boot-Partition sichtbar zu machen

Es ist praktisch, die Boot-Partition von der Linux-Seite aus immer sichtbar zu halten. In diesem Fall empfiehlt es sich, fstab so einzustellen, dass die Startpartition im Voraus bereitgestellt wird. Beachten Sie, dass fstab bereits so eingestellt ist, dass configfs bereitgestellt wird.

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

Nebenbei: Sie können so viel im Voraus in debian10-rootfs-vanilla.tgz schreiben, aber Sie fragen sich vielleicht, warum Sie sich die Mühe machen, es später festzulegen. Der Grund ist, dass debian10-rootfs-vanilla.tgz mit Ultra96 und UltraZed geteilt wird. Die Ultra96 SD-Card-Boot-Partition lautet `/ dev / mmcblk0p1```, während die UltraZed SD-Card-Boot-Partition` / dev / mmcblk1p1``` lautet. Darüber hinaus hat UltraZed auch / dev / mmcblk0p1, und wenn Sie es im Voraus in debian10-rootfs-vanilla.tgz schreiben, greift UltraZed fälschlicherweise auf ein anderes Gerät zu. Obwohl es problematisch ist, habe ich mich daher entschlossen, es später einzustellen.

4. Netzwerkeinstellungen

Der Ultra96 / Ultra96-V2 stellt über WLAN eine Verbindung zum Netzwerk her. Es kann sinnvoll sein, vorab eine Einstellungsdatei auf der Hostseite zu erstellen und in RootFS zu schreiben. Natürlich können Sie Ultra96 / Ultra96-V2 später starten und dort konfigurieren.

Hier lautet die SSID ssssssss, die Passphrase ppppppppp und der verschlüsselte Zugriffsschlüssel xxxx.

Geben Sie zunächst die SSID und die Passphrase in wpa_passphrase ein, um einen verschlüsselten Zugriffsschlüssel zu erstellen.

shell# wpa_passphrase ssssssss ppppppppp
network={
	ssid="ssssssss"
	#psk="ppppppppp"
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
4.1 Direkt beschrieben in /etc/network/interfaces.d/wlan0

Schreiben Sie die SSID und den verschlüsselten Zugriffsschlüssel direkt in die Netzwerkkonfigurationsdatei (/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 Beschrieben in /etc/wpa_supplicant/wpa_supplicant.conf

Schreiben Sie in die Netzwerkkonfigurationsdatei (/etc/network/interfaces.d/wlan0), dass wpa_supplicant.conf beim Booten gelesen werden soll, um Wifi wie folgt zu konfigurieren:

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



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

Schreiben Sie die SSID und den verschlüsselten Zugriffsschlüssel in die Wifi-Konfigurationsdatei (/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
}

Beachten Sie, dass Sie für Stealth-SSIDs einen Scan erzwingen müssen. Fügen Sie in diesem Fall `` `scan_ssid = 1``` zu /etc/wpa_supplicant/wpa_supplicant.conf hinzu.

/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
}

Wenn Sie eine Verbindung zu einer SSID ohne Passphrase herstellen, ist es anscheinend besser, `` `key_mgmt = NONE``` (NONE ist in Großbuchstaben) zu setzen.

/etc/wpa_supplicant/wpa_supplicant.conf


ctrl_interface=/run/wpa_supplicant
update_config=1

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

5. SD-Karte aushängen

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

Installation von Gerätetreiberpaketen

Starten Sie Ultra96 / Ultra96-V2 / UltraZed und melden Sie sich als root an

root'password is "admin".

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

Installieren Sie das Linux Image Package

debian10-rootfs-vanilla.tgz verfügt bereits über das Linux-Image-Paket v2019.2.1 (Linux-Image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64). deb) ist installiert. Daher sind die folgenden Arbeiten nicht erforderlich. Bitte beziehen Sie sich bei der Neuinstallation aus irgendeinem Grund darauf.

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) ...

Installieren Sie das Linux-Header-Paket

Installieren Sie linux-headers-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb mit 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 des fclkcfg-Gerätetreibers

Installieren Sie fclkcfg-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.3.0-1_arm64.deb mit 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 des udmabuf-Gerätetreibers

Installieren Sie udmabuf-4.19.0-xlnx-v2019.2-zynqmp-fpga_1.4.6-0_arm64.deb mit 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) ...

Ab v2019.2 ist auch ein Paket von u-dma-buf verfügbar, das ein anderer Name für udmabuf ist. Falls erforderlich, ist es eine gute Idee, dies ebenfalls zu installieren. Der Grund für die Umbenennung von udmabuf in u-dma-buf ist, dass Linux Kernel 5.0 ein weiteres Kernelmodul mit demselben Namen wie udmabuf hinzugefügt wurde. Daher ist der Name udmabuf in Linux Kernel 5.0 und höher nicht verfügbar. Also wird stattdessen u-dma-buf bereitgestellt.

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) ...

Upgrade von v2019.1

Änderungen von v2019.1

Ab v2019.1 wurden die folgenden Änderungen vorgenommen.

Daher können Sie ein Upgrade von v2019.1 auf v2019.2 durchführen, indem Sie die folgenden Schritte ausführen.

Upgrade-Verfahren

1. Debian10 (Buster) Upgrade

Verschiedene Anwendungen von Debian10 (Buster) wurden aktualisiert. Wenn Ihr Ultra96 / Ultra96-V2 / UltraZed mit Ihrem Netzwerk verbunden ist, können Sie mit dem Befehl apt von v2019.1 auf v2019.2 aktualisieren. Starten Sie Ultra96 / Ultra96-V2 / UltraZed, melden Sie sich als Root an und führen Sie apt update und apt upgrade aus.

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

Diese Methode aktualisiert das gesamte Paket. Seien Sie vorsichtig, wenn Sie ein Paket haben, das Sie nicht aktualisieren möchten.

2. Upgrade des Linux Image Package

https://github.com/ikwzm/ZynqMP-FPGA-Linux zu Linux-Image-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Es ist vorbereitet, also installieren Sie es bitte mit dpkg.

3. Upgrade des Linux-Header-Pakets

https://github.com/ikwzm/ZynqMP-FPGA-Linux zu Linux-Headern-4.19.0-xlnx-v2019.2-zynqmp-fpga_4.19.0-xlnx-v2019.2-zynqmp-fpga-2_arm64.deb Es ist vorbereitet, also installieren Sie es bitte mit dpkg.

4. Gerätetreiber-Upgrade

Nachdem die Linux-Kernel-Version verfügbar ist, muss der Gerätetreiber mit der neuen Linux-Kernel-Version kompatibel sein. udmabuf und fclkcfg haben ein Paket unter https://github.com/ikwzm/ZynqMP-FPGA-Linux. Installieren Sie es also mit dpkg.

5. Installieren Sie den Gerätebaum-Compiler

Da die in v2018.2 übernommene Gerätebaum-Compiler-Version von Debian 9 alt ist (keine Symbole unterstützt), von https://git.kernel.org/pub/scm/utils/dtc/dtc.git Ich habe v1.4.7 heruntergeladen und erstellt und installiert. In Debian10, das in v2019.1 übernommen wurde, ist die Version des Gerätebaum-Compilers v1.4.7 und unterstützt Symbole. Ich habe dies jedoch nicht bemerkt, als ich v2019.1 und genau wie v2018.2 von https://git.kernel.org/pub/scm/utils/dtc/dtc.git erstellt habe. Ich habe 4.7 heruntergeladen und erstellt und installiert. Auf dem Debian10-Root-Dateisystem in Version 2019.2 ist der von Debian10 bereitgestellte Gerätebaum-Compiler installiert. Beim Upgrade von v2019.1 wird empfohlen, / usr / local / bin / dtc zu entfernen und den Gerätebaum-Compiler mit dem Befehl apt zu installieren.

6. Boot Partition Upgrade

Bootloader, Linux-Kernel-Image, uEnv für Boot-Partition.Enthält txt. v2019 von github.2.Laden Sie 1 und Ziel herunter/[Ultra96|Ultra96-V2|UltraZed-EG-IOCC]/Kopieren Sie die Dateien unter Boot in die Boot-Partition. UEnv.Es wird auch txt überschreiben, also uEnv.Es ist eine gute Idee, ein Backup zu erstellen, wenn Sie wichtige Änderungen an txt vorgenommen haben.

Für 6.1 Ultra96

Kopieren Sie die Dateien unter Ziel / Ultra96 / boot / auf Partition 1 der SD-Karte (/ mnt / boot im folgenden Beispiel).

shell# cp target/Ultra96/boot/* /mnt/boot
6.2 Für Ultra96-V2

Kopieren Sie die Dateien unter Ziel / Ultra96-V2 / boot / auf Partition 1 der SD-Karte (/ mnt / boot im folgenden Beispiel).

shell# cp target/Ultra96-V2/boot/*  /mnt/boot
6.3 Für UltraZed

Kopieren Sie die Dateien unter target / UltraZed-EG-IOCC / boot auf Partition 1 der SD-Karte (/ mnt / boot im folgenden Beispiel).

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

Referenz

Ab Version 2019.2 wurde die Build-Umgebung von Boot Loader (U-Boot usw.) für jedes Ziel in separate Repositorys unterteilt. Bitte beziehen Sie sich auf die folgende URL.

Die aktuellste Version ist v2019.2.1. Wenn Sie jedoch eine frühere Version installieren möchten, lesen Sie bitte den folgenden Artikel.

Recommended Posts

Debian GNU / Linux (Version v2019.2) Boot-Image für UltraZed / Ultra96 / Ultra96-V2
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (LibMali) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (fbdev Edition) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übersicht)
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übersicht).
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Videotreiber) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Gnome Desktop) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übung)
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Installation)
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Mali-Treiber) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build) aus [Unfinished]
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Installation) [Unfinished]
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Vitis Edition) aus.