Sonntag, 27. März 2016

WLAN und Jessie

Das neueste Jessie Image für den Raspberry vom 18.3.2016 macht die Wlan Konfiguration ziemlich einfach. Alle Treiber und Tools sind schon installiert.
Ich verwende den TP-Link TL-WN725N (Realtek) als externen WLAN Adapter oder den eingebauten WLAN Adapter vom Pi3 ().
In beiden Fällen können wir uns mit mit ifconfig davon überzeugen, dass der WLAN Adapter im System Treiberseitig eingebunden ist. Am Ende der Ausgabe muss ein Abschnitt mit wlan0 und der HWaddr kommen. Die Hardware Adresse könnte man gleich zur Reservierung einer festen IP Adresse verwenden.

Ein kurzer Check ob überhaupt ein Netzwerk gesehen wird:
iwlist scanning
Als Ergebnis gibt es ein Listing von den vorhandenen Netzwerken.

Die Wlan Verbindung muss manuell eingetragen werden:
 sudo nano /etc/network/interfaces  
Wir suchen diese Zeilen (und/oder ergänzen bei Bedarf):
 allow-hotplug wlan0  
 auto wlan0  
 iface wlan0 inet manual  
Vor die folgende Zeile setzen wir ein Kommentarzeichen
 #  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf  
und nun wird angefügt
 wpa-ssid "WLAN-Name"  
 wpa-psk "WLAN-Passwort"  

Alternativ kann man auch mit der /etc/wpa_supplicant/wpa_supplicant.conf arbeiten
Wir öffnen die Datei
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 

Und tragen folgendes am Ende ein
network={
ssid="WLAN SSID"
psk="WLAN Passwort"
}
Vielfach liest man von mehr Optionen, bei mir haben die Angabe von ssid und psk genügt.

Mit dem Befehl
wpa_passphrase 'WLAN SSID' 'WLAN Passwort' >> /etc/wpa_supplicant/wpa_supplicant.conf

kann man den notwendigen Abschnitt erzeugen, dabei wird das Passwort in hexdezimaler Form codiert, steht also nicht im Klartext in der Datei. Das Klartext Passwort wird auskommentiert und kann gelöscht werden.

Das war es schon, mit
sudo systemctl daemon-reload
sudo systemctl restart networking
starten wir das netzwerk neu und der raspberry verbindet sich zum Wlan.
Meist muss man in dem Fall das wlan Interfaces mit diesem Befehl starten:
 sudo ifup wlan0
Man kann sich jetzt noch Details vom Netzwerk anzeigen lassen
 iwlist wlan0 scan

Powermanagement

Per default ist das Powermanagement in Jessie aktiv. Ganz schlechte Idee wenn der PI nur über Wlan im Netz hängt und plötzlich nicht mehr erreichbar ist.
Der folgende Befehl schaltet das Powermanagement für wlan0 sofort aus.
iw wlan0 get power_save
iw dev wlan0 set power_save off
Um es dauerhaft beim Neustart einzurichten müssen in der Datei /etc/network/interfaces diese Zeilen eingefügt werden. Aber unbedingt am Ende vom "Abschnitt" wlan0 also vor der ersten Zeile mit wlan1. Die pre/post-up und per/post-down Zeilen werden beim ifup bzw. ifdown des zugehörigen Interfaces ausgeführt. Wird das Interface nicht gestartet, wird der Befehl auch nicht ausgeführt.
post-up iw dev wlan0 set power_save off

Diese Option braucht einen Neustart ifdown wlan0 && ifup wlan0 reicht.
Der Befehl iwconfig gibt Auskunft über den Status des Powermanagements.

Zusammenfassung

Ich habe nach allen Erkenntnissen die Netzwerkdefinition in die /etc/wpa_supplicant/wpa_supplicant.conf eingetragen.
Am Ende sieht der modifizierte Abschnitt der Datei /etc/network/interfaces minimalistisch wie folgt aus:
allow-hotplug wlan0
 iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    post-up iw dev wlan0 set power_save off

allow-hotplug wlan1
 iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Zum Nachlesen:
Debian Kapitel 5 Netzwerkkonfiguration
Elektronik Kompendium WLAN Adapter beim raspberry einrichten.
Raspberry Pi3 WLAN einrichten
Wiki Ubuntuusers WLAN
Wiki Ubuntuusers interfaces

Freitag, 11. März 2016

Fritzbox zum Quadrat

