JAAAAAAAAAAAAAAAA!!!!! Ich glaube ich habe das Problem mit dem TFT gefunden… bin erst heute wieder dazu gekommen etwas zu basteln…

Bin bei iTead zweimal in den Kommentaren zu den TFT zu Hinweisen betreffend eines falschen 100 Ohm Wiederstandes gestossen. Laut Schema müsste das aber ein 10 Ohm sein, da das Display 3.2 V will und der Arduino 3.3V bringt. Dafür hat das TFT ja extra einen Regler der die Logik und die 5V Spannung auf 3.3V regelt. Wenn ich den Wiederstand kurzzeitig Überbrücke ist das Display um WELTEN heller… das heisst, zumindest mal so hell wie ein Handy-Display. 😀

Hier noch die Links zu den richtigen Schemen zum 3.2 TFT von iTead (SchemaDoku)

Und hier noch ein paar Hinweise zur Thematik:
http://www.firewing.info/forum/viewtopic.php?t=58&p=285
http://forum.iteadstudio.com/viewtopic.php?f=26&t=705

Ich werde jetzt den 100 Ohm durch einen 10 Ohm oder ähnlich anpassen…dann sollte die Display-Helligkeit auch für mich passen 😀

Update: Funktioniert wie erhofft!

IMG_1546

Im Rahmen des Free2Review von boxtec.ch darf ich hier ein DigiX Board von Digistump testen. Vielen Dank an Boxtec für die tolle Möglichkeit.

Unboxing

Board in Anti-Statik-Sack…

IMG_1512
Beschriftung auf der Rückseite teilweise unvollständig, Fingerabdrücke

IMG_1502
2560 Mega Design

IMG_1513

Um die vielen zusätzlichen IOs herauszuführen sind neben den Arduino-Standard-Anschlüssen noch eine parallele Reihe von Anschlüssen angebracht. (Unten Doppelreihe).
Rechts befindet sich der Audio 3.5 Asnchluss, WLAN, Micro USB, Power-Jack (Von Oben nach unten).

Features

  • 99 IOs davon 12 PWM, 12 Analog Input, 2 Analog-Output
  • WLAN mit eigenem Prozessor (Low-Power)
  • Arduino DUE Kompatibel
  • Audio Buchse
  • RTC OnBoard
  • 4KB (32kbit) EEPROM über I2C
  • nRF24L01+ ready (Anschluss vorhanden, Modul muss gekauft werden…)
  • 3.3V, 3.4-5.5V (LiPo Ready), 5V, or 6-16V input (onboard buck regulator)
  • Micro SD
  • 96KB SRAM
  • 512KB Flash
  • 1A @ 3.3V and 1A @ 5V  (Wenn das Board mit mehr als 5V gespiesen wird)

und vieles mehr … http://digistump.com/wiki/digix/overview

Wichtiges für den Anfang

Treiber und Beispiele für die Arduino IDE (Mindestens 1.5): http://digistump.com/wiki/digix/tutorials/software

Das Digix Board hat im Gegensatz zum Arduino Due nur einen USB Anschluss. Dieser wird zum Programmieren, Serielle Ausgaben, und auch als USB Host verwendet. Der DUE hat zwei Anschlüsse, damit sich das Programmieren einfacher gestaltet. Daher gibt es je nach Anwendungsfall einiges zu beachten. Windows macht z.B. für jede USB Device ID an einem Port einen eigenen seriellen COM Port. Da das Divix Board nur ein USB für Programmieren und Host hat, gibt es sich je nach Bootloader-Status mit unterschiedlichen USB-DEV-ID aus. Das heisst, sobald das Board in den Programmier-Modus geht, stimmt der eingestellte Port in der Arduino IDE nicht mehr… 🙂 Dazu gibt es aber eine lange Erklärung inklusive einiger Lösungs-Vorschläge…Auf englisch und sehr umfangreich.http://digistump.com/wiki/digix/tutorials/programming

Das DigiX Board hat noch zusätzliche IOs herausgeführt. Im offiziellen Forum hat ein User mit einer PinMap begonnen. Scheint aber noch nicht ganz fertig zu sein. Ist im Wiki verlinkt. http://digistump.com/wiki/digix/tutorials/pinout

Was mich an dem Board am meisten gereizt hat und warum ich mich für diesen Review gemeldet habe

