« Posts tagged Linux

Neuer Dockstar Kernel für Debian (3.0.31)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.31. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Falls ihr von 2.6.32.x kommt, lesen bitte die Anmerkungen im 3.0.23 Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (3.0.30)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.30. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Falls ihr von 2.6.32.x kommt, lesen bitte die Anmerkungen im 3.0.23 Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (3.0.29)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.29. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Falls ihr von 2.6.32.x kommt, lesen bitte die Anmerkungen im 3.0.23 Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (3.0.28)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.28. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Falls ihr von 2.6.32.x kommt, lesen bitte die Anmerkungen im 3.0.23 Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (3.0.26)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.26. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Kleine Änderung beim Update von 2.6.32.57 auf 3.0.23: Die organgene LED heißt jetzt “dockstar:orange:misc” und nicht mehr “dockstar:orange:health”. Also bitte eure Skripte anpassen, falls ihr die orangene LED irgendwo nutzt. (/etc/rc.local zum Beispiel). Die Grüne LED heißt genau gleich wie vorher! Falls ihr bereits auf >3.0.23 seit, ist das für euch nicht mehr relevant. Alle anderen lesen bitte die Anmerkungen im letzten Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (3.0.25)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.25. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Kleine Änderung beim Update von 2.6.32.57 auf 3.0.23: Die organgene LED heißt jetzt “dockstar:orange:misc” und nicht mehr “dockstar:orange:health”. Also bitte eure Skripte anpassen, falls ihr die orangene LED irgendwo nutzt. (/etc/rc.local zum Beispiel). Die Grüne LED heißt genau gleich wie vorher! Falls ihr bereits auf >3.0.23 seit, ist das für euch nicht mehr relevant. Alle anderen lesen bitte die Anmerkungen im letzten Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Schneller Reconnect der FRITZ!Box in Python

Python Logo

Wer hätte nicht gerne eine Möglichkeit mal eben schnell die FRITZ!Box per Shellskript zu einem Reconnect zu überreden? Ganz am Anfang (Jahr 2000 oder so?) gab es ja nur so eine “dubiose” Binary für Windows, welche per UPNP ulra schnell die FRITZ!Box reconnecten konnte.(2 Sekunden ca.)

Heute machen wir das ein bisschen schöner(nicht nur für Linux!) in Python (Version 2.x):

#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2011  Geekparadise.de
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Contact: http://geekparadise.de/contact/
# Usage: ./reconnect.py
# Version: 1.0
# Only for Python 2.x!

import re
import pycurl
import StringIO
import sys

def post_data(data):
        encoded_data = ["Content-Type: text/xml", \
        "charset: utf-8", "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#"+data]
        encoded_data2=("""<?xml version="1.0" encoding="utf-8"?>
        <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body>
        <u:"""+data+"""s xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
        </s:Body>
        </s:Envelope>""")
        try:
                b = StringIO.StringIO()
                curl = pycurl.Curl()
                curl.setopt(pycurl.POSTFIELDS, encoded_data2)
                curl.setopt(pycurl.HTTPHEADER,encoded_data)
                curl.setopt(pycurl.TIMEOUT,10)
                curl.setopt(pycurl.CONNECTTIMEOUT,10)
                curl.setopt(pycurl.URL, "http://fritz.box:49000/upnp/control/WANIPConn1")
                curl.setopt(pycurl.WRITEFUNCTION, b.write)
                curl.perform()
                return b.getvalue()
        except:
                print "Error: connection problems."
                exit(-1)

# Query actual IP and show it
ip = re.split(r"<NewExternalIPAddress>",post_data("GetExternalIPAddress"))
if len(ip) > 1:
        ip = re.split(r"</NewExternalIPAddress>",ip[1])
else:
        print "Error: IP query failed."
        exit(-1)
print "Actual IP: "+ip[0]

# start reconnect
sys.stdout.write("Reconnect...")
sys.stdout.flush()
post_data("ForceTermination")
print "done."

# Query actual IP
ip2 = re.split(r"<NewExternalIPAddress>",post_data("GetExternalIPAddress"))
if len(ip2) > 1:
        ip2 = re.split(r"</NewExternalIPAddress>",ip2[1])
else:
        print "Error: IP query failed."
        exit(-1)

# Check if IP has changed: True -> show new IP; False -> show error.
if ip[0] != ip2[0]:
        print "New IP: "+ip2[0]
        exit(0)
else:
        print "Error: IP did not change."
        exit(-1)

Für Distributionen mit Python 3 als Standard sollte man die erste Zeile in

#!/usr/bin/python2

ändern.

Das ganze in reconnect.py (oder wie ihr es nennen wollt..) packen und mit chmod +x reconnect.py ausführbar machen.

