Alternativen zu movie2k.to
Findet ihr in meinem Artikel Alternativen zu kino.to.
update: movie2k.to scheint als movie4k.to wieder da zu sein. Unter "F**k the police" findest man folgenden Text:
"[...]Ihr könnt die Willen der Menschen nicht unterdrücken! Geht eine Seite offline, kommen in den nächsten Tagen fünf neue die deren Platz einnehmen wollen. Ist es nicht an der Zeit etwas an dem aktuellen Geschäftsmodell zu ändern und den Einfluss der neuen Medien zu akzeptieren?[...]"
update2: auch hier habe ich das Problem mit Google Adsense Richtlinien, deswegen sind die Kommentare ausgeschaltet. Schickt mir gerne eine E-Mail oder kontaktiert mich auf anderem Wege
Windows PCs mit Linux Server herunterfahren
Das Hochfahren von PCs ist von jeder Platform aus eigentlich ziemlich einfach. Wenn das BIOS WakeOnLAN unterstützt bzw. überhaupt vorhanden ist(der Raspberry Pi hat z.B. keins), dann kann mit einem beliebigen Programm von jedem Betriebssystem so ein Aufweck-Paket geschickt werden.
Herunterfahren gestaltet sich da schon schwieriger, weil es dort natürlich keinen Standard gibt. Gerade um eine große Menge an Computern runterzufahren ist natürlich so eine Batch Lösung ganz angenehm. Das Problem ist nur, dass wir keine Windows-Server haben. Die meisten laufen unter irgendeiner Art von SuSE. Für einen remote shutdown gibt es das Programm PowerOff von Jorgen Bosman. Das Programm wird nicht mehr weiterentwickelt, funktioniert aber für WindowsXP noch wunderbar. Es gibt sogar eine Online Dokumentation. Wie allgemein bekannt sein dürfte, können Windows Programme unter Linux mit wine ausgeführt werden. Dazu wird allerdings meistens eine GUI gestartet, was sich natürlich in einem Bash-Script, welches z.B. über einen cronjob gestartet wird ziemlich unpraktisch ist. Obwohl das Program auch über Kommandozeile steuerbar ist, öffnet sich trotzdem irgendwie eine GUI. Um das zu vermeiden kann man dann das Programm wineconsole nehmen. Damit es zu keiner Fehlermeldung kommt habe ich in dem Skript, welches den PC-Pool herunterfährt nicht den Standard Display genommen sondern vorher durch ein export DISPLAY:=1 auf einen virtuellen Display umgeleitet. Für den virtuellen Display sorgt das Programm Xvfb. Damit dieses einen Display mit der Nummer 1 startet, gibt man einfach den Befehl Xvfb :1 & ein. Der muss natürlich nur einmal gestartet werden, nicht in jedem Skript neu.
Der Befehl für das Herunterfahren eines PCs mit der IP 192.168.1.10 ist:
wineconsole /usr/local/bin/pwo.exe -quiet poweroff -warn -warntime 1 -msg "Shutdown initiated" -force -nocancel -password yourPWhere -remote 192.168.1.10
Wie man sieht habe ich die PowerOff Binary in /usr/local/bin verschoben, zeige keine ErrorMessage an, warne nur für 1 Sekunde mit dem Hinweis "Shutdown initiated", das Abbrechen ist deaktiviert(ist in 1 Sekunde auch quasi unmöglich). Das Herunterfahren ist als Service auf dem entsprechenden Windows-Kisten installiert und braucht ein Passwort("yourPWhere"). Dahinter dann noch die enstprechende IP-Adresse.
Um die eventuell noch an den Rechnern sitzenden User zu warnen, verwende ich folgenden Befehl:
wineconsole /usr/local/bin/pwo.exe -quiet no_action -warn -warntime 300 -msg " Dieser Computer wird in 5 Minuten abgeschaltet. Bitte alle Anwendungen schliessen und abmelden! " -force -nocancel -password yourPWhere -remote 192.168.1.10
Wie man hier sieht, führe ich aufgrund des no_action Schalters nichts direkt aus, sondern warne nur.
Nach ein paar Durchläufen führt das bei mir anscheinend zu irgendeiner Art von Speicherüberlauf, deswegen kill ich den Xvfb-Prozess über einen cronjob einmal am Tag und starte ihn neu.
Nützlich könnte auch dieser Artikel von mir sein, in dem ich beschriebe wie man mit einem einfachen Perl-Skript Cronjobs ein und anschaltet. Am Wochenende sind z.B. bei uns die Computer sowieso aus. Außerdem habe ich schonmal darüber gebloggt, wie man feststellt ob Computer einer bestimmten IP-Range online sind, indem man alle mal anpingt.
Automatisches Ausloggen im Kiosk Modus bei Inaktivitaet mithilfe von xscreensaver
Das Problem bei Rechnern im Kiosk Modus ist, dass die Benutzer sich manchmal nicht ausloggen und so prinzipiell jeder, der sich als nächstes an den Rechner setzt einfach diverse Accounts übernehmen kann, weil z.B. die Cookies noch vorhanden sind. Dieser Artikel basiert auf dem vorherigen Raspberry Pi als Kiosk mit resourcenschonendem Browser und VESA Mount. Da dieser Brower sich neu startet, wenn der Prozess mit 5 Sekunden Pause nicht läuft, kann man ihn einfach killen.
Zur Messen der Inaktivität haben sich die Leute vom xscreensaver-Projekt schon genug Gedanken gemacht, also möchte ich das hier nutzen, statt etwas eigenes zu schrieben oder timeoutd zu nutzen. Die Timeout Zeit setzt man in ~/.xscreensaver.
In den man-pages von xscreensaver-command findet man folgendes Perl-Skript. Ich habe es ein bisschen meinen Anforderungen angepasst. Perl muss natürlich vorher installiert werden.
sudo apt-get install perl
Es piped in der Variable IN den Befehl xscreensaver-command -watch, welcher den xscreensaver beobachtet. Sollte dort nun also die Meldung BLANK(Bildschirmschoner geht an) oder LOCK(Bildschirmschoner lockt) auftauchen(passiert nach der eben definierten Zeit), dann deaktiviert er ihn sofort wieder, killt den Browser und setzt ein flag. Das wiederrum löst UNBLANK aus(Bildschirmschoner geht aus) und das flag wird zurückgesetzt, da er sonst im nächsten Schleifendurchlauf sofort wieder den Browser killen würde. Durch das Skript aus dem eben genannten Artikel prüft der Rechner sowieso, ob der Browser läuft und wenn nicht, startet den Prozess. Damit wird nach spätestens 5 Sekunden der Browser neu gestartet und man muss ihn hier nicht starten. Die Datei habe ich xscreensaver-command.pl genannt, nach /usr/local/bin geschoben und in den Autostart in .xsession eingetragen.
Code (Download)
my $blanked = 0;
open (IN, "xscreensaver-command -watch |");
while(<IN>) {
if (m/^(BLANK|LOCK)/) {
if (!$blanked) {
# Schliesse Browser
# Starte Browser neu
print "Deaktiviere xscreensaver...\n";
system "xscreensaver-command -deactivate";
print "Beende Browser...\n";
system "killall browser-repat";
print "In 5 Sekunden wird der Browser neu gestartet";
$blanked = 1;
}
} elsif (m/^UNBLANK/) {
$blanked = 0;
}
}
Raspberry Pi als Kiosk mit resourcenschonendem Browser und VESA Mount
Auf der Arbeit sollte ich einen Raspberry Pi zu einem reinen Service-PC im Kiosk-Modus umwandeln. Dafür habe ich ein VESA kompatibles Gehäuse auf ebay gekauft, das man hinten an den Monitor schrauben kann. Über einen DVI-HDMI Adapter wird das Bild ausgeliefert, dazu noch eine Maus und Tastatur über USB und ein Netzwerkkabel. Anleitungen wie man Raspbian installiert gibt es schon genügend, also überspringe ich mal den ganzen Installations- und Konfigurationspart. An Browsern habe ich Chromium aufgrund des eingebauten Kiosk Modus ausprobiert und dann noch Midori, weil der vorinstalliert ist. Chromium hat schlicht zu viele Resourcen gefressen und Midori hat nicht das geboten, was ich wollte. Ich wollte einen Browser, der absolut idiotensicher nur diese eine Seite anzeigt, kein Adressfeld, kein Quelltext ansehen o.ä.Ich stieß dann irgendwann auf den kiosk-browser von Peter Schultz auf github. Im Grunde sind es nur
ein paar Zeilen C-Code, die ein Fenster mit GTK+ öffnet und darin ein WebKit-Widget lädt. Das ist übrigens dasselbe Framwork, das auch Chromium benutzt. Zusätzlich hat er noch 2 Signale auf Tasten auf dem Keyboard gemappt, eins für Aktualisieren(F5) und eins um den Vollbildmodus zu verlassenn(F11). Das Aktualisieren habe ich drin behalten, aber da ich keine Notwendigkeit sehe, den Vollbildmodus zu verlassen, diese Zeile Code einfach auskommentiert.
Dann habe ich natürlich noch die Standardwebsite geändert. Mit nodm(s.u.) machte er trotzdem Proleme also habe ich noch folgende Zeilen hinzugefügt um das Bild immer mittig zu halten und in der Größe meines Bildschirms darzustellen:
gtk_window_set_default_size(GTK_WINDOW(window), 1280, 1024); gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER_ALWAYS);
Den vollen Quelltext findet ihr hier: browser-repat.c
Auch die Makedatei hat bei mir nicht funktioniert, ich habe ein Haufen Fehler nach diesem Schema bekommen:
undefined reference to `gtk_XXX
Stattdessen funktionierte bei mir dieser Befehl:
gcc -o browser browser.c $(pkg-config --libs --cflags gtk+-2.0 webkit-1.0)
Schlussendlich habe ich noch xorg und nodm installiert um lightdm bzw. lxde (wegen den ganzen Tastenkombinationen) los zu werden. Dabei habe ich diese Anleitung von nexxylove befolgt.
Die browser-Datei wandert in /usr/local/bin und in ~/.xsession steht nur:
#!/bin/bash /usr/local/bin/browser
Dann wird noch in /etc/X11/default-display-manager statt /usr/sbin/lightdm einfach /usr/sbin/nodm eingetragen und in /etc/default/nodm der Wert NODM_ENABLED auf true gesetzt.
Bei Perl unter Windows 7 fehlt Tk und lässt sich nicht über cpan installieren
Die neue Perl Version enthält aus irgendeinem Grund Tk nicht (mehr?) standardmässig. Perl schlägt dann vor Tk mit dem folgendem Befehl nachzuinstallieren:
cpan -i Tk
Das funktioniert aber nicht, weil u.a. keine Compiler und Linuxtools wie make installiert sind. Also werden diese automatisch heruntergeladen. Allerdings schlägt die Installation trotzdem mit dem folgenden Ausgaben fehl:
rc -fo tk.res -r -i . -i mTk\win\rc mTk\win\rc\tk.rc 'rc' is not recognized as an internal or external command, operable prgram or batch file. dmake.exe: Error code 129, while making 'tk.res' dmake.exe: Error code 255, while making 'pTk\libpTk.a'.
Was jedoch wunderbar und schnell funktioniert hat ist der folgende Befehl:
ppm install Tk
Cisco VPN mit Windows 8: Error 442: Failed to enable virtual adapter
Der Cisco-VPN Client in der Version 5.0.0.05.0440 für Windows 8 verursacht bei mir folgendes Problem. Jedes mal wenn ich Username und Passwort eingeben sagt er (auf der Kommandozeile die vpnclient.exe)
Intializing the VPN connection Contacting the gateway xxx.xxx.xxx.xxx Authenticating user. Negotiating security policies Securing communiation channel Secure VPN Connection terminated locally by the Client Reason: Failed to enable Vitual Adapter
bzw. GUI gibt zurück:
Secure VPN Conection terminated locally by the Client Reason 442: Failed to enable Virtual Adapter Connection terminated on XYZ
Wobei XYZ für Datum und Länge steht.
Auch wenn diverse Rechenzentren von Universitäten was anderes erzählen... Der Fehler liegt dabei in der Registry und zwar genauer beim Schlüssel DisplayName unter HKEY_LOCAL_MASCHINE\SYSTEM\CurrentControlSet\Serices\CVirtA. Der enthält die Zeichenkette @oem4.inf,%CVirtA_Desc%;, welche man einfach rauslöschen kann. So steht da einfach nur noch Cisco Systems VPN Adapter for 64-bit Windows. Bei der 32-bit Version steht einfach nichts dahinter(also keine 32-bit!)
Um das zu automatisieren kann man .reg-Dateien schreiben in dem man mit regedit den Wert ändert, und dann mit Datei/Exportieren eine .reg-Datei erstellt. Die übernimmt allerdings alle Werte aus dem Unterordner. Mit seinem Lieblingseditor kann man nun einfach die restlichen Einträge aus der Datei löschen, so dass dort nur noch steht:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA] "DisplayName"="Cisco Systems VPN Adapter for 64-bit Windows"
oder im Fall von 32-Bit Systemen:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA] "DisplayName"="Cisco Systems VPN Adapter"
Hier findet ihr die beiden .reg-Dateien gezippt als Download:
Credits gehen an ITServiceDRoeding für sein YouTube Video.
OpenVPN TLS Handshake failed auf Port 443
Gerade habe ich den folgenden Fehler bekommen:
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) TLS Error: TLS handshake failed
Passiert ist das, weil ich die Portsperre umgehen wollte und von Port 1194 auf Port 443(also "HTTPS") umgestellt habe. Dabei habe ich aber vergessen, dass durch die Firewall nur TCP-Verkehr durchgelassen wird(HTTPS geht über TCP). Da OpenVPN aber standardmässig UDP benutzt, bekommt man trotz offenem Port diese Fehlermeldung.
Einfach in der client.conf und der server.conf die Zeile proto tcp einkommentieren und proto udp auskommentieren. Wenn man zusätzlich noch UDP möchte, muss man 2 OpenVPN Instanzen laufen lassen. Das geht natürlich auf die Performance, hilft aber gegen blöde Firewalls.
GPG Fehler beim Spotify Repository unter Ubuntu
Eine Weile lang bekam ich bei einem apt-get update den folgenden Fehler:
W: GPG-Fehler: http://repository.spotify.com stable InRelease: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 082CCEDF94558F59
Abhilfe schafft dieser Befehl:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 082CCEDF94558F59




