Skip to content

ROCKPro64 - Armbian - Go & Restic installieren!

Verschoben Armbian
2 1 680
  • Da ich ja heute ziemlich gescheitert bin, Go und Restic zu installieren, hier mal ein neuer Ansatz. Ich will ja immer noch die USB3 HDD in mein NAS einbauen 🙂

    Go installieren

    Das File holen, ich hatte natürlich vorher das Falsche installiert 😞 Naja, macht nix. Hier das Richtige für den ROCKPro64 mit Armbian.

    wget https://dl.google.com/go/go1.11.4.linux-arm64.tar.gz
    

    Das File dann auspacken nach /usr/local

    tar -C /usr/local -xzf go1.11.4.linux-arm64.tar.gz
    

    Danach im Profil den Suchpfad für das Programm einbauen.

    nano /etc/profile
    

    Ganz ans Ende folgendes einfügen.

    export PATH=$PATH:/usr/local/go/bin
    

    Danach funktioniert die Programmiersprache Go wie gewünscht.

    root@rockpro64:~# go version
    go version go1.11.4 linux/arm64
    

    Restic

    Das File bei guthub abholen.

    root@rockpro64:/home/frank# git clone https://github.com/restic/restic
    Cloning into 'restic'...
    remote: Enumerating objects: 6, done.
    remote: Counting objects: 100% (6/6), done.
    remote: Compressing objects: 100% (6/6), done.
    remote: Total 49414 (delta 1), reused 0 (delta 0), pack-reused 49408
    Receiving objects: 100% (49414/49414), 54.98 MiB | 7.39 MiB/s, done.
    Resolving deltas: 100% (30365/30365), done.
    

    Ins Verzeichnis wechseln.

    root@rockpro64:/home/frank# cd restic/
    

    Restic bauen

    root@rockpro64:/home/frank/restic# go run build.go
    go: finding github.com/inconshreveable/mousetrap v1.0.0
    go: finding github.com/pkg/xattr v0.3.1
    go: finding github.com/dgrijalva/jwt-go v3.2.0+incompatible
    go: finding github.com/russross/blackfriday v1.5.1
    go: finding github.com/satori/go.uuid v1.2.0
    go: finding github.com/spf13/cobra v0.0.3
    go: finding github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2
    go: finding github.com/pmezard/go-difflib v1.0.0
    go: finding cloud.google.com/go v0.27.0
    go: finding gopkg.in/ini.v1 v1.38.2
    go: finding github.com/Azure/azure-sdk-for-go v20.1.0+incompatible
    go: finding golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
    go: finding github.com/elithrar/simple-scrypt v1.3.0
    go: finding github.com/mattn/go-isatty v0.0.4
    go: finding golang.org/x/net v0.0.0-20180906233101-161cd47e91fd
    go: finding gopkg.in/yaml.v2 v2.2.1
    go: finding google.golang.org/appengine v1.1.0
    go: finding github.com/google/go-cmp v0.2.0
    go: finding gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637
    go: finding github.com/pkg/profile v1.2.1
    go: finding gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
    go: finding google.golang.org/api v0.0.0-20180907210053-b609d5e6b7ab
    go: finding golang.org/x/text v0.3.0
    go: finding github.com/pkg/sftp v1.8.2
    go: finding github.com/minio/minio-go v6.0.7+incompatible
    go: finding github.com/restic/chunker v0.2.0
    go: finding github.com/kr/pretty v0.1.0
    go: finding github.com/jtolds/gls v4.2.1+incompatible
    go: finding gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
    go: finding github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c
    go: finding github.com/go-ini/ini v1.38.2
    go: finding github.com/cpuguy83/go-md2man v1.0.8
    go: finding github.com/golang/protobuf v1.2.0
    go: finding golang.org/x/sys v0.0.0-20180525142821-c11f84a56e43
    go: finding github.com/pkg/errors v0.8.0
    go: finding golang.org/x/sys v0.0.0-20180907202204-917fdcba135d
    go: finding github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a
    go: finding github.com/kurin/blazer v0.5.1
    go: finding github.com/stretchr/testify v1.2.2
    go: finding github.com/mitchellh/go-homedir v1.0.0
    go: finding golang.org/x/crypto v0.0.0-20180904163835-0709b304e793
    go: finding github.com/cenkalti/backoff v2.0.0+incompatible
    go: finding github.com/Azure/go-autorest v10.15.3+incompatible
    go: finding github.com/ncw/swift v1.0.41
    go: finding github.com/juju/ratelimit v1.0.1
    go: finding github.com/kr/fs v0.1.0
    go: finding github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf
    go: finding github.com/davecgh/go-spew v1.1.1
    go: finding github.com/kr/text v0.1.0
    go: finding github.com/hashicorp/golang-lru v0.5.0
    go: finding github.com/spf13/pflag v1.0.2
    go: finding github.com/marstr/guid v1.1.0
    go: finding golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f
    go: finding github.com/kr/pty v1.1.1
    go: finding bazil.org/fuse v0.0.0-20180421153158-65cc252bf669
    root@rockpro64:/home/frank/restic#
    

    Fertig! Restic läuft?

    root@rockpro64:/home/frank/restic# ./restic
    
    restic is a backup program which allows saving multiple revisions of files and
    directories in an encrypted repository stored on different backends.
    
    Usage:
      restic [command]
    
    Available Commands:
      backup        Create a new backup of files and/or directories
      cache         Operate on local cache directories
      cat           Print internal objects to stdout
      check         Check the repository for errors
      diff          Show differences between two snapshots
      dump          Print a backed-up file to stdout
      find          Find a file, a directory or restic IDs
      forget        Remove snapshots from the repository
      generate      Generate manual pages and auto-completion files (bash, zsh)
      help          Help about any command
      init          Initialize a new repository
      key           Manage keys (passwords)
      list          List objects in the repository
      ls            List files in a snapshot
      migrate       Apply migrations
      mount         Mount the repository
      prune         Remove unneeded data from the repository
      rebuild-index Build a new index file
      recover       Recover data from the repository
      restore       Extract the data from a snapshot
      self-update   Update the restic binary
      snapshots     List all snapshots
      stats         Scan the repository and show basic statistics
      tag           Modify tags on snapshots
      unlock        Remove locks other processes created
      version       Print version information
    
    Flags:
          --cacert file              file to load root certificates from (default: use system certificates)
          --cache-dir string         set the cache directory. (default: use system default cache directory)
          --cleanup-cache            auto remove old cache directories
      -h, --help                     help for restic
          --json                     set output mode to JSON for commands that support it
          --key-hint string          key ID of key to try decrypting first (default: $RESTIC_KEY_HINT)
          --limit-download int       limits downloads to a maximum rate in KiB/s. (default: unlimited)
          --limit-upload int         limits uploads to a maximum rate in KiB/s. (default: unlimited)
          --no-cache                 do not use a local cache
          --no-lock                  do not lock the repo, this allows some operations on read-only repos
      -o, --option key=value         set extended option (key=value, can be specified multiple times)
      -p, --password-file string     read the repository password from a file (default: $RESTIC_PASSWORD_FILE)
      -q, --quiet                    do not output comprehensive progress report
      -r, --repo string              repository to backup to or restore from (default: $RESTIC_REPOSITORY)
          --tls-client-cert string   path to a file containing PEM encoded TLS client certificate and private key
      -v, --verbose n                be verbose (specify --verbose multiple times or level n)
    
    Use "restic [command] --help" for more information about a command.
    
    root@rockpro64:/home/frank/restic# ./restic version
    restic 0.9.3 (v0.9.3-83-g0dd80542) compiled with go1.11.4 on linux/arm64
    

    Damit wir das aber an der richtigen Stelle haben, kopieren wir das mal nach /usr/bin

    root@rockpro64:/home/frank/restic# sudo cp restic /usr/bin
    

    Nun kann man das Programm von überall aufrufen.

    root@rockpro64:/home/frank/restic# restic
    
    restic is a backup program which allows saving multiple revisions of files and
    directories in an encrypted repository stored on different backends.
    
    Usage:
      restic [command]
    
    Available Commands:
      backup        Create a new backup of files and/or directories
      cache         Operate on local cache directories
      cat           Print internal objects to stdout
      check         Check the repository for errors
      diff          Show differences between two snapshots
      dump          Print a backed-up file to stdout
      find          Find a file, a directory or restic IDs
      forget        Remove snapshots from the repository
      generate      Generate manual pages and auto-completion files (bash, zsh)
      help          Help about any command
      init          Initialize a new repository
      key           Manage keys (passwords)
      list          List objects in the repository
      ls            List files in a snapshot
      migrate       Apply migrations
      mount         Mount the repository
      prune         Remove unneeded data from the repository
      rebuild-index Build a new index file
      recover       Recover data from the repository
      restore       Extract the data from a snapshot
      self-update   Update the restic binary
      snapshots     List all snapshots
      stats         Scan the repository and show basic statistics
      tag           Modify tags on snapshots
      unlock        Remove locks other processes created
      version       Print version information
    
    Flags:
          --cacert file              file to load root certificates from (default: use system certificates)
          --cache-dir string         set the cache directory. (default: use system default cache directory)
          --cleanup-cache            auto remove old cache directories
      -h, --help                     help for restic
          --json                     set output mode to JSON for commands that support it
          --key-hint string          key ID of key to try decrypting first (default: $RESTIC_KEY_HINT)
          --limit-download int       limits downloads to a maximum rate in KiB/s. (default: unlimited)
          --limit-upload int         limits uploads to a maximum rate in KiB/s. (default: unlimited)
          --no-cache                 do not use a local cache
          --no-lock                  do not lock the repo, this allows some operations on read-only repos
      -o, --option key=value         set extended option (key=value, can be specified multiple times)
      -p, --password-file string     read the repository password from a file (default: $RESTIC_PASSWORD_FILE)
      -q, --quiet                    do not output comprehensive progress report
      -r, --repo string              repository to backup to or restore from (default: $RESTIC_REPOSITORY)
          --tls-client-cert string   path to a file containing PEM encoded TLS client certificate and private key
      -v, --verbose n                be verbose (specify --verbose multiple times or level n)
    
    Use "restic [command] --help" for more information about a command.
    
    root@rockpro64:/home/frank/restic# restic version
    restic 0.9.3 (v0.9.3-83-g0dd80542) compiled with go1.11.4 on linux/arm64
    root@rockpro64:/home/frank/restic# 
    

    Wenn sich jemand fragt, warum man das selber baut und damit natürlich ein wenig Arbeit hat. Das Restic was in den normalen Quellen ist, ist viel zu alt. Kann ich nicht gebrauchen.

    Wieder ein Schritt weiter!! 🙂 Jetzt kann ich ja das NAS wieder in Angriff nehmen!

  • Der frühe Vogel.... 🙂

    IMG_20181226_072626_ergebnis.jpg

    Das oben geschriebene eben nochmal durchgeführt, funktioniert einwandfrei. Jetzt kann ich die USB3-Platte umbauen und den Job verlagern. Dann habe ich einen ROCKPro64 wieder frei zum Testen 😉

  • ROCKPro64 - Debian Bullseye Teil 1

    ROCKPro64 debian linux rockpro64
    17
    4
    0 Stimmen
    17 Beiträge
    2k Aufrufe
    FrankMF
    Durch diesen Beitrag ist mir mal wieder eingefallen, das wir das erneut testen könnten Also die aktuellen Daten von Debian gezogen. Das Image gebaut, könnt ihr alles hier im ersten Beitrag nachlesen. Da die eingebaute Netzwerkschnittstelle nicht erkannt wurde, habe ich mal wieder den USB-to-LAN Adapter eingesetzt. Bus 005 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet Die Installation wollte ich auf einem NVMe Riegel installieren. Die Debian Installation durchgezogen und nach erfolgreicher Installation neugestartet. Und siehe da, ohne das man alles möglich ändern musste, bootete die NVMe SSD Eingesetzter uboot -> 2020.01-ayufan-2013...... Die nicht erkannte LAN-Schnittstelle müsste an nicht freien Treibern liegen, hatte ich da irgendwo kurz gelesen. Beim Schreiben dieses Satzes kam die Nacht und ich konnte noch mal drüber schlafen. Heute Morgen, beim ersten Kaffee, dann noch mal logischer an die Sache ran gegangen. Wir schauen uns mal die wichtigsten Dinge an. root@debian:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff 3: enx000acd26e2c8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff inet 192.168.3.208/24 brd 192.168.3.255 scope global dynamic enx000acd26e2c8 valid_lft 42567sec preferred_lft 42567sec inet6 fd8a:6ff:2880:0:20a:cdff:fe26:e2c8/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 2a02:908:1260:13bc:20a:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr valid_lft 5426sec preferred_lft 1826sec inet6 fe80::20a:cdff:fe26:e2c8/64 scope link valid_lft forever preferred_lft forever Ok, er zeigt mir die Schnittstelle eth0 ja an, dann kann es an fehlenden Treibern ja nicht liegen. Lässt dann auf eine fehlerhafte Konfiguration schließen. Nächster Halt wäre dann /etc/network/interfaces Das trägt Debian ein # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enx000acd26e2c8 iface enx000acd26e2c8 inet dhcp # This is an autoconfigured IPv6 interface iface enx000acd26e2c8 inet6 auto Gut, bei der Installation hat Debian ja nur die zusätzliche Netzwerkschnittstelle erkannt, folgerichtig ist die auch als primäre Schnittstelle eingetragen. Dann ändern wir das mal... # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug enx000acd26e2c8 allow-hotplug eth0 #iface enx000acd26e2c8 inet dhcp iface eth0 inet dhcp # This is an autoconfigured IPv6 interface #iface enx000acd26e2c8 inet6 auto iface eth0 inet6 auto Danach einmal alles neu starten bitte systemctl status networking Da fehlte mir aber jetzt die IPv4 Adresse, so das ich einmal komplett neugestartet habe. Der Ordnung halber, so hätte man die IPv4 Adresse bekommen. dhclient eth0 Nachdem Neustart kam dann das root@debian:/etc/network# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff inet 192.168.3.172/24 brd 192.168.3.255 scope global dynamic eth0 valid_lft 42452sec preferred_lft 42452sec inet6 fd8a:6ff:2880:0:6003:b0ff:fed6:dcb3/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 2a02:908:1260:13bc:6003:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr valid_lft 5667sec preferred_lft 2067sec inet6 fe80::6003:b0ff:fed6:dcb3/64 scope link valid_lft forever preferred_lft forever 3: enx000acd26e2c8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff Fertig, eth0 läuft. Nun kann man den zusätzlichen Adapter entfernen oder halt konfigurieren, wenn man ihn braucht. Warum der Debian Installer die eth0 nicht erkennt verstehe ich nicht, aber vielleicht wird das irgendwann auch noch gefixt. Jetzt habe ich erst mal einen Workaround um eine Installation auf den ROCKPro64 zu bekommen.
  • ROCKPro64 - Kernel switchen

    Verschoben ROCKPro64 rockpro64
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Stromverbrauch

    Hardware hardware rockpro64
    1
    0 Stimmen
    1 Beiträge
    839 Aufrufe
    Niemand hat geantwortet
  • Neuer Bootprozeß seit 0.7.x

    ROCKPro64 rockpro64
    1
    0 Stimmen
    1 Beiträge
    886 Aufrufe
    Niemand hat geantwortet
  • Images 0.7.x

    Images rockpro64
    22
    0 Stimmen
    22 Beiträge
    3k Aufrufe
    FrankMF
    Ayufan Images nutzen user: rock64 pw: rock64
  • Mainline Kernel 4.18.0-rc3

    Linux rockpro64
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Wichtig!

    Verschoben Archiv rockpro64
    1
    0 Stimmen
    1 Beiträge
    775 Aufrufe
    Niemand hat geantwortet
  • bionic-minimal-rockpro64

    Verschoben Linux rockpro64
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF
    Neue Version 0.7.3 Soll gefixt sein. USB2/3 PCIe LED's LED's Weiße LED starten nach dem Booten dauerhaft OK PCIe Treiber soll drin sein, aber die 3,3V werden nicht zur Karte durchgeschaltet. Somit funktioniert PCIe nicht. Nicht OK USB2 USB-Funkadapter wird erkannt Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 1113:3163 Medion AG Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Funktastur getestet OK USB3 Angeschlossene SSD wird erkannt OK Kurzer Speed-Test. Bitte dran denken, wir haben hier noch kein optimiertes Release, sondern einen ersten Gehversuch. Da sind noch ganz viele Dinge anzupassen, was sicherlich noch Wochen, wenn nicht Monate dauert! Also, die Messergebnisse mit der nötigen Vorsicht genießen. Und dran denken, wenn @tkaiser das Ding richtig untersucht, dann haben wir auch ordentliche Meßergebnisse! Haupt-PC 2,5Zoll am USB3-Port sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync [sudo] Passwort für frank: 4096+0 Datensätze ein 4096+0 Datensätze aus 4294967296 bytes (4,3 GB, 4,0 GiB) copied, 38,171 s, **113 MB/s** ROCKPro64 Ich benutze eine SAN Disk 240GB SSD an einem Inateck USB 3.0 2,5 Zoll Adapter. Info zum USB-Adapter lsusb Bus 004 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge 2,5 Zoll SSD am USB2-Port sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 160.058 s, **26.8 MB/s** 2,5 Zoll SSD am USB3 Port sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 36.2588 s, **118 MB/s** Der @tkaiser erreicht deutlich höhere Geschwindigkeiten. Bis zu 400 MB/s. Hier nachzulesen. Wenn ich so einen iozone Test mache wie der Thomas, dann erreiche ich ähnliche Werte sudo iozone -a -g 1000m -s 1000m -i 0 -i 1 -r 16384K 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: Sat May 26 05:16:40 2018 Auto Mode Using maximum file size of 1024000 kilobytes. File size set to 1024000 kB Record Size 16384 kB Command line used: iozone -a -g 1000m -s 1000m -i 0 -i 1 -r 16384K 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 1024000 16384 383912 348782 1515506 1659394 Da muss ich den Thomas nochmal was zu fragen. ?? UART2 Und zum Schluss ist mir noch aufgefallen, das die UART2 Schnittstelle jetzt funktioniert Ok, den Adapter, der morgen kommt, habe ich dann umsonst bestellt. LOL OK