Archive for August 2013

Powershell Update-Help meldet kryptischen Fehler

25 August 2013

Profis sind in der Eingabeaufforderung aktiv! Diesen Satz kann ich zu jeder Zeit unterstreichen. Wer den Blog öfters liest, wird erkannt haben, dass mir eine Lösung mittels Commandline lieber ist, als stupides Rumgeklicke. Damit lassen sich eben Dinge besser automatisieren. Blöd nur, wenn man sich aus Bequemlichkeit dazu hinreisen lässt, doch eine GUI zu benutzen.

Die Powershell ISE ist so eine nette Geschichte. Immer verfügbar, schnell und tut was sie soll. Sie hilft beim schnellen Erstellen von kleinen Skripten.

Aber hin und wieder stößt die Powershell ISE einem mit komischen Fehlermeldungen vor den Kopf. Aktuelles Beispiel:

Update-Help

Fehler:

Update-Help : Der angegebene Schlüssel war nicht im Wörterbuch angegeben.
In Zeile:1 Zeichen:1
+ Update-Help *
+ ~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Update-Help], KeyNotFoundException
    + FullyQualifiedErrorId : System.Collections.Generic.KeyNotFoundException,Microsoft.PowerShell.Commands.UpdateHelpCommand

Jau alles klar!

Danke ihr Pfeifen von MS, mal wieder eine wunderbare Meldung. Es ist sofort klar, dass die Hilfe nur von einer echten Powershell Eingabeaufforderung upgedatet werden will!

Moment, es geht ja noch weiter. Wenn man sich mit dem Thema weiter beschäftigt, dann findet man in about_updatable_help: http://technet.microsoft.com/en-us/library/hh847735.aspx, dort steht geschrieben:

 UPDATE HELP IN WINDOWS POWERSHELL ISE
     You can also update help by using the "Update Windows PowerShell
     Help" item in the Help menu in Windows PowerShell Integrated
     Scripting Environment (ISE). 

     The "Update Windows PowerShell Help" item runs an Update-Help 
     command without parameters.

Aha, so so. OK, wenn die ISE es also doch kann, dann machen wir die DAU-Methode: Klick auf Help, Klick auf “Windows Powershell-Hilfe aktualisieren” und? Hä hä, MS halt:

Update-Help : Der angegebene Schlüssel war nicht im Wörterbuch angegeben.

In Zeile:1 Zeichen:1

+ Update-Help *

+ ~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [Update-Help], KeyNotFoundException

    + FullyQualifiedErrorId : System.Collections.Generic.KeyNotFoundException,Microsoft.PowerShell.Commands.UpdateHelpCommand

Ja, war ja klar!

Über die verkorkste Powershell-Hilfe gäbe es noch so viel mehr… Aber lassen wir das.

Microsoft Hyper-V Server 2012 prüft unnötig auf Windows-Updates

23 August 2013

Wie schon bei einem vorhergehenden Artikel https://newyear2006.wordpress.com/2013/08/21/microsoft-hyper-v-server-2012-telefoniert-nach-hause-oder-warum-tauchen-auf-einmal-teredo-eintrge-in-der-log-datei-auf/ geschrieben, hat der Microsoft Hyper-V Server 2012 Dienste aktiv, die eigentlich nicht aktiv sein müssten. Dabei sind noch weitere Ungereimtheiten aufgetaucht.

Eigentlich ist auf dem betreffenden Hyper-V Server 2012 eingestellt, dass manuell nach Updates gesucht werden soll. Aber beim Durschauen der Logs, mittels:

get-eventlog -Logname System | select -First 50

tauchte sowas auf:

  3984 Aug 22 21:47  Information Service Control M…   1073748860 The Windows Update service entered the stopped state.
  3983 Aug 22 21:37  Information Service Control M…   1073748860 The Windows Update service entered the running state.

Was läuft da? Gute Frage, da die Einträge in schöner Regelmäßigkeit immer zur selben Uhrzeit zu finden sind, wird es die Aufgabenplanung bzw. der Scheduler wissen:

schtasks /query /TN "\Microsoft\Windows\WindowsUpdate\Scheduled Start"

zeigt dann

Folder: \Microsoft\Windows\WindowsUpdate
TaskName                                 Next Run Time          Status
======================================== ====================== ===============
AUFirmwareInstall                        N/A                    Disabled
AUScheduledInstall                       N/A                    Disabled
AUSessionConnect                         N/A                    Disabled
Scheduled Start                         
23.08.2013 21:37:35    Ready