Das Board ist kompatibel mit den bekannten iTead Touch-TFTs. Und wenn diese aufgesattelt sind, sind noch weitere IOs frei zugänglich. Ausserdem hat das Board WLAN integriert. Alleine WLAN für diesen Preis ist Kauf-Argument. Da ich aktuell noch an einem CAN-Bus Projekt dran bin, hat mich der integrierte CAN-Bus natürlich auch gereizt.

RTC, SD, nRF24L01+ … spätestens da bin ich sowas von… 🙂 Und ich gebe es gerne zu; ich bin auch schon Fan des Mega 2560 von iTead mit Ethernet und RTC usw. onBoard. Da erhalte ich als Kunde fürs Geld doch schon einige coole Features die ich so nicht noch extra anschaffen muss.

Was ich speziell angeschaut habe …

CAN Bus

Als erstes hat mich der CAN Bus gereizt. Da das DigiX Board eigentlich dem Arduino DUE sehr nahe steht, habe ich zuerst nach Infos oder einer Library zum DUE gesucht. Im offiziellen Adruino Forum habe ich dann folgenden Thread gefunden: http://forum.arduino.cc/index.php?topic=131096.0

Hier wird aktiv an einer Library (Auch von den offiziellen Arduino Entwicklern) gearbeitet. Soweit ich das aber richtig verstehe, braucht es trotzdem noch zusätzliche Hardware um mit dem Bus zu sprechen (Transmitter) Ich habe bereits einen lauffähigen Arduino UNO mit CAN Bus Shield und dieses funktioniert sehr gut und ist relativ günstig. Wenn ich also für den DUE oder das DigiX noch Zusatz-Hardware brauche… naja… dann sehe ich den direkten Nutzen noch nicht so… 🙁

WLAN

Wenn das Board das erste Mal eingesteckt wird, zeigt sich ein neues WLAN mit der SSID DIGIX. Dort bekommt man per DHCP eine Adresse und kann das Board über 10.10.100.254 über ein WebInterface konfigurieren. Alles zum Thema WiFi konfigurieren findet man hier. http://digistump.com/wiki/digix/tutorials/wifi Natürlich will man je nach Programm die WiFi Settings auch aus dem Arduino Sketch programmieren. Dazu können serielle AT Kommandos gesendet werden. Für die meisten Funktionen gibt es aber in der Digifi Library schon fertige Funktionen die hier beschrieben sind. http://digistump.com/wiki/digix/tutorials/wifi/library-functions

Ich habe 4 der Beispiels-Sketchs ausprobiert, nachdem ich das Board über das Webinterface mit meinem WLAN verbunden habe. Genial gelöst: Das Board kann gleichzeitig selbst Access-Point sein UND mit einem lokalen WLAN verbunden sein.

Arduino-Wifi-Success

Juhu … WLAN funktioniert auf Anhieb und der Ping zum Gateway hat auch geklappt. Frohen mutes ans zweite Beispiel, ein kleiner HTML WebServer. Soweit ich die Library verstehe, macht das WLAN Modul den TCP Server.

#include <DigiFi.h>
DigiFi wifi;

void setup()
{
  Serial.begin(9600); 
  wifi.begin(9600);

  //DigiX trick - since we are on serial over USB wait for character to be entered in serial terminal
  while(!Serial.available()){
    Serial.println("Enter any key to begin");
    delay(1000);
  }

  Serial.println("Starting");

  while (wifi.ready() != 1)
  {
    Serial.println("Error connecting to network");
    delay(15000);
  }  

  Serial.println("Connected to wifi!");
  Serial.print("Server running at: ");
  String address = wifi.server(8088);//sets up server and returns IP
  Serial.println(address); 

//  wifi.close();
}

void loop()
{

  if ( wifi.serverRequest()){
      Serial.print("Request for: ");
     Serial.println(wifi.serverRequestPath());
     if(wifi.serverRequestPath()!="/")
       wifi.serverResponse("404 Not Found",404); 
      else
       wifi.serverResponse("<html><body><h1>This is a test</h1></body></html>"); //defaults to 200
  }

  delay(10);  
}

