Skip to content

Unterstützung Lüfter

ROCKPro64
  • Kamil hat die Funktion des Lüfters als Kernelupdate eingebaut.

    rock64@rockpro64v2_1:~$ uname -a
    Linux rockpro64v2_1 4.4.132-1077-rockchip-ayufan-gbaf35a9343cb #1 SMP Mon Jul 30 14:06:57 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Updaten

    sudo apt-get update
    apt-cache search linux-image
    

    Dann den Kernel aussuchen, in diesem Fall

    sudo apt-get install linux-image-4.4.132-1077-rockchip-ayufan-gbaf35a9343cb
    

    Einmal neustarten

     sudo shutdown -r now
    

    Fertig!

  • Lüfter angekommen 😉

    0_1533908727391_Lüfter_ergebnis.jpg
    Die Befestigung ist böse improvisiert 🙂

    Mit armbianmonitor die Temperatur kontrolliert.

    rock64@rockpro64v2_0:/usr/local/sbin$ sudo ./armbianmonitor -m
    Stop monitoring using [ctrl]-[c]
    Stop monitoring using [ctrl]-[c]
    Time       big.LITTLE   load %cpu %sys %usr %nice %io %irq   CPU  C.St.
    
    15:15:23:  816/1200MHz  0.00   0%   0%   0%   0%   0%   0% 40.0°C  0/3
    15:15:28:  408/ 408MHz  0.00   0%   0%   0%   0%   0%   0% 41.1°C  0/3
    15:15:33:  408/ 408MHz  0.00   0%   0%   0%   0%   0%   0% 41.1°C  0/3
    15:15:38:  408/ 408MHz  0.00   0%   0%   0%   0%   0%   0% 41.1°C  0/3
    15:15:43:  408/ 408MHz  0.00   0%   0%   0%   0%   0%   0% 41.1°C  0/3
    15:15:48:  408/ 408MHz  0.00   0%   0%   0%   0%   0%   0% 41.1°C  0/3
    15:15:53:  408/ 408MHz  0.00   0%   0%   0%   0%   0%   0% 41.1°C  0/3
    

    Lüfter eingebaut. Einige Zeit laufen lassen. Ergebnis. (Wert 50)

    15:31:48:  408/ 408MHz  0.02   0%   0%   0%   0%   0%   0% 34.4°C  0/3
    15:31:53:  408/ 408MHz  0.02   0%   0%   0%   0%   0%   0% 34.4°C  0/3
    15:31:58:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 34.4°C  0/3
    15:32:03:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 34.4°C  0/3
    15:32:08:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 34.4°C  0/3
    15:32:14:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 34.4°C  0/3
    15:32:19:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 35.0°C  0/3
    15:32:24:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 35.0°C  0/3
    

    Aktuell müssen wir die Geschwindigkeit des Lüfters noch von Hand einstellen. Dazu findet man unter

    rock64@rockpro64v2_0:/sys/class/hwmon/hwmon0
    

    die Datei pwm1. Diese öffnen wir mal mit einem Editor.

    rock64@rockpro64v2_0:/sys/class/hwmon/hwmon0$ sudo nano pwm1
    

    In dieser Datei steht nur eine 0. Der Wert ist einstellbar von 0 - 255. Hier mal die Ausgabe, wenn das Ding mit 255 einige Zeit läuft.

    15:42:18:  408/ 408MHz  0.02   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    15:42:23:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    15:42:28:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 33.3°C  3/3
    15:42:34:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    15:42:39:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    15:42:44:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 33.3°C  3/3
    15:42:49:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    15:42:54:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    15:42:59:  408/ 408MHz  0.01   0%   0%   0%   0%   0%   0% 32.8°C  3/3
    

    Das war's, weiter runter komme ich hier wohl nicht.

  • Aktuell geht das nur mit Kernel 4.4.x Mit Kernel 4.18.x bekomme ich den Lüfter, mit dem Wert 255, nur kurz zum Laufen.
    Es scheint so, das irgendein Dienst in die Datei nach kurzer Zeit wieder eine 0 rein schreibt !?!?

    Im Gegensatz zum Kernel 4.4.x, läuft der Lüfter mit Wert 50 nicht an. Da muss ich nochmal nachfragen.

  • Wenn jemand einen Dienst braucht, der den Lüfter automatisch steuert, da hat jemand was gebastelt 😉

    Sieht nicht zu kompliziert aus, sollte man hin bekommen. Bei Gelegenheit werde ich mal testen.

  • Mit dem neuen Release hatte jemand das mal ausprobiert -> https://forum.frank-mankel.org/topic/795/fan-control-omv-auyfan-0-10-12-gitlab-ci-linux-build-184-kernel-5-6/6

    Dieser Kernel kam zur Anwendung

    Linux rockpro64 5.6.0-1137-ayufan-ge57f05e7bf8f #ayufan SMP Wed Apr 15 10:16:02 UTC 2020 aarch64 GNU/Linux
    

    Dort stellt man dann fest, das sich eine Kleinigkeit geändert hat. Der Pfad und der Dateiname hat sich geändert.

    Kontrollieren kann man das mit

    nano /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
    

    Der Wert geht von 0 - 255, wie gehabt.

  • Kernel 6.0.0-rc7

    ROCKPro64
    2
    0 Stimmen
    2 Beiträge
    106 Aufrufe
    FrankMF

    Geht 🙂

    fb1bc176-5c57-48bf-8d75-1834b5548552-grafik.png

    Link Preview Image Releases · ayufan-rock64/linux-mainline-kernel

    Linux kernel source tree. Contribute to ayufan-rock64/linux-mainline-kernel development by creating an account on GitHub.

    favicon

    GitHub (github.com)

    Altes Image installieren, die zwei .deb Files vom Kamil herunterladen.

    dpkg -i *.deb

    und neustarten.

    Und hochgezogen auf Debian Bullseye

    root@rockpro64:~# cat /etc/debian_version 11.5
  • 0 Stimmen
    2 Beiträge
    439 Aufrufe
    FrankMF

    Hat ein wenig Nerven gekostet und der Artikel ist auch was länger geworden 🙂 Viel Spaß beim Lesen und testen!

  • SATA Adapter - SSD kopieren

    Hardware
    1
    0 Stimmen
    1 Beiträge
    179 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - i2c Bus

    Hardware
    1
    0 Stimmen
    1 Beiträge
    520 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF

    This repo contains the tn40xx Linux driver for 10Gbit NICs based on the TN4010 MAC from Tehuti Networks.

    This driver enables the following 10Gb SFP+ NICs:

    D-Link DXE-810S
    Edimax EN-9320SFP+
    StarTech PEX10000SFP
    Synology E10G15-F1
    ... as well as the following 10GBase-T/NBASE-T NICs:

    D-Link DXE-810T
    Edimax EN-9320TX-E
    EXSYS EX-6061-2
    Intellinet 507950
    StarTech ST10GSPEXNB

    Quelle: https://github.com/ayufan-rock64/tn40xx-driver/tree/master

  • Recover Button

    Hardware
    2
    0 Stimmen
    2 Beiträge
    790 Aufrufe
    FrankMF

    Ich hab das mal ausprobiert.

    Den Recover Button so lange drücken, bis folgendes erscheint.

    In: serial@ff1a0000 Out: serial@ff1a0000 Err: serial@ff1a0000 Model: Pine64 RockPro64 rockchip_dnl_mode = 1 mode rockchip_dnl_mode = 2 mode rockchip_dnl_mode = 3 mode rockchip_dnl_mode = 4 mode entering maskrom mode...

    RKFlashTool clonen

    root@thinkpad:/home/frank/test# git clone https://github.com/rockchip-linux/rkflashtool Klone nach 'rkflashtool' ... remote: Counting objects: 663, done. remote: Total 663 (delta 0), reused 0 (delta 0), pack-reused 663 Empfange Objekte: 100% (663/663), 114.94 KiB | 0 bytes/s, Fertig. Löse Unterschiede auf: 100% (367/367), Fertig.

    In das Verzeichnis wechseln

    root@thinkpad:/home/frank/test# cd rkflashtool/

    Inhalt

    root@thinkpad:/home/frank/test/rkflashtool# ls doc Makefile rkcrc.h rkflashtool.h rkparametersblock examples README rkflashall rkmisc rkunpack.c fixversion.sh release.sh rkflashloader rkpad rkunsign flashuboot rkcrc.c rkflashtool.c rkparameters version.h

    RKFlashtool bauen

    root@thinkpad:/home/frank/test/rkflashtool# make gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkflashtool.c -o rkflashtool -lusb-1.0 gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkcrc.c -o rkcrc -lusb-1.0 gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkunpack.c -o rkunpack -lusb-1.0

    Ich habe ein USB-A to USB-A Kabel vom USB-C Port des ROCKPro64 zu meinem Notebook hergestellt.

    root@thinkpad:/home/frank/test/rkflashtool# sudo ./rkflashtool v rkflashtool: info: rkflashtool v5.2 rkflashtool: info: Detected RK3399... rkflashtool: info: interface claimed rkflashtool: info: MASK ROM MODE rkflashtool: info: chip version: -..-

    Ok, Verbindung steht.

    Eine Übersicht der Befehle

    root@thinkpad:/home/frank/test/rkflashtool# sudo ./rkflashtool rkflashtool: info: rkflashtool v5.2 rkflashtool: fatal: usage: rkflashtool b [flag] reboot device rkflashtool l <file load DDR init (MASK ROM MODE) rkflashtool L <file load USB loader (MASK ROM MODE) rkflashtool v read chip version rkflashtool n read NAND flash info rkflashtool i offset nsectors >outfile read IDBlocks rkflashtool j offset nsectors <infile write IDBlocks rkflashtool m offset nbytes >outfile read SDRAM rkflashtool M offset nbytes <infile write SDRAM rkflashtool B krnl_addr parm_addr exec SDRAM rkflashtool r partname >outfile read flash partition rkflashtool w partname <infile write flash partition rkflashtool r offset nsectors >outfile read flash rkflashtool w offset nsectors <infile write flash rkflashtool p >file fetch parameters rkflashtool P <file write parameters rkflashtool e partname erase flash (fill with 0xff) rkflashtool e offset nsectors erase flash (fill with 0xff)
  • ROCKPro64 - kein WLan-Modul möglich?

    ROCKPro64
    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    FrankMF

    Heute, 5 Monate später, kann ich bestätigen das WLan möglich ist 🙂 Getestet auf einem ROCKPro64 v2.1 mit 2GB RAM.

    Eine Vorabversion von Recalbox machte es das erste Mal für mich möglich das WLan zu benutzen. Bericht

    Und PCIe ist abgeschaltet im dts File.

    pcie-phy { compatible = "rockchip,rk3399-pcie-phy"; #phy-cells = <0x0>; rockchip,grf = <0x15>; clocks = <0x8 0x8a>; clock-names = "refclk"; resets = <0x8 0x87>; reset-names = "phy"; status = "disabled"; phandle = <0x8b>; }; pcie@f8000000 { compatible = "rockchip,rk3399-pcie"; #address-cells = <0x3>; #size-cells = <0x2>; aspm-no-l0s; clocks = <0x8 0xc5 0x8 0xc4 0x8 0x147 0x8 0xa0>; clock-names = "aclk", "aclk-perf", "hclk", "pm"; bus-range = <0x0 0x1f>; max-link-speed = <0x2>; linux,pci-domain = <0x0>; msi-map = <0x0 0x89 0x0 0x1000>; interrupts = <0x0 0x31 0x4 0x0 0x0 0x32 0x4 0x0 0x0 0x33 0x4 0x0>; interrupt-names = "sys", "legacy", "client"; #interrupt-cells = <0x1>; interrupt-map-mask = <0x0 0x0 0x0 0x7>; interrupt-map = <0x0 0x0 0x0 0x1 0x8a 0x0 0x0 0x0 0x0 0x2 0x8a 0x1 0x0 0x0 0x0 0x3 0x8a 0x2 0x0 0x0 0x0 0x4 0x8a 0x3>; phys = <0x8b>; phy-names = "pcie-phy"; ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>; reg = <0x0 0xf8000000 0x0 0x2000000 0x0 0xfd000000 0x0 0x1000000>; reg-names = "axi-base", "apb-base"; resets = <0x8 0x82 0x8 0x83 0x8 0x84 0x8 0x85 0x8 0x86 0x8 0x81 0x8 0x80>; reset-names = "core", "mgmt", "mgmt-sticky", "pipe", "pm", "pclk", "aclk"; status = "disabled";

    Also bleibt weiterhin ungeklärt, ob auch beides zusammen möglich ist. Also gleichzeitig das WLan-Modul und eine PCIe Karte.

  • stretch-minimal-rockpro64

    Verschoben Linux
    3
    0 Stimmen
    3 Beiträge
    981 Aufrufe
    FrankMF

    Mal ein Test was der Speicher so kann.

    rock64@rockpro64:~/tinymembench$ ./tinymembench tinymembench v0.4.9 (simple benchmark for memory throughput and latency) ========================================================================== == Memory bandwidth tests == == == == Note 1: 1MB = 1000000 bytes == == Note 2: Results for 'copy' tests show how many bytes can be == == copied per second (adding together read and writen == == bytes would have provided twice higher numbers) == == Note 3: 2-pass copy means that we are using a small temporary buffer == == to first fetch data into it, and only then write it to the == == destination (source -> L1 cache, L1 cache -> destination) == == Note 4: If sample standard deviation exceeds 0.1%, it is shown in == == brackets == ========================================================================== C copy backwards : 2812.7 MB/s C copy backwards (32 byte blocks) : 2811.9 MB/s C copy backwards (64 byte blocks) : 2632.8 MB/s C copy : 2667.2 MB/s C copy prefetched (32 bytes step) : 2633.5 MB/s C copy prefetched (64 bytes step) : 2640.8 MB/s C 2-pass copy : 2509.8 MB/s C 2-pass copy prefetched (32 bytes step) : 2431.6 MB/s C 2-pass copy prefetched (64 bytes step) : 2424.1 MB/s C fill : 4887.7 MB/s (0.5%) C fill (shuffle within 16 byte blocks) : 4883.0 MB/s C fill (shuffle within 32 byte blocks) : 4889.3 MB/s C fill (shuffle within 64 byte blocks) : 4889.2 MB/s --- standard memcpy : 2807.3 MB/s standard memset : 4890.4 MB/s (0.3%) --- NEON LDP/STP copy : 2803.7 MB/s NEON LDP/STP copy pldl2strm (32 bytes step) : 2802.1 MB/s NEON LDP/STP copy pldl2strm (64 bytes step) : 2800.7 MB/s NEON LDP/STP copy pldl1keep (32 bytes step) : 2745.5 MB/s NEON LDP/STP copy pldl1keep (64 bytes step) : 2745.8 MB/s NEON LD1/ST1 copy : 2801.9 MB/s NEON STP fill : 4888.9 MB/s (0.3%) NEON STNP fill : 4850.1 MB/s ARM LDP/STP copy : 2803.8 MB/s ARM STP fill : 4893.0 MB/s (0.5%) ARM STNP fill : 4851.7 MB/s ========================================================================== == Framebuffer read tests. == == == == Many ARM devices use a part of the system memory as the framebuffer, == == typically mapped as uncached but with write-combining enabled. == == Writes to such framebuffers are quite fast, but reads are much == == slower and very sensitive to the alignment and the selection of == == CPU instructions which are used for accessing memory. == == == == Many x86 systems allocate the framebuffer in the GPU memory, == == accessible for the CPU via a relatively slow PCI-E bus. Moreover, == == PCI-E is asymmetric and handles reads a lot worse than writes. == == == == If uncached framebuffer reads are reasonably fast (at least 100 MB/s == == or preferably >300 MB/s), then using the shadow framebuffer layer == == is not necessary in Xorg DDX drivers, resulting in a nice overall == == performance improvement. For example, the xf86-video-fbturbo DDX == == uses this trick. == ========================================================================== NEON LDP/STP copy (from framebuffer) : 602.5 MB/s NEON LDP/STP 2-pass copy (from framebuffer) : 551.6 MB/s NEON LD1/ST1 copy (from framebuffer) : 667.1 MB/s NEON LD1/ST1 2-pass copy (from framebuffer) : 605.6 MB/s ARM LDP/STP copy (from framebuffer) : 445.3 MB/s ARM LDP/STP 2-pass copy (from framebuffer) : 428.8 MB/s ========================================================================== == Memory latency test == == == == Average time is measured for random memory accesses in the buffers == == of different sizes. The larger is the buffer, the more significant == == are relative contributions of TLB, L1/L2 cache misses and SDRAM == == accesses. For extremely large buffer sizes we are expecting to see == == page table walk with several requests to SDRAM for almost every == == memory access (though 64MiB is not nearly large enough to experience == == this effect to its fullest). == == == == Note 1: All the numbers are representing extra time, which needs to == == be added to L1 cache latency. The cycle timings for L1 cache == == latency can be usually found in the processor documentation. == == Note 2: Dual random read means that we are simultaneously performing == == two independent memory accesses at a time. In the case if == == the memory subsystem can't handle multiple outstanding == == requests, dual random read has the same timings as two == == single reads performed one after another. == ========================================================================== block size : single random read / dual random read 1024 : 0.0 ns / 0.0 ns 2048 : 0.0 ns / 0.0 ns 4096 : 0.0 ns / 0.0 ns 8192 : 0.0 ns / 0.0 ns 16384 : 0.0 ns / 0.0 ns 32768 : 0.0 ns / 0.0 ns 65536 : 4.5 ns / 7.2 ns 131072 : 6.8 ns / 9.7 ns 262144 : 9.8 ns / 12.8 ns 524288 : 11.4 ns / 14.7 ns 1048576 : 16.0 ns / 22.6 ns 2097152 : 114.0 ns / 175.3 ns 4194304 : 161.7 ns / 219.9 ns 8388608 : 190.7 ns / 241.5 ns 16777216 : 205.3 ns / 250.5 ns 33554432 : 212.9 ns / 255.5 ns 67108864 : 222.3 ns / 271.1 ns