Zwischendrin noch die Frage: Warum verwende ich hier schtasks und nicht Powershell? Weil es MS bisher verpasst hat dafür Cmdlets bereitzustellen. Die sind mit der Komplexität der eigenen Software etwas überfordert; die Armen.

Egal, wie kann man nun das Ding abschalten? Ganz einfach:

schtasks /change /TN "\Microsoft\Windows\WindowsUpdate\Scheduled Start" /DISABLE

Damit wird dann auch “Scheduled Start” auf Disabled gesetzt.

Microsoft .Net Framework 3.5 unter Windows 8 offline nachinstallieren

23 August 2013

Zum Glück sind die nötigen Dateien auf der Windows 8 DVD enthalten, somit geht es schnell:

Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess

Im obigen Beispiel ist das DVD-Laufwerk unter D: zu finden.

Wers bebildert braucht, wird hier fündig: http://support.microsoft.com/kb/2785188

Microsoft merkt echt die Einschläge nicht mehr

22 August 2013

Kauft ein Kunde eine Tastatur, passend zum Betriebssystem, ist es eine von Microsoft geworden. Leider kommt er nicht mit den Tastenbelegungen klar. Auf der Suche nach Support. Gibts dann sowas:

http://www.microsoft.com/hardware/de-de/support/contact-us

Kontakt

Bei Fragen zu Ihrem Hardwaregerät können Sie sich folgendermaßen an Microsoft wenden.

Suchen Sie die Telefonnummer für Ihre Region:

Supportoptionen

Technischer Support

Benutzer aus den USA und Kanada finden auf http://support.microsoft.com/hardware Antworten auf die häufigsten Probleme oder eine E-Mail-Adresse bzw. Telefonnummer, über die sie sich an einen Supportmitarbeiter wenden können. Bei Antworten auf E-Mails kann es zu Verzögerungen von mehreren Stunden kommen.

Telefonischer Support in den USA: +1 86 68 33-70 88. Wählen Sie in Kanada (800) 876-8533. Weiter unten in dieser Hilfe finden Sie Telefonnummern für den technischen Support in allen anderen Regionen.

Weitere Informationen finden Sie in der Dokumentation

Lesen Sie die gedruckte Dokumentation. Weitere Produktinformationen finden Sie auf der Microsoft Hardware-Website unter http://www.microsoft.com/hardware.

Beschädigte/Defekte Produkte

Rufen Sie für einen schnellen Ersatz beschädigter oder defekter Produkte direkt die Garantie ab: Für den Garantiesupport in den USA wählen Sie (800)-360-7561. Den kanadischen Garantiesupport erreichen Sie unter (800) 933 4750. Weitere Informationen finden Sie auch in diesem KB-Artikel:http://support.microsoft.com/kb/326246

TTY-Benutzer:

Rufen Sie in den USA die Nummer (800) 892 5234 an.
Wählen Sie in Kanada (866) 857-9850.
Weiter unten in dieser Hilfe finden Sie Telefonnummern für den technischen Support in allen anderen Regionen.

 

Obige Url hat explizit auch schon de-de intus und trotzdem wird man vollgelabert mit USA und Kanada. Erst wenn man bei “Region auswählen” Germany auswählt, landet man bei Deutschland! Danke liebe Webmacher, auch gleich noch Englisch aufgebessert.

Da waren also mal wieder Profis in Sachen Benutzerinterface am Werke. Hochbezahlt und überqualifiziert, unfähig die einfachsten Dinge des Lebens zu begreifen.

Aber es geht ja noch besser. Wer nun das Produkthandbuch(!) zur Tastatur runterlädt, der bekommt in allen Sprachen der Welt erklärt, wie er seine Batterien entsorgen soll. Aber kein Sterbenswörtchen über die Tasten und deren Anwendung. Dafür wird man aber entschädigt mit Hinweisen wie diesem:

Headset-Geräte Eine andauernde Belastung durch hohe Lautstärken kann bei Verwendung eines Headsets zu vorübergehendem oder dauerhaftem Gehörverlust führen. Um eine Beschädigung Ihres Headsets zu vermeiden, treten Sie nicht auf das Headset, das Kabel oder den Kabelstecker, und setzen Sie sich nicht darauf.

Ich kenne jetzt niemand, der sich schon mal eine Tastatur als Headset aufgesetzt hat. Aber vielleicht ist ja gerade das der Grund warum MS so abgedrehte Dinge macht.

Microsoft Hyper-V Server 2012 hält sich unnötig mit Loggingaufgaben auf oder wer hat vergessen den Benutzerzugriffsprotokollierungs-Dienst abzuschalten?