Wie man hier am mitgelieferten Beispiel sieht wird als erstes im Setup Teil auf die serielle Arduino Konsole gewartet. Das hat mit dem Umschalten des USB Ports zu tun. (Siehe Hinweis oben)  Dann wird über das wifi Objekt ein neuer TCP Server auf Port 8088 gestartet. Nach dieser Initialisierung kann man über die Weboberfläche des WLANs (Welches auf Port 80 sitzt…) sehen, dass der Controller einen TCP Server auf 8088 offen hat. Ich denke, dass hier die Digifi Library über die seriellen AT Kommandos alles schön konfiguriert und uns dadurch viel Arbeit abnimmt 🙂

Natürlich hat das Beispiel dann bei mir NICHT funktioniert. Auch nmap hat keinen offenen Port auf der Adresse gefunden. Ein Neustart des Boards hat da aber geholfen. Nach dem es sich frisch mit dem WLAN verbunden hat, klappte es auch mit dem TCP Server. Auch beim Client Beispiel hat es erst nach einem Neustart richtig funktioniert. Danach klappt es aber richtig schnell und sehr sehr einfach.

Ein weiteres cooles Beispiel ist „SetRTCbyNTP“. Es wird über eine Client UDP Verbindung die Zeit eines Internet-Zeitservers geholt und die interne RTC damit abgeglichen. Danach gibt das Board seine Zeit über den seriellen Port aus. Das Beispiel zeigt relativ einfach wie mit der RTC umzugehen ist.

nRF24L01+

Konnte ich noch nicht testen…

TFT + Touch

Wenn man(n) schon so viele IOs hat, wollte ich gleich noch das iTead 3.2 “ TFT mit integriertem Touch testen.

im120417021_1

Die beliebte Library von Henning Karlsen (uTFT und uTouch) sind im Download des DigiX Pakets bereit enthalten. TFT aufstecken und einen der Beispiel-Sketches ausführen, funktioniert auf Anhieb. Naja, ausser bei mir… aber das war mein Fehler. Das Display muss wirklich eine SEHR gute Verbindung zum Board haben, damit alles funktioniert. Dann klappts auch mit Bild. 🙂 Einzig die Display Helligkeit finde ich sehr schwach. Aber vielleicht finde ich hier noch was dazu.

Update: Hier ist die Lösung…

Fazit

Das Board ist sehr schnell. Das Laden eines neuen Sketch, booten usw. Und WLAN zu diesem Preis ist einfach unschlagbar. Funktioniert einwandfrei und auf Anhieb. Ich denke das DigiX wäre mich der logische Nachfolger zum iTead iBoard Pro. Dazu die vielen IOs, der präzisere ADC und 2x DAC … die Möglichkeiten mit dem Board sind meiner Meinung nach sehr gross. Für den ambitionierten Arduino Bastler ein tolles Produkt.

Netatalk und Samba sind die zwei grossen Brocken. Dachte ich zuerst. Aber mit ein paar guten Anleitungen war es eigentlich kein grosses Problem. Ich habe darum hier auch nur das nötigste dokumentiert.

netatalk

Zuerst habe ich netatalk installiert, eine Apple File Share Implementation.

sudo aptitude install netatalk

Danach die /etc/netatalk/afpd.conf anpassen und die letzte Zeile wieder aktivieren.

- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2_passwd.so -nosavepassword

Dann die Shares erstellen: Dazu die /etc/netatalk/AppleVolumes.default editieren. Unterhalb der Zeile DEFAULT können die Shares mit dem Pfad und einer Bezeichnung erstellt werden.

/Daten "Daten"

Dann den netatalk Service neu starten. Damit die AFP Shares beim Mac automatisch bekannt gemacht werden, noch avahi installieren (Zeroconf Implementation):

service netatalk restart
aptitude install avahi-daemon libnss-mdns

Danach die /etc/nsswitch.conf editieren und am Ende der Hosts Zeile noch den Eintrag „mdns“ eintragen.
Das müsste dann wie folgt aussehen:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

Jetzt zuerst für den Samba Service eine eigene Konfiguration bereitstellen:

sudo gedit /etc/avahi/services/afpd.service

und mit folgendem Code befüllen:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Afp on %h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>

In dieser Service Datei wird der Port, Name des Service und mit welchem Icon sich der AFP Service per Bonjour den Macs im Netzwerk gegenüber vorstellt, vorgegeben.

Samba

Samba wird mit einigen Tools die für den Betrieb des Samba Servers sinnvoll sind, installiert:

sudo aptitude install samba-common samba tdb-tools

Danach in der /etc/samba/smb.conf noch die Shares definieren:

