Skip to content

ROCKPro64 - Kernel switchen

Verschoben ROCKPro64
  • Unter /usr/local/sbin findet man einen Haufen Scripte vom Kamil.

     rock64@rockpro64:/usr/local/sbin$ ls -la
       total 144
       drwxr-xr-x  2 root root  4096 May 26 23:16 .
       drwxr-xr-x 10 root root  4096 Apr 27  2018 ..
       lrwxrwxrwx  1 root root    21 May 26 17:14 armbianmonitor -> rock64_diagnostics.sh
       -rwxr-xr-x  1 root root  1012 Mar 24 16:08 change-default-kernel.sh
       -rwxr-xr-x  1 root root   360 Mar 24 16:08 disable_dtoverlay
       -rwxr-xr-x  1 root root  1152 Apr 14 15:34 dtedit
       -rwxr-xr-x  1 root root  1145 Mar 24 16:08 enable_dtoverlay
       -rwxr-xr-x  1 root root  1062 Mar 31 12:00 install_container_linux.sh
       -rwxr-xr-x  1 root root   211 May 26 16:41 install_deb
       -rwxr-xr-x  1 root root  4092 May 26 17:14 install_desktop.sh
       -rwxr-xr-x  1 root root   903 Mar 24 16:08 install_gadget
       -rwxr-xr-x  1 root root  5281 Mar 24 16:08 install_openmediavault.sh
       -rwxr-xr-x  1 root root   578 Mar 24 16:08 install_vivaldi.sh
       -rwxr-xr-x  1 root root  2154 Mar 24 16:08 install_widevine_drm.sh
       -rwxr-xr-x  1 root root  1021 Mar 24 16:08 new_extlinux_boot.sh
       -rwxr-xr-x  1 root root   593 Mar 24 16:08 resize_rootfs.sh
       -rwxr-xr-x  1 root root 23258 Mar 24 16:08 rock64_diagnostics.sh
       -rwxrwxrwx  1 root root   747 Mar 21 17:27 rock64_erase_bootloader.sh
       -rwxrwxrwx  1 root root   441 Mar 21 17:27 rock64_erase_spi_flash.sh
       -rwxr-xr-x  1 root root  1460 Mar 24 16:08 rock64_eth0_stats.sh
       -rwxr-xr-x  1 root root   159 Mar 24 16:08 rock64_first_boot.sh
       -rwxr-xr-x  1 root root  1570 Apr  8 09:16 rock64_fix_performance.sh
       -rwxr-xr-x  1 root root  1012 Mar 24 16:08 rock64_health.sh
       -rwxrwxrwx  1 root root   751 Mar 21 17:27 rock64_upgrade_bootloader.sh
       -rwxrwxrwx  1 root root   574 Mar 21 17:27 rock64_write_spi_flash.sh
       -rwxr-xr-x  1 root root   251 Mar 24 16:08 rockpro64_disable_otg.sh
       -rwxr-xr-x  1 root root   332 Mar 24 16:08 rockpro64_enable_eth_gadget.sh
       -rwxr-xr-x  1 root root   499 Mar 24 16:08 rockpro64_reset_emmc.sh
       -rwxr-xr-x  1 root root   280 Mar 24 16:08 rockpro64_reset_spi_flash.sh
       -rwxr-xr-x  1 root root   183 Mar 24 16:08 uninstall_gadgets
       -rwxr-xr-x  1 root root  1452 Mar 24 16:08 update-extlinux.sh
    

    Nein, ich weiß nicht wofür die alle sind. Einige sind selbsterklärend. Bei anderen muss man evt. mal reinschauen... Was mich hier heute interessiert, ist das Script um den Kernel umzuschalten, also von 4.4 auf 5.1 und zurück. Man könnte die extlinux.conf jedesmal anpassen, aber unser Kamil scheint ein fauler Sysadmin zu sein, dafür kann man ja Scripte schreiben 😉

    Das Script change-default-kernel.sh erledigt das für uns. Beim Aufruf des Scriptes zeigt es uns eine Auswahl der installierten Kernel an. Dann gibt man die Nummer des Kernels ein, den man starten möchte. Dann nimmt uns Kamil sein Script die Arbeit ab und erstellt die Datei extlinux.conf neu.

    rock64@rockpro64:/usr/local/sbin$ sudo ./change-default-kernel.sh 
    [sudo] password for rock64: 
    Current kernel append parameters:
    append= root=LABEL=linux-root rootwait rootfstype=ext4
    
    Select kernel version:
    0: 5.1.0-1111-ayufan-g626fd74bbb54
    1: 4.4.167-1188-rockchip-ayufan-g9f1406ef58b1
    1
    
    Selected: kernel-4.4.167-1188-rockchip-ayufan-g9f1406ef58b1
    
    Updating configuration...
    Creating new extlinux.conf...
    Installing new extlinux.conf...
    rock64@rockpro64:/usr/local/sbin$
    

    Danach einfach neubooten und der Kernel ist gewechselt. Früher habe ich das über die serielle Konsole gemacht, aber seitdem ich die eine Leitung ablassen muss, kann ich ja nur noch lesen und keine Befehle absetzen. Blöd, wenn man dann mal eben den Kernel wechseln muss. Das Script ist dabei eine prima Hilfe. Danke Kamil!

    Ich hatte zu dem Thema schon mal einen Beitrag geschrieben.

  • 0 Stimmen
    1 Beiträge
    358 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    375 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    463 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    430 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    14 Beiträge
    2k Aufrufe
    K

    halli hallo & zusammen,
    in Allgemeinen lässt sich selten empfehlen, auf verdacht alles zu updaten, sobald irgend etwas nicht tut. Oftmals holt man sich lediglich neue Ungewissheit ins Boot. Es hilft eher zu wissen, wo es (denn ungefähr) hakt.

    Wie Frank in etwa bereits angesprochen hat ist es ungemein hilfreich zu sehen "was ab geht". Sprich die serielle "Schnitte" anzuklemmen. Das ist wirklich kein Hexenwerk, braucht aber einen Pegelwandler.
    Andernfalls ist die Gefahr hoch, dass man mit Rätselraten einen Abend ohne Ergebnis in den Sand setzt. Hab ich einmal mit diesem Board hinter mir, dann die serielle Komm angeklemmt.
    Ein ResetProb hab ich zumindest mit eMMC noch nicht beobachtet. Dabei habe ich viel Kernel gewechselt (nie den uboot) und 'reboot' getippt. Ab und an hängt er anscheinend bei Initialisierung der tty's, aber ich mag mich irren. Für das Prob von @killlah78 fehlt für mehr einfach ein output
    gruß

  • ROCKPro64 - RP64.GPIO

    Angeheftet Verschoben Hardware
    6
    0 Stimmen
    6 Beiträge
    6k Aufrufe
    FrankMF

    Hallo zusammen,

    da ich weiß das dieser Artikel recht beliebt ist, wollen wir den heute mal aktualisieren. Vieles aus den vorherigen Beiträgen passt noch. Es gibt aber kleine Anpassungen.

    Hardware ROCKPro64v21. 2GB RAM Software Kamils Release 0.10.9 Linux rockpro64 5.6.0-1132-ayufan-g81043e6e109a #ayufan SMP Tue Apr 7 10:07:35 UTC 2020 aarch64 GNU/Linux Installation apt install python

    Danach laden wir das Projekt

    git clone https://github.com/Leapo/Rock64-R64.GPIO

    PIN Nummern anpassen

    cd Rock64-R64.GPIO/R64 nano _GPIO.py

    Datei ergänzen

    # Define GPIO arrays #ROCK_valid_channels = [27, 32, 33, 34, 35, 36, 37, 38, 64, 65, 67, 68, 69, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 96, 97, 98, 100, 101, 102, 103, 104] #BOARD_to_ROCK = [0, 0, 0, 89, 0, 88, 0, 0, 64, 0, 65, 0, 67, 0, 0, 100, 101, 0, 102, 97, 0, 98, 103, 96, 104, 0, 76, 68, 69, 0, 0, 0, 38, 32, 0, 33, 37, 34, 36, 0, 35, 0, 0, 81, 82, 87, 83, 0, 0, 80, 79, 85, 84, 27, 86, 0, 0, 0, 0, 0, 0, 89, 88] #BCM_to_ROCK = [68, 69, 89, 88, 81, 87, 83, 76, 104, 98, 97, 96, 38, 32, 64, 65, 37, 80, 67, 33, 36, 35, 100, 101, 102, 103, 34, 82] ROCK_valid_channels = [52,53,152,54,50,33,48,39,41,43,155,156,125,122,121,148,147,120,36,149,153,42,45,44,124,126,123,127] BOARD_to_ROCK = [0,0,0,52,0,53,0,152,148,0,147,54,120,50,0,33,36,0,149,48,0,39,153,41,42,0,45,43,44,155,0,156,124,125,0,122,126,121,123,0,127] BCM_to_ROCK = [43,44,52,53,152,155,156,45,42,39,48,41,124,125,148,147,124,54,120,122,123,127,33,36,149,153,121,50]

    Abspeichern.

    Datei test.py anlegen

    nano test.py

    Inhalt

    #!/usr/bin/env python # Frank Mankel, 2018, LGPLv3 License # Rock 64 GPIO Library for Python # Thanks Allison! Thanks smartdave! import R64.GPIO as GPIO from time import sleep print("Output Test R64.GPIO Module...") # Set Variables var_gpio_out = 156 var_gpio_in = 155 # GPIO Setup GPIO.setwarnings(True) GPIO.setmode(GPIO.ROCK) GPIO.setup(var_gpio_out, GPIO.OUT, initial=GPIO.HIGH) # Set up GPIO as an output, with an initial state of HIGH GPIO.setup(var_gpio_in, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set up GPIO as an input, pullup enabled # Test Output print("") print("Testing GPIO Input/Output:") while True: var_gpio_state_in = GPIO.input(var_gpio_in) var_gpio_state = GPIO.input(var_gpio_out) # Return State of GPIO if var_gpio_state == 0 and var_gpio_state_in == 1: GPIO.output(var_gpio_out,GPIO.HIGH) # Set GPIO to HIGH print("Input State: " + str(var_gpio_state_in)) # Print results print("Output State IF : " + str(var_gpio_state)) # Print results else: GPIO.output(var_gpio_out,GPIO.LOW) # Set GPIO to LOW print("Input State: " + str(var_gpio_state_in)) # Print results print("Output State ELSE: " + str(var_gpio_state)) # Print results sleep(0.5) exit() Beispiel

    Bild Text

    Wenn der Taster im Bild betätigt wird, soll die LED blinken.

    Wir benutzen folgende Ein- Augänge des ROCKPro64.

    # Set Variables var_gpio_out = 156 var_gpio_in = 155

    Das heißt:

    an Pin 1 (3,3V) kommt eine Strippe des Tasters an Pin 29 (Input) kommt eine Strippe des Tasters an Pin 31 (Output) kommt der Plus-Pol der LED an Pin 39 (GND) kommt der Minus-Pol der LED

    Somit wird auf den Eingang (Pin 29) bei Betätigung des Tasters 3,3 Volt angelegt. Damit wird dann der Eingang als High (1) erkannt. Die LED wird über den Ausgang (Pin 31) gesteuert.

    Starten kann man das Script mit

    python test.py

  • 0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF

    Ein paar Hardware Änderungen

    Weiße LED gedimmt

    0_1532529766212_IMG_20180725_151430_ergebnis.jpg

    Neue LED grün, neben dem Eingang der Stromversorgung

    0_1532529863801_IMG_20180725_151421_geändert.jpg

  • Images 0.7.x

    Images
    22
    0 Stimmen
    22 Beiträge
    3k Aufrufe
    FrankMF

    Ayufan Images nutzen

    user: rock64 pw: rock64