Eine 7490 war schon vorhanden und jetzt kam vom Provider noch eine 7412 als Endpunkt des neuen DSL Anschlusses. Da der Router zum Teil auch über TR-069 Protokoll vom Provider konfiguriert wird, wollte ich es auch so: die 7412 schließt die DSL Leitung ab und die 7490 macht weiterhin den Hauptjob. Da gibt es bei AVM eine gute Anleitung wie man zwei Fritzboxen koppelt. Nun kommen die beiden Boxen ja nicht aus der Verpackung, sondern meine 7490 war schon in Betrieb. Also "Migration" ist angesagt. Und hier gibt es jetzt meine Erfahrungen:

Ich konfiguriere gerne per DHCP und ich mache auch gerne feste IP Adressen über DHCP und ich tippe nicht gern ab. Also: Sicherung der Konfiguration der existierenden Box und Wiederherstellung auf der neuen Box. Dabei kann man auswählen, nur bestimmte Einstellungen wiederherzustellen - Netzwerkonfiguration.  Dabei gibt es die erste Eigenheit: Das geht irgendwie nur einmal, nach dem Auspacken (oder Werksreset) und Basiskonfiguration mit dem Modeminstallationscode. Beim zweiten Versuch fehlt genau dieser Punkt zur Auswahl?!

  • Beide Boxen haben WLAN aktiv. Die 7490 steckt am LAN und wird vom DSL getrennt.
  • Die 7412 wird am DSL angeschlossen und steckt nicht am LAN.
  • Verbindung zur 7490 und Konfiguration sichern.
  • Verbinden zur 7412 und Konfiguration wiederherstellen.
  • 7490 vom LAN trennen und 7412 mit dem LAN verbinden.
  • 7490 als IP Client konfigurieren nach einer Wartezeit wieder an LAN anschließen


Und alles läuft weiter? Naja nicht ganz...
Die Rasperry's sind von Android aus nicht mehr per Namen erreichbar, obwohl es in der Fritzbox Oberfläche alles gut aussieht. Ein Blick mit nslookup bringt es an den Tag: die Fritzbox verweigert die Auskunft obwohl sie scheinbar den Namen kennt. Abhilfe bringt eine Neuregistrierung am DHCP Server mit dhclient (oder ein Neustart). Die Windows PCs machen das scheinbar ohne extra Aufforderung. Mein HMLAN Adapter ist auch nicht per Namen erreichbar, mal sehen ob das irgendwann von alleine wird. Ich vermute, wenn der DHCP Client auf Grund der Lease Dauer seine Lease erneuern will wird es wohl klappen.

Die Windows Rechner sind zwar per DNS Namen erreichbar, die haben auch den Vorteil, dass sie Broadcast machen und die Linux Rechner auch damit auflösen können. Aber die Windows Clients ermitteln ob sie an einem bekannten Netzwerk angeschlossen sind (MAC Adresse des Default Gateway?) und packen erstmal das neue Netzwerk in die Kategorie "öffentlich" und damit unsicher! Wenn man, wie ich, etwas auf Sicherheit achtet und nicht alles immer gleich öffnet - gehen jetzt ein paar Sachen erstmal nicht mehr. Wenn man sich am Windows PC anmeldet ist das Problem mit einem Klick behoben, Windows fragt nach der Art des Netzwerkes, man klickt auf Privat und alles ist gut. Aber der Server an dem man sich maximal mal per RDP anmeldet?
Man sollte vorher RDP auf öffentliche Netzwerke freigeben, oder Monitor und Tastatur bereithalten!

Interessant wird noch die Auswertung in FHEM, beide Fritzboxen zeigen die Netzwerkgeräte an, nicht alle auf jeder Box aber auch nicht alle bloß auf einer Box.

Mittwoch, 2. März 2016

Werksimage zurücksetzen

Das Notebook funktioniert nicht mehr, eigentlich gibt es ein Recoveryimage vom Hersteller aber der Mechanismus (z.B. F9 beim booten drücken) funktioniert nicht mehr?! Windows Wiederherstellungsmedium funktioniert auch nicht? Original DVD wurde nie mitgeliefert?

Einfach "Neu machen"

Normalerweise kann man ja irgendwie an Datenträger über downloads kommen. MS hat mit Windows 8 begonnen diese über ein "Media Creation Tool" als download zur Verfügung zu stellen. Manchmal braucht man seinen Lizenzkey manchmal auch nicht. Stand heute kann man als Windows 7 / 8 / 8.1 Besitzer einfach Windows 10 herunterladen und ist damit gleich auf dem neuesten Stand. Auch hier Vorrausetzung: Lizenzkey, falls der Rechner keinen Aufkleber hat, steht dieser eventuell im BIOS (ab Windows 8 bei Auslieferung). Den braucht man dann auch nicht auszulesen, den nimmt sich Windows bei der Installation automatisch.