[data]
comment = data auf%
path = /mk-2000-raid
browseable = yes
guest ok = no
read only = no

Und wieder eine eigene Service-Beschreibung für avahi erstellen:

sudo gedit /etc/avahi/services/samba.service

und mit folgendem Code befüllen:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
   <name replace-wildcards="yes">Samba on %h</name>
   <service>
       <type>_smb._tcp</type>
       <port>445</port>
   </service>
   <service>
       <type>_device-info._tcp</type>
       <port>0</port>
       <txt-record>model=Xserve</txt-record>
   </service>
</service-group>

Hier noch einige nützliche samba Befehle:

sudo smbpasswd -a # Fügt den Benutzer der Samba Datenbank hinzu und aktiviert diesen
sudo smbpasswd -x # Entfernt den Benutzer aus der Samba Datenbank
sudo smbpasswd -d # Deaktiviert den Benutzer in der Datenbank
sudo smbpasswd -e # Aktiviert den vorher deaktivierten Benutzer in der Datenbank wieder

Links und woher die Infos stammen:

http://billxinli.com/2012/01/23/emulate-ubuntu-as-osx-with-avahi/

http://www.kremalicious.com/2008/06/ubuntu-as-mac-file-server-and-time-machine-volume/

http://en.gentoo-wiki.com/wiki/Avahi

Damit der Plex Media Server seine Dienste per Zeroconf (Bonjour für die Apple User) an die iOS Devices und Macs preisgibt, muss zuerst avahi installiert werden. Das ist die Zeroconf Umsetzung für Linux. Weiter Infos bei Wikipedia. Diese Abhängigkeiten werden bei der Installation von Plex automatisch mit installiert.

Die Source-Datei für Plex erstellen und aptitude aktualisieren:

sudo echo 'deb http://www.plexapp.com/repo lucid main' >> /etc/apt/sources.list.d/plexapp.list
sudo aptitude update
sudo aptitude install plexmediaserver

Danach ist der Plex Media Server unter folgender URL erreichbar:

http://localhost:32400/manage/index.html

Weitere Infos zum Plex Media Server und zur Bedienung findet man direkt auf der Homepage. Wie man eine bestehende Library umzieht (In meinem Fall weg vom alten Server), steht hier.

Moving a Database from one Server to another

Moving the Plex Media Server database from one Server to another is fairly simple. There is a trick to set the new path to the media, and restoring Plug-in bundles. The idea is to copy the entire contents of the database to the new location, reset the Section source and then ’show‘ the new Plex Media Server the media.

Step 1 – Copy the Source database to the Destination

On both Source and Destination computer, make sure PMS is not running. On a PC, enable Show Hidden Files and Folders to see the AppData folder.

  • From a Mac, copy the contents of ~/Library/Application Support/Plex Media Server EXCEPT the Plug-ins folder
  • From a PC, copy the contents of ~AppDataLocalPlex Media Server EXCEPT the Plug-ins folder
  • To a Mac, copy the files to ~/Library/Application Support/Plex Media Server
  • To a PC, copy the files to ~AppDataLocalPlex Media Server

~‘ is your Home directory. For large libraries, this will take quite some time.

Step 2 – Start the new Plex Media Server

  • Start the Plex Media Server on the new computer
  • Watch the empty Plug-ins and notice that new Plug-in bundles are created

Step 3 – Check the new Library

  • Launch the Media Manager. If the Plex Media Server is still busy re-creating things it may take a little longer than usual to launch
  • Once launched, you should see your previous library however all the paths will be broken

Step 4 – Add the new path to the Section

  • Choose the Section you want to update
  • Click Edit Section – a sheet will slide down
  • Click the + button and add the new media path
  • Select the old path then click the button to remove the old media path
  • Click Update Section

Note – if you can’t click Update Section, make sure you didn’t copy the Plug-ins folder from source computer. If you did, quit Plex Media Server, delete the ‚Plug-ins‘ folder and re-start PMS again.

Step 5 – Deep-scan the Section

  • Launch the Media Manager, Option-click the Refresh button at the bottom right of the window
  • Using the Web UI, Option/Alt-click the Refresh button at the bottom right of the window
  • Let the refresh complete

