von Toni Mägel am 13. September 2016, 16:00

An dieser Stelle möchte kurz den Umgang mit systemd-nspawn Containern anhand eines Beispiels erläutern. Als Anwendung soll dazu lighttpd dienen. Zunächst muss die Grundlage für den Container geschaffen werden.

mkdir ./lighttpd
sudo debootstrap --variant=minbase --arch=amd64 xenial lighttpd/ http://de.archive.ubuntu.com/ubuntu

Anschließend schalten wir uns auf den Container auf und setzen mit passwd zunächst das root Passwort.

sudo systemd-nspawn -D lighttpd

Optional können an dieser Stelle einige Pakete, für die Arbeiten innerhalb des Containers, installiert werden.

apt-get install vim net-tools iputils-ping

Bevor der Webserver lighttpd installiert werden kann, muss zunächst noch folgender Eintrag für das Repository innerhalb der /etc/apt/sources.list nachgetragen werden.

deb http://de.archive.ubuntu.com/ubuntu xenial universe

Anschließend kann lighttpd installiert und der Container wieder verlassen werden.

apt-get update && apt-get install lighttpd

Nun folgt die Netzwerkkonfiguration. Der Container soll aus Gründen der Isolation sein privates Netzwerk erhalten. Dafür binden wir mittels systemd-networkd den Container über ein virtuelles Interface an das Hostsystem an. Dazu wird auf dem Hostsystem ein Bridge-Interface konfiguriert. Virtuelle Interfaces werden von systemd-networkd durch *.netdev Dateien repräsentiert und können unter /etc/systemd/network/ angelegt werden. Die Konfiguration von Devices erfolgt anschließend über *.network Dateien, die ebenfalls dort abgelegt werden. Eine Beispielkonfiguration könnte wie folgt aussehen.

/etc/systemd/network/br0.netdev

[NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/br0.network

[Match]
Name=br0

[Network]
Address=192.168.1.100/24
IPMasquerade=yes
IPForward=yes

Damit die Konfiguration seine Wirkung zeigt, muss auf dem Hostsystem systemd-networkd gestartet bzw. neu gestartet werden.

# Falls noch nicht gestartet
systemctl enable systemd-networkd.service
systemctl start systemd-networkd.service

# Falls bereits gestartet
systemctl restart systemd-networkd.service

Anschließend können wir den Container starten. Als Parameter wird das erzeugte Bridge-Interface übergeben. Auch ein Portmapping vom Hostsystem zu Container ist möglich.

sudo systemd-nspawn --network-bridge=br0 -b -D lighttpd/ -p tcp:8080:80

Innerhalb des Containers ist bereits ein virtuelles Interface host0 vorhanden. Dies muss nun noch entsprechend konfiguriert werden.

/etc/systemd/network/host0.network

[Match]
Name=host0

[Network]
DNS=192.168.1.1
Gateway=192.168.1.1
Address=192.168.1.101/24

Ggf. können andere Konfigurationen unter /usr/lib/systemd/network/ oder /lib/systemd/network/ entfernen werden. Anschließend muss auch hier noch der systemd-networkd Service gestartet werden. Zum Schluss noch lighttpd starten und der Webserver ist vom Hostsystem erreichbar.

systemctl enable lighttpd.service
systemctl start lighttpd.service

von Toni Mägel am 16. März 2016, 14:19

In einem alten PHP-Programm von mir verwende ich noch die zugunsten der mysqli-Extension in PHP 7 ausgesonderten mysql*-Funktionen. Die Software kommt bei mir nur lokal zum Einsatz. Daher bestand für mich auch kein Grund den alten Code auf PHP 7 zu migrieren. Wie man Programme, die noch die alten mysql-Funktionen benutzen, trotzdem zum Laufen bekommt, wird hier (ckon.wordpress.com) beschrieben. Ich bin exakt nach der Anleitung vorgegangen. Allerdings musste ich den Pfad noch ein wenig anpassen. (mehr …)


von Toni Mägel am 14. Juni 2015, 10:42

Seit kurzem nutze ich einen Tiling Window Manager (Bspwm) und bin auf ein merkwürdiges Problem gestoßen. Wenn Matlab gestartet wird, werden die Oberflächenelemente nicht angezeigt. Stattdessen ist lediglich ein graues Fenster zu sehen. Nach ein wenig recherchieren bin ich im ArchWiki auf die Lösung des Problems gestoßen. Nach der Installation von wmname kann der folgende Befehl ausgeführt werden. (mehr …)


von Toni Mägel am 03. März 2015, 17:27

Eben wollte ich ein wenig mit ADB (Android Debug Bridge) und meinem Nexus 4 herumprobieren, als ich bemerkte, dass ich in dem Verzeichnis data keinen Zugriffsberechtigung besitze. Allerdings musste ich nicht lange suchen bis ich die Antwort darauf gefunden hatte. Der „Root-Zugriff“ in den „Entwickleroption“ war bei mir noch auf „Nur Apps“ eingestellt. Um den vollen Zugriff zu erhalten einfach auf „Apps & ADB“ wechseln. (mehr …)


von Toni Mägel am 28. Februar 2015, 14:02

Eben wollte ich mein Nexus 4 mit der aktuellsten Nightly von Cyanogenmod auf den neusten Stand bringen. Leider schlug die Aktualisierung über den Update-Manager fehl. Kein Wunder, da ich vor einigen Tagen mein Nexus 4 verschlüsselt habe. Durch die Verschlüsselung kann das Gerät nicht mehr auf die heruntergeladen Images in /sdcard/cmupdater/ zugreifen. Daher muss auf eine andere Möglichkeit, das Gerät zu aktualisieren, zurückgegriffen werden. (mehr …)


von Toni Mägel am 18. Januar 2015, 11:45

Zur Datensicherung eines Smartphones oder Tablets habe ich die App SSHDroid verwendet. Diese startet bei bei Bedarf den SSH-Server vollautomatisch oder in Abhängigkeit des WLAN-Netzes. Ab da ist es ohne weiteres möglich sich über SSH auf das Gerät einzuloggen und zum Beispiel wie in meinem Fall über ein Skript alle wichtigen Daten auf den Rechner zu synchronisieren. (mehr …)


von Toni Mägel am 06. Januar 2015, 17:37

Lange Zeit habe ich meine Fotos manuell nach dem jeweiligen Datum umbenannt. Dies war oft zeitaufwändig. Außerdem mussten die Fotos möglichst zeitnah umbenannt und einsortiert werden, da sich sonst das Aufnahmedatum der Fotos nicht mehr so frisch im Gedächtnis befindet. In diesem Fall muss evtl. in die Metadaten nachgeschaut werden. Wieso soll ich das machen??? :) Hab mir einfach mal ein kleines Python-Skript geschrieben, das mir die Arbeit abnimmt. (mehr …)