22 August 2013

Nachdem ich mich im letzten Blogeintrag schon über die Teredo-Eintragungen in der Eventlog gewundert hatte https://newyear2006.wordpress.com/2013/08/21/microsoft-hyper-v-server-2012-telefoniert-nach-hause-oder-warum-tauchen-auf-einmal-teredo-eintrge-in-der-log-datei-auf/, geht es nun gerade so weiter.

Bei den Application-Eventlogs gab es jede Menge Informationseinträge, hier exemplarisch einer davon:

EventID            : 327
MachineName        : HyperV
Data               : {}
Index              : 7586
Category           : General
CategoryNumber     : 1
EntryType          : Information
Message            : wmiprvse (3496) The database engine detached a database (1, C:\Windows\system32\LogFiles\Sum\SystemIdentity.mdb). (Time=0 seconds) 

                     Internal Timing Sequence: [1] 0.000, [2] 0.000, [3] 0.000, [4] 0.000, [5] 0.000, [6] 0.015, [7] 0.000, [8] 0.000, [9] 0.000, [10] 0.016,
                     [11] 0.000, [12] 0.000.
                     Revived Cache: 0
Source             : ESENT
ReplacementStrings : {wmiprvse, 3496, , 1…}
InstanceId         : 327
TimeGenerated      : 21.08.2013 17:55:54
TimeWritten        : 21.08.2013 17:55:54
UserName           :
Site               :
Container          :

Innerhalb einer Sekunde finden sich mehrere Einträge wo einmal die SystemIdentity.mdb attached und anschließend wieder detached wird. Mal abgesehen davon, dass die Eventlog dadurch unübersichtlich wird:

7486 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7485 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7484 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7483 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7482 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7481 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7480 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7479 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7478 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7477 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7476 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7475 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7474 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7473 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7472 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7471 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7470 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7469 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7468 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7467 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7466 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7465 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7464 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7463 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7462 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7461 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7460 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7459 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7458 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7457 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7456 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7455 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7454 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7453 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7452 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7451 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7450 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7449 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7448 Aug 21 11:13  Information ESENT                         327 svchost (1696) The database engine detached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….
7447 Aug 21 11:13  Information ESENT                         326 svchost (1696) The database engine attached a database (2, C:\Windows\system32\LogFiles\Sum\SystemIdentity….

Stellt sich die Frage was steckt dahinter?

Bei der Suche nach SystemIdentity.mdb landet man dann irgendwann bei “User Access Logging” oder zu Deutsch “Benutzerzugriffsprotokollierung” http://technet.microsoft.com/en-us/library/hh849634.aspx. Mittels UAL lassen sich jede Menge Daten über den Rechner, Benutzer, Dienste, Rollen usw. sammeln und auswerten. Die NSA und Forensiker haben ihre helle Freude daran. Aber muss so ein Dienst auf einem Microsoft Hyper-V Server laufen? Ich denke nicht! Microsoft selber warnt sogar davor mit diesem Hinweis:

ImportantImportant
UAL is not recommended for use on servers that are connected directly to the Internet, such as web servers on an Internet-accessible address space, or in scenarios where extremely high performance is the primary function of the server (such as in HPC workload environments). UAL is primarily intended for small, medium, and enterprise intranet scenarios where high volume is expected, but not as high as many deployments of Windows Server 2012 that serve Internet-facing traffic volume on a regular basis.

Da ich einen Hyper-V Server als performancekritisch ansehe, sollte man also den Dienst abschalten. Dies erreicht man durch:

net stop ualsvc

netsh ualsvc set opmode mode=disable

oder per Powershell mittels:

Stop-Service ualsvc

Disable-Ual

Interessant bei dieser Geschichte ist mal wieder die geniale Namensgebung des Dienstes auf Deutsch: “Dienst für Benutzerzugriffsprotokollierung”. Das ist mal wieder so ein richtig beknackter Name, der mit Dienst anfängt, wo man nie draufkommt, ähnlich wie “Automatische Drahtlos…”. Pfeifen halt.

http://technet.microsoft.com/en-us/library/jj574126 beschreibt noch jede Menge Dinge, wie: was passiert, wenn der Dienst Probleme hat oder welche Powershell CmdLets für die Abfrage der Daten verfügbar sind. Es wird auch noch die Bedeutung des Verzeichnis \Windows\System32\Logfiles\SUM\ beschrieben und dass dieses auch gelöscht werden könnte.

Microsoft Hyper-V Server 2012 telefoniert nach Hause oder warum tauchen auf einmal Teredo-Einträge in der Log-Datei auf?

21 August 2013

Hier geht es um den Microsoft Hyper-V Server 2012, also die Standalone Fassung des Servers. Durch eine Routineprüfung der Logdateien, fanden sich auf einmal diese Einträge:

  3512 Jul 09 11:37  Warning     Microsoft-Windows…         1014 Name resolution for the name teredo.ipv6.microsoft.com. timed out after none of the con…
  3509 Jul 09 11:36  Warning     Microsoft-Windows…         1014 Name resolution for the name teredo.ipv6.microsoft.com. timed out after none of the con…

Oha, da läuft auf einem Hyper-V Server doch tatsächlich Teredo. Eigentlich ist der Microsoft Hyper-V Server ja ein Core-Server und läuft mit minimalsten Diensten. Teredo wurde auch zu keiner Zeit benötigt, demzufolge auch nicht bewusst installiert.

Um den genaueren Status zu erfahren, kann man mittels

netsh interface teredo show state

den aktuellen Zustand erfahren. Im Microsoft Hyper-V Server 2012 wird dann angezeigt:

Teredo Parameters
———————————————
Type                    : client
Server Name             : teredo.ipv6.microsoft.com.
Client Refresh Interval : 30 seconds
Client Port             : unspecified
State                   : dormant

Der Zustand dormant sagt aus, dass momentan über Teredo nix los ist, dass aber alle 30 Sekunden (Client Refresh Interval) der Server teredo.ipv6.microsoft.com kontaktiert wird. Dabei wird die aktuelle IPv4-Adresse bekannt gemacht und der Kanal für etwaige eingehende Pakete aus dem Internet bleibt offen.

Der Grund für den Event-Log-Eintrag findet man hier: http://www.heise.de/newsticker/meldung/IPv6-Tunnel-Microsoft-testet-Teredo-Nutzung-mit-Serverausfall-1916499.html. Microsoft hatte zu Testzwecken seine Teredoserver abgeschaltet.

Soweit so gut. Aber man kann jetzt die Frage stellen, für was braucht man Teredo auf einem Standalone Hyper-V Server? Im Grunde ist die Aufgabe ja eigentlich, so wenig Angriffsfläche wie möglich zu bieten.

Also wird Teredo abgeschaltet:

netsh interface teredo set state disabled

wenn man nun nochmal den Status abfrägt, erhält man:

Teredo Parameters
———————————————
Type                    : disabled
Server Name             : teredo.ipv6.microsoft.com.
Client Refresh Interval : 30 seconds
Client Port             : unspecified
State                   : offline
Error                   : none

Das sieht schon besser aus und erspart künftig unnötige Eventlog-Einträge, falls MS wirklich seine Teredo-Server dauerhaft abschalten sollte.

Meldung von CMS “Class SQL 1.1 | Database down. | …”

20 August 2013

1&1 scheint gerade dabei zu sein groß aufzuräumen. Dabei ist einem Kunden unwissentlich das CMS abhanden gekommen. Es äußerte sich darin, dass die Meldung

“Class SQL 1.1 | Database down. | Please contact…”

erschien. Blöd ist halt, dass in diesem Fall vom Redaxo CMS keine E-Mail an den Admin der Webseite erfolgte und der Verlust der Homepage erst durch Zufall bekannt wurde. Dazu kam natürlich noch, dass die 1&1 E-Mails zur Ankündigung der Abschaltung an eine alte E-Mail-Adresse gingen. Zu guter Letzt hatte dann Google noch obige Meldung indexiert.

Das Problem war die Abschaltung von MySQL4 bei 1&1. Die Lösung war, nach dem zuerst mal großes Rätselraten über die Passwörter herrschte, schnell gefunden. Mittels einer Anleitung von 1&1 “Informationen zur MySQL 4-Abschaltung” http://hilfe-center.1und1.de/datenbanken-c82637/mysql-c82650/bedienung-c82751/informationen-zur-mysql-4-abschaltung-a791820.html und dieser Seite http://hilfe-center.1und1.de/datenbanken-c82637/mysql-c82650/bedienung-c82751/backupwiederherstellung-einer-mysql-datenbank-per-php-skript-a783398.html wurden diese beiden PHP-Skripte verwendet um die Daten zu sichern und wieder zurückzuspielen:

Backup.PHP:

<?php
// Bitte hier Ihre Daten eintragen
$host= ‚dbxx.db.1and1.com‘;
$user= ‚dbxxxxxx‘;
$pass= ‚xxxxxxxx‘;
$db= ‚dbxxxxxxx‘;
// Befehl ausführen und in Zipfile speichern
system(sprintf(
‚mysqldump –no-tablespace –opt -h%s -u%s -p"%s" %s | gzip > %s/dumpDB.sql.gz‘,
$host,
$user,
$pass,
$db,
getenv(‚DOCUMENT_ROOT‘)
));
echo ‚+DONE‘;
?>

Restore.PHP:

<?php
// Bitte hier Ihre Daten eintragen
$host= ‚dbxx.1und1.de‘;
$user= ‚dboxxxxxx‘;
$pass= ‚xxxxxxxx‘;
$db= ‚dbxxxxxxx‘;
// gzip entpacken und in die Datenbank einlesen
system(sprintf(
‚gunzip -c %s/dumpDB.sql.gz | mysql -h %s -u %s -p%s %s‘,
getenv(‚DOCUMENT_ROOT‘),
$host,
$user,
$pass,
$db
));
echo ‚+DONE‘;
?>

Der Vorgang klappte reibungslos. Zusätzlich mussten noch im Redaxo-CMS-System in der Datei master.inc.php im include-Verzeichnis die neuen Namen und Passwörter für die neuen MySQL5 Datenbanken hinterlegt werden.

Raspberry Pi und serielle Schnittstelle

3 August 2013

Ein nettes Spielzeug so ein kleiner Raspberry Pi. Um seinen Funktionsumfang noch um eine RS232 Schnittstelle zu erweitern, wird alles notwendige hier beschrieben:

 

Nötige Hardware

Ohne spezielle Hardware geht nichts, dazu holt man sich am einfachsten z. B. sowas: http://www.amazon.de/Erweiterungsplatine-Raspberry-Board-1RS232-Standard/dp/B00CBDQ9L8

 

Serielle Schnittstelle ermitteln

Zunächst schaut man, welche seriellen Schnittstellen vorhanden sind:

dmesg | grep  tty

 

ergibt z. B.:

[    0.000000] console [tty1] enabled

[    0.584102] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3

 

Der tty1 und ttyAMA0 sind also vorhanden, wobei der ttyAMA0 interessant ist. Wer nähere Infos dazu sucht, wird hier ab Seite 164 fündig: http://www.amazon.de/dp/1430249714.

 

Zugriffsrechte auf die Schnittstelle abklären

Zur Sicherheit kann man nun noch überprüfen, ob man als aktueller Benutzer auch die passenden Rechte zur Benutzung der seriellen Ports hat:

ls  -l  /dev/ttyAMA0

 

was zur Ausgabe haben sollte:

crw-rw—T 1 root dialout 204, 64 Aug  2 15:50 /dev/ttyAMA0

 

Es hat also die Gruppe dialout Schreib-/Leserechte. Mittels

groups $USER

 

bekommt man die Ausgabe:

pi : pi adm dialout cdrom sudo audio video plugdev games users netdev input indiecity

 

Welches Bedeutet, dass der aktuelle Benutzer, also pi in der Gruppe dialout enthalten ist. Falls er fehlen sollte, kann man ihn mittels

sudo adduser $USER dialout

 

hinzufügen.

 

Umwidmung der seriellen Schnittstelle für externen Gebrauch
Die Schnittstelle ttyAMA0 findet man wieder in der Datei /boot/cmdline.txt. Dort muss man den Kerneldebugger und Konsolenausgabe deaktivieren. Dazu führt man diese Befehle aus:

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

sudo nano /boot/cmdline.txt

 

Dort dann

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

 

entfernen und speichern. Da man sich auch per serieller Konsole am Raspberry anmelden kann, muss noch der entsprechende Dienst abgeschaltet werden. Dazu muss die Datei /etc/inittab bearbeitet werden.

sudo cp /etc/inittab /etc/inittab.bak

sudo nano /etc/inittab

 

Nach dem Speichern muss der Pi neu gestartet werden, mittels

sudo shutdown -r now

 

Terminalprogramm zum Testen

Jetzt wird noch ein Terminalprogramm benötigt, minicom ist sehr beliebt:

sudo apt-get install minicom

 

Nun muss nur noch das Terminal gestartet werden:

minicom -b 115200 -o -D /dev/ttyAMA0

 

Nun steht der Kommunikation nichts im Wege.

 

Auf der anderen Seite der seriellen Leitung,  nimmt man am einfachsten putty, welches man vielleicht sowieso schon für die SSH-Einwahl zum Pi benutzt.

 

Weitere Quelle: http://www.irrational.net/2012/04/19/using-the-raspberry-pis-serial-port/