Damit der Server seine Systemzeit regelmässig aktuell hält habe ich einen täglichen Job zur Synchronisation der Zeit eingerichtet. Dazu habe ich unter /etc/cron.daily eine neue Datei mit dem Namen ntpdate angelegt und dort die Zeile ntpdate 0.ch.pool.ntp.org eingetragen. Danach die Datei ausführbar markiert und fertig 🙂

sudo echo 'ntpdate 0.ch.pool.ntp.org' > /etc/cron.daily/ntpdate
sudo chmod 755 /etc/cron.daily/ntpdate

Um über Einbruchsversuche, Fehler, Warnungen usw. auf dem laufenden zu sein, gibt es eine tolle Möglichkeit. Mit dem Tool logcheck werden die Logfiles die Anfallen automatisch durchsucht. Filter lassen uninteressante Beiträge automatisch weg, so das nur das was spannend ist angezeigt wird. Sobald ungewöhnliche Dinge passieren wird eine Mail versendet. Zusätzlich kommt noch syslog-summary dazu, wird von logcheck benötigt.

sudo aptitude install logcheck syslog-summary -y

Und die Konfiguration sieht bei mir so aus:

REPORTLEVEL="server"
INTRO=1
SENDMAILTO="foo@bar.ch"
MAILASATTACH=0
FQDN=1
SYSLOGSUMMARY=1
ADDTAG="no"

Zusätzlich habe ich das rsnapshot.log in /etc/logcheck/logcheck.logfiles eingetragen.

echo '/var/vlog/rsnapshot.log' >> /etc/logcheck/logcheck.logfiles

rsnapshot ist eine Kombination aus rsync und Snapshot Technologie.Wie rSnapshot genau funktioniert steht hier.

Einfach installiert:

sudo aptitude install rsnapshot

Danach muss die Konfiguration unter /etc/rsnapshot.conf angepasst werden. Ich verwende dazu nano. Folgende Änderungen habe ich vorgenommen:

snapshot_root   /backup/
retain          hourly  48
retain          daily   7
retain          weekly  4
retain          monthly 60
verbose         2
loglevel        2
logfile         /var/log/rsnapshot.log
lockfile        /var/run/rsnapshot.pid
rsync_long_args --stats --delete --numeric-ids --relative --delete-excluded
backup  /configs/                               localhost
backup /data/                                   localhost
backup  /etc/                                   localhost
backup  /usr/local/                             localhost
backup_script  /backup/utils/backup_dpkg.sh     localhost/dpkg

Jetzt ein Verzeichnis für die Backups anlegen und aus den Dokus die rsnapshot utils hierher kopieren. Damit können zusätzlich noch z.B. die Aptitude Packetliste, Datenbanken usw. gesichert werden oder z.B. schöne Reports per Mail versendet werden.

mkdir /backup
sudo cp -r /usr/share/doc/rsnapshot/examples/utils/ /backup/utils
gunzip /backup/utils/rsnapreport.pl.gz
chmod +x /backup/utils/rsnapreport.pl

Danach noch die /etc/cron.d/rsnapshot Datei editieren um per rsnapreport per Mail über den Backup Verlauf informiert zu werden:

0 * * * * root /usr/bin/rsnapshot hourly 2>&1 | /backup/utils/rsnapreport.pl | mail -s "mk-ubuntu1 hourly" foo@bar.ch
15 1 * * * root /usr/bin/rsnapshot daily  2>&1 | /backup/utils/rsnapreport.pl | mail -s "mk-ubuntu1 daily" foo@bar.ch
30 1 * * 0 root /usr/bin/rsnapshot weekly  2>&1 | /backup/utils/rsnapreport.pl | mail -s "mk-ubuntu1 weekly" foo@bar.ch
45 1 1 * * root /usr/bin/rsnapshot monthly  2>&1 | /backup/utils/rsnapreport.pl | mail -s "mk-ubuntu1 monthly" foo@bar.ch

Oder wenn man den rsnapreport nicht per Mail möchte:

0 * * * * root /usr/bin/rsnapshot hourly
15 1 * * * root /usr/bin/rsnapshot daily
30 1 * * 0 root /usr/bin/rsnapshot weekly
45 1 1 * * root /usr/bin/rsnapshot monthly

Jetzt werden 48 Stunden lang stündliche Snapshots gemacht, dann 7 Tage, 4 Wochen und 60 Monate (5 Jahre) Und es werden nur die wirklichen Änderungen geschrieben. Ich bin gespannt wie sich die Datenmenge entwickelt.

 

RAID

