WOL

Im BIOS zuerst die entsprechende Funktion aktivieren. Dann das ethtool installieren

sudo apt-get install ethtool

und auf die Netzwerkkarte (hier ETH0) loslassen:

sudo ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes

Der momentane Zustand bei meiner Karte für ETH0 ist der Zeile Support Wake-on: g zu entnehmen. Das kleine g steht für Wake on MagicPacket ™ – siehe man page zum ethtool.

Das setzt man einmal händisch mit

sudo ethtool -s eth0 wol g

und trägt diese Zeile ohne sudo auch in die /etc/rc.local vor dem exit 0 ein.

In die /etc/init.d/halt kommt noch ein

NETDOWN=no

statt des vorhandenen yes, damit die Karte nicht abgeschaltet wird, wenn der Rechner runter fährt.

Man notiert sich nun die MAC Adresse der ETH0 (ifconfig eth0) und ein shutdown -h knippst den Rechner aus … Jetzt kann man testen, ob man dieses Gerät auch wieder über’s Netz wach bekommt. Hierzu benötigt man das Paket etherwake

sudo apt-get install etherwake

Ein WOL Paket auf die MAC 00:30:05:83:0d:74 wird gesendet mit

sudo etherwake 00:30:05:83:0d:74

… und dann kann man mit Hoffen beginnen. Oder mit debuggen. Je nach Netzwerkkarte.

Wenn es funktioniert, dann kann man sich einen Alias in der .bashrc oder .bash_aliases hierzu anlegen, der einem das Memory zur MAC Adresse abnimmt

alias fscon=’sudo etherwake 00:30:05:83:0d:74′

Wer über einen WLAN AP oder das Internet WOL Pakete versenden will, kann Pech haben – diese können nicht über jedes Gerät geroutet werden. Router, die directed broadcasts unterstützen, können aber entsprechend konfiguriert werden.

Ein Script fährt nun unseren Backup-/Spiele-/Tauschordner-Server am späten Abend runter – und ein Befehl holt diesen wieder her, wenn er gebraucht wird. Ist schon vor dem späten Abend klar, dass er ausgeschaltet werden kann, dann hilft eine alias Definition in der .bashrc weiter:

alias fscoff=’ssh -t benutzer@192.168.0.112 „sudo shutdown -h now“‚

Man wird dann zwei mal nach dem Passwort gefragt – einmal für SSH und dann noch für das sudo. Das können nun auch die Kinder, mit diesen beiden Aliasen umgehen: fscon schaltet die Kiste ein – fscoff schaltet sie wieder ab. Und vom gesparten Strom gehen wir essen.

Thunderbird Kalender Rettung

Ralfs Thunderbird Kalender hatte von einem Tag auf den anderen alle Termine vergessen und egal was wir hier versuchten – ich konnte diese nicht mehr herstellen. Dazu kam, dass Thunderbird obendrein auch alle Spracheinstellungen ignorierte. Also kopierten wir zuerst das Profil weg

mv .thunderbird .thunderbird_bak

und starteten Thunderbird neu. Plötzlich sprach er wieder Deutsch und auch der Kalender funktionierte. Der Fehler schien demnach irgendwo im Profilverzeichnis versteckt zu sein …. leider war aber nicht heraus zu finden, wo genau.

Mir erschien es an diesem Punkt einfacher zu sein, Thunderbird neu einzurichten statt viel Zeit in Reparaturversuche zu stecken. Wir beendeten also TB und aktivierten das alte Profil wieder

rm -r .thunderbird

mv .thunderbird_bak .thunderbird

und installierten einen lokalen Mailserver

sudo apt-get install dovecot-postfix

Der lokale Mailserver wurde in TB als neues E-Mail Konto eingerichtet (benutzername@localhost) und In diesen lokalen Mailserver schoben wir dann auch alle Mails aus TB. Die Mails waren damit vor unseren weiteren Spielchen mit TB sicher.

Die gesammelten Adressen hätten wir an dieser Stelle ebenfalls exportieren sollen … was aber leider vergessen wurde. Ralf hat das – denke ich – inzwischen auch schon gemerkt 🙁

TB wurde beendet und sein Profilverzeichnis wieder nach .thunderbird_bak geschoben.

Im nächsten Schritt wurde TB dann erneut neu gestartet. Im Kalender wurde ein einzelner Termin eingetragen, um diesen zu initialisieren. Dann wurde TB wieder beendet.

Aus dem alten Profilverzeichnis

~/.thunderbird_bak/xyz-und-so.default/calendar-data/

wurde dann die local.sqlite in den neuen Profilordner unter

~/.thunderbird/xyz-und-so.default/calendar-data/