Weiterhin muss der UPNP Kram in der Fritz!Box aktiviert sein.(Bei mir ist das irgendwo bei “Netzwerkeinstellungen” und dort muss ” Statusinformationen über UPnP übertragen (empfohlen)” und “Änderungen der Sicherheitseinstellungen über UPnP gestatten” aktiviert sein.)

Übrigens: Der reconnect selbst geht extrem schnell (~1-2 Sekunden) nur die Abfrage der neuen IP braucht einige Sekunden, in der Weboberfläche ist sie viel schneller sichtbar.

Getestet hab ich das auf einer FRITZ!Box SL Wlan, ob das bei neueren Modellen auch noch geht, weiß ich nicht.

Die Idee stammt übrigens nicht von mir, ursprl. kommt sie glaube ich aus einem Reconnect Binary für Windows,
blog.Jbbr.net hat dann eine Curlvariante für Linux dazu geschrieben. Details zur Fritz!Box UPNP Geschichte hab ich dann bei OpenShots gefunden. Danke dafür!

Falls ihr sagt “Wow, WTF ist eine FRITZ!Box?”, FRITZ!Box ist ein DSL-Router der Firma AVM. Falls ihr auch einen schnellen Reconnect wollt: Kauft euch eine FRITZ!Box, AVM freut sich ;)

Update(18.03.2012):
Aufgrund einer Nachfrage hier noch die “verbesserte” Version, ich weiß gar nicht mehr genau was ich geändert habe, jedenfalls versucht diese Version 3 Mal die IP zu wechseln. Zusätzlich habe ich ein paar Kleinigkeiten geändert, weil es bei der älteren manchmal etwas Probleme gab .. wie auch immer, jedenfalls klappt diese Version ganz gut, ich nutze sie schon länger…
Noch eine Änderung gab es: Es wird nun checkip.dyndns.org genutzt um die eigene IP abzufragen, weil das bisherige da eher unzuverlässig war.

#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2012  Geekparadise.de
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Contact: http://geekparadise.de/contact/
# Usage: ./reconnect.py
# Version: 1.1
# Only for Python 2.x!

import re
import pycurl
import StringIO
import sys
import time

def getIP():
        b = StringIO.StringIO()
        curl = pycurl.Curl()
        curl.setopt(pycurl.TIMEOUT,10)
        curl.setopt(pycurl.CONNECTTIMEOUT,10)
        curl.setopt(pycurl.URL, "http://checkip.dyndns.org")
        curl.setopt(pycurl.WRITEFUNCTION, b.write)
        curl.perform()
        ip = re.search(r'\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b',b.getvalue())
        if ip:
                return ip.group(0)
        else:
                return false	

def post_data(data):
        encoded_data = ["Content-Type: text/xml", \
        "charset: utf-8", "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#"+data]
        encoded_data2=("""<?xml version="1.0" encoding="utf-8"?>
        <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body>
        <u:"""+data+"""s xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
        </s:Body>
        </s:Envelope>""")
        try:
                b = StringIO.StringIO()
                curl = pycurl.Curl()
                curl.setopt(pycurl.POSTFIELDS, encoded_data2)
                curl.setopt(pycurl.HTTPHEADER,encoded_data)
                curl.setopt(pycurl.TIMEOUT,10)
                curl.setopt(pycurl.CONNECTTIMEOUT,10)
                curl.setopt(pycurl.URL, "http://fritz.box:49000/upnp/control/WANIPConn1")
                curl.setopt(pycurl.WRITEFUNCTION, b.write)
                curl.perform()
                return b.getvalue()
        except:
                print "Error: connection problems."
                exit(-1)

def reconnect():
        # Query actual IP and show it
        ip = re.split(r"<NewExternalIPAddress>",post_data("GetExternalIPAddress"))
        if len(ip) > 1:
                ip = re.split(r"</NewExternalIPAddress>",ip[1])
        else:
                print "Error: IP query failed."
                exit(-1)
        print "Actual IP: "+ip[0]
        # Start reconnect
        sys.stdout.write("Reconnect...")
        sys.stdout.flush()
        post_data("ForceTermination")
        print "done."
        # Query actual IP
        ip2 = getIP()
        if ip2 == False:
                print "Error: IP query failed."
                exit(-1)
        if ip[0] != ip2:
                print "New IP: "+ip2
                return True
        else:
                return False

counter = 0
bool = reconnect()
while not bool and counter < 3:
        print "Error: IP did not change."
        time.sleep(2)
        print "Trying again...."
        bool = reconnect()
        counter = counter + 1 

if counter >= 3:
        print "Error: 3 failed attempts...abborting."
        exit(-1)
exit(0)

Neuer Dockstar Kernel für Debian (3.0.24)

Heute wurde ein neuer longterm Kernel freigegeben, es handelt sich um 3.0.24. Ihr findet ihn wie immer unter “Dockstar Kernel“. Dort gibt es die Installationsanleitung, Downloadlinks und md5sums usw.

