
ioBroker: Rock64 – Der leistungsstärkste Einplatinencomputer als Smart Home Zentrale
Hallo ioBroker-Community,
wie einige bereits mitbekommen haben, hatte ich mir vor kurzem einen Rock64 bestellt. Dies ist ein Einplatinencomputer, der das RAM-Problem des Raspberry Pi's zu lösen vermag, da er davon 4 GB besitzt.
Im folgenden Video zeige ich euch den Rock64 und erkläre, wie man von einem Raspberry Pi auf den Rock64 möglichst schmerzfrei upgraden kann. Am Ende des Videos gibt es noch ein Feedback, nach einigen Tagen Nutzung.
Wichtig: Wenn ihr den Rock64 auf einer eMMC betreiben wollt statt auf einer SD Karte, geht genau vor wie im Video und führt am Ende
1 | sudo nand-sata-install |
auf dem Rock64 aus. Wenn ihr nur mit der SD-Karte arbeiten möchtet, nehmt nicht das Image vom April'18, sondern das zuvor oder wenn es in Zukunft ein neues gibt, dann dieses.
Links zur Hardware:
Ich selbst habe die Hardware (bis auf die SD-Karte), direkt bei pine64 bestellt. Jedoch muss man bedenken, dass man hier die deutlich längere Lieferzeit sowie schlechtere Chancen bei einem Mangel hat. Ebenfalls können euch noch Zoll-Gebühren winken. Leider habe ich den Rock64 nur mit 2GB RAM auf Amazon.de gefunden.
Das Original Gehäuse gibt es nicht bei Amazon -- mir persönlich gefällt es auch nicht. Ihr habt jedoch die Möglichkeit ein Pi3 Gehäuse zu nehmen und dort wo der Stromanschluss für den Rock64 ist, ein Loch rein zu bohren.
Amazon
SD Karte [Amazon]
Rock64 [Amazon, derzeit wohl nur mit 2GB RAM bei Amazon.de erhältlich!]
Netzteil [Amazon]
Gehäuse Raspberry [Amazon]
pine64
eMMC 32 GB [pine64.org, es gibt auch 16 und 32GB]
Rock64 [pine64.org, 4GB RAM]
Netzteil [pine64.org]
Gehäuse [pine64.org]
Den Autostart fixen (Image April'18)
Im nachhinein hatte ich festgestellt, dass der Autostart in dem von mir verwendeten Image nicht funktioniert. Hierzu muss die Datei iobroker.sh
im Ordner /etc/init.d/
erstellt werden.
Ladet euch die folgende Datei runter iobroker.sh (es ist eine .txt Datei). Ändert die Dateiendung von .txt auf .sh und legt sie im Ordner /etc/init.d/
ab.
Nun gebt folgendes auf eurem Rock64 ein:
1 | sudo chmod +x /etc/init.d/iobroker.sh |
um die Datei ausführbar zu machen, gefolgt von
1 | sudo update-rc.d iobroker.sh defaults |
um sie in den Autostart aufzunehmen.
Anschließend sollte ioBroker beim starten des Rock64's automatisch gestartet werden.
Falls Ihr Fragen, Wünsche oder Anregungen habt, stellt diese gerne in Form eines Kommentars oder schreibt eine Mail an info@iot-blog.net.
sudo update-rc.d iobroker.sh Defaults
insserv: script iobroker.sh is not an executable regular file, skipped!
Hast du die Datei iobroker.sh wie im Blog beschrieben erstellt?
Was sagt „ls -lah /etc/init.d/ | grep iobroker“?
Hallo
Vielen Dank für das Video, war sehr hilfreich. Aber auch bei mir geht der Autostart nicht,
Wenn ich ls -lah /etc/init.d/ | grep iobroker eingebe, kommt
-rw-r–r– 1 root root 1,1K Nov 30 15:47 iobroker.sh
kannst du mir bitte weiter helfen, Danke
mfg
Stephan
Probier mal bitte:
und dann nochmal
Hallo
Das scheint geklappt zu haben.
Nach dem Reboot steht im iobroker status = iobroker is running. Im Browser erscheint die Seite auch wieder von alleine. Schon mal Danke dafür.
Aber ich hab schon den nächsten Fehler, der ist mir erst später aufgefallen, es sind zwar alle Adapter vorhanden, sieht alles aus wie vorher, aber es sind alle Views weg, Wenn ich vis öffne, kommt immer nur ein Demo View. Meine Views sind nicht mehr da. Hab schon das Backup neu drauf gemacht, aber keine Änderung.
Mfg
Stephan
Das ist merkwürdig. Erinnert mich an diesen Thread: https://forum.iobroker.net/viewtopic.php?t=18232
Evtl. fehlt bei dir auch der vis Ordner im Backup?
Ja genau, hab anscheinend das selbe Problem wie dort in dem Forum, kein vis vorhanden.
Hallo, ich bin jetzt auch ein stolzer Besitzer von Rock64,
Bei mir leuft aktuel alles auf microSD kannst du mir sagen wie ich alles unter Windows auf die eMMC umstellen kann? Habe auch kein USB auf eMMC Adapter.
Danke im voraus
Alex
Wenn du das Original Modul hast, ist die einzige Vorgehensweise die ich kenne: SD Karte wie beschrieben aufsetzen und dann wie oben im Beitrag mit
sudo nand-sata-install
die SD Karte auf die eMMC zu flashen. Also eMMC dann am Rock angeschlossen und schon ein laufendes System auf SD haben ist Voraussetzung.
Danke für schnelle Antwort.
Wenn ich bieses befehl ( sudo nand-sata-install ) eingebe kommt eine blaue maske (kann das bild leider nicht einfügen). Was soll ich zuerst ausführen?
1 Boot from eMMC – system on eMMC
5 Install the bootloader to SPI Flash
6 Boot from SPI – system on SATA, USB or NVMe
MfG
1 müsste die richtige Option sein. Dann etwas Geduld mitbringen, der Prozess dauert gerne 30 Minuten und sollte nicht unterbrochen werden. Danach bootet er zukünftig automatisch von der eMMC Karte und die SD Karte kann entfernt werden.
Mein eMMC Modul hängt leider erneut beim Zoll, allerdings habe ich es in der Familie schon ein mal aufgesetzt, entsprechend könnte folgender Thread später für dich noch interessant sein:
https://forum.iobroker.net/viewtopic.php?t=13398
Falls mein eMMC Modul irgendwann noch kommt, mache ich gerne noch ein Video dazu. Wird für dich leider zu spät kommen. 😀
Habe gerade gemacht. Meldung war alles kopiert. Problem ist startet nur wenn sd karte drin ist,also von der sd Karte. Was soll ich jetzt machen?
Gruß Alex
Welches Image hast du genutzt? Mit dem vom April sollte es funktionieren.
es ist April img.
es sollte doch mit dem befehl „df“ auch das eMMC modul angezeigt werden oder?
bei mir ist es nicht so…
root@ioBroker-Rock64:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 2038008 0 2038008 0% /dev
tmpfs 409788 15780 394008 4% /run
/dev/mmcblk1p1 30102548 1797160 27971472 7% /
tmpfs 2048928 0 2048928 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 2048928 0 2048928 0% /sys/fs/cgroup
tmpfs 2048928 4 2048924 1% /tmp
/dev/zram0 49584 2932 43068 7% /var/log
tmpfs 409784 0 409784 0% /run/user/0
root@ioBroker-Rock64:~#
In fdisk -l sollte es aufgeführt werden, in df eigentlich auch. Modul steckt korrekt?
Hi,
Habe gerade mit USB3.0 SSD getestet und es funktioniert. Nur mit der option 1 braucht er die SD karte zum booten,
und alles andere liegt auf der SSD.
Mit der eMMC geht bei mir nicht, ist wahrscheinlich defekt…
So,
jetzt nochmal USB-SSD und option 5 dann 6. Sollte eigentlich ohne SD Karte gehen.
Geht aber nicht. Kriege nicht zum laufen. SD Karte wieder rein und startet wieder von SD und alles auf der SD drauf
Moin!
Bei mir läuft der Autostart auch nicht, wenn „ls -lah /etc/init.d/ | grep iobroker“ eingebe kommt als Meldung
-rwxr-xr-x 1 root root 1.1K Dec 7 07:04 iobroker.sh
– die eEchte stimmen also, trotzdem muss ich den Dienst immer manuell starten, kannst Du mir helfen?
Viele Grüße!
Michael
Ist das Skript fehlerfrei? Also kannst du mittels
Den ioBroker starten?
Und sonst die Anleitung wie im Beitrag befolgt?
Danke für Deine Unterstützung!
Installiert habe ich mit nach dieser Anleitung: –> https://forum.iobroker.net/viewtopic.php?t=17764 –> das April Image ist bei mir andauernd ausgestiegen!
/etc/init.d/iobroker.sh start –> iobroker startet damit, das einzige ws eben nicht läuft ist der Autostart von iobroker! Die iobroker.sh ist als Verknüpfung in rc2.d zu finden nachdem ich Deine Befehle oben eingegeben habe, ich bin also ziemlich ratlos wo es klemmt, aber auch ein Linux Anfänger…
Nachtrag: iobroker.sh ist als Verknüpfung in rc0.d bis rc6.d vorhandne, ich habe die Installation mal komplett wiederholt –> manuell gestartet läuft iobroker problemlos, per autostart tut sich nix… ich stehe auf dem Schlauch!
Also wenn du es wie beschrieben gemacht hast und es trotzdem zu Problemen kommt, könnte es evtl daran liegen dass in der /etc/sudoers etwas in Richtung defaults requiretty steht. Das könntest du noch nachschauen.
Mahlzeit!
Das steht in der Datei:
———————————————————————————————————–
Defaults env_reset
Defaults mail_badpass
Defaults secure_path=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin“
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on „#include“ directives:
#includedir /etc/sudoers.d
————————————————————————————————————–
Das steht in der iobroker.sh:
—————————————————————————————————————
#!/bin/bash
### BEGIN INIT INFO
# Provides: iobroker.sh
# Required-Start: $network $local_fs $remote_fs
# Required-Stop:: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts ioBroker
# Description: starts ioBroker
### END INIT INFO
(( EUID )) && echo .You need to have root privileges.. && exit 1
PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid
NODECMD=/usr/bin/node
IOBROKERCMD=/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js
RETVAL=0
IOBROKERUSER=root
start() {
export IOBROKER_HOME=/opt/iobroker
echo -n „Starting ioBroker“
sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD start
RETVAL=$?
}
stop() {
echo -n „Stopping ioBroker“
sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD stop
RETVAL=$?
}
case „$1“ in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo „Usage: iobroker {start|stop|restart}“
exit 1
;;
esac
exit $RETVAL
—————————————————————————————————————–
Hat sich mittlerweile geklärt, die Anleitung für die Installation hatte einen Fehler und es gibt eine neue mit der der Autostart klappt!
Hallo bei mir klappt das mit dem Autostart nicht. Obwohl ich alles so gemacht habe wie beschrieben.
Bei mir funktioniert der Autostart leider nicht.
Hallo
ich bin gestern auf den Rock64 umgezogen funktioniert alles nur der Rpi2.0 Adapter nicht so ganz.
Ich habe das imige direckt auf die emmc Karte geschrieben bei der SD karte kam kein Fehler
Wenn ich die SD Karte in den Adapter Einstellungen aktiviere kommt diese Fehlermeldung.
Cannot evaluate: Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk0p1 29716264 2303564 27082708 8% / /1024
Hast du ein fertiges Image genutzt, falls ja wurde der RPI Adapter bereits modifiziert und du musst nur die Instanz entfernen und neu anlegen. Ansonsten ist eine Modifikation an der io-package.json des Adapters notwendig.
Danke für die schelle Antwort
Ich habe das Image vom 20.04.2018 genommen.
Nach dem ich mein backup installiert hatte
Habe ich die Datei io-package.json die ich vorher gesichert hatte überschrieben.
Alles andere im rpi Adapter wie Temperatur, CPU, RAM funktioniert ja
Was muss ich in der Datei ändern?
Gruß Günther
So schaut die Datei auf meinem Rock aus:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
"common": {
"name": "rpi2",
"title": "RPI-Monitor",
"desc": {
"en": "RPI-Monitor for ioBroker Installations",
"de": "RPI-Monitor für ioBroker",
"ru": "RPI-Монитор для ioBroker"
},
"version": "0.3.2",
"news": {
"0.3.2": {
"en": "fixed Mem available readings on Stretch",
"de": "mem available bei strech gefixt",
"ru": "fixed Mem available readings on Stretch"
},
"0.3.1": {
"en": "Fixup swap_used calculation.",
"de": "Korrigiere swap_used Kalkulation",
"ru": "Исправлено вычисление swap_used"
},
"0.3.0": {
"en": "Add GPIO direction indication",
"de": "GPIO Richtung States hinzugefügt",
"ru": "Добавлены состояния для индикации направления GPIO"
},
"0.2.2": {
"en": "Use BCM enumeration",
"de": "Benutze BCM Numerierung",
"ru": "Используется BCM нумерация"
},
"0.2.1": {
"en": "fix start of adapter",
"de": "Korrigiert Adapterstart",
"ru": "Исправлен старт драйвера"
},
"0.2.0": {
"en": "implement GPIOs control",
"de": "Implementiert die Steuerung von GPIOs",
"ru": "Добавлено управление GPIOs"
}
},
"mode": "daemon",
"platform": "javascript/Node.js",
"os": ["linux"],
"loglevel": "info",
"keywords": ["ioBroker", "monitoring", "raspberry", "orangepi", "odroid", "bananapi", "gpio"],
"main": "main.js",
"authors": [
"Christian Baumgartner", "husky-koglhof <husky.koglhof@icloud.com>"
],
"license": "MIT",
"singletonHost": true,
"readme": "https://github.com/ioBroker/ioBroker.rpi2/blob/master/README.md",
"icon": "rpi.png",
"type": "hardware",
"enabled": true,
"config":{
"minWidth": 650,
"width": 700,
"minHeight": 600,
"height": 600
},
"extIcon": "https://raw.githubusercontent.com/ioBroker/ioBroker.rpi2/master/admin/rpi.png"
},
"native": {
"c_cpu": true,
"c_raspberry": false,
"c_memory": true,
"c_network": true,
"c_sdcard": true,
"c_swap": true,
"c_temperature": true,
"c_uptime": true,
"c_wlan": true,
"interval": 60000,
"cpu": {
"cpu_frequency": {
"command": "cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq",
"regexp": "(.*)",
"post": "$1/1000"
},
"load1,load5,load15": {
"command": "cat /proc/loadavg",
"regexp": "^(\\S+)\\s(\\S+)\\s(\\S+)",
"post": ""
},
"scaling_governor": {
"command": "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor",
"regexp": "(.*)",
"post": ""
}
},
"raspberry": {
"cpu_voltage": {
"command": "vcgencmd measure_volts core",
"regexp": "(\\d+.\\d+)V",
"post": ""
},
"mem_arm": {
"command": "vcgencmd get_mem arm",
"regexp": "(\\d+)",
"post": ""
},
"mem_gpu": {
"command": "vcgencmd get_mem gpu",
"regexp": "(\\d+)",
"post": ""
}
},
"memory": {
"memory_total": {
"command": "cat /proc/meminfo",
"regexp": "MemTotal:\\s+(\\d+)",
"post": "$1/1024"
},
"memory_free": {
"command": "cat /proc/meminfo",
"regexp": "MemFree:\\s+(\\d+)",
"post": "$1/1024"
},
"memory_available": {
"command": "cat /proc/meminfo",
"regexp": "MemAvailable:\\s+(\\d+)",
"post": "$1/1024",
"multiline": true
}
},
"network": {
"net_received": {
"command": "cat /sys/class/net/eth0/statistics/rx_bytes",
"regexp": "(.*)",
"post": "$1*-1"
},
"net_send": {
"command": "cat /sys/class/net/eth0/statistics/tx_bytes",
"regexp": "(.*)",
"post": ""
}
},
"sdcard": {
"sdcard_root_total": {
"command": "df /",
"regexp": "\\S+\\s+(\\d+).*\\/$",
"post": "$1/1024",
"multiline": true
},
"sdcard_root_used": {
"command": "df /",
"regexp": "\\S+\\s+\\d+\\s+(\\d+).*\\/$",
"post": "$1/1024",
"multiline": true
}
},
"swap": {
"swap_total": {
"command": "cat /proc/meminfo",
"regexp": "SwapTotal:\\s+(\\d+)",
"post": "$1/1024",
"multiline": true
},
"swap_used": {
"command": "cat /proc/meminfo",
"regexp": "SwapFree:\\s+(\\d+)",
"post": "(rpi.swap_total - $1)/1024",
"multiline": true
}
},
"temperature": {
"soc_temp": {
"command": "cat /sys/devices/virtual/thermal/thermal_zone0/temp",
"regexp": "(.*)",
"post": "$1/1000"
}
},
"uptime": {
"uptime": {
"command": "cat /proc/uptime",
"regexp": "(^\\S+)",
"post": ""
}
},
"wlan": {
"wifi_received": {
"command": "cat /sys/class/net/wlan0/statistics/rx_bytes",
"regexp": "(.*)",
"post": "$1*-1"
},
"wifi_send": {
"command": "cat /sys/class/net/wlan0/statistics/tx_bytes",
"regexp": "(.*)",
"post": ""
}
},
"gpios": [
]
},
"objects": [
],
"instanceObjects": [
]
}
Nach der Modifikation muss die Instanz noch entfernt werden und neu hinzugefügt werden.
Hallo
Das habe ich auch gemacht. Also die beiden boot Blöcke in der io-package json
gelöscht. Danach die rpi2 Instanz gelöscht und wieder installiert. Ich bekomme leider weiter die Meldungen:Cannot evaluate: Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk0p1 60577708 11606468 48319836 20% / /1024
Danke für die schelle Antwort
Ich habe das Image vom 20.04.2018 genommen.
Nach dem ich mein backup installiert hatte
Habe ich die Datei io-package.json des überschrieben.
Alles andere im rpi Adapter wie Temperatur, CPU, RAM funktioniert ja
Was muss ich in der Datei ändern?
Gruß Günther
Hallo
Hast Du einen Tip wie ich die Audioausgabe für Sayit aktivieren kann?
Wenn ich über mpg123 en mp3 augeben will kommt
root@ioBroker-Rock64:~# mpg321 /mnt/nas/1a14ca5e5c4024bf291e39bcf49ac83b.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
Version 0.3.2-1 (2012/03/25). Written and copyrights by Joe Drew,
now maintained by Nanakos Chrysostomos and others.
Uses code from various people. See ‚README‘ for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Directory: /mnt/nas
Playing MPEG stream from 1a14ca5e5c4024bf291e39bcf49ac83b.mp3 …
MPEG 2.0 layer III, 48 kbit/s, 22050 Hz mono
ALSA lib confmisc.c:767:(parse_card) cannot find card ‚0‘
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
Can’t find a suitable libao driver. (Is device in use?)
Aber libao wiederum lässt sich nicht installieren:
root@ioBroker-Rock64:~# apt-get install libao2
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package libao2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Gruss Ralf