Skip to content

SATA Karte Marvell 88SE9230 Chipsatz mit 0.9.16

Hardware
  • Ich habe nach langer Zeit vor, mein NAS mal umzubauen, auf andere HDDs usw. Dafür möchte ich nun auf Debian Buster 10.1 wechseln, weil dann habe ich alles gleich 😉

    Hardware

    • ROCKPro64 2GB RAM
    • PCIe SATA-Karte Marvell 88SE9230
    • USB3 SSD T5
    • 2 * 4TB HDD 3,5Zoll
    • Netzteil 5A

    Software

    Ok, den Nachmittag mit Testen verbracht, aber irgendwie ging nichts..... 😞

    Dann habe ich die alten Forenbeiträge überall noch mal nachgelesen und bin fündig geworden.

    pci=nomsi
    

    Quelle: https://forum.pine64.org/showthread.php?tid=6496&pid=41068#pid41068

    Ok, dann mal

    nano /boot/extlinux/extlinux.conf
    

    und den Parameter ergänzen.

     timeout 10
     menu title select kernel
     
     label kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339
         kernel /boot/vmlinuz-4.4.197-1236-rockchip-ayufan-g30faab37e339
         initrd /boot/initrd.img-4.4.197-1236-rockchip-ayufan-g30faab37e339
         devicetreedir /boot/dtbs/4.4.197-1236-rockchip-ayufan-g30faab37e339
         append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 pci=nomsi root=LABEL=linux-root rootwait rootfstype=ext4
     
     label kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339-memtest
         kernel /boot/vmlinuz-4.4.197-1236-rockchip-ayufan-g30faab37e339
         initrd /boot/initrd.img-4.4.197-1236-rockchip-ayufan-g30faab37e339
         devicetreedir /boot/dtbs/4.4.197-1236-rockchip-ayufan-g30faab37e339
         append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 pci=nomsi root=LABEL=linux-root rootwait rootfstype=ext4 memtest
    

    Neustarten und BÄM, da sind die Festplatten.

    IMG_20191101_175247.jpg

    root@rockpro64:/# blkid
    /dev/sda1: UUID="4dd45131-bf78-4a23-ad29-af1b24284ca0" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="e396d30e-9690-4a81-9386-eb2c1e490cbc"
    /dev/sda2: UUID="a8234184-3c6a-44d1-a6a3-d06d0baedfcc" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="0736407d-fce2-4b46-b957-a0a472f4ee9b"
    /dev/sdb1: UUID="857a73ca-199f-4e04-9651-088963e29fae" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="66b1780d-f9d5-4baa-af96-6a90d3d29a58"
    /dev/sdb2: UUID="ed78c5ce-5bc9-49aa-9bc7-000771610940" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="8cc27a88-56f6-4ac3-8d04-78e9917678b7"
    /dev/sdc1: PARTLABEL="loader1" PARTUUID="00ceceb1-4785-49c2-aa5e-aff2349ae71c"
    /dev/sdc2: PARTLABEL="reserved1" PARTUUID="4eedf41c-4c66-4933-8103-bc0f741df511"
    /dev/sdc3: PARTLABEL="reserved2" PARTUUID="b0ac44b9-ecc9-41a5-b631-97f0de390ae8"
    /dev/sdc4: PARTLABEL="loader2" PARTUUID="ecd5a0ea-e1ec-4b2f-97c4-8304f1e65d37"
    /dev/sdc5: PARTLABEL="atf" PARTUUID="2f1e7f3b-fc55-46de-88c8-874bd5916d6c"
    /dev/sdc6: SEC_TYPE="msdos" LABEL_FATBOOT="boot" LABEL="boot" UUID="F2E0-8793" TYPE="vfat" PARTLABEL="boot" PARTUUID="481a9a23-46f1-46fb-a09d-bf97d4fda4df"
    /dev/sdc7: LABEL="linux-root" UUID="4e669080-ae10-474e-9e35-208828cca60a" TYPE="ext4" PARTLABEL="root" PARTUUID="736d3075-8cc6-4b21-9e5e-8d67a7d67624"
    

    sda und sdb sind zwei 4TB Platten aus meinem lokalen Proxmox. sdc ist eine T5 SSD an USB3, die das System beeinhaltet. Der uboot ist im SPI.

    Vorher hatte ich die ganze Zeit nur den SATA-Adapter gesehen.

    root@rockpro64:/# lspci -nn
    00:00.0 PCI bridge [0604]: Fuzhou Rockchip Electronics Co., Ltd RK3399 PCI Express Root Port [1d87:0100]
    01:00.0 SATA controller [0106]: Marvell Technology Group Ltd. 88SE9230 PCIe SATA 6Gb/s Controller [1b4b:9230] (rev 11)
    

    Wir können also mittlerweile auch mit dem 4.4er Kernel die SATA-Karte nutzen, vorher ging das ja nur mit dem Mainline!? Übrigens, der letzte Mainlinekernel bootet hier nicht mehr, egal was ich mache!???

  • @FrankM Mainline hat "damals" vor vier wochen bei mir 5min gebraucht zum booten. Dachte "damals" das board hängt und hatte den versuch bereits abgeschrieben, aber lief dann

  • Danke. Ich habe gestern so viel probiert, das ich meine mich erinnern zu können das es von selber neugestartet hat. Ist aber aktuell auch nicht so wichtig für mich. Hab jetzt 4 Platten an dem Adapter. Einmal alt, einmal neu. 🙂

    Weiter gehts...

    sata4.jpg

  • Ich hole mal was aus, bevor sich jemand fragt, wie man 4 HDDs am ROCKPro64 betreiben kann....

    HDDS

    • 2 * 4TB 3,5 Zoll HDD
    • 2 * 1,8 TB 2,5 Zoll HDD

    Die 1,8er sind das alte NAS, die 4TB sollen das neue NAS werden. Alle vier hängen am PCIe SATA Adapter 🙂

    PCIe SATA

    root@rockpro64:~# lspci -nn
    00:00.0 PCI bridge [0604]: Fuzhou Rockchip Electronics Co., Ltd RK3399 PCI Express Root Port [1d87:0100]
    01:00.0 SATA controller [0106]: Marvell Technology Group Ltd. 88SE9230 PCIe SATA 6Gb/s Controller [1b4b:9230] (rev 11)
    

    HDDs

    root@rockpro64:~# blkid
    /dev/sda1: UUID="dbbdbbf3-d57a-f8f0-158a-95a090318787" UUID_SUB="f686690c-7820-6177-ff0d-b49d4b6ee162" LABEL="rockpro64:0" TYPE="linux_raid_member" PARTUUID="4969cca5-813b-744b-8be8-267b8dce3a64"
    /dev/sdb1: UUID="dbbdbbf3-d57a-f8f0-158a-95a090318787" UUID_SUB="a4e46abc-0745-812d-453a-5900c93be9e6" LABEL="rockpro64:0" TYPE="linux_raid_member" PARTUUID="bad3f3c0-1c93-8c48-a236-2d36f561208d"
    /dev/md0: UUID="65d12371-db28-405c-91c7-8ee644e5cbaa" TYPE="ext4"
    /dev/sdc6: SEC_TYPE="msdos" LABEL_FATBOOT="boot" LABEL="boot" UUID="F2E0-8793" TYPE="vfat" PARTLABEL="boot" PARTUUID="481a9a23-46f1-46fb-a09d-bf97d4fda4df"
    /dev/sdc7: LABEL="linux-root" UUID="4e669080-ae10-474e-9e35-208828cca60a" TYPE="ext4" PARTLABEL="root" PARTUUID="736d3075-8cc6-4b21-9e5e-8d67a7d67624"
    /dev/sdd1: UUID="f038170b-1f1c-4155-9986-0375a5a7ba1d" TYPE="crypto_LUKS" PARTUUID="8af0c936-3f0e-bd45-ac79-6008dbec2a5e"
    /dev/sde1: UUID="31cfceec-8f5a-4df0-8228-17467035c50b" TYPE="crypto_LUKS" PARTUUID="13a5b880-8c52-004f-bb79-d5075ec71052"
    /dev/mapper/raid_pool0: UUID="33ac7964-473f-e590-3682-dd85a979b336" UUID_SUB="7b830f36-7f19-1494-57bb-bcb6f650958f" LABEL="rockpro64v_2_1:0" TYPE="linux_raid_member"
    /dev/md127: UUID="722c7c4c-8bfe-4d49-ac10-6b32780cb2e6" TYPE="ext4"
    /dev/mapper/raid_pool1: UUID="33ac7964-473f-e590-3682-dd85a979b336" UUID_SUB="7d7714c3-5553-1d84-2b1b-5d9a63470187" LABEL="rockpro64v_2_1:0" TYPE="linux_raid_member"
    /dev/sdc1: PARTLABEL="loader1" PARTUUID="00ceceb1-4785-49c2-aa5e-aff2349ae71c"
    /dev/sdc2: PARTLABEL="reserved1" PARTUUID="4eedf41c-4c66-4933-8103-bc0f741df511"
    /dev/sdc3: PARTLABEL="reserved2" PARTUUID="b0ac44b9-ecc9-41a5-b631-97f0de390ae8"
    /dev/sdc4: PARTLABEL="loader2" PARTUUID="ecd5a0ea-e1ec-4b2f-97c4-8304f1e65d37"
    /dev/sdc5: PARTLABEL="atf" PARTUUID="2f1e7f3b-fc55-46de-88c8-874bd5916d6c"
    

    Was Wichtiges! Die zwei 4 TB Platten hängen am Netzteil vom ROCKPro64. Die zwei 1,8 TB Platten hängen an einem handelsüblichen PC-Netzteil, was hier für solche Zwecke rumliegt. Ich gehe davon aus, das das 12V/5A Netzteil von Pine64 damit gut ausgelastet ist. Das werde ich nach dem Zusammenbau des NAS in das Gehäuse nochmal messen.

  • Und noch was zur Geschwindigkeit.

    4 TB WD40EZRZ 3,5 Zoll

    root@rockpro64:/mnt/nas# iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 
    	Iozone: Performance Test of File I/O
    	        Version $Revision: 3.429 $
    		Compiled for 64 bit mode.
    		Build: linux 
    
    	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
    	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
    	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
    	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
    	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
    	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
    	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
    	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.
    
    	Run began: Sun Nov  3 09:50:23 2019
    
    	Include fsync in write timing
    	O_DIRECT feature enabled
    	Auto Mode
    	File size set to 102400 kB
    	Record Size 4 kB
    	Record Size 16 kB
    	Record Size 512 kB
    	Record Size 1024 kB
    	Record Size 16384 kB
    	Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
    	Output is in kBytes/sec
    	Time Resolution = 0.000001 seconds.
    	Processor cache size set to 1024 kBytes.
    	Processor cache line size set to 32 bytes.
    	File stride size set to 17 * record size.
                                                                  random    random     bkwd    record    stride                                    
                  kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
              102400       4    26087    32115    46181    45345     1029     1781                                                          
              102400      16    47864    54219   111342   110764     3948     7042                                                          
              102400     512    87792   102624   146630   158597    61571    99343                                                          
              102400    1024    93089   119904   147041   171560    76250   106159                                                          
              102400   16384   111010   124798   152106   168072   152621   138277  
    

    Soll lt. Datenblatt ca. 150MB/s machen. Sollte passen.

    1,8 TB Barracuda 2,5 Zoll (LUKS verschlüsselt)

    root@rockpro64:/mnt/nas_alt# iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 
    	Iozone: Performance Test of File I/O
    	        Version $Revision: 3.429 $
    		Compiled for 64 bit mode.
    		Build: linux 
    
    	Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
    	             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
    	             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
    	             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
    	             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
    	             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
    	             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
    	             Vangel Bojaxhi, Ben England, Vikentsi Lapa.
    
    	Run began: Sun Nov  3 09:54:58 2019
    
    	Include fsync in write timing
    	O_DIRECT feature enabled
    	Auto Mode
    	File size set to 102400 kB
    	Record Size 4 kB
    	Record Size 16 kB
    	Record Size 512 kB
    	Record Size 1024 kB
    	Record Size 16384 kB
    	Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
    	Output is in kBytes/sec
    	Time Resolution = 0.000001 seconds.
    	Processor cache size set to 1024 kBytes.
    	Processor cache line size set to 32 bytes.
    	File stride size set to 17 * record size.
                                                                  random    random     bkwd    record    stride                                    
                  kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
              102400       4     8041     7151     9069    18376     1484      675                                                          
              102400      16     6137    10301    40712    61916     5098     4462                                                          
              102400     512    35520    59081     8749    37416    55809    12226                                                          
              102400    1024    31658    40382    50131   105000    60191    51150                                                          
              102400   16384    55941    51903    85128   109118    35358    37658                                                          
    
    iozone test complete.
    

    So mechanische Platten sind ja irgendwie aus einer anderen Welt!? Aber als Datengrab bevorzuge ich im Moment noch mechanische Platten. Das wird sich sicherlich in Zukunft ändern.

  • Aktueller Stromverbrauch, nachdem ich das NAS wieder in sein Gehäuse eingebaut habe, so zwischen 15 - 17 Watt.
    Wenn die zwei 4TB Platten über hdparm ausgeschaltet sind, liegt der Verbrauch bei 10,8 Watt.

    Aktuell mit den 2 * 4TB 3,5Zoll.

  • Bei der heutigen Einrichtung des NAS zur Überwachung durch checkmk ist mir ein Fehler aufgefallen.

    Man bekommt eine rote Warnung über

    CRIT - 85 services in total, 1 service failed (sdio-hciattach)CRIT, Service check_mk@3-192.168.3.207:6556-192.168.3.213:47140 activating for: 0.00 s, 5 disabled services
    

    Wer checkmk nutzt weiß, das rote meldungen nasse Hände produzieren 🙂 Also, weg damit.

    sdio.hciattach sollte der Bluetooth Teil des ROCKPro64 sein, der aktuell nicht verbaut ist. Das WLan/BT Modul beim ROCKPro64 wird ja gesteckt.

    Dann schalten wir den Dienst mal aus, kann man ja dann bei Bedarf einfach wieder aktivieren.

     root@rockpro64:/etc/systemd# systemctl disable sdio-hciattach
     Removed /etc/systemd/system/multi-user.target.wants/sdio-hciattach.service.
    

    Rote Meldung weg. Alles wieder gut 🙂

  • Gestern hat Kamil einen neuen Kernel released, so das ich das heute mal auf dem NAS probiert habe. Durch den Boot von der USB-SSD sollten die Pfade ja alle passen und man problemlos den Kernel updaten können.

     root@rockpro64:/usr/local/sbin# df -h
     Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
     udev            992M       0  992M    0% /dev
     tmpfs           199M    5,5M  194M    3% /run
     /dev/sdc7       459G    3,3G  437G    1% /
     tmpfs           995M       0  995M    0% /dev/shm
     tmpfs           5,0M    4,0K  5,0M    1% /run/lock
     tmpfs           995M       0  995M    0% /sys/fs/cgroup
     /dev/sdc6       112M    4,0K  112M    1% /boot/efi
     /dev/md0        3,6T    485G  3,0T   14% /mnt/nas
     tmpfs           199M       0  199M    0% /run/user/1000
    

    Gut, /boot liegt auf der USB-SSD. Also, wie bekannt, den Kernel heruntergeladen und installiert. Nach dem Neustart geht nix 😞 Mittels HDMI Monitor angeschlossen um den Fehler sehen zu können, da macht es auch schon Klick. Der Parameter

    pci=nomsi
    

    ist durch das Kernel-Update überschrieben worden. Ich hatte dann die USB-SSD ausgebaut und das Problem am lokalen Rechner gelöst. Aber, man ist ja faul.....;)

    Da es überschrieben wird, müssen auch irgendwo die Informationen dazu liegen.......

    /usr/local/sbin/update-extlinux.sh
    

    Da ist das File, was Kamil dafür angelegt hat.

    #!/bin/bash
    
    TIMEOUT=""
    DEFAULT=""
    APPEND="rw"
    APPEND="$APPEND panic=10"
    APPEND="$APPEND init=/sbin/init"
    APPEND="$APPEND coherent_pool=1M"
    APPEND="$APPEND ethaddr=\${ethaddr} eth1addr=\${eth1addr} serial=\${serial#}"
    APPEND="$APPEND cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 pci=nomsi"
    [..........gekürzt.........]
    

    Hier seht ihr das File schon mit meiner Änderung, in der Hoffnung das es dann beim nächsten Mal ohne Probleme funktioniert. Bleibt nur noch das Problem, wann ändert Kamil das File, weil dann ist die Änderung wieder weg!?!?

  • ROCKPro64 - RTC

    Hardware
    1
    0 Stimmen
    1 Beiträge
    337 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Samsung Portable SSD T5 500GB

    Hardware
    1
    0 Stimmen
    1 Beiträge
    285 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - PCIe Probleme

    Hardware
    3
    0 Stimmen
    3 Beiträge
    330 Aufrufe
    FrankMF

    Danke für dein Feedback.

  • ROCKPro64 - PCIe SATA-Karte mit JMicron JMS585- Chip

    Angeheftet Hardware
    13
    1 Stimmen
    13 Beiträge
    2k Aufrufe
    FrankMF

    Ich möchte das dann hier zum Abschluss bringen, das NAS ist heute zusammengebaut worden. Hier zwei Fotos.

    IMG_20200425_102156_ergebnis.jpg

    IMG_20200425_102206_ergebnis.jpg

  • ROCKPro64 - PCIe NVMe SSD installieren

    Hardware
    1
    0 Stimmen
    1 Beiträge
    318 Aufrufe
    Niemand hat geantwortet
  • Serielle Konsole UART2 (2)

    Angeheftet Hardware
    1
    0 Stimmen
    1 Beiträge
    220 Aufrufe
    Niemand hat geantwortet
  • SATA Karte Marvell 88SE9230 Chipsatz

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

    Ok, es gibt noch eine andere Möglichkeit.

    Kamil hat mir noch ein wenig geholfen. Mit folgender Änderung werden die Platten gefunden.

    hmm, I had to add /etc/default/extlinux: libahci.skip_host_reset=1

    Sieht dann so aus.

    # Configure timeout to choose the kernel # TIMEOUT="10" # Configure default kernel to boot: check all kernels in `/boot/extlinux/extlinux.conf` # DEFAULT="kernel-4.4.126-rockchip-ayufan-253" # Configure additional kernel configuration options APPEND="$APPEND root=LABEL=linux-root rootwait rootfstype=ext4 libahci.skip_host_reset=1"

    Danach waren die Platten zu sehen.

    root@rockpro64:/tmp/etc/default# blkid /dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28" /dev/sda3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6" /dev/sda4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0" /dev/sdb2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="56C9-F745" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="919c8f73-5f25-4a01-9072-3a5ed9a88ff2" /dev/sdb3: LABEL="linux-boot" UUID="23c19647-f4a1-4197-a877-f1bb03456bef" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="093d0cc0-d122-4dce-aeb5-4e266b4b7d9d" /dev/sdb4: LABEL="linux-root" UUID="f1c74331-8318-4ee8-a4f7-f0c169fb9944" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="964ab457-58d5-40c4-bb02-dfd37bd2f0da" /dev/sda1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae" /dev/sdb1: PARTLABEL="loader1" PARTUUID="33f692b3-54cb-4a37-b602-21a2baf32fa0"

    Aber auch hiermit ist ein Boot von der SATA Platte nicht möglich.

    Ich möchte hier noch was vom kamil zitieren.

    (11:44:09) ayufanWithPM: will look later, but this controller is tricky, also on x86 as well
    (11:44:16) ayufanWithPM: jms585 seems to be significantly more stable

    Evt. bekommt er das gefixt 😉

  • 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