g2t Posted December 30, 2024 Posted December 30, 2024 (edited) Hi, I have installed the latest image "Minimal/IOT images with Armbian Linux v6.12" with the mainline Kernel. Many thanks @ColorfulRhino , @amazingfate and many others for their hard work. I have a board with 32GB RAM and 4x NVMe and it is working with HDMI, USB and network. I have installed XFCE on top by my own. Some parts currently not working (what I have seen so far): * second HDMI * HDMI audio * sensor controlled fan speed This seems to be on the roadmap for 2025 for the upstream Kernel. For the fan control I currently use my own overlay and want to share it. /dts-v1/; /plugin/; / { /* our pwm-fan comes with 6 cooling levels (0-5) in relation to 255 <0 50 80 120 160 220> */ /* this overlay use the sensors of big core 0 to control cooling by the fan */ /* add new trips for active cooling */ fragment@0 { target-path = "/thermal-zones/bigcore0-thermal/trips"; __overlay__ { bigcore0-active1 { /* 55 degree with hysteresis of 5 deg */ temperature = <55000>; hysteresis = <5000>; type = "active"; // internal phandles use a small integer to be able to reference phandle = <0x00000001>; }; bigcore0-active2 { /* 60 degree with hysteresis of 2 deg */ temperature = <60000>; hysteresis = <2000>; type = "active"; // internal phandles use a small integer to be able to reference phandle = <0x00000002>; }; }; }; /* add cooling maps to use the new trips by the pwm-fan with level 0-5 */ fragment@1 { target-path = "/thermal-zones/bigcore0-thermal/cooling-maps"; __overlay__ { map1 { trip = <0x00000001>; cooling-device = <0xffffffff 0 1>; }; map2 { trip = <0x00000002>; cooling-device = <0xffffffff 2 5>; }; }; }; /* we need to poll, because in interrupt mode the fan will not stop */ /* alternatively we can use type="passive", a poll interval of 250 ms is already defined for passive */ fragment@2 { target-path = "/thermal-zones/bigcore0-thermal"; __overlay__ { /* for active cooling, in milliseconds */ polling-delay = <2000>; }; }; /* adjust the original fan levels <0 50 80 120 160 220> a bit */ /* the fan starts rotating at 40-45, 45 is sufficient to keep <50°C at normal operation */ fragment@3 { target = <0xffffffff>; __overlay__ { cooling-levels = <0 45 80 120 160 255>; }; }; __fixups__ { fan = "/fragment@1/__overlay__/map1:cooling-device:0", "/fragment@1/__overlay__/map2:cooling-device:0", "/fragment@3:target:0"; }; // to adjust finally the internal references __local_fixups__ { fragment@1 { __overlay__ { map1 { trip = <0x00000000>; }; map2 { trip = <0x00000000>; }; }; }; }; }; Edited December 30, 2024 by g2t 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.