von Toni Mägel am 03. Oktober 2014, 09:33

Nun habe ich auch einmal die Übertaktung auf meinem Raspberry Pi aktiviert. Dazu müsst ihr nur folgende Datei mit einem Editor eurer Wahl öffnen.

/boot/config.txt

Anschließend entfernt ihr einfach die Kommentarzeichen bei der von euch gewünschten Taktfrequenz. (mehr …)


von Toni Mägel am 10. September 2014, 10:30

Neulich wollte ich die regelmäßige Synchronisierung mittels rsync durch ein Skript zwischen meinem Raspberry Pi und Ultrabook einrichten. Da die Synchronisierung über SSH erfolgt und das Skript mittels Cronjob regelmäßig ausgeführt werden soll, muss die Authentifizierung automatisch erfolgen. Schließlich soll nicht bei jedem Start des Skripts nach dem Passwort gefragt werden. Um dies zu erreichen ist für die Authentifizierung ein Schlüsselpaar erforderlich. Dazu führt ihr folgenden Befehl auf dem Gerät (Raspberry Pi) aus, von welchem die automatische Authentifizierung erfolgen soll. (mehr …)


von Toni Mägel am 18. Januar 2014, 14:03

Möchte man Bluetooth nicht nach jedem Neustart des Systems manuell ausschalten, so kann mit folgendem Vorgehen Bluetooth standardmäßig deaktiviert werden und später ganz einfach über die Einstellungen wieder aktiviert werden.

sudo gedit /etc/rc.local

über „exit 0“ folgende Zeile einfügen: (mehr …)


von Toni Mägel am 12. November 2013, 12:55

Seit einigen Tagen kann ich nun endlich das Dell XPS 13 Developer Edition „Sputnik 2“ mein Eigen nennen. Dieses wird mit Ubuntu 12.04 LTS ausgeliefert. Die Ubuntu Kompatibilität war für mich einer der ausschlaggebenden Gründe wieso ich mich für dieses Ultrabook entschieden habe. Denn mein Vorgängergerät(Netbook), das recht bescheidene Asus Eee PC 1215 konnte in Sachen Linux Kompatibilität wenig punkten. (mehr …)


von Toni Mägel am 30. Oktober 2012, 14:35

Ruhezustand, auch Hibernation oder Suspend-to-Disk genannt, ermöglicht es den Computer alle laufenden PC Dienste abzuschalten und den Inhalt des Arbeitsspeichers auf die Festplatte zwischen zu speichern. Dieser Vorgang ist oft schneller und somit Energiesparender als das herunter- und wieder hochfahren das Rechners. Ein weiterer Vorteil besteht daran, dass man direkt an der Stelle weiterarbeiten kann, an der man zuletzt aufgehört hat. Leider ist diese Funktion unter Ubuntu bzw. Linux Mint in der Energieverwaltung grau hinterlegt und somit nicht auswählbar. Grund dafür ist das die Funktion auf neueren Geräten oft nicht fehlerfrei funktionierte. (mehr …)


von Toni Mägel am 16. Oktober 2012, 16:09

mkvdts2ac3 ist ein nützliches Skript mit welches man leicht, schnell und ohne voll gepackten Programmoberflächen DTS-Tonspuren aus einer MKV-Datei in AC3-Tonspuren umwandeln kann.

Um das Skript ausführen zu können, müsst ihr folgende Bibliotheken installieren.

  • mkvtoolnix
  • ffmpeg
  • rsync

(mehr …)


von Toni Mägel am 26. Juli 2012, 11:52

Wer kennt es nicht? Mehrere Wochen strenge und strukturierte Ernährung, mehr oder weniger guter Selbstdisziplin und anfangs auch gute Erfolge. Das Ergebnis ist meistens das gleiche. Nach einiger Zeit läuft man quasi auf der Stelle, kommt nicht vorwärts. Das kaum noch sinkende Körpergewicht versucht man mit noch einem größeren Kaloriendefizit zu kompensieren. Vergeblich! Das Körpergewicht bleibt konstant. Der Körper arbeiten auf Sparflamme – der Stoffwechsel schläft ein, daraus folgt der Abbau von Muskeln und die Einlagerung von Fett. (mehr …)