kopiert. Die durch die Termineintragung (s.o.) im neuen Profilordner vorzufindende local.sqlite muss hierbei überschrieben werden.

Leider waren wir jetzt nicht am Ende angelangt – denn: Die local.sqlite enthält zwar die eigentlichen Kalenderdaten, aber leider nur in Bezug auf eine bestimmte Kalender-ID. In unserem Fall auf die Kalender-ID aus dem alten Profilordner, so dass diese ID im nächsten Schritt noch geändert werden musste. Das geht mit dem Programm sqlitebrowser recht einfach, den man sich wie folgt an Bord holt:

sudo apt-get install sqlitebrowser

Die für den nächsten Schritt benötigte ID des neuen Kalenders besorgt man sich aus der Datei prefs.js im aktuellen .thunderbird Profilpfad. Diese sieht ungefähr so aus:

calid

Mit dem sqlitebrowser wurde die ~/.thunderbird/xyz-und-so.default/calendar-data/local.sqlite geöffnet und die folgenden SQL Befehle im Tab „Execute SQL“ ersetzten dann die ID des Kalenders in der local.sqlite

update cal_attendees set cal_id=’ID des Kalenders‘;

update cal_events set cal_id=’ID des Kalenders‘;

update cal_properties set cal_id=’ID des Kalenders‘;

update cal_recurrence set cal_id=’ID des Kalenders‘;

Thunderbird wurde dann wieder gestartet … und siehe da: Zwar waren die Zuordnungen zu bestimmten lokalen Kalendern verschwunden, aber wenigstens die Termine selbst waren alle wieder da.

VirtualBox, rdesktop und ssh Tunnel

sshtunnel_rdesktop

Folgendes Setup: In der Schule steht ein VMHost auf dem einige VMs mit Hilfe von VirtualBox virtualisiert wurden. Der VMHost ist von Außen nur über SSH und dort nur über Port 2233 zu erreichen.

Säße man direkt am VMHost würde man die rdesktop-Sitzung mit dem folgenden Befehl aufrufen:

rdesktop localhost:3389

Diese Sitzung will man nun auf dem Laptop zu Hause haben. Also braucht man einen SSH Tunnel in die Schule, über den man sich die rdesktop Sitzung nach Hause holt.

Ein derartiger Aufbau des SSH Tunnels erfolgt wie hier angegeben, wenn man auch lokal die rdesktop Session auf Port 3389 sehen will:

ssh -p 2233 benutzer@vmhost.schule.tld -L 3389:localhost:3389

Lokal macht man dann (in einem zweiten Terminal) die rdesktop Session auf, wie wenn man direkt am VMHost sitzen würde: rdesktop localhost:3389

pydio

pydio

AjaXplorer nennt sich – wie im Blog der Entwickler schon seit Ende September angekündigt – seit dem letzten Update pydio … und liefert neben der gleichen guten Bedienbarkeit und Konfigurierbarkeit als Web-Aufsatz für WebDAV-Server auch professionellen Support.

Für  kleinere Installationen braucht pydio noch immer kein Datenbank-Backend, auch wenn ein solches die Performanz deutlich hebt.

Apps für iOS und Android stehen zur Verfügung, kosten aber etwas Kleingeld wenn ich mich richtig erinnere (mein ajaXplorer/pydio-Serverchen läuft schon seit einer der ersten Versionen und ich sag diese Ausgabe immer als Dankeschön für die Entwickler).

tl;dr: EIn Blick auf pydio sollte werfen, wer die vielen Funktionalitäten von ownCloud (Kalender, Adressbuch etc.) nicht braucht.

Hochkommata

csv_hochkommaersetzung

Lädt man sich von Webseiten Internationaler Organisationen wie dem IMF Datensammlungen im CSV / XLS Format herunter, dann kann man diese nicht auf die Schnelle in Diagramme umwandeln, weil die Zellen mit Zahlen in deren Dokumenten als Text markiert sind. Dies geschieht durch Setzung eines Hochkommas, das man erst entfernen muss.

Mit der Funktion /Bearbeiten /Suchen & Ersetzen … sucht man nach ^.*$. Zu ersetzen ist mit &. Ein Häkchen bei „Regulärer Ausdruck“ muss gesetzt sein.

EDID und nvidia-settings

modevalidation

Ich hatte in Erinnerung, dass mein Beamer NC VT580 die Auflösung meines Laptops mit 1440×900 Pixeln eine Zeit lang hatte darstellen können. Irgendwo auf der Strecke hat er das aber vergessen. Auch nvidia-settings zeigte diese nicht mehr an … bis heute.

Die Lösung ist recht simpel. Die /etc/X11/xorg.conf sieht bei mir nun so aus:

Section „Device“
Identifier      „Default Device“
Option  „NoLogo“        „True“
Option  „ModeValidation“ „AllowNonEdidModes“
EndSection

Mehr steht da nicht.

Die entscheidende Zeile hierbei ist die Option „ModeValidation“. Schaltet man nämlich die EDID-Vorgaben des Beamers im Treiber ab, dann kann der Beamer wieder alles, was er wirklich kann, und nicht nur das, was der NV-Treiber gerade aus der EDID annimmt. (via)

Resetting TP-Link TL-MR3020

… war wohl nix. Meine Anleitung von vorgestern zu OpenWRT auf dem kleinen Kästchen enthielt einen kleinen, aber tödlichen Fehler, den ich inzwischen behoben habe. Hierbei durfte ich dann gleich mal kennen lernen, wie man einen total verzockten MR3020 in den Auslieferungszustand zurücksetzt, wen OpenWRT installiert ist.

openwrt_reset

Ein

tcpdump -Ani eth0 port 4919 and udp

liefert auf dem Gerätchen schlicht … nix. So ist es etwas schwer, den richtigen Zeitpunkt abzupassen, an dem man den Geräteschalter drückt, um den MR3020 in den failsafe Modus zu versetzen.

Was aber half war ein ca. 60 sekündiges Dauergeklicke auf dem einzig vorhandenem Schalter nach einem Reboot durch Ziehen das Stromkabels. Man kann sich dann mit telnet wieder anmelden, mountet das Dateisystem und setzt das Ding wie in der oben verlinkten Anleitung zurück.

Mohnkuchen

IMG_20131004_161645

Eigentlich gehört so ein Post da hin: https://www.bdjl.de/lebensart/ Aber ich kann jetzt grad nicht warten. Schließlich handelt es sich um meinen ersten Mohnkuchen überhaupt.

Mürbteigboden

  • 450g Mehl
  • 150g Zucker
  • 1 Ei
  • 250g Butter
  • 1 Prise Salz

Die Zutaten mit dem Handrührgerät verbröseln, dann mit den Händen zu einem glatten Teig kneten und im Kühlschrank lagern.

Mohnpampe

  • 800g Blaumohn gemahlen
  • 150g Mandeln gemahlen
  • 150g Zucker
  • einige Esslöffel Mehl
  • 2 Liter Milch
  • etwas Rosenwasser
  • 150g Sultaninen
  • 3 Eier

Streusel

  • 125g Butter
  • ca. 150g Zucker
  • ca. 150g Mehl
  • Zimt
  • etwas Blaumohnpampe

Zubereitung

Den Blaumohn mit 2 Liter Milch aufkochen. Durch ein Haarsieb streifen und abkühlen lassen (das dauert mindestens zwei Stunden). Die Sultaninen in Wasser einweichen.

Alle Zutaten für die Blaumohnpampe mit dem Handrührgerät mischen.

Den Mürbteigboden in eine Springform geben und den Rand schön hochziehen. Die Mohnpampe darauf verteilen.

Die Butter für die Streusel schmelzen. Mit dem Schneebeesen Zucker einrühren, bis die Masse pampig wird. Etwas Blaumohnpampe und viel Zimt dazugeben. Unter Hinzufügen von Mehl so lange weiter rühren bis die Masse bröselig wird. Die Streusel dann auf den Blaumohnbelag geben.

Im Backofen bei Ober-/Unterhitze und 180 Grad ca. 60 Minuten backen. Auskühlen lassen.

OpenWRT auf TP-Link TL-MR3020

Für die freien Tage musste was zum Spielen ins Haus: ein TP-Link TL-MR3020 für rund 30€. Die Installation von OpenWRT gelingt nach Anleitung über die Browseroberfläche ohne Probleme. Nach zwei Reboots kann man sich über telnet einloggen und ein Passwort für root setzen. Telnet ist damit deaktiviert – in Zukunft kommt man über SSH auf den MR3020. Ein

opkg –help

zeigt die wichtigsten Befehle der Paketverwaltung an und die folgenden Befehle ziehen eine SSL verschlüsselte Browseroberfläche für die Konfiguration des Routers an Bord (und ein etwas hübscheres Design sowie deutsche Sprachpakete für dieselbe gleich mit):

opkg update

opkg install luci-theme-bootstrap

opkg install luci-i18n-german

opkg install luci-ssl

/etc/init.d/uhttpd restart

/etc/init.d/uhttpd enable

openwrt

Inzwischen habe ich zwei WLAN Netze auf dem kleinen Kästchen laufen – eines für Geräte, die in mein Heimnetz dürfen und dann ihre IP vom DHCP auf meiner Smoothwall erhalten (oben LAN genannt) und ein Netz für Gäste, an die der TPLink die IPs verteilt.