Ich habe das RAID bereits bei der Installation konfiguriert. Trotzdem zur Sicherheit nochmals die Konfig und Überwachung! checken:

sudo dpkg-reconfigure mdadm

Damit wird die RAID Konfiguration nochmals richtig eingestellt, EMail Warnungen, RAID check usw. Ausserdem ist zur sicherheit nochmals die Abfrage, ob das RAID wenn /boot auch auf dem RAID ist, beim Ausfall einer Disk trotzdem starten soll. Soll es!

Alle wichtigen Befehle zu diesem Thema sind hier zusammengefasst.

Check der einzelnen RAID Partitionen md0 und md1

sudo mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time :
     Raid Level : raid1
     Array Size : 18873272 (18.00 GiB 19.33 GB)
  Used Dev Size : 18873272 (18.00 GiB 19.33 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time :
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : mk-ubuntu1:0  (local to host mk-ubuntu1)
           UUID : 88959ce1:eb736b62:c8168e38:ed67f357
         Events : 19

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1
sudo mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time :
     Raid Level : raid1
     Array Size : 2093044 (2044.33 MiB 2143.28 MB)
  Used Dev Size : 2093044 (2044.33 MiB 2143.28 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time :
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : mk-ubuntu1:1  (local to host mk-ubuntu1)
           UUID : d3244def:741c0367:ddbad87b:25dfb139
         Events : 19

    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       1       8       21        1      active sync   /dev/sdb5

Postfix

Damit der Server Mails auch an externe Adressen senden kann und so über Störungen informiert, installiere ich postfix und lasse postfix die Nachrichten über meinen SMTP des Hosters Mails an meine Mailadresse weiterleiten. Ausserdem installiere ich die mailutils, damit aus der Kommandozeile Mails gesendet werden können.

 sudo aptitude install postfix mailutils

Danach Postfix wie in dieser Anleitung beschrieben für das verschlüsselte Senden über den externen SMTP konfigurieren. Dann kann nochmals zur Sicherheit mit folgendem Befehl getestet werden, ob mdadm wirklich auch Mails versendet:

sudo mdadm --monitor --scan --test --oneshot

Webmin

Webmin ist ein Webinterface das für viele gängie Linux Distributionen existiert. Es erlaubt viele Einstellungen und Konfigurationen direkt in einer Weboberfläche zu machen. Sicher ab und zu hilfreich und eine Erleichterung.

Ich installiere Webmin mit einer eigenen List für die Sources (Aptitude).

Danach ist unter der URL https://servername:10000 die Webmin Oberfläche erreichbar.

Hier noch die wichtigsten Befehle:

echo 'deb http://download.webmin.com/download/repository sarge contrib' >/tmp/webmin.list
echo 'deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib' >>/tmp/webmin.list
sudo cp /tmp/webmin.list /etc/apt/sources.list.d/
rm /tmp/webmin.list

cd /tmp
sudo wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

sudo aptitude update
sudo aptitude install webmin

Somit wird automatisch Webmin installiert.

Was jetzt noch offen ist

Folgende Punkte bleiben damit vorerst noch offen:

  • Samba Sharing (CIFS)
  • Backup mit rsnapshot
  • rsync Off-Site Backup
  • Plex-Media-Server (PMS)
  • AFP (Apple File & Print) Sharing
  • CalDav, CardDav und WebDave Filezugriff mit OwnCloud
  • jDownloader ohne GUI
  • WOL und Nachtabschaltung (Stromsparen)
  • Bonjour (Avahi)
  • Samba Papierkorb
  • AFP Papierkorb

Um unter Ubuntu 11.10 die langweiligen Standard-Login-Anzeigen (motd = message of the day) durch Aussagekräftige und „coole“ Daten zu ersetzen, gibt es einige sehr einfache Tipps und Tricks 🙂

Unter /etc/update-motd/ sind Scripte die in der Reihenfolge Ihres Namens nacheinander beim Login und per Cron Job alle 10 Minuten gestartet werden. Zusammen ergibt sich eine Ausgabe von verschiedenen Informationen und „Standard-Text“.

Ich habe die Datei 00-header wie folgt angepasst:

[ -r /etc/lsb-release ] && . /etc/lsb-release

if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then
        # Fall back to using the very slow lsb_release utility
        DISTRIB_DESCRIPTION=$(lsb_release -s -d)
fi

hostname -f | figlet -c

printf "Welcome to %s (%s %s %s)n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"

Neu von mir ist der Aufruf von hostname -f (Full-Qualified) und übergabe per Pipe an figlet. Figlet kann direkt coole ASCI ART erstellen. Mit -c wird die Ausgabe dann zentriert angezeigt. Das sieht dann so aus:

                      _               _                 _         _
            _ __ ___ | | __     _   _| |__  _   _ _ __ | |_ _   _/ |
           | '_ ` _ | |/ /____| | | | '_ | | | | '_ | __| | | | |
           | | | | | |   <_____| |_| | |_) | |_| | | | | |_| |_| | |
           |_| |_| |_|_|_     __,_|_.__/ __,_|_| |_|__|__,_|_|

Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-16-server x86_64)

