HP und die proprietären Plugins

Februar 18, 2011

Obwohl Hewlett-Packard eine vorbildlich gute Linux-Unterstützung für seine Drucker anbietet, benötigen leider einige HP-Drucker ein proprietäres Plugin, um vollständig zu funktionieren.

HP hat sogar die Installation dieser proprietären Plugins in seine Toolbox integriert. Leider schlägt die Installation dieses Plugins bei mir immer mit folgender Fehlermeldung fehl:

Plug-in install failed.
The printer you are trying to setup requires a binary driver plug-in and it failed to install.

Auf dem lernstick konnte ich die Installation des proprietären Plugins mit folgenden zwei Befehlen dennoch erfolgreich ausführen:

wget http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-3.10.6-plugin.run

kdesudo sh hplip-3.10.6-plugin.run

Optimistisch wie ich bin, gehe ich natürlich nicht davon aus, das HP eine schlechte Qualitätskontrolle hat, sondern einfach nur den Verkauf solcher Drucker fördern will, die eben kein proprietäres Plugin benötigen. 🙂

Advertisements

Es geht voran…

Februar 12, 2011

Der lernstick wird immer häufiger auch auf älteren Computern eingesetzt. Eine Herausforderung bei älteren Geräten ist der meist sehr kleine Arbeitsspeicher. Wenn der zu klein ist und grössere Programme gestartet werden, kann es passieren, dass der Computer einfach hängenbleibt oder komplett abstürzt. Um das zu verhindern, habe ich vor kurzem ein kleines Startskript erstellt, das beim Hochfahren überprüft, ob das System genügend Hauptspeicher hat und im Notfall eine Auslagerungsdatei erstellt. Damit es optisch auch etwas ansprechend aussieht, wollte ich, dass bei der Erstellung der Auslagerungsdatei dem Benutzer via dialog eine Fortschrittsanzeige präsentiert wird.

Das war deutlich schwieriger als ich zunächst vermutete. Das Programm der Wahl für die Erstellung einer Auslagerungsdatei ist dd. Leider bietet dd keine einfache Schnittstelle, um dessen Fortschritt abzufragen. Auch Google half nicht viel weiter. Alle Beispiele, die ich im Netz zu dem Thema gefunden hatte, funktionierten nicht. Also habe ich mich selbst in die Materie vertieft und eine funktionierende Variante erstellt:

#!/bin/bash
COUNT=500000
(
LC_ALL=C dd if=/dev/zero of=/dev/null bs=1M count=${COUNT} 2>&1 | while read LINE
do
    echo ${LINE} | grep -q "records out$"
    if [ $? -eq 0 ]
    then
        echo "$((${LINE%+*}*100/${COUNT}))" | dialog --gauge "dd progress..." 6 45
    fi
done
)&
sleep 1
DD_PID=$(pidof dd)
while kill -USR1 ${DD_PID} 2>/dev/null
do
    sleep 1
done

Falls jemand irgendwann über das gleiche Problem stolpert, darf er sich also gerne an obigem Beispiel bedienen.