« Posts under Linux

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.

Archlinux: dm-crypt && trim/discard && dropbear_initrd_encrypt don’t work together!

Today I accidentially found out that trim/discard does not work with a dm-crypt device when you use dropbear_initrd_encrypt (version 0.8-16).
You won’t notice that it is not working when you use the online discard with the discard option in /etc/fstab because there is not error thrown, but when you use fstrim you get this error: FITRIM ioctl failed: Operation not supported.

I tried some things and tracked this down to the encryptssh hook from dropbear_initrd_encrypt which seem to use some older version of /lib/initcpio/hooks/encrypt. You also may notice that you don’t get the “Enabling TRIM/discard support.” at boot while using encryptssh instead of encrypt. Encryptssh is missing the whole Trim stuff :/

Edit: I patched the missing parts from /lib/initcpio/hooks/encrypt to /lib/initcpio/hooks/encryptssh and updated everything else to the newest encrypt hook (trim).
Here is my patch for /lib/initcpio/hooks/encryptssh (encryptssh_hook).
Here is my patch for /lib/initcpio/install/dropbear (dropbear_install).
Or if you can download the new encryptssh hook here and the new dropbear install hook here.

But: It does not work over ssh anymore. Don’t know why, it seems to hang in a loop after mounting successful.

Try on your own risk! This is still not working!

Edit #2: I got it running with trim now, not the most beautiful solution, but working…basically I added --allow-discards to every important command.
Changes to /lib/initcpio/install/dropbear (changed line is marked):