Figlet ist nicht Standardmässig installiert. Dies wird aber einfach über ein

sudo aptitude install figlet

gelöst. Weiter Infos was figlet noch alles kann findet man bei google oder mit „man figlet“. Um die Werbung für Landscape zu unterbinden einfach im 50-landscape-sysinfo folgende Zeile ergänzen:

/usr/bin/landscape-sysinfo --exclude-sysinfo-plugins=LandscapeLink

anstatt original

/usr/bin/landscape-sysinfo

Schon sieht die ganze Sache etwas flotter aus 🙂

Ich verwende die 11.10 Version 64 Bit und werde englisch installieren, da es mir so leichter fällt, etwaige Fehler bei Google zu finden. Das ISO kann natürlich auf eine CD/DVD gebrannt werden. Ich verwende stattdessen mein iOdd Virtual Rom. Warum ich hier schon die Installation dokumentieren kann? Ich teste alle Pakete und Konfigurationen zuerst in meiner virtuellen Maschine, bevor ich mein Produktiv-System verunstalten will. Wenn es dann klappt baue ich sogar ein fertiges Script für die Grundinstallation. Da bin ich mir aber noch nicht so sicher… 🙂

Ubuntu Server Download

Installation Ubuntu

Ich habe bemerkt, es gibt zwei Varianten. Entweder wie unten beschrieben gleich von Anfang an beide Disks als RAID 1 konfigurieren und dabei erlauben, auch wenn das RAID durch einen Ausfall zerbricht,trotzdem von nur einer der Disks zu starten. Oder die Alternative, Ubuntu auf einem 8 GB USB Stick installieren und davon booten. Dann können die zwei Festplatten als „nur“ Daten-Laufwerke hinhalten. Allerdings muss dann das System (USB Stick) zusätzlich gesichert werden. Eventuell ist auch die Performance nicht gleich gut. Ich wähle also vorerst die Variante RAID 1 gleich beim Setup einrichten. Weitere Infos dazu habe ich hier gefunden.

Hier noch die wichtigsten Punkte während der Installation:

  • Sprache: Englisch
  • Country: Europe – Switzerland
  • Local settings: Zuerst United States, Installer merkt dann, dass dies nicht die passende Sprache zum Land ist und schlägt eine Tastenerkennung vor, die dann das korrekte Layout (CHDE) vorschlägt
  • Hostname: mk-ubuntu1
  • Timezone: Europe/Zurich
  • Partition disks:
    • manual
    • Erste Disk wählen, empty table erstellen
    • Platz auswählen und „Automatically partition“ wählen
    • ZweiteDisk wählen, gleiches Prozedere
    • Configure Software RAID
    • Write changes – YES
    • Create MD device
    • RAID 1
    • 2 Disks
    • 0 Spare
    • /dev/sda1 und /dev/sdb1
    • Write changes – YES
    • Configure Software RAID
    • Create MD device
    • RAID 1
    • 2 Disks
    • 0 Spare
    • /dev/sda5 und /dev/sdb5
    • Write changes – YES
    • finish
    • RAID Device 0 erste Partition wählen und bearbeiten
    • Use as ext4, Mountpoint /
    • RAID Deive 1 erste Partition wählen und bearbeiten
    • Use as swap
    • Finish partitioning and write changes to disk
  • Username & Password: ******** & ***********
  • HTTP Proxy: <leer>
  • Tasksel: Install security updates automatically
  • Software selection: OpenSSH server – <Continue>
  • Install GRUB: Yes
  • Danach reboot! 🙂

Weitere Tools & erste Einstellungen

