Cubieboard 3: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
(Ersetzung von Forum-Links mit Vorlage Link2Forum)
 
(58 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Work in progress=
Beim [[Cubieboard 3]], auch "Cubietruck" genannt, handelt es sich um einen Einplatinencomputer. Das Herz des Rechners ist ein Allwinner A20. Wer mehr dazu lesen möchte kann dies auf der entsprechenden [http://de.wikipedia.org/wiki/Cubieboard Wikipedia] Seite machen.
Beim [[Cubieboard 3]], auch [[Cubietruck]] genannt, handelt es sich um einen Einplatinencomputer. Das Herz des Rechners ist ein Allwinner A20. Wer mehr dazu lesen möchte kann dies auf der entsprechenden [http://de.wikipedia.org/wiki/Cubieboard Wikipedia] Seite machen.


Zur Zeit dürfte der Cubietruck das leistungsfähigste Einplatinensystem sein. Nur mit fhem alleine ist das System vermutlich reichlich unterfordert. Dank des SATA Anschlusses steht aber dem Einsatz als kleiner Server für das Heimnetzwerk nichts entgegen.
Zur Zeit dürfte der Cubietruck das leistungsfähigste Einplatinensystem sein. Nur mit FHEM alleine ist das System vermutlich reichlich unterfordert. Dank des SATA Anschlusses steht aber dem Einsatz als kleiner Server für das Heimnetzwerk nichts entgegen.


Anmerkung zur Stromversorgung: Dem Cubietruck liegt ein Stromkabel bei. USB-DC 4mmx1,7mm; selbiges braucht man zwingend wenn man eine SSD an den Cubietruck anschließt. Wenn man selbiges nicht vorhat, kann man den Cubietruck auch über die miniUSB Buchse mit Strom versorgen (aber nur dann!)


Anmerkung zur Begrifflichkeit: Hier wird i.d.R. von SSD gesprochen. Das gilt analog für eine 2,5" HD. Bei einer 3,5" HD benötigt man eine eigene Stromversorgung für die Platte (und immer noch dieses Hohlstecker-Kabel!)


{{Randnotiz|RNTyp=y|RNText=Der Artikel soll später Installskripte für fhem auf dem Cubietruck beinhalten. Sozusagen ein all in one fhem Setup. Es spricht auf dem Cubietruck nichts dagegen nicht einfach alle Perl Module, die irgendein fhem Modul braucht, gleich am Anfang zu installieren. Gleiches gilt letztlich für Software wie Alsa, mplayer etc. Zu guter letzt sollten gleich noch die passende Rechte gesetzt werden...}}
== Images - Qual der Wahl ==
 
 


Im Gegensatz zum Raspberry Pi gibt es kein "offizielles" Linux für den Cubietruck.
Im Gegensatz zum Raspberry Pi gibt es kein "offizielles" Linux für den Cubietruck.
* Cubieez, [http://hempel.dd-dns.de/cms/index.php/cubietruck-cubieboard-3/articles/installation-von-debian-auf-dem-cubietruck.html Anleitung]
* Cubieez, [http://hempel.dd-dns.de/cms/index.php/cubietruck-cubieboard-3/articles/installation-von-debian-auf-dem-cubietruck.html Anleitung]
* [http://dl.cubieboard.org/software/a20-cubietruck/lubuntu/ct-lubuntu-nand-v1.00/VGA/ lubuntu-server-nand.img.gz]
* [http://dl.cubieboard.org/software/a20-cubietruck/lubuntu/ct-lubuntu-nand-v1.00/VGA/ lubuntu-server-nand.img.gz]
* [http://www.igorpecovnik.com/2013/12/24/cubietruck-debian-wheezy-sd-card-image/ Slovenias Image], [http://debianforum.de/forum/viewtopic.php?f=1&t=148369 Anleitung]
* [http://www.igorpecovnik.com/2013/12/24/cubietruck-debian-wheezy-sd-card-image/ Igors Image], [http://debianforum.de/forum/viewtopic.php?f=1&t=148369 Anleitung]
 
Zur Zeit (10.07.2014) ist das Image von Igor das Einzige, welches das Onboard Bluetooth Device nutzen kann
 
== Anleitungen für verschiedene Images (entweder Igors Image, oder Lubuntu)==
Bitte beachtet das Boot-Konzept des Cubietruck.
* SD Karte
* Nand1
Mehr ist da nicht! Will man also alles von SATA booten, muss dennoch auf SD-Karte oder im Nand1 ein Minisystem sein sowie die dortige Konfigurationsdatei den korrekten Pfad zur gewünschten Bootpartition aufweisen... (quasi so eine Art Bootmanager)
 
=== Installation für [http://www.igorpecovnik.com/2013/12/24/cubietruck-debian-wheezy-sd-card-image/ Igors Image] ===
* Image runterladen, entpacken
* Mit beiliegendem Programm (ist im Archiv mit dabei) und SD Kartenleser auf SD Karte bringen
* Cubietruck mit fertiger microSD Karte booten (vorher Netzwerkkabel einstecken)
* Mit Putty einloggen, sobald die LED-Lichtorgel erloschen ist
* Benutzername: root
* Passwort: 1234
* Passwort ändern
* Jetzt gibt es mehrere Möglichkeiten, wie es weiter geht:
  System läuft auf SD-Karte, dann ist die Installation fast fertig und weiter mit 2.1.4, der Rest kann übersprungen werden.
  System läuft in der Kombination SD-Karte/SSD, weiter mit 2.1.3
  System läuft im NAND oder in der Kombination NAND/SSD, weiter mit 2.1.1
==== NAND ====
* chmod +x nand-install.sh
* evtl. kurz warten, könnte sein, dass der Cubietruck nochmal einen Neustart hinlegt. Keine Ahnung warum, kann ich aber bei meinen 2 reproduzieren)
* ./nand-install.sh
* Mit y bestätigen
* Cubietruck bootet (SD Karte drinnen lassen)
 
Jetzt gibt es zwei Möglichkeiten:
* Alles in den Nand Speicher installieren
** nochmal ./nand-install.sh ausführen,
** wenn fertig Return drücken, SD raus
** unten weiterlesen...
* Das ganze Image auf eine angeschlossene SSD/HDD zu installieren (das meiste davon ist von Betateilchen!)
** wir haben 1x nand-install.sh ausgeführt (siehe oben...)
** chmod +x sata-install.sh
** mit fdisk eine Partition anlegen (fdisk /dev/sda; Partitione erstellen, speichern, beenden, formatieren ist überflüssig, macht das sata Skript später selber)
** ./sata-install.sh
** den gewünschten Reboot bitte MIT eingelegter SD Karte machen (unnötig, wenn man 2x das nand-install.sh ausgeführt hat, was aber recht lange dauert)
** # Zeiger auf das rootfs in Richtung SSD Platte verbiegen
** mkdir test
** mount /dev/nand1 test
** cd test
** cp uEnv.txt uEnv.txt.backup
** nano uEnv.txt
** Zeile nand_root ändern in:
*** nand_root=/dev/sda1 rootwait
** Strg+O (zum speichern)
** Strg+X (zum beenden)
** cd ..
** umount test
** Reboot ohne SD Karte...
 
==== NAND Probleme ====
Wenn es nach obiger Anleitung nicht funktioniert, dann hat vermutlich das Igor Image im Nand nicht die erforderlichen Dateien angelegt. In dem Fall bleiben alle Lichter einfach aus...
 
Lösung:
 
Vorher muss mit den Phoenix Tools z.B. Lubuntu installiert werden. Das ist [http://debianforum.de/forum/viewtopic.php?f=1&t=148369 hier] beschrieben.
 
Noch ein paar Tipps:
* Wenn man mit den Phonix Tools nicht weiter kommt (also das Flashen nicht anläuft), am Rechner einen anderen USB Port nehmen. (Imho sind die Phoenix Tools ein Musterbeispiel an gesammelten Merkwürdigkeiten... Ach ja, kein Update der PhoenixTools machen, das geht komplett in die Hose (Stand: 4.11.2014))
 
*Nach dem Entfernen des Flash-Speichers mindestens 10 sec die ON/Off-Taste gedrückt halten, damit sich der Cubie ausschaltet
 
*Dann die FEL-Taste drücken und wie in der Anleitung beschrieben fortfahren
 
*Wenn der Upgrade beginnt bitte die FEL-Taste loslassen
 
Dann bitte wieder mit obiger Anleitung anfangen...
 
==== SD-Karte/SSD ====
Das ganze Image auf eine angeschlossene SSD/HDD zu installieren (das meiste davon ist von Betateilchen!)
* chmod +x sata-install.sh
* mit fdisk eine Partition anlegen (fdisk /dev/sda; Partitione erstellen, speichern, beenden, formatieren ist überflüssig, macht das sata Skript später selber)
* ./sata-install.sh
* das Skript führt einen reboot aus
* fertig
 
==== Pakete die bei Igor nachinstalliert werden  müssen ====
Das ist alles von Betateilchen...
apt-get install libtimedate-perl libdevice-serialport-perl
apt-get install libio-socket-ssl-perl libwww-perl
apt-get install libgd-graph-perl libtext-csv-perl
apt-get install libmail-imapclient-perl libxml-simple-perl
apt-get install liblist-moreutils-perl ttf-liberation
apt-get install libimage-librsvg-perl libgd-text-perl
 
==== Nacharbeiten ====
Da es unter Linux absolut unnötig ist immer als root-Benutzer zu arbeiten, wird noch ein eigener Benutzer angelegt. Bei den nachfolgenden Kommandos kann Benutzername '''ct''' gegen den eigenen Namen ausgetauscht werden.
* addgroup --gid 1000 '''ct'''
* useradd -m '''ct''' -g 1000 -G 1000 -s /bin/bash
* usermod -aG sudo '''ct'''
* passwd '''ct'''
* exit
 
 
Erneut anmelden als '''ct'''. Ab jetzt werden Kommandos, die root-Rechte benötigen, mittels sudo ausgeführt.
 
 
Zeitzone einstellen:
* sudo dpkg-reconfigure tzdata
 


Zur Zeit (10.07.2014) ist das Image von Slovenia das Einzige, welches das Onboard Bluetooth Device nutzen kann
System auf den aktuellen Stand bringen:
* sudo apt-get update && sudo apt-get upgrade
* sudo apt-get autoremove && sudo reboot


== Alle evtl benötigten Perl Module installieren ==


{{Randnotiz|RNTyp=y|RNText=Im Moment ist die Liste noch völlig unbrauchbar, vieles ist doppelt. Wer mal etwas Zeit hat, könnte doppelte Einträge rauswerfen ebenso wie die Modulnamen}}


    00_HMLAN.pm:use Digest::MD5 qw(md5);
==== LED-Lichtorgel einstellen (optional) ====
    00_LIRC.pm:use Lirc::Client;
    00_LIRC.pm:use IO::Select;
    00_MAXLAN.pm:use MIME::Base64;
    00_MAXLAN.pm:use POSIX;
    00_MAXLAN.pm:use MaxCommon;
    00_OWX_ASYNC.pm:use GPUtils qw(:all);
    00_OWX_ASYNC.pm:use ProtoThreads;
    00_RPII2C.pm:use Device::SMBus;
    00_THZ.pm:use feature ":5.10";
    00_THZ.pm:use SetExtensions;
    01_FHEMWEB.pm:use TcpServerUtils;
    01_FHEMWEB.pm:use HttpUtils;
    02_FRAMEBUFFER.pm:use GD;
    02_FRAMEBUFFER.pm:use feature qw/switch/;
    02_FRAMEBUFFER.pm:use Scalar::Util qw(looks_like_number);
    02_HTTPSRV.pm:use HttpUtils;
    02_RSS.pm:use GD;
    02_RSS.pm:use feature qw/switch/;
    02_RSS.pm:use HttpUtils;
    10_CUL_HM.pm:use HMConfig;
    10_EnOcean.pm:use SetExtensions;
    10_FBDECT.pm:use SetExtensions;
    10_FRM.pm:use GPUtils qw(:all);
    10_FRM.pm:use Device::Firmata::Constants qw/ :all /;
    10_FRM.pm:use Device::Firmata::Protocol;
    10_FRM.pm:use Device::Firmata::Platform;
    10_FS20.pm:use SetExtensions;
    10_IT.pm:use SetExtensions;
    10_Itach_IR.pm:use IO::Socket::INET;
    10_MAX.pm:use MIME::Base64;
    10_MAX.pm:use MaxCommon;
    10_OWServer.pm:use lib::OWNet;
    10_RESIDENTS.pm:use Data::Dumper;
    10_ZWave.pm:use SetExtensions;
    14_CUL_MAX.pm:use MaxCommon;
    14_CUL_MAX.pm:use POSIX;
    17_EGPM2LAN.pm:use HttpUtils;
    19_Revolt.pm:use Date::Parse;
    20_FRM_AD.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_I2C.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_IN.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_OUT.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_OUT.pm:use SetExtensions;
    20_FRM_PWM.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_PWM.pm:use SetExtensions qw/ :all /;
    20_FRM_RGB.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_RGB.pm:use Color qw/ :all /;
    20_FRM_RGB.pm:use SetExtensions qw/ :all /;
    20_FRM_ROTENC.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_SERVO.pm:use Device::Firmata::Constants  qw/ :all /;
    20_FRM_STEPPER.pm:use Device::Firmata::Constants  qw/ :all /;
    20_GUEST.pm:use Data::Dumper;
    20_OWFS.pm:use OW;
    20_ROOMMATE.pm:use Data::Dumper;
    21_OWAD.pm:use GPUtils qw(:all);
    21_OWAD.pm:use ProtoThreads;
    21_OWCOUNT.pm:use ProtoThreads;
    21_OWLCD.pm:use GPUtils qw(:all);
    21_OWLCD.pm:use ProtoThreads;
    21_OWMULTI.pm:use ProtoThreads;
    21_OWSWITCH.pm:use ProtoThreads;
    21_OWTEMP.pm:use OW;
    21_OWTHERM.pm:use ProtoThreads;
    22_ALL3076.pm:use Data::Dumper;
    22_ALL3076.pm:use LWP::UserAgent;
    22_ALL3076.pm:use HTTP::Request;
    23_ALL4027.pm:use Data::Dumper;
    23_ALL4027.pm:use LWP::UserAgent;
    23_ALL4027.pm:use HTTP::Request;
    23_LUXTRONIK2.pm:use Blocking;
    23_LUXTRONIK2.pm:use IO::Socket;
    23_LUXTRONIK2.pm:use Net::Telnet;
    23_WEBIO.pm:use Data::Dumper;
    23_WEBIO.pm:use LWP::UserAgent;
    23_WEBIO.pm:use HTTP::Request;
    23_WEBIO_12DIGITAL.pm:use Data::Dumper;
    23_WEBIO_12DIGITAL.pm:use IO::Socket;
    23_WEBTHERM.pm:use Data::Dumper;
    23_WEBTHERM.pm:use LWP::UserAgent;
    23_WEBTHERM.pm:use HTTP::Request;
    24_NetIO230B.pm:use Data::Dumper;
    24_NetIO230B.pm:use IO::Socket;
    24_NetIO230B.pm:use HttpUtils;
    24_NetIO230B.pm:use constant PARAM_NAME => 1;
    24_NetIO230B.pm:use constant PARAM_HOST => 2;
    24_NetIO230B.pm:use constant PARAM_SOCK => 3;
    24_NetIO230B.pm:use constant PARAM_USER => 4;
    24_NetIO230B.pm:use constant PARAM_PASS => 5;
    24_NetIO230B.pm:use constant PARAM_FILE => 4;
    24_NetIO230B.pm:use constant DEBUG => 1;
    30_ENECSYSGW.pm:use POSIX;
    30_ENECSYSGW.pm:use MIME::Base64;
    30_ENECSYSGW.pm:use XML::Simple;
    30_HUEBridge.pm:use POSIX;
    30_HUEBridge.pm:use JSON;
    30_HUEBridge.pm:use Data::Dumper;
    30_HUEBridge.pm:use MIME::Base64;
    31_ENECSYSINV.pm:use POSIX;
    31_ENECSYSINV.pm:use SetExtensions;
    31_HUEDevice.pm:use Color;
    31_HUEDevice.pm:use POSIX;
    31_HUEDevice.pm:use JSON;
    31_HUEDevice.pm:use SetExtensions;
    31_LightScene.pm:use POSIX;
    32_SYSSTAT.pm:use Data::Dumper;
    32_mailcheck.pm:use Mail::IMAPClient;
    32_mailcheck.pm:use IO::Socket::SSL;
    32_mailcheck.pm:use IO::Socket::INET;
    32_mailcheck.pm:use IO::File;
    32_mailcheck.pm:use IO::Handle;
    32_mailcheck.pm:use Data::Dumper;
    32_speedtest.pm:use Blocking;
    32_withings.pm:use Encode qw(encode);
    32_withings.pm:use JSON;
    32_withings.pm:use LWP::Simple;
    32_withings.pm:use HTTP::Request;
    32_withings.pm:use HTTP::Cookies;
    32_withings.pm:use Digest::MD5 qw(md5 md5_hex md5_base64);
    32_withings.pm:use POSIX qw( strftime );
    33_readingsHistory.pm:use POSIX qw(strftime);
    33_readingsProxy.pm:use SetExtensions;
    34_SWAP.pm:use SetExtensions;
    34_SWAP.pm:use Data::Dumper;
    35_SWAP_0000002200000003.pm:use Color;
    35_SWAP_0000002200000003.pm:use constant  CMD_REG => '0F';
    36_EC3000.pm:use SetExtensions;
    36_EMT7110.pm:use SetExtensions;
    36_LaCrosse.pm:use SetExtensions;
    36_PCA301.pm:use SetExtensions;
    38_CO20.pm:use Device::USB;
    38_netatmo.pm:use Encode qw(encode_utf8);
    38_netatmo.pm:use JSON;
    38_netatmo.pm:use HttpUtils;
    42_SYSMON.pm:use constant FS_PREFIX => "~ ";
    51_I2C_BMP180.pm:use Scalar::Util qw(looks_like_number);
    51_I2C_TSL2561.pm:use HiPi::Device::I2C;
    51_I2C_TSL2561.pm:use Scalar::Util qw(looks_like_number);
    51_I2C_TSL2561.pm:use Error qw(:try);
    51_Netzer.pm:use POSIX;
    51_Netzer.pm:use Scalar::Util qw(looks_like_number);
    51_Netzer.pm:use IO::File;
    51_RPI_GPIO.pm:use POSIX;
    51_RPI_GPIO.pm:use Scalar::Util qw(looks_like_number);
    51_RPI_GPIO.pm:use IO::File;
    51_RPI_GPIO.pm:use SetExtensions;
    52_I2C_DS1307.pm:use constant DS1307_SECONDS => 0x00;
    52_I2C_DS1307.pm:use constant DS1307_MINUTES => 0x01;
    52_I2C_DS1307.pm:use constant DS1307_HOURS  => 0x02;
    52_I2C_DS1307.pm:use constant DS1307_DAY    => 0x03;
    52_I2C_DS1307.pm:use constant DS1307_DATE    => 0x04;
    52_I2C_DS1307.pm:use constant DS1307_MONTH  => 0x05;
    52_I2C_DS1307.pm:use constant DS1307_YEAR    => 0x06;
    52_I2C_DS1307.pm:use constant DS1307_CONTROL => 0x07;
    52_I2C_DS1307.pm:use constant DS1307_RAM    => 0x08;
    52_I2C_DS1307.pm:use constant DS1307_OUT  => 0x40; # BIT 7 OUT
    52_I2C_DS1307.pm:use constant DS1307_SQWE => 0x10; # BIT 4 SQWE
    52_I2C_DS1307.pm:use constant DS1307_RS1  => 0x02; # BIT 1 RS1
    52_I2C_DS1307.pm:use constant DS1307_RS0  => 0x01; # BIT 0 RS0
    52_I2C_MCP23017.pm:use SetExtensions;
    52_I2C_MCP23017.pm:use Scalar::Util qw(looks_like_number);
    52_I2C_PCA9532.pm:use SetExtensions;
    52_I2C_PCA9532.pm:use Scalar::Util qw(looks_like_number);
    52_I2C_PCF8574.pm:use SetExtensions;
    52_I2C_PCF8574.pm:use Scalar::Util qw(looks_like_number);
    52_I2C_SHT21.pm:use Scalar::Util qw(looks_like_number);
    55_GDS.pm:use feature qw/say switch/;
    55_GDS.pm:use Text::CSV;
    55_GDS.pm:use Net::FTP;
    55_GDS.pm:use List::MoreUtils 'first_index';
    55_GDS.pm:use XML::Simple;
    55_GDS.pm:use HttpUtils;
    55_GDS.pm:use Blocking;
    55_weco.pm:use HttpUtils;
    56_POKEYS.pm:use Data::Dumper;
    57_Calendar.pm:use HttpUtils;
    59_Twilight.pm:use POSIX;
    59_Twilight.pm:use HttpUtils;
    59_Twilight.pm:use Math::Trig;
    59_WWO.pm:use HttpUtils;
    59_Weather.pm:use HttpUtils;
    59_Weather.pm:use constant ICONHIGHT => 120;
    59_Weather.pm:use constant ICONWIDTH => 175;
    59_Weather.pm:use constant ICONSCALE => 0.5;
    66_ECMD.pm:use DevIo;
    70_EGPM.pm:use SetExtensions;
    70_ENIGMA2.pm:use 5.012;
    70_ENIGMA2.pm:use Data::Dumper;
    70_ENIGMA2.pm:use XML::Simple;
    70_ENIGMA2.pm:use IO::Socket;
    70_ENIGMA2.pm:use HttpUtils;
    70_ENIGMA2.pm:use Encode;
    70_JSONMETER.pm:use Blocking;
    70_JSONMETER.pm:use IO::Socket::INET;
    70_JSONMETER.pm:use MIME::Base64;
    70_Jabber.pm:use utf8;
    70_Jabber.pm:use Net::Jabber;
    70_ONKYO_AVR.pm:use ONKYOdb;
    70_ONKYO_AVR.pm:use IO::Socket;
    70_ONKYO_AVR.pm:use IO::Handle;
    70_ONKYO_AVR.pm:use IO::Select;
    70_ONKYO_AVR.pm:use XML::Simple;
    70_ONKYO_AVR.pm:use Symbol qw<qualify_to_ref>;
    70_ONKYO_AVR.pm:use Data::Dumper;
    70_PHTV.pm:use 5.012;
    70_PHTV.pm:use Data::Dumper;
    70_PHTV.pm:use JSON;
    70_PHTV.pm:use HttpUtils;
    70_PHTV.pm:use Color;
    70_PHTV.pm:use SetExtensions;
    70_PHTV.pm:use Encode;
    70_Pushover.pm:use HttpUtils;
    70_Pushover.pm:use utf8;
    70_SCIVT.pm:use Device::SerialPort;
    70_SML.pm:use IO::Socket::INET;
    70_SML.pm:use Blocking;
    70_STV.pm:use IO::Socket::INET;
    70_STV.pm:use Sys::Hostname;
    70_STV.pm:use MIME::Base64;
    70_STV.pm:use DevIo;
    70_USBWX.pm:use Device::SerialPort;
    70_VIERA.pm:use IO::Socket::INET;
    70_VIERA.pm:use feature qw/say switch/;
    70_XBMC.pm:use POSIX;
    70_XBMC.pm:use JSON;
    70_XBMC.pm:use Data::Dumper;
    70_XBMC.pm:use DevIo;
    70_XBMC.pm:use IO::Socket::INET;
    70_XBMC.pm:use MIME::Base64;
    71_LISTENLIVE.pm:use POSIX;
    71_LISTENLIVE.pm:use CGI qw(:standard);
    71_LISTENLIVE.pm:use IO::Socket;
    71_LISTENLIVE.pm:use IO::Socket::INET;
    71_LISTENLIVE.pm:use MIME::Base64;
    71_LISTENLIVE.pm:use HttpUtils;
    71_LISTENLIVE.pm:use feature qw/say switch/;
    71_YAMAHA_AVR.pm:use HttpUtils;
    71_YAMAHA_BD.pm:use HttpUtils;
    72_FB_CALLMONITOR.pm:use DevIo;
    72_FB_CALLMONITOR.pm:use Digest::MD5;
    72_FB_CALLMONITOR.pm:use HttpUtils;
    73_MPD.pm:use URI::Escape;
    73_MPD.pm:use POSIX;
    73_MPD.pm:use Blocking; # http://www.fhemwiki.de/wiki/Blocking_Call
    73_MPD.pm:use IO::Socket;
    73_MPD.pm:use Getopt::Std;
    73_PRESENCE.pm:use Blocking;
    73_PRESENCE.pm:use DevIo;
    75_MSG.pm:use Switch;
    75_MSG.pm:use MIME::Lite;
    75_MSG.pm:use Net::SMTP::SSL;
    76_MSGFile.pm:use Switch;
    76_MSGMail.pm:use Switch;
    87_WS2000.pm:use Switch;
    88_ALL4000T.pm:use XML::Simple;
    88_ALL4000T.pm:use Data::Dumper;
    88_ALL4000T.pm:use LWP::UserAgent;
    88_ALL4000T.pm:use HTTP::Request;
    88_IPWE.pm:use IO::Socket::INET;
    88_Itach_Relay.pm:use Data::Dumper;
    88_Itach_Relay.pm:use Net::Telnet;
    88_LINDY_HDMI_SWITCH.pm:use Data::Dumper;
    88_LINDY_HDMI_SWITCH.pm:use Net::Telnet;
    88_VantagePro2.pm:use Data::Dumper;
    88_VantagePro2.pm:use Net::Telnet;
    88_WEBCOUNT.pm:use XML::Simple;
    88_WEBCOUNT.pm:use Data::Dumper;
    88_WEBCOUNT.pm:use LWP::UserAgent;
    88_WEBCOUNT.pm:use HTTP::Request;
    91_eventTypes.pm:use IO::File;
    92_FileLog.pm:use IO::File;
    93_DbLog.pm:use DBI;
    93_DbLog.pm:use Data::Dumper;
    93_DbLog.pm:use feature qw/say switch/;
    95_PachLog.pm:use POSIX;
    95_PachLog.pm:use Data::Dumper;
    95_PachLog.pm:use LWP;
    95_PachLog.pm:use LWP::UserAgent;
    95_PachLog.pm:use HTTP::Request::Common;
    95_holiday.pm:use POSIX;
    98_CULflash.pm:use HttpUtils;
    98_GEOFANCY.pm:use HttpUtils;
    98_GEOFANCY.pm:use Data::Dumper;
    98_HMinfo.pm:use Blocking;
    98_HMinfo.pm:use HMConfig;
    98_HTTPMOD.pm:use HttpUtils;
    98_Heating_Control.pm:use POSIX;
    98_IF.pm:use POSIX;
    98_JsonList.pm:use POSIX;
    98_JsonList2.pm:use POSIX;
    98_PID20.pm:use feature qw/say switch/;
    98_SVG.pm:use POSIX;
    98_Text2Speech.pm:use Blocking;
    98_Text2Speech.pm:use IO::File;
    98_Text2Speech.pm:use HttpUtils;
    98_Text2Speech.pm:use Digest::MD5 qw(md5_hex);
    98_Text2Speech.pm:use URI::Escape;
    98_Text2Speech.pm:use Data::Dumper;
    98_WOL.pm:use IO::Socket;
    98_XmlList.pm:use POSIX;
    98_configdb.pm:use feature qw/say switch/;
    98_configdb.pm:use configDB;
    98_fheminfo.pm:use Config;
    98_openweathermap.pm:use POSIX;
    98_openweathermap.pm:use XML::Simple;
    98_openweathermap.pm:use feature qw/say switch/;
    98_pilight.pm:use IO::Socket::INET;
    98_pilight.pm:use Switch;
    98_telnet.pm:use TcpServerUtils;
    98_update.pm:use HttpUtils;
    98_update.pm:use File::Copy qw(cp mv);
    98_update.pm:use Blocking;
    98_weblink.pm:use IO::File;
    99_SUNRISE_EL.pm:use Math::Trig;
    99_Utils.pm:use POSIX;
    99_Utils.pm:use POSIX;
    99_UtilsMaxScan.pm:use POSIX;
    99_myUtils.pm:use POSIX;
    Blocking.pm:use IO::Socket::INET;
    FritzBoxUtils.pm:use Digest::MD5 "md5_hex";
    FritzBoxUtils.pm:use HttpUtils;
    GPUtils.pm:use Exporter qw( import );
    HttpUtils.pm:use IO::Socket::INET;
    HttpUtils.pm:use MIME::Base64;
    OWX_Executor.pm:use ProtoThreads;
    OWX_FRM.pm:use Device::Firmata::Constants qw/ :all /;
    OWX_SER.pm:use ProtoThreads;
    TcpServerUtils.pm:use IO::Socket;


Igor hat die vier LEDs auf dem Cubie deaktiviert.


Mittels sudo update-rc.d disable_led.sh remove werden die LEDs aktiviert.


Die verschiedenen Möglichkeiten können mit cat /sys/class/leds/blue\:ph21\:led1/trigger eingesehen werden.
Die gewünschten Trigger werden in /etc/rc.local vor exit 0 eintragen.
Beispiel:
  echo cpu0 > /sys/class/leds/white:ph11:led3/trigger
  echo cpu1 > /sys/class/leds/green:ph07:led4/trigger
  echo disk-activity > /sys/class/leds/blue:ph21:led1/trigger
  echo usb-online > /sys/class/leds/orange:ph20:led2/trigger
 
  exit 0
==== Watchdog (optional) ====
Auch beim Cubietruck kann der eingebaute Watchdog benutzt werden. betateilchen hat die notwendigen Schritte für BBB und RasPi {{Link2Forum|Topic=20553|LinkText=hier}} im Forum beschrieben. Für den Cubietruck ist die Installation und Konfiguration identisch mit dem BBB.
==== HM-CFG-USB USB Konfigurations-Adapter (optional) ====
Wird der HM-CFG-USB am Cubietruck eingesetzt, ist ist noch ein Paket zu installieren, damit /etc/init.d/hmland richtig arbeitet (Befehl killall):
* sudo apt-get install psmisc
=== Setup (Lubuntu) ===
[http://www.cubieforums.com/index.php/topic,1146.0.html|cubie setup overview]
[http://docs.cubieboard.org/tutorials/ct1/installation/moving_rootfs_from_nandflash_to_hard_drive
|Topic: The ULTIMATE Cubietruck set-up guide]
=== Root Filesystem auf SATA Festplatte umziehen (bereits bestehende Installation) ===
Das braucht man, wenn man schon komplett eine Installation im Nand vom Cubietruck hat, und später mal eine Platte nachrüstet:
Moving Rootfs From Nandflash To Hard Drive (improves performance)
http://docs.cubieboard.org/tutorials/ct1/installation/moving_rootfs_from_nandflash_to_hard_drive
There is also this thread which uses Tar and is said to be better than dd for doing this:
http://www.cubieforums.com/index.php/topic,1147.0.html
* #fdisk -l
* Choose the drive you want to make changes to (e.g. sda):
* #fdisk /dev/sda
* use "p" (print partition of a drive), "d" delete a partition or "n" (create new partition). The partition should be of type "83"
* Format the partition for rootfs with EXT4 filesystem
* #mkfs.ext4 /dev/sda1
* Copying Rootfs
* We assume that, /dev/sda is the hard drive we want to install
* $sudo su - root
* #dd if=/dev/nandb of=/dev/sda1 bs=1M
* Changing Boot Parameters
* $sudo su - root
* #mount /dev/nanda /mnt
* #nano /mnt/uEnv.txt
* Change the contents of uEnv.txt to (nur diese eine Zeile verändern!)
** nand_root=/dev/sda1
* #sync
* #umount /mnt
* #reboot
=== Wenn man nur /opt umziehen will (bereits bestehende Installation) ===
BITTE GEGENLESEN
Das braucht man, wenn man einerseits schon FHEM auf dem Cubietruck installiert hat, andererseits aber nicht das komplette Betriebssystem auf die SSD bringen möchte...
==== Übersicht ====
Wir legen eine Partition auf der SSD an und formatieren selbige. Anschließend mounten wir die Partition als /newopt. Dadurch können wir den Inhalt vom bisherigen /opt bequem auf die Platte kopieren. Ist das erledigt, entfernen wir unser temporäres Mount. Das mounten wir die Platte nach /opt. Zu guter letzt wird die fstab angepasst...
==== So wirds gemacht ====
* #fdisk /dev/sda um eine Partition anzulegen (siehe oben, also n für neue Partition, p für primary Partition, vorgeschlagenen Speicher bestätigen, w um das ganze zu sichern)
* kann man mit fdisk -l kontrollieren, da sollte jetzt eine /dev/sda1 auftauchen
* #mkfs.ext4 /dev/sda1 um die Partition zu formatieren
* #mount /dev/sda1 /mnt/newopt
* #Init 1 => alles weg, was ggfs. in /opt schreiben könnte, schießt also auch FHEM ab!
* #cd /opt
* #cp -avx * /mnt/newopt => damit wird alles aus dem alten /opt nach /newopt kopiert, Rechte und Besitzer werden beibehalten...
* #unmount /mnt/newopt
* #mount /dv/sda1 /opt => damit wird Linux angewiesen, die SSD als /opt anzusehen
* jetzt muss das in die fstab rein, damit nach eine reboot auch alles stimmt
* #nano /etc/fstab
* /dev/sda1 /opt ext4 defaults 0 1
* speichern...


== Links ==
== Links ==
* [http://debianforum.de/forum/viewtopic.php?f=1&t=148369 Forumsartikel] und HowTo um slovenia´s (Igor Pecovnik) Image zu installieren
* [http://debianforum.de/forum/viewtopic.php?f=1&t=148369 Forumsartikel] und HowTo um slovenia´s (Igor Pecovnik) Image zu installieren
 
* "Notizzettel" zur Einrichtung Igor-Image auf Cubietruck: {{Link2Forum|Topic=26006|Message=192758}}
* Für FHEM beim Igor-Image zusätzlich notwendige Perl-Module: {{Link2Forum|Topic=26006|Message=192795}}
[[Kategorie:Cubieboard]]
[[Kategorie:Cubieboard]]

Aktuelle Version vom 18. März 2017, 22:23 Uhr

Beim Cubieboard 3, auch "Cubietruck" genannt, handelt es sich um einen Einplatinencomputer. Das Herz des Rechners ist ein Allwinner A20. Wer mehr dazu lesen möchte kann dies auf der entsprechenden Wikipedia Seite machen.

Zur Zeit dürfte der Cubietruck das leistungsfähigste Einplatinensystem sein. Nur mit FHEM alleine ist das System vermutlich reichlich unterfordert. Dank des SATA Anschlusses steht aber dem Einsatz als kleiner Server für das Heimnetzwerk nichts entgegen.

Anmerkung zur Stromversorgung: Dem Cubietruck liegt ein Stromkabel bei. USB-DC 4mmx1,7mm; selbiges braucht man zwingend wenn man eine SSD an den Cubietruck anschließt. Wenn man selbiges nicht vorhat, kann man den Cubietruck auch über die miniUSB Buchse mit Strom versorgen (aber nur dann!)

Anmerkung zur Begrifflichkeit: Hier wird i.d.R. von SSD gesprochen. Das gilt analog für eine 2,5" HD. Bei einer 3,5" HD benötigt man eine eigene Stromversorgung für die Platte (und immer noch dieses Hohlstecker-Kabel!)

Images - Qual der Wahl

Im Gegensatz zum Raspberry Pi gibt es kein "offizielles" Linux für den Cubietruck.

Zur Zeit (10.07.2014) ist das Image von Igor das Einzige, welches das Onboard Bluetooth Device nutzen kann

Anleitungen für verschiedene Images (entweder Igors Image, oder Lubuntu)

Bitte beachtet das Boot-Konzept des Cubietruck.

  • SD Karte
  • Nand1

Mehr ist da nicht! Will man also alles von SATA booten, muss dennoch auf SD-Karte oder im Nand1 ein Minisystem sein sowie die dortige Konfigurationsdatei den korrekten Pfad zur gewünschten Bootpartition aufweisen... (quasi so eine Art Bootmanager)

Installation für Igors Image

  • Image runterladen, entpacken
  • Mit beiliegendem Programm (ist im Archiv mit dabei) und SD Kartenleser auf SD Karte bringen
  • Cubietruck mit fertiger microSD Karte booten (vorher Netzwerkkabel einstecken)
  • Mit Putty einloggen, sobald die LED-Lichtorgel erloschen ist
  • Benutzername: root
  • Passwort: 1234
  • Passwort ändern
  • Jetzt gibt es mehrere Möglichkeiten, wie es weiter geht:
 System läuft auf SD-Karte, dann ist die Installation fast fertig und weiter mit 2.1.4, der Rest kann übersprungen werden.
 System läuft in der Kombination SD-Karte/SSD, weiter mit 2.1.3
 System läuft im NAND oder in der Kombination NAND/SSD, weiter mit 2.1.1

NAND

  • chmod +x nand-install.sh
  • evtl. kurz warten, könnte sein, dass der Cubietruck nochmal einen Neustart hinlegt. Keine Ahnung warum, kann ich aber bei meinen 2 reproduzieren)
  • ./nand-install.sh
  • Mit y bestätigen
  • Cubietruck bootet (SD Karte drinnen lassen)

Jetzt gibt es zwei Möglichkeiten:

  • Alles in den Nand Speicher installieren
    • nochmal ./nand-install.sh ausführen,
    • wenn fertig Return drücken, SD raus
    • unten weiterlesen...
  • Das ganze Image auf eine angeschlossene SSD/HDD zu installieren (das meiste davon ist von Betateilchen!)
    • wir haben 1x nand-install.sh ausgeführt (siehe oben...)
    • chmod +x sata-install.sh
    • mit fdisk eine Partition anlegen (fdisk /dev/sda; Partitione erstellen, speichern, beenden, formatieren ist überflüssig, macht das sata Skript später selber)
    • ./sata-install.sh
    • den gewünschten Reboot bitte MIT eingelegter SD Karte machen (unnötig, wenn man 2x das nand-install.sh ausgeführt hat, was aber recht lange dauert)
    • # Zeiger auf das rootfs in Richtung SSD Platte verbiegen
    • mkdir test
    • mount /dev/nand1 test
    • cd test
    • cp uEnv.txt uEnv.txt.backup
    • nano uEnv.txt
    • Zeile nand_root ändern in:
      • nand_root=/dev/sda1 rootwait
    • Strg+O (zum speichern)
    • Strg+X (zum beenden)
    • cd ..
    • umount test
    • Reboot ohne SD Karte...

NAND Probleme

Wenn es nach obiger Anleitung nicht funktioniert, dann hat vermutlich das Igor Image im Nand nicht die erforderlichen Dateien angelegt. In dem Fall bleiben alle Lichter einfach aus...

Lösung:

Vorher muss mit den Phoenix Tools z.B. Lubuntu installiert werden. Das ist hier beschrieben.

Noch ein paar Tipps:

  • Wenn man mit den Phonix Tools nicht weiter kommt (also das Flashen nicht anläuft), am Rechner einen anderen USB Port nehmen. (Imho sind die Phoenix Tools ein Musterbeispiel an gesammelten Merkwürdigkeiten... Ach ja, kein Update der PhoenixTools machen, das geht komplett in die Hose (Stand: 4.11.2014))
  • Nach dem Entfernen des Flash-Speichers mindestens 10 sec die ON/Off-Taste gedrückt halten, damit sich der Cubie ausschaltet
  • Dann die FEL-Taste drücken und wie in der Anleitung beschrieben fortfahren
  • Wenn der Upgrade beginnt bitte die FEL-Taste loslassen

Dann bitte wieder mit obiger Anleitung anfangen...

SD-Karte/SSD

Das ganze Image auf eine angeschlossene SSD/HDD zu installieren (das meiste davon ist von Betateilchen!)

  • chmod +x sata-install.sh
  • mit fdisk eine Partition anlegen (fdisk /dev/sda; Partitione erstellen, speichern, beenden, formatieren ist überflüssig, macht das sata Skript später selber)
  • ./sata-install.sh
  • das Skript führt einen reboot aus
  • fertig

Pakete die bei Igor nachinstalliert werden müssen

Das ist alles von Betateilchen...

apt-get install libtimedate-perl libdevice-serialport-perl
apt-get install libio-socket-ssl-perl libwww-perl
apt-get install libgd-graph-perl libtext-csv-perl
apt-get install libmail-imapclient-perl libxml-simple-perl
apt-get install liblist-moreutils-perl ttf-liberation
apt-get install libimage-librsvg-perl libgd-text-perl

Nacharbeiten

Da es unter Linux absolut unnötig ist immer als root-Benutzer zu arbeiten, wird noch ein eigener Benutzer angelegt. Bei den nachfolgenden Kommandos kann Benutzername ct gegen den eigenen Namen ausgetauscht werden.

  • addgroup --gid 1000 ct
  • useradd -m ct -g 1000 -G 1000 -s /bin/bash
  • usermod -aG sudo ct
  • passwd ct
  • exit


Erneut anmelden als ct. Ab jetzt werden Kommandos, die root-Rechte benötigen, mittels sudo ausgeführt.


Zeitzone einstellen:

  • sudo dpkg-reconfigure tzdata


System auf den aktuellen Stand bringen:

  • sudo apt-get update && sudo apt-get upgrade
  • sudo apt-get autoremove && sudo reboot


LED-Lichtorgel einstellen (optional)

Igor hat die vier LEDs auf dem Cubie deaktiviert.

Mittels sudo update-rc.d disable_led.sh remove werden die LEDs aktiviert.

Die verschiedenen Möglichkeiten können mit cat /sys/class/leds/blue\:ph21\:led1/trigger eingesehen werden.

Die gewünschten Trigger werden in /etc/rc.local vor exit 0 eintragen.

Beispiel:

  echo cpu0 > /sys/class/leds/white:ph11:led3/trigger
  echo cpu1 > /sys/class/leds/green:ph07:led4/trigger
  echo disk-activity > /sys/class/leds/blue:ph21:led1/trigger
  echo usb-online > /sys/class/leds/orange:ph20:led2/trigger
  
  exit 0


Watchdog (optional)

Auch beim Cubietruck kann der eingebaute Watchdog benutzt werden. betateilchen hat die notwendigen Schritte für BBB und RasPi hier im Forum beschrieben. Für den Cubietruck ist die Installation und Konfiguration identisch mit dem BBB.


HM-CFG-USB USB Konfigurations-Adapter (optional)

Wird der HM-CFG-USB am Cubietruck eingesetzt, ist ist noch ein Paket zu installieren, damit /etc/init.d/hmland richtig arbeitet (Befehl killall):

  • sudo apt-get install psmisc



Setup (Lubuntu)

setup overview

[http://docs.cubieboard.org/tutorials/ct1/installation/moving_rootfs_from_nandflash_to_hard_drive |Topic: The ULTIMATE Cubietruck set-up guide]

Root Filesystem auf SATA Festplatte umziehen (bereits bestehende Installation)

Das braucht man, wenn man schon komplett eine Installation im Nand vom Cubietruck hat, und später mal eine Platte nachrüstet:

Moving Rootfs From Nandflash To Hard Drive (improves performance) http://docs.cubieboard.org/tutorials/ct1/installation/moving_rootfs_from_nandflash_to_hard_drive

There is also this thread which uses Tar and is said to be better than dd for doing this: http://www.cubieforums.com/index.php/topic,1147.0.html

  • #fdisk -l
  • Choose the drive you want to make changes to (e.g. sda):
  • #fdisk /dev/sda
  • use "p" (print partition of a drive), "d" delete a partition or "n" (create new partition). The partition should be of type "83"
  • Format the partition for rootfs with EXT4 filesystem
  • #mkfs.ext4 /dev/sda1
  • Copying Rootfs
  • We assume that, /dev/sda is the hard drive we want to install
  • $sudo su - root
  • #dd if=/dev/nandb of=/dev/sda1 bs=1M
  • Changing Boot Parameters
  • $sudo su - root
  • #mount /dev/nanda /mnt
  • #nano /mnt/uEnv.txt
  • Change the contents of uEnv.txt to (nur diese eine Zeile verändern!)
    • nand_root=/dev/sda1
  • #sync
  • #umount /mnt
  • #reboot

Wenn man nur /opt umziehen will (bereits bestehende Installation)

BITTE GEGENLESEN

Das braucht man, wenn man einerseits schon FHEM auf dem Cubietruck installiert hat, andererseits aber nicht das komplette Betriebssystem auf die SSD bringen möchte...

Übersicht

Wir legen eine Partition auf der SSD an und formatieren selbige. Anschließend mounten wir die Partition als /newopt. Dadurch können wir den Inhalt vom bisherigen /opt bequem auf die Platte kopieren. Ist das erledigt, entfernen wir unser temporäres Mount. Das mounten wir die Platte nach /opt. Zu guter letzt wird die fstab angepasst...

So wirds gemacht

  • #fdisk /dev/sda um eine Partition anzulegen (siehe oben, also n für neue Partition, p für primary Partition, vorgeschlagenen Speicher bestätigen, w um das ganze zu sichern)
  • kann man mit fdisk -l kontrollieren, da sollte jetzt eine /dev/sda1 auftauchen
  • #mkfs.ext4 /dev/sda1 um die Partition zu formatieren
  • #mount /dev/sda1 /mnt/newopt
  • #Init 1 => alles weg, was ggfs. in /opt schreiben könnte, schießt also auch FHEM ab!
  • #cd /opt
  • #cp -avx * /mnt/newopt => damit wird alles aus dem alten /opt nach /newopt kopiert, Rechte und Besitzer werden beibehalten...
  • #unmount /mnt/newopt
  • #mount /dv/sda1 /opt => damit wird Linux angewiesen, die SSD als /opt anzusehen
  • jetzt muss das in die fstab rein, damit nach eine reboot auch alles stimmt
  • #nano /etc/fstab
  • /dev/sda1 /opt ext4 defaults 0 1
  • speichern...

Links

  • Forumsartikel und HowTo um slovenia´s (Igor Pecovnik) Image zu installieren
  • "Notizzettel" zur Einrichtung Igor-Image auf Cubietruck: Beitrag
  • Für FHEM beim Igor-Image zusätzlich notwendige Perl-Module: Beitrag