Sonntag, Juli 23, 2017

Debian 9 (Stretch): Predictable Network Interface Names – Umstellung auf das neue Verfahren zur Namensvergabe von Netzwerkschnittstellen

Spätestens ab Debian 10 (Buster) wird das alte Verfahren zur Namensvergabe von Netzwerkschnittstellen nicht mehr unterstützt, und das System muss auf das neue Verfahren umgestellt sein (Predictable Network Interface Names).

Bei einer Neuinstallation von Debian 9 (Stretch) passiert diese Umstellung automatisch. Bei einem Upgrade von Debian 8 (Jessie) muss hingegen manuell umgestellt werden.

Auf das neue Verfahren zur Namensvergabe von Netzwerkschnittstellen umstellen

Um auf das Verfahren Predictable Network Interface Names umzustellen, muss die Datei /etc/udev/rules.d/70-persistent-net.rules gelöscht werden:

mv /etc/udev/rules.d/70-persistent-net.rules{,.old}

Danach muss das System neu gestartet werden.

Dieser Schritt stellt eine entsprechend weitreichende Änderung am System da. Eventuelle Konfigurationsdateien müssen angepasst und getestet werden. Wer statt des NetworkManager(8) die Datei interfaces(5) und ifupdown nutzt, muss zumindest diese anpassen.

Siehe auch: https://www.debian.o … #new-interface-names, https://github.com/s … -builtin-net_id.c#L3 (Beschreibt nach welchen Regeln, die neuen voraussagbaren/vorhersagbaren Namen aufgebaut sind), https://www.freedesk … tworkInterfaceNames/, file:///usr/share/do … dev/README.Debian.gz

Benutzerdefinierte Namen für Netzwerkschnittstellen

In manchen Fällen ist es praktisch, eigene Namen für Netzwerkschnittstellen zu definieren.

Dies kann mittels zwei verschiedener Methoden erreicht werden. Einmal mittels Network Device Configuration: systemd.link(5) und einmal mittels Dynamic Device Management: udev(7), welche wesentlich mehr Möglichkeiten bietet.

In folgenden Beispielen, wird der Netzwerkschnittstelle mit der MAC-Adresse 00:a0:de:63:7a:e6, der feste Namen dmz zugewiesen:

  • Dynamic Device Management – udev(7):
    Beispielsweise kann /etc/udev/rules.d/76-netnames.rules erstellt und dort Netzwerkgeräte anhand beliebiger Attribute und Eigenschaften identifiziert und benannt werden.
    Hier ein Beispiel, um ein Gerät über die MAC-Adresse zu identifizieren und zu benennen:

    cat /etc/udev/rules.d/76-netnames.rules
    # identify device by MAC address
    SUBSYSTEM==”net”, ACTION==”add”, ATTR{address}==”00:a0:de:63:7a:e6”, NAME=”dmz”
    

    Gegenüber systemd.link(5), bietet diese Methode auch die Möglichkeit Geräte anhand anderer Übereinstimmungsschlüssel, wie der Vendor/Model-ID oder des Gerätepfads zu Identifizieren. Siehe dazu auch die Handbuchseite udev(7), für die Dokumentation, wie man udev-Regeln schreibt.

  • Network Device Configuration – systemd.link(5):
    Alternativ geht auch eine Konfiguration ohne udev(7), mittels systemd.link(5) und des Name-Schlüssels:

    cat /etc/systemd/network/10-dmz.link
    [Match]
    MACAddress=00:a0:de:63:7a:e6
    [Link]
    Name=dmz
    

Damit diese Änderungen übernommen werden, ist ggf. eine Aktualisierung der initrd-Datei und ein Neustart des Systems erforderlich:

update-initramfs -u && reboot

Donnerstag, Juni 30, 2016

Webentwicklung/Webdesign; HTML: Telefonnummern verlinken

Ganz ähnlich wie E-Mail-Adressen mit dem Schema (scheme) mailto angegebenen werden können und der Link i.d.R. den Mail-Client öffnet, um die E-Mail zu verfassen. Können auch Telefonnummern verlinkt werden (siehe RFC 3966).

Dazu muss das Schema tel genutzt werden. Beispiel:

Telefon: <a href=”tel:+491631737743”>+491631737743</a>

Am Computer weniger sinnvoll/nützlich, trumpft so ein Link am Smartphone allerdings richtig auf!

Sonntag, Mai 8, 2016

CyanogenMod auf dem Samsung Galaxy S4 mini GT-I9195 (serranoltexx) installieren

Habe CyanogenMod (CM) auf meinem Samsung Galaxy S4 mini GT-I9195 (serranoltexx) installiert. Das funktionierte problemlos.

