phase Posted February 17, 2018 Posted February 17, 2018 does anybody know how can i enable the spdif output using debian stretch 9.3 odroid n-1 3399 any help appreciated
Xalius Posted February 17, 2018 Posted February 17, 2018 What does aplay -l list as devices? Do you have a asound.conf that includes those interfaces?
phase Posted February 17, 2018 Author Posted February 17, 2018 aplay -l **** List of PLAYBACK Hardware Devices **** card 0: HDMICODEC [HDMI-CODEC], device 0: ff8a0000.i2s-i2s-hifi i2s-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 no i dont think i have asound.conf in my dir-tree
phase Posted February 17, 2018 Author Posted February 17, 2018 no i dont have /etc/asound.conf but i can make one i think..????
Xalius Posted February 17, 2018 Posted February 17, 2018 Well first you have to see why the SPDIF output driver is not loaded, can you pastebin your devicetree?
phase Posted February 17, 2018 Author Posted February 17, 2018 how i googled it but found mixed or incoherrent answers..can you give me the syntax to do so ..i can give you my dmesg if you like
phase Posted February 17, 2018 Author Posted February 17, 2018 oh i am using debian strecth 9.3 if that is of any help
Xalius Posted February 17, 2018 Posted February 17, 2018 nvm found it... https://github.com/hardkernel/linux/blob/odroidn1-4.4.y/arch/arm64/boot/dts/rockchip/rk3399-odroidn1-linux.dts It doesnt seem to enable the SPDIF node atm... SPDIF node is defined here, https://github.com/hardkernel/linux/blob/odroidn1-4.4.y/arch/arm64/boot/dts/rockchip/rk3399.dtsi#L1658 so it has to be instantiated in the board dts by checking the schematics... You can look at other RK3399 boards for that, but try at your own risk since I dont have the N1 to verify that works for your HW: &spdif { status = "okay"; pinctrl-0 = <&spdif_bus_1>; i2c-scl-rising-time-ns = <450>; i2c-scl-falling-time-ns = <15>; #sound-dai-cells = <0>; }; spdif-sound { status = "okay"; compatible = "simple-audio-card"; simple-audio-card,name = "ROCKCHIP,SPDIF"; simple-audio-card,cpu { sound-dai = <&spdif>; }; simple-audio-card,codec { sound-dai = <&spdif_out>; }; }; spdif_out: spdif-out { status = "okay"; compatible = "linux,spdif-dit"; #sound-dai-cells = <0>; }
phase Posted February 17, 2018 Author Posted February 17, 2018 what file do i put that code into ..?? although it looks ok from my little know how with code...!!!
tkaiser Posted February 17, 2018 Posted February 17, 2018 apt install device-tree-compiler cd /media/boot/ dtc -I dtb -O dts -o rk3399-odroidn1-linux.dts rk3399-odroidn1-linux.dtb cp rk3399-odroidn1-linux.dts rk3399-odroidn1-linux-mod.dts Then you tweak rk3399-odroidn1-linux-mod.dts and afterwards: dtc -I dts -O dtb -o rk3399-odroidn1-linux.dtb rk3399-odroidn1-linux-mod.dts If something goes wrong your board might not even boot any more afterwards. And you'll get a ton of warning with the above, see https://forum.armbian.com/topic/6496-odroid-n1-not-a-review-yet/?do=findComment&comment=49438
phase Posted February 17, 2018 Author Posted February 17, 2018 root@odroid:/media/boot# dtc -I dtb -O dts -o rk3399-odroidn1-linux.dts rk3399-odroidn1-linux.dtb Warning (unit_address_vs_reg): Node /usb@fe800000 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /usb@fe900000 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@0 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@1 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@2 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@3 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@4 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@5 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@6 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@7 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@8 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@9 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /phy@e220 has a unitroot@odroid:/media/boot# dtc -I dtb -O dts -o rk3399-odroidn1-linux.dts rk3399-odroidn1-linux.dtb Warning (unit_address_vs_reg): Node /usb@fe800000 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /usb@fe900000 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@0 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@1 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@2 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@3 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@4 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@5 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@6 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@7 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@8 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /thermal-zones/soc-thermal/trips/trip-point@9 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /phy@e220 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /efuse@ff690000/id has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/cpul-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/cpub-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/gpu-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/center-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/logic-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/wafer-info has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /gpio-keys/button@0 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /gpiomem has a reg or ranges property, but no unit name name, but no reg property Warning (unit_address_vs_reg): Node /efuse@ff690000/id has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/cpul-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/cpub-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/gpu-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/center-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/logic-leakage has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /efuse@ff690000/wafer-info has a reg or ranges property, but no unit name Warning (unit_address_vs_reg): Node /gpio-keys/button@0 has a unit name, but no reg property Warning (unit_address_vs_reg): Node /gpiomem has a reg or ranges property, but no unit name
phase Posted February 17, 2018 Author Posted February 17, 2018 anybody else got any ideas..thx ..phase
phase Posted February 18, 2018 Author Posted February 18, 2018 what do i use to edit a .dts file..??...sorry for the noob stuff..i am gathering c++ or something like that can anybody suggest this to me...
Xalius Posted February 18, 2018 Posted February 18, 2018 The dts blob I posted has to go into your kernel source tree, it wont work like that in a decompiled dtb from /boot since the references are wrong. DTS are just text files... You have to put the blob into https://github.com/hardkernel/linux/blob/odroidn1-4.4.y/arch/arm64/boot/dts/rockchip/rk3399-odroidn1-linux.dts and then run make dtbs again to produce the output dtb and put that back in /boot. If you are cross-compiling, you need to ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make dtbs
phase Posted February 18, 2018 Author Posted February 18, 2018 @xalius can you give me the commands to do this sorry for the noob q`s
Recommended Posts