Skip to content

Quartz64 - Peter Geis Entwicklungsumgebung

Images
  • Ich hatte das in Vergangenheit als Image bezeichnet, ich möchte das mal ändern 😉 Ohne da Hand anzulegen läuft da nämlich rein gar nichts.

    Wenn man von Peter's Github die Daten (artifacts) herunterlädt bekommt man folgendes. Die Daten bekommt man, wenn man auf Download/merge-job klickt.

    dd3fd5a9-8efe-4f36-b710-8d2ddfa5d4d6-image.png

    Das rk3566-quartz64-a.dtb.img.xz auf die SD-Karte bügeln. Das schreibt das wichtigste auf die SD-Karte incl. Partitionen. Vorher entpacken! Nach erfolgreichem Schreiben, sieht das so aus.

    Festplatte /dev/sde: 59,49 GiB, 63864569856 Bytes, 124735488 Sektoren
    Festplattenmodell: MassStorageClass
    Einheiten: Sektoren von 1 * 512 = 512 Bytes
    Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
    E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
    Festplattenbezeichnungstyp: gpt
    Festplattenbezeichner: 9137134B-3A62-49EA-BF71-583007F40962
    
    Gerät       Anfang    Ende Sektoren Größe Typ
    /dev/sde1       64   16383    16320    8M Linux-Dateisystem
    /dev/sde2    16384   32767    16384    8M Linux-Dateisystem
    /dev/sde3    32768   65535    32768   16M Linux-Dateisystem
    /dev/sde4    65536  131071    65536   32M Linux-Dateisystem
    /dev/sde5   131072  524287   393216  192M EFI-System
    /dev/sde6   524288 1572863  1048576  512M Linux-Dateisystem
    /dev/sde7  1572864 2095103   522240  255M Linux-Dateisystem
    

    Problem Nr. 1

    Partition Nr. 7 ist zu klein. Diese Partition müssen wir mal eben vergrößern.

    apt install cloud-guest-utils
    growpart -N /dev/sde 7 ##dry-rum
    growpart /dev/sde 7
    resize2fs /dev/sde7
    fdisk -l
    

    So sieht das aus

    root@frank-MS-7C37:/# growpart /dev/sde 7
    CHANGED: partition=7 start=1572864 old: size=522240 end=2095104 new: size=123162591 end=124735455
    root@frank-MS-7C37:/# resize2fs /dev/sde7
    resize2fs 1.45.5 (07-Jan-2020)
    Die Größe des Dateisystems auf /dev/sde7 wird auf 15395323 (4k) Blöcke geändert.
    Das Dateisystem auf /dev/sde7 is nun 15395323 (4k) Blöcke lang.   
    

    Danach ist die Partition ausreichend groß.

    Festplatte /dev/sde: 59,49 GiB, 63864569856 Bytes, 124735488 Sektoren
    Festplattenmodell: MassStorageClass
    Einheiten: Sektoren von 1 * 512 = 512 Bytes
    Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
    E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
    Festplattenbezeichnungstyp: gpt
    Festplattenbezeichner: 9137134B-3A62-49EA-BF71-583007F40962
    
    Gerät       Anfang      Ende  Sektoren Größe Typ
    /dev/sde1       64     16383     16320    8M Linux-Dateisystem
    /dev/sde2    16384     32767     16384    8M Linux-Dateisystem
    /dev/sde3    32768     65535     32768   16M Linux-Dateisystem
    /dev/sde4    65536    131071     65536   32M Linux-Dateisystem
    /dev/sde5   131072    524287    393216  192M EFI-System
    /dev/sde6   524288   1572863   1048576  512M Linux-Dateisystem
    /dev/sde7  1572864 124735454 123162591 58,7G Linux-Dateisystem
    

    Problem No.2

    Peter hat die extlinux.conf ein wenig geändert, vermutlich aus Sicherheitsgründen, weil seine Umgebung mittlerweile für verschiedene SOCs ausgebaut wurde. Das falsche DTB laden, kommt da nicht so gut.

    default l0
    menu title Quartz64 Installer
    prompt 0
    timeout 50
    
    label l0
    menu label Buildroot-recovery
    linux /vmlinuz
    initrd /rootfs.cpio.lz4
    fdt /dtbs/rockchip/replaceme.dtb
    append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8
    
    label l1
    menu label Debian-Installer
    linux /vmlinuz
    initrd /initrd.gz
    fdt /dtbs/rockchip/replaceme.dtb
    append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8
    
    label l6
    menu label Boot Root SDMMC
    linux /vmlinuz
    fdt /dtbs/rockchip/replaceme.dtb
    append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/mmcblk0p7 rootwait
    
    label l9
    menu label Boot Root eMMC
    linux /vmlinuz
    fdt /dtbs/rockchip/replaceme.dtb
    append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/mmcblk1p7 rootwait
    

    Das fdt /dtbs/rockchip/replaceme.dtb bitte mit fdt /dtbs/rockchip/rk3566-quartz64-a.dtb ersetzen!

    Danach können wir die SD-Karte in den Quartz64 einsetzen und den Q starten. Zur Installation nehmen wir den Menüpunkt 2, damit wird ein Debian installiert. Bei Festplattenpartition wählen wir manuell aus und setzen die Partition Nr. 7 als Root Partition! Nach erfolgreicher Installation neustarten und Menüpunkt Nr. 3 auswählen. Boot from SD-Karte.

    Meine Testinstallation KDE Plasma startet danach einwandfrei.

    • PCI-e funtioniert
  • FrankMF FrankM hat dieses Thema am angepinnt
  • Ein paar Screenshots der Installation

    Die manuelle Installation der SD-Karte

    Bildschirmfoto vom 2021-11-27 13-12-28.png

    So muss die Root-Partition (Partition Nr. 7) aussehen!

    Bildschirmfoto vom 2021-11-27 13-15-08.png

    Hier sieht man, das der PCIe-Port funktioniert.

    Bildschirmfoto vom 2021-11-27 13-05-49.png

    An der Stelle wo man die Software auswählt, habe ich einen KDE Plasma Desktop ausgewählt. Das ist auch der Desktop, den ich für die Tests der Manjaro Installation benutze.

  • Das Ergebnis

    Screenshot_20211128_090851.png

    Peters Image benutzt ein Debian Buster 10

    root@quartz64:~# lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 10 (buster)
    Release:	10
    Codename:	buster
    

    Kernel

    root@quartz64:~# uname -a
    Linux quartz64 5.16.0-rc2 #1 SMP PREEMPT Sat Nov 27 03:43:14 UTC 2021 aarch64 GNU/Linux
    

    Gut an diesem Image vom Peter ist der funktionierende PCIe Port 🙂 Nicht so gut ist das Image, wenn man längerfristig damit arbeiten möchte. Der Aufbau ist dafür nicht wirklich gut geeignet. Wenn man das möchte, dann benutzt man lieber das Manjaro Image. Das wird gepflegt und man bekommt alle Änderungen und Patches auch geliefert.

    Ich hoffe, das die PCIe Patches auch bald im Manjaro Image ankommen, doch dafür müssen diese Upstream sein weil das Manjaro diesen Kernel nutzt (linux-rc). Und wie ich heute Morgen gelesen habe, es besteht Hoffnung für einen funktionierenden USB3-Port 🤗

  • FrankMF FrankM hat dieses Thema am abgepinnt

  • 0 Stimmen
    3 Beiträge
    106 Aufrufe
    FrankMF

    Da gab es doch gestern noch einen bösen Fehler, als ich vom Kernel Linux 5.17.0-2 auf Linux 5.17.0-3 aktualisiert habe, war das System danach kaputt. Hmm, ich habe dann versucht das zu untersuchen und war zu der Erkenntnis gekommen, das das Boot Verzeichnis nicht korrekt gemountet war. Konnte es aber nicht selber lösen 😞

    Dan hat das dann heute erledigt, wenn man jetzt das Image installiert, dann ist auch das Boot Verzeichnis korrekt gemountet.

    [root@frank-pc ~]# df -h Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf dev 1,7G 0 1,7G 0% /dev run 1,9G 1,2M 1,9G 1% /run /dev/sda1 458G 4,5G 430G 2% / tmpfs 1,9G 0 1,9G 0% /dev/shm tmpfs 1,9G 9,6M 1,9G 1% /tmp /dev/mmcblk0p1 458M 41M 417M 9% /boot tmpfs 374M 44K 374M 1% /run/user/1000 /dev/mmcblk0p2 59G 3,7G 52G 7% /run/media/frank/ROOT_MNJRO

    Dann sollte das auch klappen, wenn man wie ich aktuell das Root Verzeichnis auf die SSD am USB3 Port gelegt hat.

  • 0 Stimmen
    2 Beiträge
    96 Aufrufe
    FrankMF
    Was geht? Funktion Status Bemerkung cpufreq ok *3 UART ja *5 LAN hat Fehler *1 USB3 ja ca. 210MB/s *2 PCIe ja ca. 296 MB/s, ist mit einer Lane angeschlossen *4 HDMI nein LAN *1 root@debian:~# iperf3 -c 192.168.3.213 Connecting to host 192.168.3.213, port 5201 [ 5] local 192.168.3.10 port 39124 connected to 192.168.3.213 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 434 KBytes 3.55 Mbits/sec 61 2.83 KBytes [ 5] 1.00-2.00 sec 475 KBytes 3.89 Mbits/sec 44 2.83 KBytes [ 5] 2.00-3.00 sec 396 KBytes 3.24 Mbits/sec 43 2.83 KBytes [ 5] 3.00-4.00 sec 318 KBytes 2.61 Mbits/sec 40 2.83 KBytes [ 5] 4.00-5.00 sec 315 KBytes 2.58 Mbits/sec 31 2.83 KBytes [ 5] 5.00-6.00 sec 396 KBytes 3.24 Mbits/sec 46 2.83 KBytes [ 5] 6.00-7.00 sec 396 KBytes 3.24 Mbits/sec 43 2.83 KBytes [ 5] 7.00-8.00 sec 396 KBytes 3.24 Mbits/sec 43 1.41 KBytes [ 5] 8.00-9.00 sec 396 KBytes 3.24 Mbits/sec 47 2.83 KBytes [ 5] 9.00-10.00 sec 317 KBytes 2.59 Mbits/sec 39 2.83 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 3.75 MBytes 3.14 Mbits/sec 437 sender [ 5] 0.00-10.00 sec 3.67 MBytes 3.08 Mbits/sec receiver iperf Done. root@debian:~# iperf3 -R -c 192.168.3.213 Connecting to host 192.168.3.213, port 5201 Reverse mode, remote host 192.168.3.213 is sending [ 5] local 192.168.3.10 port 39130 connected to 192.168.3.213 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 112 MBytes 941 Mbits/sec [ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec [ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec [ 5] 3.00-4.00 sec 112 MBytes 942 Mbits/sec [ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec [ 5] 5.00-6.00 sec 112 MBytes 942 Mbits/sec [ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec [ 5] 7.00-8.00 sec 112 MBytes 942 Mbits/sec [ 5] 8.00-9.00 sec 112 MBytes 942 Mbits/sec [ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 370 sender [ 5] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec receiver iperf Done. USB3 *2 root@debian:~# lsusb Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Unifying Receiver Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 500118192 sectors Disk model: Generic Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 05AB264B-738E-47BB-9F67-5C04CC24A736 Device Start End Sectors Size Type /dev/sda1 2048 500118158 500116111 238.5G Linux filesystem root@debian:~# mount /dev/sda1 /mnt/sda/ root@debian:~# cd /mnt/sda root@debian:/mnt/sda# dd if=/dev/zero of=sd.img bs=4M count=4096 oflag=direct 4096+0 records in 4096+0 records out 17179869184 bytes (17 GB, 16 GiB) copied, 81.5051 s, 211 MB/s -------------- root@debian:/# lsusb Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Unifying Receiver Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 003: ID 04e8:61f5 Samsung Electronics Co., Ltd Portable SSD T5 Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub root@debian:/mnt/sda# dd if=/dev/zero of=sd.img bs=4M count=4096 oflag=direct 4096+0 records in 4096+0 records out 17179869184 bytes (17 GB, 16 GiB) copied, 83.7618 s, 205 MB/s cpufreq *3 root@debian:~# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq 1800000 1800000 1800000 1800000 root@debian:~# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq 1416000 1416000 1416000 1416000 root@debian:~# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq 1800000 1800000 1800000 1800000 root@debian:~# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq 1416000 1416000 1416000 1416000 PCIe NVMe SSD *4 root@debian:/mnt/nvme# dd if=/dev/zero of=sd.img bs=4M count=4096 oflag=direct 4096+0 records in 4096+0 records out 17179869184 bytes (17 GB, 16 GiB) copied, 58.0362 s, 296 MB/s

    Das soll laut Peter die maximal mögliche Geschwindigkeit der PCIe Schnittstelle sein. Diese Schnittstelle ist nur mit einer Lane an den Prozessor angeschlossen!

    UART

    Bitte drauf achten, diese Schnittstelle arbeitet mit Level Shifting, was billige Adapter oft nicht abkönnen. Habe ich hier im Beitrag ausführlich erklärt, mit passenden Adapter, wenn es so wie bei mir nicht funktionierte.

  • Quartz64 - SPDIF Modul

    Verschoben Quartz64 - A
    2
    0 Stimmen
    2 Beiträge
    213 Aufrufe
    FrankMF

    Für das bequeme Umschalten der Soundkarten kann man das Tool alsamixer benutzen.

    pacman -S alsa-utils

    Danach

    alsamixer

    e912744f-8f69-4b28-a50b-7ffc8a3ab399-grafik.png

  • Quartz64 - dts File bearbeiten

    Angeheftet Verschoben Quartz64
    3
    0 Stimmen
    3 Beiträge
    264 Aufrufe
    FrankMF

    Ich weiß nicht, wonach ich gesucht habe, vermutlich nach

    apt install device-tree-compiler

    das gibt es im Manjaro Image nicht, es heißt ganz einfach dtc 😎 Also, ganz einfach mit

    pacman -S dtc

    installieren. Dann kann man sich diesen Umweg mit snapd sparen.

  • Quartz64 - Missing SPI ?

    Verschoben Quartz64
    1
    0 Stimmen
    1 Beiträge
    402 Aufrufe
    Niemand hat geantwortet
  • Quartz64 - Image von Peter Geis

    Images
    4
    0 Stimmen
    4 Beiträge
    305 Aufrufe
    FrankMF

    Nach langer Zeit habe ich mich mal wieder mit diesem Image beschäftigt. Peter hat da mittlerweile viel dran gearbeitet und jetzt schau ich mal, was so wie funktioniert. Also, das Image wie gewohnt auf eine SD-Karte und starten. Gewählt habe ich dieses Image -> rk3566-quartz64-a.dtb.img

    Wenn man das Image startet, wird man hiermit begrüßt

    screen01.png

    Punkt 1Buildroot-recovery startet ein Minimalsystem, womit man verschiedene Dinge auf der Konsole durchführen kann. Das brauchen wir gleich noch. Punkt 2 startet den Debian Installer Punkt 3 startet ein installiertes Debian von der SD-Karte Punkt 4 startet ein installiertes Debian vom eMMC-Modul

    Ich möchte heute mal schauen, ob man ein Minimal-System auf die PCIe-NVMe-Karte installieren kann. Peter hat nämlich den PCIe-Treiber mittlerweile im Kernel mit eingebaut.

    Dazu starte ich den Debian-Installer und führe die Installation durch. Für mich nichts besonderes, das mache ich ja sehr oft. Nach erfolgreicher Installation startet die Installation nicht, weil Peter in seinem Image das so nicht vorgesehen hat.

    Es gibt mehrere Möglichkeiten, das jetzt zu ändern. Wir machen das über UART direkt auf dem Quartz64.

    Die Struktur von Peters Image sieht so aus.

    e50bf2fe-723c-41f8-acba-227e148374ed-image.png

    Ich gehe nicht auf alles ein, die wichtigsten Partitionen haben einen Namen. Uns interessiert hier die Partition Nummer 5 mit dem Namen efi. (Auf der SD-Karte!!) Der Inhalt

    3c5cbf5f-811d-4c1f-95e9-cd007a37155c-image.png

    Im Ordner extlinux liegt die Konfigurationsdatei, die wir bearbeiten müssen. extlinux.config

    default l0 menu title Quartz64 Installer prompt 0 timeout 50 label l0 menu label Buildroot-recovery linux /vmlinuz initrd /rootfs.cpio.zst fdt /dtbs/rockchip/rk3566-quartz64-a.dtb append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 label l1 menu label Debian-Installer linux /vmlinuz initrd /initrd.gz fdt /dtbs/rockchip/rk3566-quartz64-a.dtb append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 label l6 menu label Boot Root SDMMC linux /vmlinuz fdt /dtbs/rockchip/rk3566-quartz64-a.dtb append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/mmcblk0p7 rootwait label l9 menu label Boot Root eMMC linux /vmlinuz fdt /dtbs/rockchip/rk3566-quartz64-a.dtb append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/mmcblk1p7 rootwait

    Ich nehme den Eintrag label l9 und passe ihn ein wenig an.

    label l9 menu label Boot Root NVMe linux /dev/nvme0n1p1/vmlinuz fdt /dtbs/rockchip/rk3566-quartz64-a.dtb append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/nvme0n1p2 rootwait

    Das wird abgespeichert, danach kann man den Quartz64 neustarten und mit Eingabe der Taste 4 startet man dann das Debian von der NVMe SSD.

    root@debian:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 457G 926M 432G 1% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 17M 1.9G 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/nvme0n1p1 472M 49M 400M 11% /boot tmpfs 391M 0 391M 0% /run/user/1000

    PCIe

    root@debian:~# lspci 00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3566 (rev 01) 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981

    Es handelt sich um ein Debian Buster 10

    VERSION="10 (buster)"

    Wollen wir das? Nö

    # deb http://deb.debian.org/debian/ buster main deb http://deb.debian.org/debian/ bullseye main deb-src http://deb.debian.org/debian/ bullseye main deb http://security.debian.org/debian-security bullseye-security main deb-src http://security.debian.org/debian-security bullseye-security main # buster-updates, previously known as 'volatile' deb http://deb.debian.org/debian/ bullseye-updates main deb-src http://deb.debian.org/debian/ bullseye-updates main

    Danach ein

    apt update && apt upgrade

    Neustarten und wir haben ein Debian Bullseye 11 🙂 Dieses Debian nutzt so jetzt nicht den Kernel von Debian, sondern Peters

    root@debian:/etc# uname -a Linux debian 5.17.0-rc3 #1 SMP PREEMPT Wed Feb 16 00:41:25 UTC 2022 aarch64 GNU/Linux

    Die Entscheidung überlasse ich Euch, ob ihr das Ändern wollt. Ich lasse das jetzt mal so. Wenn ihr wollt, das die Installation von alleine startet, dann müsst ihr Label 0 anpassen, das startet nach einem Timeout automatisch.

  • Quartz64 - Jumper BAT ON/OFF

    Angeheftet Verschoben Quartz64 - A
    1
    0 Stimmen
    1 Beiträge
    186 Aufrufe
    Niemand hat geantwortet
  • Quartz64 - GPIO Modell A

    Angeheftet Verschoben Quartz64 - A
    1
    0 Stimmen
    1 Beiträge
    147 Aufrufe
    Niemand hat geantwortet