Hier ein Gedächtnisprotokoll dazu. Die offizielle Dokumentation, Schritt-für-Schritt Anleitung usw. zu serranoltexx findet man hier: https://wiki.cyanoge … /w/Serranoltexx_Info.

Anstelle von ClockworkMod (CWM) und anderen, bietet CyanogenMod inzwischen ein eigenes Custom ROM an – die CyanogenMod Recovery (CMR).

Für Samsung Galaxy S Geräte muss allerdings weiterhin, statt des fastboot Befehl aus der Android Debug Bridge (ADB), die Heimdall Suite verwendet werden, um das ROM auf das Gerät zu flashen. Doch Heimdall kann mittlerweile aus den Debian-Paketquellen installiert werden: https://packages.deb … n.org/heimdall-flash.

Wer die Google Apps (OpenGApps) installieren möchte, findet diese hier: http://opengapps.org/. Es wird der Download für die Platform ARM benötigt. Das Google Apps .zip muss im selben Schritt wie das ClockworkMod .zip installiert werden. Ein nachträgliches installieren der Google Apps funktionierte hier nicht.
Wer die Google Apps nicht möchte, installiert später unter Android einfach das FDroid.apk von hier: https://f-droid.org/. Und hat damit einen alternativen App Store zur Verfügung stehen.

Wurde mit Heimdall das CyanogenMod Recovery ROM auf das Gerät geflasht, ist es wichtig das Gerät nicht neu zu starten. Sondern: Ausschalten und direkt den CyanogenMod Recovery-Mode starten. Da bei einem Neustart das Custom ROM wieder auf das Samsung original ROM zurückgesetzt wird, solange das CM-Build noch nicht installiert ist.

Ist das Gerät im CyanogenMod Recovery-Modus. Wählt man Facroty reset und danach dann Apply update, um zuerst das CyanogenMod .zip und danach das OpenGApps .zip zu installieren.
Mit Reboot system now neu starten… fertig.

Ergänzende Hinweise:

  • Unter Android in den Geräteinformationen nachlesen, welches Modell man hat
  • Mit vollem Akku und Netzstrom beginnen
  • Root-Rechte braucht es auf dem Gerät nicht, dafür besteht kein Grund (rooting)
  • Für adb muss unter Android, in den Entwickleroptionen der USB-Debugging-Modus aktiviert sein. Die .zip-Dateien können aber auch manuell via Dateimanager, ohne adb auf das Gerät kopiert werden

Freitag, Oktober 30, 2015

Autorestart: Eine systemd user-unit anlegen/erstellen/erzeugen

Programme wie Mail-Client und IM startet man i.d.R. über den Autostart der Desktopumgebung, damit diese bei der Anmeldung automatisch im Hintergrund starten und über neue Nachrichten informieren.

Ein Manko der Desktop Application Autostart Specification ist, dass diese Anwendungen nicht neu-starten, wenn sie versehentlich beendet wurden.

Eine Lösung bieten hier Systemd User-Units als ein Autorestart.

Eine Systemd User-Unit für den Mail-Client Thunderbird anlegen/erstellen/erzeugen

Alle Systemd User-Units werden unter $XDG_CONFIG_HOME/systemd/user/ bzw. $HOME/.config/systemd/user/ gespeichert. Abhängig davon, ob die Umgebungsvariable $XDG_CONFIG_HOME gesetzt ist.

Hier ein Beispiel für den Mail-Client Thunderbird:

mkdir -p ~/.config/systemd/user/
cat <<! >~/.config/systemd/user/thunderbird.service 
[Unit]
Description=Thunderbird

[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/thunderbird
Restart=always

[Install]
WantedBy=basic.target
!

Damit eine Unit nach der Anmeldung ausgeführt wird, muss diese mittels systemctl(1) aktiviert werden:

systemctl –user enable thunderbird.service

Die Systemd User-Unit ersetzt dann den Autostart und systemd(1) überwacht den Prozess (PID) und startet diesen ggf. neu.

Wer die Leserechte des Benutzerverzeichnis eingeschränkt, oder eine restriktive Rechtemaske (umask) von bspw. 0077 gesetzt hat, kann den Start der Unit auch in den Autostart, oder in die Datei ~/.gnomerc eintragen:

systemctl –user start thunderbird.service

Dies startet die Unit manuell.

Freitag, Mai 29, 2015

Linux utilities: Erneutes Lesen der Partitionstabelle

Seit Version 2.26 bietet sfdisk(8) die Option -R oder --re-read nicht mehr an, um den Kernel zum erneuten Lesen der Partitionstabelle zu zwingen.
Benutzen Sie blockdev –rereadpt <device> stattdessen.

Das Dienstprogramm blockdev(8) ermöglicht Ihnen den Aufruf von Blockgerät-Ioctls auf der Befehlszeile.