Durch den Zoll ist es auch...
aa906c24-2e67-404d-aad2-69fe1832229b-grafik.png
Das Quartz64 Board hat einen GPIO Pin für SPDIF Daten Ausgabe. Ein anderer Benutzer hat jetzt dafür ein Modul gebaut, was man aufstecken kann.
Das Modul nutzt die Pins 16,18 und 20. Aufgesteckt sieht das dann so aus.
Aktuell funktioniert das Modul noch nicht mit dem Kernel des Manjaro Images.
[root@quartz64 ~]# uname -a
Linux quartz64 5.15.0-rc1-0.3-MANJARO-ARM #1 SMP PREEMPT Thu Oct 7 06:08:24 UTC 2021 aarch64 GNU/Linux
Kann man testen, wenn man sich die Soundkarten des Systems anzeigen lässt.
[root@quartz64 ~]# cat /proc/asound/cards
0 [RK817 ]: simple-card - Analog RK817
Analog RK817
Ok, hier ist das Modul noch nicht vorhanden. Die Hardwaredefinition des Boards wird ja mit einem File gemacht. Das findet man unter
/boot/dtbs/rockchip/rk3566-quartz64-a.dtb
Vor der Bearbeitung bitte irgendwo sichern. Und drann denken, falsche Parameter können die Hardware beschädigen!
Wir machen daraus jetzt ein lesbares File.
dtc -I dtb -O dts -o /root/testfile.dts /root/rk3566-quartz64-a.dtb
Wenn ihr das Tool dtc nicht habt, ein
pacman -S dtc
installiert euch das.
Das File öffnen wir jetzt mal und suchen nach SPDIF. Ich finde das hier
spdif@fe460000 {
compatible = "rockchip,rk3568-spdif";
reg = <0x00 0xfe460000 0x00 0x1000>;
interrupts = <0x00 0x66 0x04>;
dmas = <0x5a 0x01>;
dma-names = "tx";
clock-names = "mclk\0hclk";
clocks = <0x0b 0x5f 0x0b 0x5c>;
#sound-dai-cells = <0x00>;
pinctrl-names = "default";
pinctrl-0 = <0x5f>;
status = "disabled";
phandle = <0x9e>;
};
Ok, ist "disabled". Um es zu aktivieren, muss da ein "okay" hin.
spdif@fe460000 {
compatible = "rockchip,rk3568-spdif";
reg = <0x00 0xfe460000 0x00 0x1000>;
interrupts = <0x00 0x66 0x04>;
dmas = <0x5a 0x01>;
dma-names = "tx";
clock-names = "mclk\0hclk";
clocks = <0x0b 0x5f 0x0b 0x5c>;
#sound-dai-cells = <0x00>;
pinctrl-names = "default";
pinctrl-0 = <0x5f>;
status = "okay";
phandle = <0x9e>;
};
Aus dem File jetzt wieder ein .dtb machen.
dtc -I dts -O dtb -o /root/rk3566-quartz64-a.dtb /root/testfile.dts
Das File kopieren wir jetzt an die richtige Stelle.
cp rk3566-quartz64-a.dtb /boot/dtbs/rockchip/
Den Quartz64 neu starten! Wir schauen nach den Soundkarten.
[root@quartz64 ~]# cat /proc/asound/cards
0 [RK817 ]: simple-card - Analog RK817
Analog RK817
1 [SPDIF ]: simple-card - SPDIF
SPDIF
Gut, das ist sie. Jetzt müssen wir dem System noch mitteilen, das es diese Soundkarte benutzen soll.
Wir erzeugen folgendes File.
nano /etc/asound.conf
Inhalt
defaults.pcm.card 1
defaults.ctl.card 1
Ich benutze zum Testen das Tool mpv
pacman -S mpv
z.B. so
~~mpv http://wdr-1live-live.icecast.wdr.de/wdr/1live/live/mp3/128/stream.mp3~~
Das ist natürlich Bullshit, das Testfile muss natürlich auch Digital Ton enthalten. Ok, wir laden uns hier was runter.
Dann geben wir das Video aus, müssen aber die Bildausgabe abschalten. Geht ja auf dem Quartz64 noch nicht
mpv --no-video /home/frank/Countdown-v1-Dolby-thedigitaltheater.mp4
Vor Erstellung des Files kam der Sound aus der analogen Buchse, daran hängen hier zwei PC-Boxen. Jetzt geht im Adapter rotes Licht an
Und der Sound kommt aus meinem AVReiceiver