Restorepartition vorhanden

Aber was wenn es vielleicht doch der Auslieferungszustand mit Originalimage sein soll? Das wird typischerweise in einer extra 10-20 GB großen Partition "Restore" am Ende der Systemplatte versteckt. Achtung es gibt meist noch eine versteckte Partition "Recovery" mit ca. 900 MB - die ist es nicht.

Erstmal muss das System wieder startfähig sein. Dazu installieren wir eine Windows Version (am Besten passend, also Original Windows 8 dann Windows 8) und  zerstören dabei aber nicht die Partitionen!  Die Windows Partition kann ruhig formatiert werden (Datenverlust!?), aber nicht gelöscht werden.

Restore sichtbar machen

Im gestartete System müssen wir zunächst die Restore Partition sichtbar machen:
diskpart  
list volume
select volume n (Die Nummer mit dem Namen "Restore")
assign letter=R
rem == Fenster offen lassen um später Laufwerk zu entfernen

Jetzt müssen wir den Pfad kennen wo die Datei install.wim liegt und den Index für unser Recovery System. Wissen wir das nicht, müssen wir Zugriff auf die install.wim haben und mit dism die vorhanden Indizes ermitteln. Am einfachsten zweites cmd Fenster öffnen:
dism /get-imageinfo /ImageFile:R:\RecoveryImage\install.wim

Ist das Image z.B im Index 2 (wenn mehrere vorhanden sind ist die 1 häufig ein "Masterimage" sieht der Befehl zur Reaktivierung so aus
reagentc /setosimage /path R:\RecoveryImage /index 2  
reagentc /enable

Wir müssen diskpart noch schließen und die Restore Partition damit wieder unsichtbar machen (Fenster 1):
remove letter=R
exit

Wiederherstellung starten

Jetzt kann man ins Wiederherstellungssystem starten (shift + Neustart) und die Systemwiederherstellung starten.

Original HDD defekt?

Hängt jetzt ganz vom Zustand ab, was da noch zu retten ist. Manchmal stirbt eine Festplatte ja "gutmütig", d.h. Self Monitoring Analysis and Reporting meldet Fehler oder nur bestimmte Dateien lassen sich nicht mehr kopieren. Ist die Recovery Partition noch intakt, hat man auch hier eine Chance. Ich hatte zumindest einen Fall, da steckte auch der Produktschlüssel in der Recovery Partition und war weder im Bios noch auf der "Verpackung".
Also neue Festplatte her, beide Platten an einen Computer angeschlossen und wir können auch noch ein kleines Tool gut gebrauchen -> MiniTool Partition Wizard free 

Mit dem Tool können wir die Recovery Partition (normalerweise die letzte) einfach auf die neue Platte kopieren, Größe so belassen und wieder an das Ende der neuen Platte verschieben. Die genaue Größe der neuen Festplatte spielt keine Rolle.

Man könnte den Inhalt dieser Partition auch per Hand kopieren, etwas umständlicher aber es geht. Zunächst auf der Original Platte die Recovery Partition "sichtbar" machen, im cmd Fenster 1:
diskpart
list disk -> Platten Nummern notieren alte / neue Platte
list volume
select volume n (Die Nummer mit dem Namen "Restore")
assign letter=S

Auf neuer Platte Partition am Ende erstellen. Das geht nur über einen Umweg:
sel disk n (die Nummer der neue Platte)
clean
rem == Eine komplette Partition erzeugen  ==========
create partition primary 
rem == Verkleinern um den Platz für recovery image =
shrink minimum=21500
rem === Recovery image partition erzeugen ==========
create partition primary
format quick fs=ntfs label="Recovery image"
assign letter="R"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
rem === Partion am Anfang wieder löschen============
list part
sel part 1
del part
rem == wechseln in anderes Fenster 2 um den Kopiervorgang zu starten
remove letter=R
remove letter=S

Kopieren im extra cmd Fenster 2
xcopy s: r: /s/e/h
# Zurück zu Fenster 1 um Laufwerke wieder zu entfernen

Die Installation von Windows erfolgt ganz normal, man wählt einfach den freien Bereich der Festplatte dafür aus.

Links

Recovery Partition Creator
Artikel com! Magazin
MiniTool Partition Wizard free
Konfigurieren von UEFI-/GPT-basierten Festplattenpartitionen mit Windows PE und DiskPart
windows product key offline auslesen