Dabei erhält der MR3020 die IP immer vom DHCP des Netzes, an das ich ihn stecke – hier im Heimnetz also vom DHCP auf der Smoothwall. Das ist für Netzwerker sicherlich eine grausige Vorstellung: Ein Router, der seine IP nicht statisch gesetzt bekommt, sondern vom DHCP erhält 🙁 Das hat für mich aber einen Vorteil, zu dem ich am Ende noch komme.

Im Hinterkopf zu behalten ist, dass mein Heimnetz nur rot und grün kennt. Ein dezidiertes blaues Netz für WLAN existiert hier nicht. Alle AccessPoints hängen demnach bei mir im grünen Netz.

Anyway: Aufgefallen ist mir bei der Fummelei, dass diese Anleitung bei OpenWRT bei mir nicht richtig passen wollte und an einigen Stellen verändert werden musste. Zu diesen Änderungen:

owrt_drahtlos

Zuerst wird eine neue WLAN Schnittstelle (hier: bdjl_guest) eingerichtet, die lediglich die WLAN Schnittstelle des Routers beinhaltet.

Das geht am schnellsten über /Netzwerk /Drahtlos /Hinzufügen.

owrt_schnittstellen

Dann wird der neuen WLAN Schnittstelle eine statische IP verpasst und der DHCP Server auf dieser aktiviert. Die entsprechenden Funktionen befinden sich unter /Netzwerk /Schnittstellen und dort nach einem Klick auf /Bearbeiten.

Schon hier kann man in den erweiterten Einstellungen dieser Schnittstelle eine eigene Firewall-Zone zuweisen – was ich tat.

owrt_zonen

Unter /Netzwerk /Firewall findet sich die Zone wieder – verweist aber zuerst auf REJECT. Hier muss der neuen Zone die Weiterleitung auf WAN zugeordnet werden, was über den Schalter /Bearbeiten möglich ist.

owrt_nat

Unter /Netzwerk /Firewall /Verkehrsregeln wird dann von der Gast-WLAN-Schnittstelle auf ETH0 (also LAN) ge-NAT-et.

Ausbruchsicher ist das evtl. nicht – selbst wenn Fing keine Geräte aus meinem Heimnetz findet. Aber – hey – es ist ein Gastnetz für meine Bude. Die Menschen sitzen dann auf meinem Sofa. Innenverteidigung ist meine Sache nicht und die Vorteile bleiben bestehen:

Ich erspare mir in Zukunft die lästige Aufnahme der MAC Adressen von Gastgeräten und viel Gefummel mit der Smoothwall, wenn Besuch kommt und mit dem eigenen Gerät nur online gehen will.

Außerdem müsste – das muss ich aber noch testen – mein TPLink auch in fremden Netzen funktionieren: Einstöpseln … und er erhält vom DHCP Server des fremden Netzes (in meinem Fall z.B. das Schulnetz) eine IP. Auf dem einen WLAN, das er aufzieht, kann ich dann so ins lokale Netz, als wäre ich mit meinem Laptop direkt angemeldet. Der TPLink benimmt sich wie ein AccessPoint. Auf dem anderen WLAN, dem WLAN für Gäste, kommt jeder Client rein, dem ich den WPA2 Key der kleinen Büchse mitteile … und taucht im internen Netz garnicht auf. Und da sich die MAC Adresse von eth0 leicht ändern lässt, kann man sich in fremden Netzen auch mal eine „leihen“ 😉

Nepomukindexer

Seit Nepomuk meine Dateien indizieren darf, ist mein syslog voll und die CPU-Last sinkt nur selten unter 100%:

nepomukindexer[11837]: segfault at d3f0a8 ip 00007fd9e52afc41 sp 00007fff52c08a98 error 4 in libc-2.17.so[7fd9e5226000+1bd000]

nepomukindexer[11851]: segfault at fd83a8 ip 00007f6a1f31ac41 sp 00007fff7368d268 error 4 in libc-2.17.so[7f6a1f291000+1bd000]

nepomukindexer[11872]: segfault at 125b7c8 ip 00007f5497674c41 sp 00007fffd3df3138 error 4 in libc-2.17.so[7f54975eb000+1bd000]

Ich hab zwar entsprechende Einträge für KDE zu Arch gefunden – aber nicht zu Kubuntu 13.10. Welche nepomuk Komponente genau den Absturz auslöst oder ob die libc selbst das Problem ist? Mit dem Kubuntu Bug squad ist schwer Kontakt zu finden – der Link ist tot. Ergebnis: Mein etwas schwammiger Bug Report befindet sich jetzt auf Launchpad.

Nepomuk kommt wieder auf’s Abstellgleis und Recoll übernimmt die Desktopsuche. Soweit war ich schon häufiger.