Archiv der Kategorie: Open Source Matters

Synology DS411Slim Disk Station

Heute will ich meine DiskStation endlich mal in Betrieb nehmen. Handbuch heruntergeladen und durchgelesen, NAS angeschlossen, am Router gecheckt, IP wurde vergeben. Auch den Synology Assistant für Linux habe ich heruntergeladen und installiert.

Suche: Kein Server gefunden!

Woran lag’s? Tatsächlich an meiner Firewall! Ubuntu 12.04 schaltet offenbar standardmäßig die ufw ein, um Port 22 zu blockieren. Ein „ufw disable“ hat geholfen – schon hat er die Disk Station gefunden.

Neo

Da mir immer mal die Sehnen der linken Hand vom vielen PC-Tippen Beschwerden machen habe ich mich ein bisschen mit ergonomischen Tastaturen und dem Tastaturlayout NEO befasst.

Nun versuche ich, unter Ubuntu 12.04 eine TypeMatrix-Tastatur mit dem Neo2-Layout zu „verheiraten“, das mit Ubuntu mitgeliefert wird und leicht zu aktivieren ist. Nur leider funktioniert doch einiges nicht so wie es soll, z.B. tut die angebliche MOD4-Taste nicht das was sie soll.

Daher habe ich mich in den FAQs und Anleitungen des Neo-Wiki umgeschaut und herausgefunden, dass man die Tastaturbelegung von XKB (xkbmap) ersetzen kann und sollte, wenn sie fehlerhaft ist, so wie bei mir. Wie das geht ist prinzipiell gut beschrieben, aber um ganz sicher zu gehen habe ich erstmal geschaut, ob denn meine Version der xkbmap überhaupt abweicht.