Kleine Änderung beim Update von 2.6.32.57 auf 3.0.23: Die organgene LED heißt jetzt “dockstar:orange:misc” und nicht mehr “dockstar:orange:health”. Also bitte eure Skripte anpassen, falls ihr die orangene LED irgendwo nutzt. (/etc/rc.local zum Beispiel). Die Grüne LED heißt genau gleich wie vorher! Falls ihr bereits auf 3.0.23 seit, ist das für euch nicht mehr relevant. Alle anderen lesen bitte die Anmerkungen im letzten Kernel Post oder auf der Dockstar Kernel Seite.

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (3.0.23)

Wie angekündigt, hier der Wechsel von 2.6.32.x auf 3.0.x. Nachdem der Support von 2.6.32.x nur noch “extended longterm support” ist, d.h. nur sehr unregelmäßige Updates, war der Schritt zu 3.0.x absolut sinnvoll. Greg Kroah-Hartman empfiehlt das sogar, nachdem er mit 2.6.32.58 den alten longterm Kernel abgegeben hat.

Auch hier auf dem Blog gibts dazu eine kleine Änderung: Der aktuelle longterm Dockstar Kernel ist nun immer unter “Dockstar Kernel” zu finden, d.h. es gibt nun eine zentrale Stelle dafür auf geekparadise.de. Weiterhin heißt der Kernel nun nicht mehr “eigenbau” sondern “geekparadise.de”, aber das ist eigentlich eine unwichtige Änderung.

Da ihr dort auch die Installationsanleitung, Downloadlinks und md5sums findet, postet ich sie nicht mehr in den einzelnen Posts, es wird aber weiterhin kleine Statusposts geben, sobald neue Kernelversionen erscheinen. Erspart mir viel arbeit, dann muss ich nicht immer 5 Stellen editieren bei einem Update ;)

Daher: Klick zur neusten Version meines Dockstar Kernels.

Kleine Änderung beim Update von 2.6.32.57 auf 3.0.23: Die organgene LED heißt jetzt “dockstar:orange:misc” und nicht mehr “dockstar:orange:health”. Also bitte eure Skripte anpassen, falls ihr die orangene LED irgendwo nutzt. (/etc/rc.local zum Beispiel). Die Grüne LED heißt genau gleich wie vorher!

Wie immer: Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Neuer Dockstar Kernel für Debian (2.6.32.57)

Mal wieder mein aktualisierter Dockstar Standardkernel 2.6.32.57 mit der Konfiguration und dem Patch von Jeff.

Kurze Installationsanleitung:
1.) Headers und Kernel installieren:

sudo dpkg -i linux-headers-2.6.32.57-dockstar-eigenbau_1.0_armel.deb linux-image-2.6.32.57-dockstar-eigenbau_1.0_armel.deb

2.) Initiale Ramdisk und Kernelimage für Uboot erzeugen:

sudo /usr/bin/mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-2.6.32-57 -d /boot/vmlinuz-2.6.32.57-dockstar-eigenbau /boot/uImage
sudo /usr/bin/mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /boot/initrd.img-2.6.32.57-dockstar-eigenbau /boot/uInitrd

3.) Neustart

4.) Kernelmodule neu einlesen:

sudo depmod -a

5.) Neustart

6.) (Optional) Alten Kernel deinstallieren

sudo apt-get purge linux-image-2.6.32.56-dockstar-eigenbau linux-headers-2.6.32.56-dockstar-eigenbau
sudo rm -r /lib/modules/2.6.32.56-dockstar-eigenbau/

MD5:
420667123a37dc57cfc43bcca41e7227 config-2.6.32.57-dockstar-eigenbau
782ae4737e0f3443f766f736939db8b4 linux-headers-2.6.32.57-dockstar-eigenbau_1.0_armel.deb
cfadac5095befc0c15c77b42867c4f69 linux-image-2.6.32.57-dockstar-eigenbau_1.0_armel.deb

Hoffe dass der Kernel irgendwem nützt, ich nutze meine Eigenbaukernel seit Monaten ohne Probleme. Falls eure Dockstar brennt, kaputt geht, in die Luft fliegt oder sonstiges, übernehme ich keine Verantwortung dafür.

Alles weiteren Infos im alten Post zu Kernel 2.6.32.50.

Danke an Jeff für seine Konfig und seine fantastische Arbeit mit der Dockstar. Besucht sein Forum, es ist die beste Anlaufstelle für Dockstarnutzer.

Kurze Info: In ca. einem Monat läuft übrigens der Support für die 2.6.32er Reihe aus, ich denke ich werde dann zur 3.0 Reihe wechseln, die dann wohl die neue Longterm Support Reihe werden soll…

Update: Es gibt bereits einen neueren longterm Kernel! Den neusten longterm Dockstar Kernel findet ihr immer hier. Die alten Links habe ich entfernt.