[...]
#!/bin/sh
if [ -c "/dev/mapper/control" ]; then
  if eval /sbin/cryptsetup luksOpen \`cat /.cryptdev\` \`cat /.cryptname\` --allow-discards ; then
    echo > /.done
[...]

Changes to /lib/initcpio/hooks/encryptssh (changed lines are marked):

[...]
if [ -f ${ckeyfile} ]; then
   if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} --allow-discards ${CSQUIET}; then
      dopassphrase=0
   else
[...]
[...]
#loop until we get a real password
while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} --allow-discards ${CSQUIET}; do
   if [ -f /.done ]; then
     break
   fi
[...]
[...]
exe="/sbin/cryptsetup create ${cryptname} ${cryptdev} --allow-discards"
tmp=$(echo "${crypto}" | cut -d: -f1)
[...]

For me, this seems to be some working solution until the script is updated to the latest encrypt hook. :)

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.

Archlinux/KDE/QT: Probleme mit dem Thunderbird/Firefox Mauszeiger…

Hi,

aktuell hat Thunderbird 10.0.2 ein kleines Problem unter KDE (QT): Immer wieder wechselt – trotz korrekter Konfiguration des Mauszeigers/GTK Styles – der Mauszeiger zum Standardcursortheme zurück.

Dies ist ein bekanntes Upstreamproblem .. der Patch wird wohl aber erst in Thunderbird 11 enthalten sein, daher hier eine temporäre Lösung für alle Archuser:

1) Checkout der Buildateien vom Archlinux SVN

svn checkout --depth=empty svn://svn.archlinux.org/packages
cd packages
svn update thunderbird

2) Download des Patches

cd thunderbird/trunk
wget -O patch.patch https://hg.mozilla.org/mozilla-central/raw-rev/596e3eca4196

3) Danach merkt ihr euch die md5summe von patch.patch (“md5sum patch.patch”): 1a592b1a794ecf8b9bb5b024dbb988fe
und trägt den Dateinamen und die MD5Summe in die Datei PKGBUILD ein, das sieht dann so aus (hinzugefügte Zeilen markiert):

[...]
source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.bz2
        mozconfig
        thunderbird.desktop
        thunderbird-install-dir.patch
        vendor.js
        libvpx.patch
        patch.patch)
md5sums=('624bef982d7ac610b1175737d9905150'
         'ca98c2bf1017b33e19dae22fdcef2e73'
         'af3e5b344d2edf1c7d61bb0a5a96de9a'
         'aea906acf72c43dd82ead2fabcc1c6db'
         '5a53179d14ae9631b7afe5e4d0fc0b25'
         '5b2aaff7dfe7f1f94ad965905b20e782'
         '1a592b1a794ecf8b9bb5b024dbb988fe')
[...]

4) Nun müssen wir noch den Patchbefehl dafür unterhalb von “patch -Np1 -i “$srcdir/libvpx.patch”" eintragen (hinzugefügte Zeilen markiert):

[...]
  cd "$srcdir/comm-release"
  patch -Np1 -i "$srcdir/thunderbird-install-dir.patch"
  patch -Np1 -i "$srcdir/libvpx.patch"

  cd "$srcdir/comm-release/mozilla"
  patch -Np1 -i "$srcdir/patch.patch"
  cd "$srcdir/comm-release"
[...]

5) Danach können wir das Paket bauen und installieren, dabei wird pacman automatisch einige Sachen installieren.

makepkg -si

6) Danach können wir den großteil dieser Sachen (“makedependencies”) wieder löschen, bei mir war es yasm und autoconf2.13.

sudo pacman -Rs yasm autoconf2.13

Sobald ein neues Update von den Archlinuxrepos kommt, wird unsere Version überschrieben. Sollte das dann nicht seitens Mozilla gefixt sein, muss man alle Schritte erneut ausführen.

Soweit ich das gelesen habe, ist wohl auch Firefox betroffen, kann ich hier aber gerade nicht überprüfen.

Links zum Thema:
Thread im Archlinuxforum
Link zum Patch
Link zum Ubuntu Bugreport
Mozilla Thunderbird Bugreport (709259)
Mozilla Firefox Bugreport (693517)

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.

Archlinux und co.: System hängt immer wieder beim Kopieren von Dateien auf ein USB Gerät…

Heute bin ich -mal wieder- auf ein richtig nerviges Problem in Archlinux gestoßen: Mein System hängt regelmäßig beim Kopieren von Dateien auf einen USB Stick. Es hängt sich nicht komplett auf, sondern immer “intervallmäßig” immer wieder für 15-30 Sekunden. Dabei hängt der komplette X Server, nur der Mauszeiger bewegt sich. Ebenso sind die Konsolen 1-6 (strg+alt+F1…F6) nicht betroffen. Ich nutze übrigens den aktuellsten Kernel 3.2.4.

Nun ist ja hinlänglich bekannt, dass der Linuxkernel seit längerem “leichte” Probleme hat mit USB Transfers und dem USB Subsystem in der Hinsicht, aber dass es so krass ist hätte ich nicht gedacht, wir reden hier nicht von einem schnellen USB-Stick oder sowas, sondern von vllt. 3 MB/s Transferrate.

Weiterhin gab es berichte, dass sowas auch beim Kopieren auf NTFS Laufwerke und unter einigen anderen Umständen auftritt.

Es gibt wohl 2 Lösungswege:

1) Deaktivieren von USB Legacy im Bios soll helfen. Hat aber den Nachteil, dass man keine USB Tastatur mehr nutzen kann in Grub (beispielsweise).

2) Die bessere Lösung ist folgender Eintrag in /etc/rc.local:

echo madvise > /sys/kernel/mm/transparent_hugepage/defrag

Das hat ansonsten eigentlich keine Auswirkungen auf das System, manche Leuten berichten sogar von höheren Transferraten ;)

Das Problem liegt also irgendwo in den “transparent hugepages” verborgen, jedenfalls ist das auch der Grund warum Ubuntu und co. nicht betroffen sind, die setzen nämlich standardmäßig “madvise” dafür. Gefunden habe ich diese Lösung im englischen Archlinuxforum, Danke an finidine.

Anscheinend soll das Problem übrigens mit Kernel 3.3 behoben sein, ein LWN.net Artikel erläutert das etwas.

Ich bin jedenfalls froh vorerst eine Lösung zu kennen…:)

Neuer Dockstar Kernel für Debian (2.6.32.56)

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

Kurze Installationsanleitung:
1.) Headers und Kernel installieren:

sudo dpkg -i linux-headers-2.6.32.56-dockstar-eigenbau_1.0_armel.deb linux-image-2.6.32.56-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-56 -d /boot/vmlinuz-2.6.32.56-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.56-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.55-dockstar-eigenbau linux-headers-2.6.32.55-dockstar-eigenbau
sudo rm -r /lib/modules/2.6.32.55-dockstar-eigenbau/

MD5:
ecff5a6ed707742e1cacf4380a0ff671 config-2.6.32.56-dockstar-eigenbau
ca13626f7d91cd57c8ba2d598360a3b2 linux-headers-2.6.32.56-dockstar-eigenbau_1.0_armel.deb
d423493001bb54995e2a64af1ad39e33 linux-image-2.6.32.56-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.

Neuer Dockstar Kernel für Debian (2.6.32.55)

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

Kurze Installationsanleitung:
1.) Headers und Kernel installieren:

sudo dpkg -i linux-headers-2.6.32.55-dockstar-eigenbau_1.0_armel.deb linux-image-2.6.32.55-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-55 -d /boot/vmlinuz-2.6.32.55-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.55-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.54-dockstar-eigenbau linux-headers-2.6.32.54-dockstar-eigenbau
sudo rm -r /lib/modules/2.6.32.54-dockstar-eigenbau/

MD5:
3ffddc6f63008d7d1814844733ef5f88 config-2.6.32.55-dockstar-eigenbau
3fed202d560035aaee648ef2e0ae9187 linux-headers-2.6.32.55-dockstar-eigenbau_1.0_armel.deb
65eca9b52298f365107a0ee61a7d6246 linux-image-2.6.32.55-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.

USB Wakeup bei Kernel 3.2 aktivieren

Seit dem Update auf Kernel 3.2.1 muss ich, damit der USB Wakeup funktioniert, zusätzlich noch Wakeup am USB Root HUB, an dem meine Fernbedienung hängt, freischalten. Weiß auch nicht warum es diese Änderung gab, und ob es explizit am Kernel liegt, vermute dies aber mal, weil es seitdem nicht mehr geht.

Insgesamt muss ich also um meine X10 Fernbedienung für einen USB Wakeup zu nutzen folgendes machen:

status=`cat /proc/acpi/wakeup | grep "USB0" | awk {'print $3}'`
if [ "$status" = "disabled" -o "$status" = "*disabled" ]; then
   echo "USB0" > /proc/acpi/wakeup
fi
echo enabled > /sys/bus/usb/devices/2-1/power/wakeup
echo enabled > /sys/bus/usb/devices/usb2/power/wakeup

Dachte ich schreib das mal, hab auch eine Weile gesucht bis ich das herausgefunden hab. Wenn ihr diese Optionen beim suspend automatisch setzt (oder manuell von Hand), solltet ihr euren PC aus dem Standby/Suspend mit der Power oder Mutetaste auf eurer X10 wecken können. Mal sehen was beim nächsten Update an Änderungen kommen…