Nach dem Neustart verbinde ich per SSH auf den Rechner (IP Adresse nach dem anmelden auf dem Server per „ifconfig“ auslesen). Jetzt als erstes das System auf den aktuellsten Stand bringen:

  • Mit aptitude update und upgrade werden alle Software Pakete gleich mal auf den neusten Stand gebracht
  • nano – einfacher Editor wie edit.com unter DOS – bei Ubuntu eigentlich schon drauf
  • wget – Downloads auf der Kommandozeile – bei Ubuntu eigentlich auch schon drauf
  • mc – Midnight Commander – Norton Commander Klon
sudo aptitude update
sudo aptitude upgrade -y
sudo aptitude install nano wget mc -y

Somit wäre die Grundinstallation von Ubuntu abgeschlossen. Weiter gehts dann in den nächsten Beiträgen zum Thema RAID, Config Files und so weiter. Mal schauen ob ich so ausführlich bleibe! Am Ende einmal mehr die Frage: Liest das überhaupt jemand? 🙂

OS

Zuerst stellte sich mir die Frage, ob ich ein fertiges NAS-OS verwenden soll. Der Vorteil, es kann mit Plug-Ins weitere Funktionalitäten nachgerüstet werden. Zu dieser Kategorie gehören

  • FreeNAS – Fork der Monowall Firewall, basierend auf FreeBSD. Leider funktioniert der Plex Mediaserver auf BSD nicht daher aktuell keine Lösung. Existiert aktuell in einer Version 7 und 8, wobei die 8. Version anscheinend noch nicht sehr reif ist, dafür ein „kompletter“ Neubau.
  • Openfiler
  • OpenMediaVault – Basiert auf Debian und wird aktuell regelmässig weiterentwickelt, ist aber noch in einem frühen Anfangsstadium.
  • unRAID – Spezielles „RAID“ das mit unterschiedlichen Festplattengrössen auskommt. Ab einer gewissen Funktionalität oder Festplattenanzahl aber kostenpflichtig. Dafür gibt es aber den Plex Mediaserver als Plugin.

Die Alternative ist, direkt ein Betriebssystem installieren und alle Services selber konfigurieren. Dabei habe ich die grösste Freiheit, alles so zu machen, wie ich möchte. Für mich kommt als Debian Fan eigentlich nur Ubuntu Server oder Debian in Frage. Hier kenne ich mich auch einigermassen aus und fühle mich „wohl“.

Da für Ubuntu vom Plex Mediaserver bereits ein fertiges Paket existiert, entscheide ich mich wohl für Ubuntu Server. Da Ubuntu auf Debian basiert, für mich weder eine Einschränkung noch ein Problem. 🙂

Software

Ich werde hier nicht eine Schritt für Schritt Anleitung starten. Zu den einzelnen Punkten schreibe ich eventuell Tipps, Links oder meine Anmerkungen. Das soll mehr eine Gedankenstütze werden. Zu jedem dieser Themen gibt es bei google GENUG Material! Wer lesen kann, bildet sich weiter 😉

Wenns dann trotzdem ausführlich wird…. naja … was solls…Werde in den nächsten Einträgen wohl einfach die Konfig der einzelnen Tools beschreiben. Wer weiss, vielleicht bin ich noch froh darüber *g*

Grundfunktionen die für mich absolut Vorrang haben

  • RAID
  • Samba Sharing (CIFS)
  • Backup mit rsnapshot
  • rsync Off-Site Backup
  • Plex-Media-Server (PMS)
  • AFP (Apple File & Print) Sharing
  • CalDav, CardDav und WebDave Filezugriff mit OwnCloud
  • jDownloader ohne GUI
  • WOL und Nachtabschaltung (Stromsparen)
  • Bonjour (Avahi)
  • Webmin
  • Samba Papierkorb
  • AFP Papierkorb
  • Postfix oder sendmail konfigurieren für ausgehende Mails

Funktionen die Später noch dazukommen könnten

  • Anti-Virus
  • Remote Zugriff
  • Proxy
  • Gui
  • Mailserver
  • Zarafa
  • Sparkelshare mit git
  • Snapshot
  • Dedup
  • Timemachine
  • iTtunes und iPhoto
  • Webserver
  • Mysql
  • Dhcp
  • Dns
  • Printer sharing

Tools

  • nano
  • wget
  • mc
  • nload
  • netperf
  • screens