Skip to content

Ayufan Release 0.7.13 (WiFi)

ROCKPro64
6 1 639
  • Kamil hat die WLan Funktionalität eingebaut. Gleichzeitig soll jetzt auch PCIe gehen. Ok, zu mindestens das kann ich schon mal verneinen, bei mir crasht mit PCIe jeder Bootvorgang. Dann schauen wir uns mal die WiFi Funktionalität an.

    Hardware

    • RockPro64 v2.1 2GB RAM
    • WiFi-Modul von pine64.org
    • Boot von SD-Karte

    Software

    Wie ihr wisst, nutze ich fast ausschließlich das bionic-minimal Image.

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.4.154-1134-rockchip-ayufan-g0d09c8d7de9b #1 SMP Sun Mar 3 19:09:51 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
    

    Konfiguration

    Ok, wie wir wissen ein Ubuntu. Wie bekomme ich da WLan ans Laufen??? Ubuntu nutzt ja mittlerweile Netplan und wir brauchen eine Konfigurationsdatei. Also nicht so schwierig 😉

    Erstellen wir die Konfigurationsdatei wpa_supplicant.conf im Verzeichnis /etc/wpa_supplicant/

    ctrl_interface=/var/run/wpa_supplicant
    ctrl_interface_group=rock64
    # Die Gruppe muss natuerlich angepasst werden
    eapol_version=1
    # 0: Der Treiber des Interfaces kümmert sich um das Scannen von Netzen und die AP-Auswahl.
    #    Dieser Modus sollte benutzt werden, wenn man eine Verschlüsselung auf ein Kabelnetzwerk legt.
    # 1: wpa_supplicant kümmert sich um das Scannen von Netzen und die AP-Auswahl.
    # 2: Fast wie 0, es wird aber mit Hilfe von Sicherheitsrichtlinien und der SSID zu APs verbunden (BSSID wird nicht unterstützt)
    #
    # Normalerweise funktioniert entweder Modus 1 oder Modus 2.
    ap_scan=1
    
    network={
            ssid="SSID"
            scan_ssid=1
            proto=RSN
            key_mgmt=WPA-PSK
            pairwise=CCMP
            group=CCMP
            psk="password"
    }
    

    Anstelle von SSID kommt der Name des WLAN-Funknetzes (SSID). Unter psk ersetzt ihr bitte password mit Eurem Passwort. Abspeichern - fertig! Damit haben wir die Konfiguration erstellt. Nun müssen wir noch das Netzwerk anlegen. Dazu gibt es unter Netplan in folgendem Verzeichnis /etc/netplan die Datei eth0.yaml

    Der Inhalt der Datei vor der Änderung.

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: true
    

    Das Ganze mit der Ergänzung von wlan0

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: true
      wifis:
        wlan0:
          dhcp4: yes
          dhcp6: no
          #addresses: [192.168.0.21/24]
          #gateway4: 192.168.0.1
          nameservers:
            addresses: [192.168.178.1, 8.8.8.8]
          access-points:
            "SSID":
              password: "password"
    

    Abspeichern - fertig! Hier bitte auch wieder SSID und password mit Euren Daten ergänzen! Außerdem den Nameserver angeben, das ist die IP-Adresse Eures Routers, in meinem Fall eine Fritzbox mit 192.168.178.1 Wie Ihr seht habe ich das WiFi auf DHCP eingestellt, es holt sich also automatisch eine IP-Adresse. Dann mal das Ganze testen.

    sudo reboot
    

    Kontrolle

    Dann wollen wir mal nachsehen, ob das klappt.

    rock64@rockpro64:~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
        link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff
        inet6 fe80::6003:b0ff:fed6:dcb3/64 scope link 
           valid_lft forever preferred_lft forever
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether ac:83:f3:e6:1f:b2 brd ff:ff:ff:ff:ff:ff
        inet 192.168.178.31/24 brd 192.168.178.255 scope global dynamic wlan0
           valid_lft 863203sec preferred_lft 863203sec
    

    In meinem Beispiel oben, habe ich das LAN-Kabel abgezogen und die SSH-Verbindung mittels WLan aufgebaut. Wichtig ist, das man unter wlan0 eine IP-Adresse bekommt. Am besten erstmal mit einer LAN-Verbindung testen!

    Testdownload

    rock64@rockpro64:~$ wget https://ftp.fau.de/mint/iso/stable/19.1/linuxmint-19.1-cinnamon-64bit.iso
    --2019-03-04 08:09:28--  https://ftp.fau.de/mint/iso/stable/19.1/linuxmint-19.1-cinnamon-64bit.iso
    Resolving ftp.fau.de (ftp.fau.de)... 131.188.12.211, 2001:638:a000:1021:21::1
    Connecting to ftp.fau.de (ftp.fau.de)|131.188.12.211|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1973911552 (1.8G) [application/x-iso9660-image]
    Saving to: ‘linuxmint-19.1-cinnamon-64bit.iso’
    
    linuxmint-19.1-cinn 100%[===================>]   1.84G  12.4MB/s    in 3m 48s  
    
    2019-03-04 08:13:16 (8.27 MB/s) - ‘linuxmint-19.1-cinnamon-64bit.iso’ saved [1973911552/1973911552]
    

    Fazit

    WLan scheint zu funktionieren, ob es stabil ist kann ich aktuell noch nicht 100% sagen, sieht aber gut aus. Warten wir mal die Tests von einigen anderen noch ab. Jetzt noch PCIe vernünftig zusammen mit WiFi und das Ding 🙂 ist fast fertig!

  • DMESG Ausgabe für die Leute, die da was von verstehen.

    rock64@rockpro64:~$ dmesg | grep "wl"
    [    2.417589] [WLAN_RFKILL]: Enter rfkill_wlan_init
    [    2.418294] [WLAN_RFKILL]: Enter rfkill_wlan_probe
    [    2.418818] [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi_chip_type = ap6354
    [    2.419445] [WLAN_RFKILL]: wlan_platdata_parse_dt: enable wifi power control.
    [    2.420088] [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi power controled by gpio.
    [    2.420766] of_get_named_gpiod_flags: can't parse 'WIFI,poweren_gpio' property of node '/wireless-wlan[0]'
    [    2.420774] of_get_named_gpiod_flags: can't parse 'WIFI,vbat_gpio' property of node '/wireless-wlan[0]'
    [    2.420782] of_get_named_gpiod_flags: can't parse 'WIFI,reset_gpio' property of node '/wireless-wlan[0]'
    [    2.420817] of_get_named_gpiod_flags: parsed 'WIFI,host_wake_irq' property of node '/wireless-wlan[0]' - status (0)
    [    2.420824] [WLAN_RFKILL]: wlan_platdata_parse_dt: get property: WIFI,host_wake_irq = 3, flags = 0.
    [    2.421694] [WLAN_RFKILL]: wlan_platdata_parse_dt: The ref_wifi_clk not found !
    [    2.422399] [WLAN_RFKILL]: rfkill_wlan_probe: init gpio
    [    2.422878] [WLAN_RFKILL]: Exit rfkill_wlan_probe
    [    7.681669] ======== dhd_wlan_init_plat_data ========
    [    7.681704] dhd_wlan_init_gpio: WL_REG_ON=-1, WL_HOST_WAKE=-1
    [    7.681718] dhd_wlan_init_gpio: oob_irq=66, oob_irq_flags=0x414
    [    8.024245] CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211
    [    8.026210] CFG80211-ERROR) wl_init_prof : wl_init_prof: No profile
    [    8.026467] wl_escan_attach: Enter
    [    8.026494] wl_escan_init: Enter
    [    8.026923] wl_create_event_handler(): thread:wl_escan_handler:1a8 started
    [    8.066132] wl_ext_iapsta_attach_netdev: bssidx=0
    [    8.066146] Register interface [wlan0]  MAC: ac:83:f3:e6:1f:b2
    [    8.067154] dhd_wl_ioctl: returning as busstate=0
    [    8.102552] wl_ext_iapsta_attach_netdev: bssidx=0
    [    8.102558] wl_android_wifi_on in 1
    [    8.102564] wl_android_wifi_on in 2: g_wifi_on=0
                     Firmware: wl0: Mar  6 2017 10:16:06 version 9.87.51.7 (r686312) FWID 01-4dcc75d9
    [    9.034093] wl_android_wifi_on: Success
    [    9.180606] wl_cfgp2p_add_p2p_disc_if: wdev: ffffffc07a850c00, wdev->net:           (null)
    [    9.276042] wl_run_escan: LEGACY_SCAN sync ID: 0, bssidx: 0
    [   10.686203] wl_iw_event: Link UP with 44:4e:6d:a1:19:67
    [   10.686381] wl_bss_connect_done succeeded with 44:4e:6d:a1:19:67 
    [   10.686895] CFG80211-ERROR) wl_cfg80211_scan_abort : scan abort  failed 
    [   10.738415] wl_bss_connect_done succeeded with 44:4e:6d:a1:19:67 vndr_oui: 8C-FD-F0
    
  • Bluetooth

    Installation

    rock64@rockpro64:~$ sudo apt-get install blueman bluez bluez-obexd
    

    rfkill

    rock64@rockpro64:~$ sudo rfkill list
    0: bt_default: Bluetooth
    	Soft blocked: yes
    	Hard blocked: no
    1: phy0: Wireless LAN
    	Soft blocked: no
    	Hard blocked: no
    2: brcmfmac-wifi: Wireless LAN
    	Soft blocked: no
    	Hard blocked: no
    

    Bluetooth geblockt, freimachen.

    sudo rfkill unblock 0
    

    dmesg

    rock64@rockpro64:~$ dmesg | grep Blue
    [    1.455446] Bluetooth: Core ver 2.21
    [    1.455504] Bluetooth: HCI device and connection manager initialized
    [    1.455529] Bluetooth: HCI socket layer initialized
    [    1.455551] Bluetooth: L2CAP socket layer initialized
    [    1.455586] Bluetooth: SCO socket layer initialized
    [    2.290921] Bluetooth: Virtual HCI driver ver 1.5
    [    2.291448] Bluetooth: HCI UART driver ver 2.3
    [    2.291858] Bluetooth: HCI UART protocol H4 registered
    [    2.292325] Bluetooth: HCI UART protocol LL registered
    [    2.292792] Bluetooth: HCI UART protocol ATH3K registered
    [    2.407249] Bluetooth: RFCOMM socket layer initialized
    [    2.407741] Bluetooth: RFCOMM ver 1.11
    [    2.408107] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    [    2.408649] Bluetooth: HIDP socket layer initialized
    

    Nein, BT ist nicht mein Spezialgebiet. Ergebnis, hier tut sich nix! Obwohl eigentlich sieht das doch so weit gut aus!??

  • Heute mal kurz vermelden, das das WiFi so weit stabil läuft.

     frank@frank-MS-7A34:~$ ssh rock64@192.168.178.31
     rock64@192.168.178.31's password: 
     Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.4.154-1134-rockchip-ayufan-g0d09c8d7de9b aarch64)
                     _                     __   _  _   
      _ __ ___   ___| | ___ __  _ __ ___  / /_ | || |  
     | '__/ _ \ / __| |/ / '_ \| '__/ _ \| '_ \| || |_ 
     | | | (_) | (__|   <| |_) | | | (_) | (_) |__   _|
     |_|  \___/ \___|_|\_\ .__/|_|  \___/ \___/   |_|  
                         |_|                           
     
      * Documentation:  https://help.ubuntu.com
      * Management:     https://landscape.canonical.com
      * Support:        https://ubuntu.com/advantage
     
       System information as of Tue Mar  5 18:23:03 UTC 2019
     
       System load:  0.0               Processes:            169
       Usage of /:   5.0% of 28.30GB   Users logged in:      1
       Memory usage: 6%                IP address for eth0:  192.168.3.8
       Swap usage:   0%                IP address for wlan0: 192.168.178.31
     
      * Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd
        directly, see https://bit.ly/ubuntu-containerd or try it now with
     
          snap install microk8s --channel=1.14/beta --classic
     Last login: Tue Mar  5 15:31:16 2019 from 192.168.178.20
     rock64@rockpro64:~$ uptime
      18:23:08 up 1 day,  3:37,  2 users,  load average: 0.00, 0.00, 0.00
    
  • Kurztest mit 0.8.0rc8: gitlab-ci-linux-build-116

    da77049a-a1be-4658-a378-cc2d17a66c6a-grafik.png

    WiFi, wie oben beschrieben konfiguriert.

    Hardware

    • ROCKPro64 v2.1 mit WLan-Modul
    • Fritzbox 5GHz

    Download Test

    rock64@rockpro64:/mnt/home/rock64$ wget https://ftp.fau.de/mint/iso/stable/19.1/linuxmint-19.1-cinnamon-64bit.iso
    --2019-04-06 17:22:42--  https://ftp.fau.de/mint/iso/stable/19.1/linuxmint-19.1-cinnamon-64bit.iso
    Resolving ftp.fau.de (ftp.fau.de)... 131.188.12.211, 2001:638:a000:1021:21::1
    Connecting to ftp.fau.de (ftp.fau.de)|131.188.12.211|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1973911552 (1.8G) [application/x-iso9660-image]
    Saving to: ‘linuxmint-19.1-cinnamon-64bit.iso’
    
    linuxmint-19.1-cinn 100%[===================>]   1.84G  11.9MB/s    in 2m 37s  
    
    2019-04-06 17:25:19 (12.0 MB/s) - ‘linuxmint-19.1-cinnamon-64bit.iso’ saved [1973911552/1973911552]
    

    Wenn das Speichermedium ausreichend schnell ist, dann bekommt man eine sehr flotte Verbindung hin. Die 11,9MB/s müssten mein maximaler Download sein. (100Mbit/s). Auf der SD-Karte kam es zu Pausen, ich vermute das die die Daten nicht schnell genug wegschreiben kann.

  • Für Bluetooth scheint noch was zu fehlen

    root@rockpro64:/mnt/home/rock64# service bluetooth status
    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
       Active: active (running) since Sat 2019-04-06 17:36:54 UTC; 2min 11s ago
         Docs: man:bluetoothd(8)
     Main PID: 2421 (bluetoothd)
       Status: "Running"
        Tasks: 1 (limit: 2380)
       CGroup: /system.slice/bluetooth.service
               └─2421 /usr/lib/bluetooth/bluetoothd
    
    Apr 06 17:36:54 rockpro64 systemd[1]: Starting Bluetooth service...
    Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Bluetooth daemon 5.48
    Apr 06 17:36:54 rockpro64 systemd[1]: Started Bluetooth service.
    Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Starting SDP server
    Apr 06 17:36:54 rockpro64 bluetoothd[2421]: kernel lacks bnep-protocol support
    Apr 06 17:36:54 rockpro64 bluetoothd[2421]: System does not support network plugin
    Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Bluetooth management interface 1.10 initialized
    
  • Kernel 6.0.0-rc7

    ROCKPro64 rockpro64
    2
    0 Stimmen
    2 Beiträge
    214 Aufrufe
    FrankMF
    Geht [image: 1664296204344-fb1bc176-5c57-48bf-8d75-1834b5548552-grafik.png] https://github.com/ayufan-rock64/linux-mainline-kernel/releases 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
  • Mainline 5.13.x

    Images linux rockpro64
    1
    0 Stimmen
    1 Beiträge
    245 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - RTC

    Hardware rockpro64
    1
    1
    0 Stimmen
    1 Beiträge
    396 Aufrufe
    Niemand hat geantwortet
  • Die ersten Schritte nach der Installation!

    Angeheftet ROCKPro64 howto rockpro64
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Benchmark Script

    ROCKPro64 rockpro64
    2
    0 Stimmen
    2 Beiträge
    678 Aufrufe
    FrankMF
    Mainline Mein gekürztes Ergebnis auf einem ROCKPro64 v2.0 mit 4GB RAM und 4.18er Kernel, dieser ROCK benutzt eine SD-Karte! Gekürzt Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic Architecture: arm64 Uptime: 16:14:56 up 4 min, 1 user, load average: 0.08, 0.02, 0.01 Linux 4.18.0-rc5-1048-ayufan-g69e417fe38cf (rockpro64) 07/27/18 _aarch64_ (6 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.54 0.00 0.74 0.39 0.00 98.33 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn mmcblk0 20.63 634.58 48.26 168380 12804 nvme0n1 0.14 4.01 0.00 1064 0 total used free shared buff/cache available Mem: 3.8G 241M 3.4G 19M 201M 3.5G Swap: 0B 0B 0B ########################################################################## Komplett -> http://ix.io/1ix7
  • stretch-minimal-rockpro64

    Verschoben Linux rockpro64
    3
    0 Stimmen
    3 Beiträge
    1k 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
  • bionic-containers-rockpro64

    Verschoben Linux rockpro64
    2
    0 Stimmen
    2 Beiträge
    993 Aufrufe
    FrankMF
    Ich habe das jetzt mal endlich getestet https://forum.frank-mankel.org/topic/296/rockpro64-docker-image
  • Schaltpläne veröffentlicht!

    ROCKPro64 rockpro64
    1
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet