Festplatten mit StorCLI (LSI) zu einem existierenden RAID hinzufügen

Um was geht’s?

Der Platz auf unserem Server war mal wieder voll und somit war es Zeit neue HDDs einzubauen und zum RAID (LSI RAID Controller) hinzuzufügen. Bisher hatte ich das immer umständlich mit MegaCLI gemacht, welches mit einer furchtbar komplizierte Bedienung beeindruckt. Das hat wohl auch LSI gemerkt und setzt neuerdings auf StorCLI, eine Überarbeitung und Weiterentwicklung von MegaCLI. Die Umsetzung ist wirklich gut, sinnvoll und macht das ganze etwas einfacher. Leider ist die Dokumentation noch nicht so weit wie die von MegaCLI (vielleicht auch weil es jetzt einfacher ist 😉 ). Die meisten Dinge sind in der Doku vorhanden, jedoch hatte ich nicht gefunden wie neue HDDs einem existierenden RAID hinzugefügt werden können. Daher dachte ich, ich schreib mal wieder ein kleines Tutorial.

Lösung

#1 StorCLI von LSI runterladen (für Ubuntu Nutzer gibt es auch diverse Repos, z.B. hier)

#2 Falls nur ein Controller und eine VolumeGroup existiert kann dieser Schritt übersprungen werden und einfach /c0/v0 verwendet werden, ansonsten muss zuerst die ID des Controllers ermittelt werden:

storcli64 show

Die RAID Controller sind in einer Tabelle unter System Overview aufgeführt

System Overview : 
===============

Danach gilt es dies für die VolumeGroup zu tun

storcli64 /c0 show

Auch diese sind in einer Liste aufgeführt

VD LIST :
======

In der ersten Spalte ist jeweils die ID zu sehen, nun muss nur die Korrekte ausgewählt werden.

#3 IDs der neuen Platten ermitteln

storcli64 /c0 show

zeigt eine Tabelle alle Platten die der RAID Controller verwaltet.

PD LIST : 
=======
#4 RAID Migration starten
Nun sollte die ID des Controllers (/cx), die ID der VolumeGroup (/vx) und die IDs aller Platten (x:x) die hinzugefügt werden sollen bekannt sein. Zusätzlich muss noch der RAID Typ angegeben werden und schon kann es los gehen:
storcli64 /c0/v2 start migrate type=raid6 option=add drives=9:6-11

#5 Warten…

Das ganze kann je nach Größe des RAIDs Stunden, Tage oder gar Wochen dauern. Der Fortschritt kann jederzeit mit folgendem Befehl überprüft werden:

storcli64 /c0/v2 show migrate

Standardmäßig werden 30% des IOs genutzt um das RAID zu migrieren. Dies kann und wird, je nach dem was auf dem RAID liegt, das komplette System für diese Zeit sehr verlangsamen. Die „Migraterate“ kann nachgeschaut und bei bedarf auch umgestellt werden:

storcli64 /c0 show migraterate

Recovering a ASUS RT-N56U after Firmware-upgrade fail

Scheint bei mir langsam zur Gewohnheit zu werden diverse Geräte nach einem Upgrade-Fail wieder zum laufen zu bringen 🙂

Was ist passiert?

Ich habe einen ASUS RT-N56U Router bekommen, nachdem ein Firmware-Upgrade von 1.x auf 3.x durchgeführt wurde (das ist jedenfalls was mir gesagt wurde 🙂 ) und der Router danach in keiner Weiße mehr reagiert hat.

Symptome

  • Keine Reaktion/Blinken mehr an den LAN Ports
  • Keine Reaktion/Blinken am WAN Port
  • Keine blinkenden Status LEDs
  • Allein die PowerLED hat durchgehend blau geleuchtet

Ansatz

Mein erster Weg war zur ASUS Support Page dieses Routers. Dort findet man eine recht ausführliche Anleitung wie man mit Hilfe eines Recovery Tools die Firmware neu flashen kann. Leider hat diese Anleitung bei mir so nicht funktioniert und ich musste doch wieder zur allseits beliebten Suchmaschine greifen 😉 .

Lösung

Um nicht lange drum rum zu reden, hier die Anleitung wie ich die Firmware wiederhergestellt hab. Sollten die Direktlinks nicht (mehr) funktionieren einfach auf die oben genannte Support Page gehen, den Router und das passende Betriebsystem auswählen.

#1 Das Recovery Tool herunterladen und Installieren. Achtung: Geht nur auf Windows, ich musste also extra mein Laptop auspacken und ins Windows booten.

#2 Die Firmware mit der Version 3.0.0.4.374.130 herunterladen. Achtung: Auf die Versionsnummer achten! Bei mir ging die aktuelle Firmware nicht, obwohl in vielen Anleitungen die neuste Firmware genannt wird.

#3 Den Router im Recoverymodus starten wie folgt:

ALLE Stecker ausstecken, auch WAN und Strom. Den Resetknopf gedrückt halten, währenddessen den Strom einstecken und warten bis die PowerLED blau blinkt, dann den Resetknopf los lassen.

#4 Den Computer über LAN direkt mit dem Router Verbinden (Port ist eigentlich egal, ich hab Port 1 genommen). Wichtig: Alle anderen Netzwerkschnittstellen deaktivieren! Ich musste mein WLAN in der Systemsteuerung deaktivieren, sonst konnte ich mich nicht mit dem Router über LAN verbinden. Seltsam, aber hilft 🙂 .

#5 In den Einstellungen der Netzwerkkarte eine statische IP vergeben:
IP: 192.168.2.11
Subnetzmaske: 255.255.255.0
Gateway: 192.168.2.1

#6 ASUS Recovery starten, die heruntergeladene Firmware auswählen und auf „Hochladen“ klicken.

#7 Warten und die Daumen drücken! Es dauert eine Weile bis die Firmware geflashed ist. Danach dauert es noch einen Moment bis der Router neugestartet hat. Erst hat wieder nur die PowerLED geleuchtet, aber nach einer weiteren Minute warten lief der Router dann wie er sollte und war wieder übers LAN erreichbar.

And it’s gone – QNAP webinterface

Und schon wieder…

Heute ist zwar nicht (wie letztes Mal) Sonntag, aber ich hatte wieder ein Erlebnis mit meiner QNAP: Mein Webinterface war weg… :-/

Problem

Ich hatte „force SSL“ an und somit den Standard-Port 8080 deaktiviert. Beim Update auf 4.1.0 hat es dann scheinbar den SSL-Port zerschossen und ich konnte nicht mehr auf das Webinterface zugreifen. Die Shares und SSH ging allerdings noch.  Was nun? Eine QNAP ohne Webinterface macht ja auch wenig Sinn. Also auf ins „Gefecht“.

Lösung

Nach einigen Fehlversuchen war die Lösung dann doch zum Glück recht einfach:

#1 Per SSH einloggen

#2 Folgende Befehle ausführen:

setcfg System "Force SSL" 0
/etc/init.d/thttpd.sh restart

#3 Nun sollte der Default-Port wieder funktionieren und ihr könnt euch per ipadresse:8080 einloggen

#4 Einfach in die Einstellungen gehen und den SSL Port auf einen anderen Port der Wahl legen, z.B. 9091.

#5 Nun kann „force SSL“ wieder aktiviert werden und das System sollte über den neu definierten Port erreichbar sein: ipadresse:9091

Full-featured Trackmania2 Stadium Server hosten

TrackMania2 Stadium

Falls ihr TrackMania nicht kennt und ihr (Arcade-) Rennspiele mit anspornendem Multiplayer gern habt, solltet ihr euch dieses Spiel unbedingt anschauen. Das Prinzip ist simpel: Eine Strecke wird eine bestimmte Zeit lang gespielt, z.B. 5 Minuten und während dieser Zeit könnt ihr so oft ihr wollt fahren (natürlich auch jederzeit neu starten) und damit eure Zeit verbessern. Wer nach diesen 5 Minuten die beste Zeit gefahren hat gewinnt. Dank guter Fahrphysik und extrem abwechslungsreichen Strecken mit allen erdenklicher Streckenteile wie Loopings, Wallrides, verrückten Sprüngen, etc (es gibt natürlich auch Strecken ohne diese Dinge) macht dieses Spiel auch lange Zeit viel Spass. Ein super Bonus-feature: Ihr könnt auch mit dem eingebauten Map-Editor eure eigenen Strecken bauen.

Was ist mit „Full-featured“ gemeint?

Wer schon mal Trackmania gespielt hat, der weiß wie das Interface normal ausschaut (Singleplayer). Spielt man aber online ändert sich das ganze, die meisten Server haben diverse Plugins für den Dedicated-Server um das Spiel spannender zu machen. So werden oft die „Local Records“ und die aktuelle Plazierung auf der rechten und die „Dedimania Records“ auf der linken Seite angezeigt. Dadurch sieht man sofort beim fahren wie gut man abschließen muss um einen Platz in den Records bekommt oder wie gut momentan die anderen sind. Aber auch Dinge wie „wer war an welchem Checkpoint der schnellste“ oder wie gut ist die aktuelle Strecke bewertet finden sich auf dem HUD.

tm2

Alles in allem verbessern diese Plugins den Spiel-spass und den ganzen Ablauf online um einiges. All dies wollen wir auf unserem Server auch haben.

Der eigene Server

Voraussetzungen

Folgende Dinge werden benötigt:

  1. Ein eigener Server, vorzugsweise ein Root-Server im Rechenzentrum der Wahl. Alternativ geht auch ein V-Server oder ein alter PC zu-hause (allerdings sind dann ein schnelles Internet und wissen über NAT für den Router Pflicht)
  2. Linux (Für mein Tutorial, läuft im Prinzip aber auch auf Windows)
  3. Das Spiel also einen Key für Trackmania und den damit verbundenen Trackmania Account
  4. Einiges an Zeit

 Die Grund-Installation

#1 Einen Dedicated-Server-Account erstellen

Auf ManiaPlanet einloggen und dort eine neuen Dedicated Account erstellen. Einfach einen neuen Login aussuchen (ist später nur ganz klein im Detailfenster zu sehen, also im Prinzip frei wählbar), ein Passwort vergeben (Achtung: Merken, das brauchen wir später!) und als letztes noch den Standort des Servers aussuchen (nach diesem kann im Spiel gefiltert werden)

#2 (Optional) Einen neuen Linux-User für TM2 erzeugen und zum neu erstellen User wechseln

sudo adduser tm2
sudo su tm

#2 Dedicated-Server herunterladen

cd ~ #oder in das gewünschte Verzeichnis wechseln
mkdir tm2-dedi
wget http://files.maniaplanet.com/ManiaPlanet3Beta/ManiaPlanetBetaServer_latest.zip
unzip ManiaPlanetBetaServer_latest.zip

Alternativ kann auch das Ubuntu Repository genutzt werden (natürlich nur unter Ubuntu)

#3 Serverkonfiguration

mv UserData/Config/dedicated_cfg.default.txt UserData/Config/dedicated_cfg.txt
nano UserData/Config/dedicated_cfg.txt

Folgende Dinge müssen verändert werden:

#3.1 Ein neues SuperAdmin Passwort vergeben:

<level>
     <name>SuperAdmin</name>
     <password>DasNeueSuperAdminPasswort</password>
</level>
<level>
     <name>Admin</name>
     <password>DasNeuePasswort</password>
</level>
<level>
     <name>User</name>
     <password>DasNeuePasswort</password>
</level>

#3.2 Den Dedicated-Login eingeben:

<masterserver_account>
     <login>dedicatedLogin</login>
     <password>dedicatedPasswort</password>
     <validation_key>VALIDATIONKEY</validation_key>
</masterserver_account>

#3.3 Den Servernamen vergeben:

<server_options>
     <name>ServerName</name>
<comment>Kommentar für den Server</comment>

#3.4 Environment einstellen:

<title>TMStadium</title>

Achtung: In nano können Änderungen mit Strg+O gespeichert werden und der Editor wird anschließend mit Strg+X wieder geschlossen.

#4 Startscript bearbeiten:

nano RunSrvTM.sh

./ManiaPlanetServer /title=TMStadium /game_settings=MatchSettings/TMStadiumA.txt /dedicated_cfg=dedicated_cfg.txt

 XAseco

Für Trackmania gibt es eine ganze Liste verschiedener Pluginsystem. Recht bekannt und auch schon oft genutzt im alten TrackMania ist XAseco2.

#1 Download

Einfach die aktuellste Version von der XAseco Website herunterladen (Zum Zeitpunkt dieses Blogeintrags war dies Version 1.03).

#2 MySQL

Jetzt wirds ein wenig komplizierter, denn alle Daten von XAseco werden in einer MySQL Datenbank gespeichert (Records, Votes, etc). Also müssen wir zuerst eine MySQL Datenbank installieren (einfach #2.1 überspringen, falls schon installiert).

#2.1 Installation

Je nach Linux Distribution ist das ein wenig anders, für Ubuntu/Debian wäre das:

sudo apt-get install mysql-server

Auf ArchLinux wäre dies (Achtung MySQL wurde hier von MariaDB ersetzt, für den Anwender bleibt aber fast alles beim Alten):

sudo pacman -S mariadb

#2.2 Datenbank anlegen

Erst müssen wir uns in der Datenbank einloggen:

mysql -u root -p

und einfach das bei der Installation vergebene Passwort eingeben. Dann folgenden Befehl kopieren:

CREATE DATABASE xaseco2;

#2.3 MySQL User anlegen

Nun können wir direkt auch den passenden User erstellen, einfach folgendes kopieren und dabei „meinMysqlPasswort“ auf das gewünschte Passwort verändern!

CREATE USER 'tm2'@'localhost';
SET PASSWORD FOR 'tm2'@'localhost' = password('meinMysqlPasswort');
GRANT all ON xaseco2.* TO 'tm2'@'localhost';

#3 Konfiguration

#3.1 Entpacken

Jetzt kann das unter #1 heruntergeladen Archiv entpackt werden.

unzip xaseco2_103.zip

#3.2 Verschieben der Config-Files bei der Erst-Installation

cd xaseco2/newinstall
mv *.xml ../
mv *.php ../
cd ../

#3.3 Database config

nano localdatabase.xml

Hier muss die Datenbank auf die korrekten Daten von oben geändert werden also ändern wir den folgenden Block:

<mysql_server>localhost</mysql_server>
<mysql_login>tm2</mysql_login>
<mysql_password>meinMysqlPasswort</mysql_password>
<mysql_database>xaseco2</mysql_database>

#3.4 Haupt-Konfiguration

Mit Hilfe dieser Datei können viele Detail-Einstellung vorgenommen werden, welche ich hier überspringe, ich hab einfach die Standard-Einstellungen gewählt. Diese sind im Prinzip auch schon super und müssen nur verändert werden, wenn etwas bestimmtes geändert werden soll.

Folgende Einstellungen müssen allerdings geändert werden:

nano config.xml

Erst vergeben wir Adminrechte, hier können beliebig viele Accounts angegeben werden. Wir benötigen hier die ManiaPlanets Loginnamen nicht die Nicknames!

Achtung: Hier wird der MasterAdmin angegeben, MasterAdmins habe ALLE Rechte auf dem Server! Es wird noch weiter unterschieden in Admins und Operators (siehe unten).

<masteradmins>
    <tmlogin>meinManiaPlanetLoginName</tmlogin>
</masteradmins>

Ganz wichtig ist noch die Servereinstellung, die findet man ganz am Ende der Datei:

<tmserver>
    <login>SuperAdmin</login>
    <password>DasNeueSuperAdminPasswort</password>
    <ip>127.0.0.1</ip>
    <port>5000</port>
    <timeout>180</timeout>
</tmserver>

#3.5 Admins/Operators

Wer möchte kann jetzt noch zusätzliche Admins und Operators festlegen (Optional!). Zusätzlich können auch die Rechte beider Ränge einzel eingestellt werden.

nano adminops.xml
<admins>
    <tmlogin>meinManiaPlanetLoginName</tmlogin>
</admins>

<operators>
    <tmlogin>meinManiaPlanetLoginName</tmlogin>
</operators>

#3.6 Dedimania

Dedimania ist ein Records System das Serverübergreifend funktioniert. Jeder Record der auf dem Server gefahren wird, wird anschließend auf die Dedimania Record Server hochgeladen und ist anschließend auf allen anderen Servern auch zu sehn.

Wer diesen Service nutzen will muss sich erst bei Dedimania anmelden. Einfach den ManiaPlanet Account verknüpfen mit dem auch der Server Login erstellt wurde und anschließend bei „register your dedicated server“ diesen Server Login noch registrieren.

Nach der Registrierung wird ein Dedimaniacode angezeigt, diesen brauchen wir gleich für die Konfigurations-Datei.

vim dedimania.xml

Der Dedimaniacode muss nun zusammen mit dem Dedicated Server login eingetragen werden:

<masterserver_account>
    <login>dedicatedLogin</login>
    <dedimaniacode>000000000</dedimaniacode>
</masterserver_account>

Hinweiß: Es gibt insgesammt 100 Dedimania Records für jede Map. Allerdings können auf einem Server nur die Ränge 1-30 belegt werden. Wer einen Server haben will auf dem alle Spiele die Ränge 1-80 belegen können muss eine einmalige Spende von 10 Euro an die Gründer von Dedimania einreichen. Dies wird damit begründet, dass die benötigten Server für den Dedimania Service auch bezahlt werden müssen. Die Website zum Spenden könnt ihr hier finden, denkt daran euren Dedicated Login anzugeben.

Die Ränge 80-100 hingegen können ausschließlich von Spielern belegt werden die selbst an Dedimania gespendet haben.

Habt ihr gespendet müsst ihr noch in der dedimania.xml folgenden Eintrag ändern:

<limit_recs>80</limit_recs>

XAseco Plugins

Läuft XAseco auf dem Server kann man diesen ganz nach seinen Wünschen konfigurieren indem verschiedene Plugins zusätzlich installiert werden. In der Grundkonfiguration laufen zwar schon alle wichtigen Dinge wie Local Records oder Dedimania Records, jedoch lässt das Interface noch ein wenig zu wünschen übrig. Um ein Gameplay wie auf dem oben dargestellten Bild zu bekommen, müssen noch zusätzliche Plugins wie z.B. EyePiece installiert werden.

#1 EyePiece

EyePiece ist ein Plugin welches eine schönes und praktisches HUD hinzufügt und alle Records und auch andere Dinge übersichtlich anzeigt.

Einfach über die Website die aktuellste Version herunterladen. Zum Zeitpunkt dieses Tutorials war das die Version 1.0.9.9. Anschließend entpacken, alles in den XAseco Ordner kopieren und in die Plugin-Liste eintragen:

wget http://www.undef.name/.downloads/XAseco2/plugin.records_eyepiece.php-1.0.9.9.zip
unzip plugin.records_eyepiece.php-1.0.9.9.zip
cp -R ./plugin.records_eyepiece.php-1.0.9.9/xaseco2/* ./xaseco2/
nano xaseco2/plugins.xml

Folgendes hinzufügen:

plugin.records_eyepiece.php

#2 TM Karma

Sehr beliebt ist auch TM Karma für Map Ratings. Hier kann jeder Spieler der die Map geschafft hat diese Bewerten mit —, –, -, +, ++ und +++. Dies ermöglicht feinere Abstufungen und gibt der Map ein recht ausgeglichenes und faires Rating.

Auf hier wieder auf die Website und die aktuelle Version (1.0.7) herunterladen.

wget http://www.undef.name/.downloads/XAseco2/plugin.tmkarma.php-1.0.7.zip
unzip plugin.tmkarma.php-1.0.7.zip
cp -R plugin.tmkarma.php-1.0.7/xaseco2/* ./xaseco2/
nano xaseco2/plugins.xml

TM-Karma hinzufügen/Auskommentieren und RASP auskommentieren:

plugin.tm-karma-dot-com.php

Starten!

Fertig! Jetzt muss nur noch der Server gestartet werden:

./XAseco2.sh

Viel Spass beim Spielen! 😉

Server-Manager

Über die Konfig-Dateien können alle Einstellungen des Server angepasst werden. Wer eine einfache und schnelle Bedienung des Server haben möchte, sollte sich unbedingt einen der Web-Server-Manager anschauen. Ich habe mir auf unserem Server noch den offiziellen Dedicated Manager von Nadeo installiert.

Diesen zu installieren ist allerdings wieder eine Sache für sich und würde auch die Ausmaße dieses Blogeintrags sprengen. Vielleicht komm ich später noch dazu ein extra Tutorial für die Installation des Dedicated Manager zu schreiben.

 

Musik Player Daemon (MPD) und Archlinux

Was ist der MPD und warum sollte ich ihn nutzen?

Der MPD ist ein Daemon (Hintergrunddienst) in Linux der dafür gedacht ist Musik abzuspielen/streamen. Einerseits kann man diesen Dienst statt eines Musikplayers auf dem lokalen Rechner nutzen, aber viel interessanter ist die Idee den Dienst als ferngesteuerter Musikplayer einzusetzen. Er läuft auf nahezu jeder (auch antiken) Hardware, man braucht lediglich einen alten PC/Laptop oder inzwischen läuft er sicherlich auf auf modernen NAS Systemen. Die einzige Anforderung ist eine einigermaßen taugliche Soundkarte und optional einen SPDIF Ausgang (meiner Ansicht nach immer noch die beste Variante Ton zu übertragen).

Ich persönlich nutze einen kleinen Mini PC auf Intel NUC Basis der mir als Media Center dient. Er braucht wenig Strom und läuft daher fast durchgängig. Er ist direkt mit meinem AV-Receiver und dadurch mit dem Soundsystem verbunden. Auf diesem Rechner läuft der MPD im Hintergrund und kann dann mit jedem beliebigen Gerät – sei es ein direkt von dem Media Center, von einem anderen Rechner im Netzwerk oder auch von einem Handy – ferngesteuert werden. Das ist extrem praktisch, wenn z.B. Besuch da ist, kann jeder mit einem passenden Handy-Client (ich bevorzuge bei Android MPDroid) die Musikbibliothek durchsuchen und gleichzeitig eine Playlist „zusammenklicken“.

Problem

Leider ergeben sich auf Archlinux seit dem Umstieg auf systemd einige Probleme wenn PulseAudio genutzt werden soll. Das Problem liegt hierbei an der Verbindung von MPD zum PulseAudio Server. MPD läuft standardmäßig als MPD Nutzer und kann nicht auf die PulseAudio Session des aktuellen Nutzers zugreifen. Dieses Problem kann auf verschiedene Arten gelöst werden.

Das ganze äußert sich dadurch, dass MPD in die Log Datei etwas ähnliches schreibt wie:

Cannot connect to PulseAudio: access denied

Lösung

Starte MPD und PulseAudio mit dem selben User

Wird kein Multi-User System benötigt, ist dies wohl die einfachste und sauberste Lösung. Hierzu bearbeiten wir zuerst die MPD config /etc/mpd.conf und ändern den User von mpd auf den normalen System-User mit dem auch PulseAudio läuft (euer normaler Username).

 user "username"

Als nächstes muss die systemd service Datei bearbeitet werden. Diese Datei wird bei einem System Update wieder überschrieben! Es ist eine einfache und funktionierende Lösung, könnte aber sicherlich anders besser gelöst werden. Die service Datei liegt unter /usr/lib/systemd/system/mpd.service folgendes muss ergänzt werden

[Service]
User=username
PAMName=system-local-login

Um diese Änderung zu übernehmen muss folgender Befehl ausgeführt werden:

systemctl daemon-reload

Nun kann MPD neu gestartet werden

systemctl restart mpd

Jetzt sollte alles einwandfrei funktionieren.

Alternative

Eine Alternative von der ich gelesen habe ist die Nutzung des TCP Plugins von Pulseaudio, siehe Archlinux Forum (Post #10).

 

Recovering a QNAP TS-412 after Firmware-upgrade fail

Was ist passiert?

Ein ganz normaler Sonntag. Ich musste kurz was auf dem Webinterface meiner QNAP TS-412 NAS einstellen und bekomme die Meldung eines neuen Firware-upgrades (4.0.1 auf 4.1.0, ja ich weiß, nicht mehr ganz aktuell 😉 ). Da ich bisher noch keinerlei Probleme hatte und doch schon häufig ein Upgrade durchgeführt hab, dachte ich mir „klar, das geht kurz“.

Wie sich herausstellte ein Fehler. Ich habe leider keine Ahnung was genau schief gelaufen ist, aber nach dem typischen Reboot hat nur noch die Status LED der NAS rot/grün abwechselnd geblinkt. Laut Internet ein Zeichen für eines der folgenden Probleme:

  1. The hard disk drive on the NAS is being formatted
  2. The NAS is being initialized
  3. The system firmware is being updated
  4. RAID rebuilding is in process
  5. Online RAID capacity expansion is in process
  6. Online RAID level migration is in process

Abgesehen von der Initialisierung – die allerdings keine 60 Minuten dauern sollte – und dem Firmware-upgrade – das eigentlich schon durchgelaufen sein sollte – keine schönen Vorstellungen…

Ich dachte mir na gut, kann ja sein das braucht einfach seine Zeit und dieses Mal dauert es halt länger. Aber auch nach einer Essenspause keine Verbesserung. Also hab ich mich dem Problem angenommen und mich im Internet schlau gemacht.

Symptome

Falls jemand hier vorbei kommt und das selbe Problem hat, in kurz meine Probleme:

  • NAS bootet nicht mehr -> taucht nicht im QFinder auf, kein Webinterface, kein SSH, kein Zugriff auf die Shares
  • Status LED blinkt grün/rot abwechselnd
  • Ohne HDDs bootet dies NAS einwandfrei und auch der QFinder findet die NAS und will neu initialisieren

Versuche

Versuch 1: Firmware-recovery

Als erstes kam mir die Firmware-recovery in den Sinn. Nach einem abgebrochenen Firmware-upgrade kommt genau dieses Problem wohl öfters vor. Allerdings sollte die NAS dann auch ohne HDDs nicht booten, was sie aber einwandfrei tut. In diversen Foreneinträgen stand, dass es – auch wenn das System ohne HDDs noch bootet – trotzdem helfen kann. Da die Firmware aber offensichtlich auf den HDDs ist – da es ohne mit einer alten Firmware bootet – machte es für mich nicht viel Sinn die Firmware-recovery ohne HDDs durchzuführen. Aber dachte ich mir „Was solls, ein Versuch ist’s wert, wenn’s mal jemand geholfen hat, warum nicht auch mir?“. Also hab ich einmal die komplette Firmware-recovery durchgespielt.

Das Ergebnis: Ohne HDDs hab ich jetzt eine Firmware 4.0.1, mit den Platten komm ich allerdings immer noch nicht über die grün/rote LED…

Versuch 2: Firmware-upgrade ohne HDDs

Kurz: Nicht empfohlen und es funktionierte auch nicht.

Ergebnis: „Upgrade Failed“, nächster Versuch.

Versuch 3: Config reset

Basierend auf einem Thread im QNAP Forum hat der Support bei einem ähnlichen Problem empfohlen die Configs per SSH und Hotplug zu löschen und mit default configs zu ersetzen. Die Idee ist gut, hab mich schon aufgeregt, dass ich nicht selber auf die SSH Hotplug Idee kam. Also einfach mal ganze Programm durchgezogen.

Ergebnis: Kein Unterschied beim starten mit den HDDs.

Lösung

Wenn man so viel wie ich mit Linux Systemen arbeitet wird man irgendwann kreativ. Ich hatte mich schon fast mit einem Reset der NAS abgefunden, aber ein letzten Versuch wollte ich mir noch geben, da ich was von „manuellem Systemupgrade“ gelesen hatte.

Wer genau das beschrieben Problem hat, sollte folgendes versuchen, mir hat’s geholfen.

#1 NAS ans Netzwerk anschließen (damit sie eine IP vom DHCP Server bekommt)

#2 Die NAS starten ohne HDDs (einfach ein zur Hälfte raus-ziehen)

#3 Hotplug aller Platten in richtiger Reihenfolge (1-4) und warten bis alle HDD LEDs grün leuchten und nicht mehr blinken (also einfach alle Platten wieder rein-schieben, bis sie richtig drin stecken)

#4 IP per Qfinder oder Router/DHCP Server herausfinden

#5 SSH Verbindung per Putty (Windows) oder ssh (Linux) aufbauen

Die Logindaten sind:
User: admin
Passwort: admin

#6 Festplatten mounten mit folgenden Befehlen:

config_util 1 #Mirror ROOT partition
storage_boot_init 1 #mount ROOT partition
storage_boot_init 2 #mount DATA partition

Mit diesen Befehlen werden alle Festplatten wieder in das System eingebunden und sind anschließend wieder verfügbar.

Update:
Bei mir gab es keine Fehler bei diesen 3 Befehlen, falls doch sollte man folgendes versuchen:

config_util 4
mount /dev/sda4 /mnt/ext
cp /etc/default_config/uLinux.conf /mnt/HDA_ROOT/.config/
rm -r /etc/config
ln -sf /mnt/HDA_ROOT/.config /etc/config
setcfg -f /etc/config/uLinux.conf Misc configured TRUE

Siehe Comments

#7 Download der neusten Firmware von QNAP und anschließend entpacken (.img Datei)

#8 Kopieren der Firmware (.img) auf eine der jetzt eingebundenen Festplatten (NICHT auf die root-Partition, die ist zu klein!) in der NAS per scp oder in Windows per WinSCP (da meine Firmware kein wget hatte). In meinem Falle hab ich das ganze auf eine RAID Partition geschoben: /share/MD0_DATA/

Update:

Falls das Kopieren fehlschlägt, empfiehlt es sich die Firmware-Recovery einmal ohne die HDDs durchzuführen, um das „vorinstallierte“ OS auf eine aktuelle Version zu bringen (Firmware-recovery). Für mehr Details, siehe Comments.

#9 Durchführen eines manuellen System-upgrades:

Zuerst muss man überprüfen ob der Ordner /mnt/HDA_ROOT/update verfügbar ist, falls nicht wird dieser zuerst erstellt:

mkdir /mnt/HDA_ROOT/update

Der zweite Check, den man durchführen muss bevor man das Upgrade starten kann ist die Überprüfung ob der Ordner /mnt/update im System vorhanden ist. Falls ja muss man diesen zuerst löschen mit:

rm -rf /mnt/update

oder, falls nicht möglich, unmounten:

umount /mnt/update

Nun kann man das manuelle Firmware-upgrade durchführen. Dafür kopiert man zuerst die .img Datei in /share/public, bei mir war das:

cp /share/MD0_DATA/TS-412_20140612-4.1.0.img /share/Public/TS-412_20140612-4.1.0.img

Als nächstes erstellt man einen Symlink zum update Verzeichnis:

ln -sf /mnt/HDA_ROOT/update /mnt/update

Als letztes wird das Update Script ausgeführt:

/etc/init.d/update.sh /share/Public/TS-412_20140612-4.1.0.img

#10 Warten bis das Upgrade komplett durchgelaufen ist und folgende Zeile auftaucht:

Update Finished.

#11 Neustarten per:

reboot

Und siehe da, meine NAS kam endlich über die grün/rote LED raus und hat das System wieder wie vorher gebootet. Man muss nur einfallsreich sein und viele Foreneinträge lesen 😉

Ich hoffe meine kleine Odyssee hilft Anderen schneller ans Ziel zu kommen, falls bei euch nach einem Firmware-upgrade das selbe Problem aufgetaucht ist.

Linux 5.1 sound with ALSA

Sounds easy?

Wars aber nicht 🙁 Hat ewig gedauert bis alles funktioniert hat… Eine genauere Erklärung folgt hier:

Ich nutze Sabayon X und wollte richtigen 5.1 Sound wenn ich Musik höre. Ich habe 5.1 in der Systemeinstellung konfiguriert. Mein erstes Problem war, dass aus dem Center absolut kein Ton erklang. Dieses Problem ließ sich noch recht einfach beheben. Konsole auf und als root folgendes ausführen:

alsamixer

Center/LFE auswählen und „M“ drücken -> unmute des Center/LFE channel

alsactl store

Soweit so gut, der Ton kam aus allen 5 Lautsprechern, sehr gut. Allerdings das nächste Problem folgte sofort: Kein Bass… Der Subwoofer blieb absolut stumm. Ok, scheinbar kein richtiger 5.1 Upmix, das lässt sich ändern :-). Nur nutzt Sabayon jetzt ALSA oder PulseAudio? Pulse ist auf jeden Fall installiert. Aber da Pulse nicht in der KDE Soundconfig auftaucht nahm ich an, dass ALSA genutzt wird und somit der Upmix über die .asoundrc laufen muss. Das ist prinzipiell auch nicht so schwer, hat bei mir nur ein paar Mal nicht funktioniert, aber nun die funktionierende config:

nano /home/username/.asoundrc

pcm.snd_card {
type hw
card 1
device 0
}
ctl.snd_card {
type hw
card 1
device 0
}
pcm.dmixer {
type dmix
ipc_key 1024
ipc_perm 0666
slave.pcm "snd_card"
slave {
period_time 0
period_size 1024
buffer_size 4096
channels 6
}
bindings {
0 0
1 1
2 2
3 3
4 4
5 5
}
}
pcm.dsnooper {
type dsnoop
ipc_key 2048
ipc_perm 0666
slave.pcm "snd_card"
slave
{
period_time 0
period_size 1024
buffer_size 4096
channels 6
}
bindings {
0 0
1 1
2 2
3 3
4 4
5 5
}
}
pcm.duplex {
type asym
playback.pcm "20to51"
capture.pcm "dsnooper"
}
pcm.20to51 {
type route
slave.pcm "surround51"
slave.channels 6
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
ttable.0.4 0.5
ttable.1.4 0.5
ttable.0.5 1
ttable.1.5 1
}
pcm.!default {
type plug
slave.pcm "duplex"
}

Kurzer relog und siehe da alles läuft wunderbar. Nur hätte ich mir ein wenig mehr Bass gewünscht. Hm kein Problem. Nur eine kleine Änderung am vorherige Eintrag:

pcm.20to51 {
type route
slave.pcm "surround51"
slave.channels 6
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
ttable.0.4 0.5
ttable.1.4 0.5
 ttable.0.5 1
ttable.1.5 1
}

Wunderbar, der MPlayer spielt die Musik genau so wie ich sie hören will. Jedoch scheint Clementine das nicht zu machen :-/ (Ist Momentan mein std .Musikplayer weil Amarok nicht so wollte wie ich). Ok auch das war nicht weiter schwierig. Tools -> Preferences -> Playback -> GStreamer audio engine -> Audio sink (ALSA)

Nun funktioniert alles wie es soll, vielleicht hilft das dem ein oder anderen auch weiter.

Guitar Pro 5 und Linux

Guitar Pro 5 ist so ziemlich das beste und „funktionsreichste“ Gitarrenprogramm für Windows. Doch kann man es auch auf Linux benutzen?

Die Antwort ist: Na klar!

Doch wie? Ganz einfach:

Benötigt:

  • – Guitar Pro 5
  • – Wine
  • – Timidity++

Installation:

(Achtung Anleitung für Arch-Linux. Doch man sollte daraus auch auf andere Distris schließen können.)

Zuerst installiert man Timidity++ über die Konsole:

pacman -S timidity++

Nun muss noch eine „Soundbank“ installiert werden:

wget http://aur.archlinux.org/packages/fluidr3/fluidr3/PKGBUILD
wget http://aur.archlinux.org/packages/fluidr3/fluidr3/fluidr3.install
wget http://aur.archlinux.org/packages/fluidr3/fluidr3/license
makepkg
pacman -U fluidr3-122501-6.pkg.tar.gz

Falls yaourt installiert ist, sollte es auch einfach mit:

yaourt -S fluidr3

funktionieren.

Nun muss die Konfigurationsdatei von Timidity noch angepasst werden. Einfach folgende Zeile in die Datei /etc/timidity++/timidity.cfg  eintragen:

soundfont /usr/share/soundfonts/fluidr3/FluidR3GM.SF2

Anschließend kann man auch den Timidity Daemon in die rc.conf schreiben:

DAEMONS=(… timidity++ …)

oder Timidity nur bei Bedarf, per Hand starten:

timidity -iA

Nachdem das erledigt ist braucht man Wine:

pacman -S wine

Sollte alles geklappt haben kann man jetzt GP5 per .exe Datei einfach wie gewohnt installieren und starten. Mit der Hilfe von Timidity sollte der Sound auch kein Problem mehr sein 😉

Alternativen

Es gibt auch auf Linux eine native Lösung, die sogar kostenfrei ist. Sie nennt sich Tuxguitar.

Installation in Arch einfach

pacman -S tuxguitar

Viel Spass damit!

Archlinux

Inzwischen habe ich etwas Übung mit Archlinux. Ich habe längere Zeit kein anderes OS benutzt 😉 Arch läuft echt wunderbar. Linux ist schon etwas tolles!

Deswegen werde ich ab jetzt in meinen Blog öfter Problemlösungen stellen, vor denen ich selbst stand, die ich aber nach einer mehr oder weniger langen Zeitspanne lösen konnte. Anfangen möchte ich mit einem ganz minimalistischen Installations-Tutorial beginnen, da die offizielle Anleitung, die zwar sehr gut geschrieben, aber inzwischen doch ein wenig veraltet ist und ich deswegen das ein oder andere Problemchen hatte. Trotzdem möchte ich jedem der Arch noch nie gesehen hatte diese Guide ans Herz legen man findet sie hier. Ich möchte auch nicht so weit ausholen wie die Autoren dieser Guide, sondern eher ein kurzes Tutorial schreiben, das schnell zum Ziel führt. (Für weiter Einstellungsmöglichkeiten oder Infos verweiße ich auf den wirklich guten Guide auf der Archlinux-Wiki)

Zu aller Erst brauchen wir die Installations CD. Diese bekommt man im handelsüblichen .iso Format oder auch im etwas unbekannteren .img Format ganz bequem über einen Mirror (am besten FTP Server) auf der Archlinux Homepage.  Ein Beispiel wäre dieser Mirror. Man muss sich zwischen der 32bit und 64bit Version entscheiden. Da die 64bit Version aber inzwischen wirklich sehr gut läuft, kann ich nur empfehlen diese herunterzuladen (natürlich nur falls euer PC 64bit unterstützt! – Was aber seit geraumer Zeit jeder einigermaßen neuer PC tut 😉 ).

Nachdem man das Image heruntergeladen und gebrannt hat, muss man im Bios auf „Boot from CD/DVD“ umstellen und mit der CD im Laufwerk neu starten. Keine Angst man kann sich sobald die Grundinstallation fertig ist ein GUI (KDE / GNOME …) installieren und muss nicht mehr nur in der Konsole „herumhantieren“. Beim Auswahl-Menü der CD einfach Enter drücken und schon kommt man in eine Konsole. Der Standardbenutzer für die Installation ist „root“.

Grundinstallation

Alles in allem ist es mit einer Anleitung wirklich nicht schwer. Also los gehts:

Mit dem Befehl

km

Kann man das Tastaturlayout umstellen, das anfangs noch auf „Englisch“ gestellt ist. Im ersten Menü wählt man

de.map.gz

und im zweiten

default8x16.psfu.gz

Und schon hat man ein deutsches Layout.

Um die Installation zu starten muss man nur noch

/arch/setup

eintippen. Jetzt sollte eine minimalistische GUI erscheinen, in der man alle weiteren Schritte recht einfach erledigen kann.

Quellenauswahl

Zuerst kommt die Quellenauswahl. Um eine schnelle und reibungslose Installation zu bekommen habe ich hier CDROM gewählt. Die Updates kann man sich später noch laden.

Uhrzeit

Einfach die Region auswählen: Europa -> Berlin und dann „localtime“

Festplattenvorbereitung

Die Markierung springt jetzt automatisch auf den zweiten Punkt: Die Festplattenvorbereitung. Hier ist zu empfehlen die Festplatte manuell zu Partitionieren, da die automatische Partitionierung die gesammte Festplatte löscht!

Dies ist eine wichtige Entscheidung. Es ist überhaupt kein Problem Windows und Linux parallel zu installieren! Man braucht allerdings noch freien Platz auf der Festplatte der nicht von einer Partition belegt wird. Evtl muss man vorher in Windows Platz schaffen und eine Partition verkleinern (Vorsicht vor Datenverlust!)

Insgesammt habe ich 4 Partitionen erstellt. Nämlich für „root“ „swap“ „home“ und „boot“

Um Festplatten zu erstellen wählt man den freien Platz auf der Platte aus, unten [New] und tippt den gewünschten Speicherplatz ein. Ich wähle für „sda1“ 30 Gb – als Fileformat wählt man „Linux“ (genau wie für „home“ und „boot“ auch), für „sda2“ 3 Gb – Fileformat muss auf swap gestellt werden (Hier gehen die Meinung stark auseinander. Was wirklich sinnvoll ist weiß ich nicht, da jeder von seiner Meinung überzeugt ist 😉 Mit 3 Gb ist man auf jeden Fall auf der sicheren Seite), für „sda3“ 100 Gb – hier sollte man soviel wählen wie möglich/nötig. Hier werden alle Daten gespeichert und für „sda4“ 50 Mb – diese Partition muss man [bootable] machen (hier wird nur der Kernel gespeichert. Es sind keine großen Speicherplatzmengen erforderlich. Wahrscheinlich sind 50 mb schon zuviel). Nun muss mit [write] die Partitionstabelle geschrieben werde.

Das ganze sieht ungefähr so aus:

Name Flags      Part             Type              FS Type [Label]   Size(MB)
————————————————————————-
sda1                    Primary    Linux                                      50000
sda2                    Primary    Linux swap / Solaris                3000
sda3                    Primary    Linux                                       100000
sda4     Boot        Primary    Linux                                       50

Die Namen unterscheiden sich natürlich wenn auf der Festplatte schon eine Windowspartition ist. Dann heißt diese schon sda1 und alles wird um 1 nach hinten verschoben.

Jetzt müssen die erstellten Partitionen eingebunden werden. Das ganze erfolgt auch recht einfach über das GUI. „sda1“ wird als / eingebunden, „sda2“ als swap, „sda3“ als /home und „sda4“ als /boot. Ich habe als Dateisystem ext3 benutzt. Es wird als stabilstes und doch recht schnelles Dateisystem genannt.

Klingt schwierig, ist es aber nicht. Für weitere Infos und genauere Erklärung kann man gern in der Archwiki Guide nachschauen (siehe oben).

Ist das erledigt geht alles schnell von der Hand.

Die Paketwahl…

kann man meines Erachtens einfach mit Enter bestätigen, wenn man etwas wichtiges braucht kann man es zusätzlich mit Leertaste auswählen und mit installieren.

Systemkonfiguration

Nach der eigentlichen Installation muss man das System konfigurieren

Ich habe als editor vi ausgewählt, da ich mit diesem schon etwas vertraut bin. Ich werde es im folgenden auch für diesen Editor erklären. Man darf nicht bei der großen Auswahl an Config-Dateien erschrecken man benötigt normalerweiße nur einen kleinen Teil.

Die rc.conf ist sehr wichtig. Um etwas mit vi einzufügen muss man [einfg] drücken. Man sollte den Eintrag locale auf

de_DE.utf8

ändern. Um eine Datei zu speichern drückt man [esc] (Abbrechen des Einfügen-Modus) [:wq] Doppelpunkt um Befehle einzutippen, w für write und q für quit.

So sollte man in der locale.gen folgende Einträge suchen und wie bei mir mit einer # versehen.

#en_US.ISO-8859-1
#en_US.UTF-8

danach sucht man

de_DE.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15

und entfernt die # davor.

Jetzt muss eigentlich nur noch das Root-Passwort gesetzt werden. Und man ist mit der Grundkonfiguration fertig.

Bootloader

Als nächste wird der Bootloader installiert. Ich wähle GRUB und die Partition sda (ohne Zahl) als Installationsort. Hat man gleichzeitig noch eine Windows-Installation muss man in der folgenden Config-File die # vor dem Windows-Eintrag entfernen.

title Windows
rootnoverify (hd0,0)
chainloader +1

Das war die Grundinstallation.

Konfiguration und Installation der GUI

Alles weitere geht (je nach Internetverbindung) recht flott. Einmal neustarten und die CD entfernen. Danach geht es weiter:

Update

Um die Updateserver automatisch zu ordnen tippt man ein

pacman -Sy python

rankmirrors /etc/pacman.d/mirrorlist

Ein komplettes Systemupdate führt man mit folgendem Befehl aus:

pacman -Syu

Benutzer erzeugen

Mit folgendem Befehl wird ein neuer User erzeugt:

adduser

man sollte ihn im erscheinenden „Anlege-Script“ zu diesen Gruppen hinzufügen:

audio,video,floppy,lp,optical,network,storage,wheel, power

Grundlegende Daemons

Um grundlegende Daemons zu installieren tippt man

pacman -S hal ntp fam

Diese muss man nun in der rc.conf eintragen damit sie automatisch gestartet werden. Was wie folgt abläuft:

pacman -S vim

Installation von vim (verbesserter vi editor)

vim /etc/rc.conf

nun scrollt man ganz runter und fügt bei DAEMONS hal ntpd und fam hinzu

DAEMONS=(… hal ntpd fam)

Xorg/Grafikserver

Um eine GUI zu bekommen muss man den Xorg Server installieren:

pacman -S xorg

Um ihn zu konfigurieren tippt man

Xorg -configure

mv /root/xorg.conf.new /etc/X11/xorg.conf

Grafikkartentreiber

und natürlich muss ein Grafikkartentreiber her

Für nvidia:

pacman -S nvidia

nvidia-xconfig

und für ATI:

pacman -S catalyst

Soundkarte

Eine weitere Grundlegende Funktion ist der Sound, also installieren wird den „Soundtreiber“

pacman -S alsa-utils

welcher auch wieder als Daemon eingetragen werden muss

vim /etc/rc.conf

DAEMONS=(… alsa)

Desktopumgebung

Nun sind wir schon bei der eigentlichen GUI / Desktopumgebung angelangt, zuerst sollte man noch einige Schriftarten installieren:

pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera

und nun die gewünschte GUI

Gnome

Für Gnome

pacman -S gnome gnome-extra

.xinitrc Datei kopieren und mit vim konfigurieren damit Gnome automatisch startet.

cp /etc/skel/.xinitrc /home/user/ (<- Achtung Username!)

vim /home/user/.xinitrc

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#
#exec xterm
#exec wmaker
# exec startkde
exec gnome-session
# exec icewm
# exec blackbox
# exec fluxbox

GDM als Daemon eintragen

vim /etc/rc.conf

DAEMONS=(… gdm)

KDE

Für KDE ist es das selbe:

pacman -S kde

.xinitrc Datei kopieren und mit vim konfigurieren damit KDE automatisch startet.

cp /etc/skel/.xinitrc /home/user/ (<- Achtung Username!)

vim /home/user/.xinitrc

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#
#exec xterm
#exec wmaker
exec startkde
#exec gnome-session
# exec icewm
# exec blackbox
# exec fluxbox

KDM als Daemon eintragen

vim /etc/rc.conf

DAEMONS=(… kdm)

System Starten

Nun sollte man unbedingt neu starten. Nach einem Neustart sollte alles funktionieren und man automatisch in die gewünschte Desktopumgebung gelangen.

Nachwort

Dies ist ein sehr schnell geschriebenes und unüberarbeitetes Tutorial. Wenn also Fehler enthalten sind tut es mir leid. Sollte man zum aller ersten mal mit Linux arbeiten empfehle ich eine andere Distribution wie z.B. OpenSuse, Mandriva, Ubuntu oder Fedora zu benutzen. Dieses Tut soll vor allem Leuten die Installation erleichtern die schon einmal mit Arch oder ähnlichem gearbeitet haben, aber nicht mehr mit den Befehlen vertraut sind!

Bei Fehlern oder Ergänzungshinweisen bitte einfach ein Kommentar schreiben 😉 Ansonsten viel Spass mit Archlinux. Ich werde weiterhin kleinere Tutorials schreiben, die dann hoffentlich einfacher und kürzer sind. Aber die Installation dauert nun mal seine Zeit und braucht ein wenig Platz 😉 Schade ist, dass ich keine Screenshots einfügen konnte. Aber ich hoffe man kommt mit dem Text gut zurecht.