Mein Vorgehen:

  • Herunterladen der korrekten Dateien, wie beschrieben:
    wget http://neo-layout.org/xkb.tgz
  • Entpacken in einem separaten Verzeichnis (z.B. im eigenen Home, einfach ein neues Verzeichnis anlegen und dort entpacken)
    cd
    mkdir neo
    mv xkb.tgz neo/
    cd neo
    tar xfz xkb.tgz
    cd xkb
    find . -type f
    ./symbols/shift
    ./symbols/de
    ./symbols/level3
    ./symbols/level5
    ./types/level5
    ./compat/caps
    ./compat/misc
    ./compat/level5
    ./rules/base.xml
    ./rules/evdev.xml
    ./rules/evdev
    ./rules/base
  • Dann habe ich mir angeschaut, wie die Dateien heißen müssen, die darin enthalten sind, und habe z.B. die Datei level5 gefunden.
  • Mit locate habe ich gesucht, ob und wo auf meinem Rechner diese Datei liegt, um überhaupt herauszufinden, wo die Dateien für xkb liegen (das kann man auch anders machen, aber das hier ist eine Möglichkeit):
    locate level5
    /usr/share/X11/xkb/compat/level5
    /usr/share/X11/xkb/symbols/level5
    /usr/share/X11/xkb/types/level5
  • Aha!! „Wurzelverzeichnis“ für die xkbmap ist /usr/share/X11/xkb.
    Ein…
    cd /usr/share/X11/xkb
    …und:
    find . -type f
    …zeigt mir, dass es noch viel mehr Dateien gibt, die xkb dort liegen hat.
  • Nun kann ich also die Dateien vergleichen, und herausfinden, ob die denn überhaupt abweichen!
    cd -
    for f in $files
    do
    usrf=`echo $f | sed 's/\./\/usr\/share\/X11\/xkb/'`;
    diff $usrf $f
    done | more

    Das Ergebnis sieht ungefähr so aus:
    253c253
    < key.type[Group1] = "EIGHT_LEVEL"; --- > key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
    281c281
    < key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; --- > key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
    296c296
    < key.type[Group1] = "EIGHT_LEVEL"; --- > key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
    301c301
    < key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; --- > key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
    322c322
    < key { [ z, Z, grave, Greek_zeta, Undo, Undo,
    U2124, NoSymbol ] };
    ---
    > key { [ z, Z, grave, Greek_zeta, Undo, Redo,
    U2124, NoSymbol ] };
    326c326
    < key.type[Group1] = "EIGHT_LEVEL"; --- > key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";
    329c329
    < key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; --- > key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK";
    331c331
    < key.type[Group1] = "EIGHT_LEVEL"; --- > key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK";

    usw. Damit habe ich also sicher feststellen können, dass meine Dateien nicht aktuell sind!
  • Nun kann ich voller Vertrauen ;-) der Anleitung weiter folgen bzw. einen Zwischenschritt einfügen, nämlich die alten xkbmap-Dateien sichern (Schritt 1 der Anleitung im Wiki sichert mehr Dateien als in meiner heruntergeladenen Version xkb.tgz enthalten sind – wir nehmen’s hier also wieder mal ganz genau!).

    Dateien umbenennen und sichern:
    for f in $files
    do
    usrf=`echo $f | sed 's/\./\/usr\/share\/X11\/xkb/'`
    sudo cp $usrf ${usrf}.orig
    done
    tar cvfz xkb-orig.tgz /usr/share/X11/xkb/*/*.orig

  • Jetzt können wir die heruntergeladenen Dateien drüber kopieren:
    for f in `find . -type f`; do newf=`echo $f | sed 's/\./\/usr\/share\/X11\/xkb/'`; sudo cp $f $newf; done
  • Nun prüfen wir nochmal das Ergebnis – gibt’s noch Differenzen?
    for f in $files
    do
    usrf=`echo $f | sed 's/\./\/usr\/share\/X11\/xkb/'`;
    diff $usrf $f
    done | more

    Es sollte nun nichts mehr ausgegeben werden – und damit sind wir fertig.

Nach einem Neustart des Rechners funktioniert nun auch neo2 korrekt und die MOD4-Taste tut was sie soll!

Ubuntu bei Dell

Nicht, dass ich Dell besonders unterstützen wollte, dafür habe ich schon von zu vielen Negativerfahrungen diverser Leute mit Dell gehört. Aber bemerkenswert und sehr positiv finde ich natürlich, dass Dell eine eigene Seite für das Ubuntu-Betriebssystem betreibt!

Als wesentliche Vorteile von Ubuntu werden dabei hervorgehoben:

  • besonders gut für die Nutzung von Internet und Social Media geeignet
  • extrem wenig virenanfällig
  • schnell und zuverlässig

Und dabei wird auch nicht vergessen darauf hinzuweisen, dass Linux (das hinter Ubuntu steckt) sowohl auf den kleinsten als auch auf den größten Rechenanlagen dieser Welt läuft.

Siehe hierzu: Marktführerschaft von Linux auf Supercomputern, oder Android inzwischen bei über 50% Marktanteil.

…und wie man sieht, hat sogar die Wirtschaftskrise noch positive Effekte auf die Verbreitung von Linux!

hg2git

Nach dem ich in meiner persönlichen „Ära nach Subversion“ bezüglich DVCS erstmal an Mercurial hängen geblieben bin, (weil ich von Git noch nichts wusste) bin ich mittlerweile große Anhängerin des Verteilten Versionierungssystems von Linus Torvalds.

Und, wie könnte es anders sein, in meiner Infrastruktur liegt natürlich noch so das eine oder andere HG-Repo herum.

Was tun? Einfach mal nach „hg2git“ googeln? Korrekt – und es kommen zumindest zwei ernstzunehmende Ergebnisse:

Die „vitaly“-Variante von hg2git scheint älter zu sein als die von „antono“. Rocco Rutte hat seinen letzten Checkin am 13.05.2007 gemacht. Antono hat nur einen einzigen Checkin gemacht, am 11.06.2009.

Was soll ich sagen? Rutte’s Variante erscheint mir dringend überarbeitungswürdig. In den vergangenen drei Jahren hat sich bei Mercurial offenbar einiges getan, was das Skript noch nicht reflektiert.

Eine Fehlermeldung ist z.B. „AttributeError: ‚changelog‘ object has no attribute ‚count'“. Behoben werden kann das, indem die Zeile „tip=repo.changelog.count()“ ersetzt wird durch „tip=len(repo.changelog)“. Auch nicht schlimm ist, dass Skripte wie „git-sh-setup“ in Ubuntu 10.04 nicht automatisch im Pfad liegen, und somit um eine ‚gitpath=“/usr/lib/git-core“‚-Variable ergänzt werden müssen. Aber dabei bleibt es leider nicht. Bei der Fehlermeldung „AttributeError: ‚manifestdict‘ object has no attribute ‚execf'“ bin ich dann ausgestiegen – bzw. umgestiegen auf Antono’s funktionierendes hg2git-Import-Skript.

Achtung – man übergibt dem Skript das Mercurial-Repo als Parameter, und auch genau in diesem Verzeichnis entsteht dann das neue Git-Repo! Im Ergebnis ist dem neuen Repository nur das „.hg“-Verzeichnis noch unbekannt – ansonsten sehen „git status“ und „git log“ ganz ordentlich aus. Auch gitg zeigt einen schönen Streckenfahrplan für U-Bahnen – äh, also „vernünftige“ Branchens und Merges, wie man sie erwarten würde. :-)

Schöne neue Welt! – Prost.