RaspberryPi
Grundinstallation der Pi
Der Plan ist, die Raspberry Pi mit einem Debian-Image (Raspian) zu versehen, in das lokale Netz zu integrieren, und für alle folgenden Tests vorzubereiten.
-
Download des Debian-Images
-
unzip
-
Installieren auf der zur Verfügung stehenden 8 GB SD-Card
dd bs=1M if=./2013-02-09-wheezy-raspbian.img of=/dev/sdc
-
Anschließen der Raspberry PI (im folgenden Himbi genannt)
-
SD-Card einsetzen
-
per HDMI an den Fernseher
-
per USB an die wireless Keyboard/Maus
-
Am Fernseher steht kein LAN zur Verfügung
-
zd1211 USB WLAN-Adapter
-
Per Handy-Ladegerät an Strom
-
-
Booten
-
die Raspberry bootet in ein Menu, mit dem die Grundkonfiguration vorgenommen werden kann. Wichtig ist dabei vor allem die aktivierung von SSH.
-
Danach die Himbi ohne Fernseher an's LAN anschließen
-
Sicherstellen, dass in /etc/apt/sources.list auch nonfree Pakete eingeschlossen sind.
-
einen Editor und die Firmware für den WLAN-Stick laden
apt-get update apt-get install joe apt-get install zd1211-firmware
-
zurück am Fernseher lässt sich das WLAN aktivieren
-
Beim Versuch eines Systemupdates stellt sich heraus, dass das WLAN unzuverlässig ist und immer wieder abbricht. Das Thema WLAN wird also auf später verschoben. Das liegt an dem veralteten Stick. Bevor ich mich lange rumärgere nehme ich einen anderen (EXA)
-
Zurück am LAN werden folgenden Maßnahmen getroffen
# in /etc/hostname und /etc/hosts den Systemnamen auf himbi setzen. #/etc/network interfaces auto lo iface lo inet loopback iface eth0 inet static address 192.168.100.5 netmask 255.255.255.0 gateway 192.168.100.200 broadcast 192.168.100.255 dns-search ntech.de dns-nameservers 192.168.100.200 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp #/etc/timezone Etc/UTC # /etc/default/rcS UTC=no # /etc/profile hinzufügen alias ll="ls -l" alias la="ls -la" # Anmeldung ohne Passwort ssh-keygen ssh-copy-id an alle bekannten Rechner
- Zugriffe: 389
SNMP und Nagios NRPE
Ich will die Raspberry Pi mit Nagios (Icinga) überwachen, dazu muss nrpe installiert sein. Eine Installation von nrpe mit apt-get scheitert daran, dass eine unübersehbare Menge an Software mitinstalliert werden soll. Das ist nicht einzusehen. Also muss nrpe und Plugins aus den Quellen gebaut werden.
Installation von nrpe und Plugins
# Voraussetzungen installieren apt-get install libssl-dev xinetd cd /usr/src # Herunterladen der Quellpakete wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz # Auspacken tar -xzvf nagios/nrpe-2.13.tar.gz tar -xzvf nagios-plugins-1.4.16.tar.gz # Plugins kompilieren cd nagios-plugins-1.4.16/ ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios make make install # # nrpe kompilieren cd /usr/src/nrpe-2.13/ # zur Vermeidung von "Cannot find SSL Libraries ln -s /usr/lib/arm-linux-gnueabihf/libssl.so /usr/lib/libssl.so ./configure --enable-command-args make all make install-plugin make install-daemon make install-daemon-config
Installation von nrpe und Plugins
- Zugriffe: 440
Installation von Apache2
Vorbereitung
Apache als Webserver setzt auf der Grundinstallation auf. Zunächst sollte geprüft werden, ob User und Group „www-data“ vorhanden sind.
Installation
Danach installiert man einfach:
apt-get install apache2
Danach kann man die Installation testen, indem man die IP der Himbeere in einen Browser eingibt. Es erscheint sofort die klassische „It works!“ Meldung.
So einfach soll das sein????
Weitere Installation, damit alles da ist, was der mensch braucht
PHP5, mod_perl2 undsoweiter … die installationsbefehle sind bewusst einzeln geschrieben, um die Übersichtlichkeit zu erhöhen.
apt-get install php5 apt-get install libapache2-mod-php5 apt-get install libapache2-mod-perl2 apt-get install php5 php5-cli apt-get install php5-common apt-get install php5-curl apt-get install php5-dev apt-get install php5-gd apt-get install php5-imap apt-get install php5-ldap apt-get install php5-mhash apt-get install php5-mysql apt-get install php5-odbc apt-get install php-pear apt-get install php-apc ### # Oder der Einfachheit halber alles zusammen # apt-get install php5 libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc php-pear php-apc
{jcomments on}
- Zugriffe: 385
HP2840 und die Himbeere
HP hat mit dem Multifunktionsdrucker HP 2840 eigentlich ein ziemlich geniales Gerät hergestellt. Leider wurde die Treiberentwicklung mit Windows XP eingestellt, was zur Folge hatte, dass die Windows 7 Nutzer im Internet laut lamentierten und letztlich die Geräte bei Ebay und Co. verschleuderten, weil sie ihn nur noch als Drucker und nicht als Scanner und Fax nutzen konnten.
Mit meinem Linux-Rechner kam ich dahinter, dass es mit dem HPLIP-Paket möglich ist, den Drucker ganz hervorragend zu benutzen. Einerseits kann man mit Simple-Scan und und XSANE Scannen was das Zeug hält und zweitens kann man mit ein paar Shell-Programmen sogar die „Scan-To-Folder Funktion nutzen.
Mit einem Windws X11 Server wie „XMING“ kann man dann die Scan-Programme sogar vom Windows-Rechner aus nutzen, was die Sache für Windows-Anwender interessant macht.
Die Aufgabenstellung
Mein Kumpel (eher kein Computerspezialist) wollte so einen Drucker, weil er ihn bei mir gesehen hatte. Und weil er gleichzeitig auch den Wunsch nach einem kleinen, billigen Dateiserver für Backup-Zwecke gesucht hatte, sollte eine kleine, schnuckelige Lösung her. Nämlich eine Raspberry Pi mit externer 1TB Platte und Samba als Server. Zusätzlich ersetzt HPLIP auf der Raspberry PI die fehlenden Windows-Druckertreiber zum Scannen. Faxen war in diesem Zusammenhang nicht gefragt, ist aber auch möglich. Vielleicht gehe ich später mal darauf ein.
Im Folgenden gehe ich auf Samba nicht im Detail ein, das ist ein langes Thema und wird andernorts besser behandelt. Ich erspare mir auch Ausführungen, wie man die Grundinstallation auf einer PI hin bekommt. Da gibt es wundervolle Step-by-Step Anleitungen wie man Raspbian, das Debian Wheezy Image, sauber installiert.
Konfiguration
Samba
Zunächst muss Samba installiert sein. Ich verwende im Folgenden noch Samba 3, weil ich in Samba 4 noch nicht fit bin und Samba 3 weiß Gott für ein Himbeerchen ausreicht.
Dazu installiert man:
apt-get install samba smbclient
Bei Samba3 gibt es ein nettes webbasiertes Tool zum Konfigurieren, nämlich „Swat“. Um dieses nutzen zu können, muss Inetd (man kann natürlich auch xinetd nehmen) installiert sein und in /etc/inetd.conf diese Zeile eingefügt werden:
#:OTHER: Other services swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat
darüber hinaus muss in /etc/serivices diese Zeile stehen:
swat 901/tcp #SWAT
Nun kann man in Samba sehr bequem Shares anlegen und alles mögliche Verwalten. Benutzer anlegen kann man mit „smbpasswd -a user“
Zugriff auf die PI
Für die Dienstprogramme von HP-LIP braucht man eine Grafikkonsole, und ich will die PI nicht an einem Fernsehgerät betreiben. Dafür kann man natürlich VNC benutzen das wird bereits an vielen Stellen im Internet erklärt. Zum Beispiel hier http://jankarres.de/2012/08/raspberry-pi-vnc-server-installieren/
Ich verwende gern die Windows-Remoteconsole, dafür muss xrdp installiert sein:
apt-get install xrdp
Um mit XMING Programme starten zu können muss XDM installiert sein. Dass man dafür auf dem Windows-Rechner XMING selbst braucht, setze ich mal voraus.
apt-get install xdm
HPLIP
Zuerst müssen einige Pakete installiert werden:
apt-get install hplip hplip-gui xsane simple-scan
Nun muss der Drucker eingerichtet werden, dazu benötigt man die oben beschriebene Grafik-Console.
mit „HP-Setup“ wird der Drucker hinzugefügt. Nun kann bereits gedruckt werden wie die Testseite beweist. Mit der HP-toolbox gelingen auch bereits scans.
Ebenfalls kann man mit „simple-scan“ oder gar „xsane“ scannen. Wenn man die Scans in der bereits eingerichteten Sambashare „SCANS“ abspeichert, kann man sie von den angeschlossenen Windows-Rechnern auch benutzen und weiterverarbeiten.
Nun wird auf den Windows-Rechnern XMING so konfiguriert dass man die Programme „simple-scan“, „Xsane“ und die „HP-toolbox“ von dort aus bedienen kann.
hier fehlen noch ein paar anschauliches Screenshots.
Scanto-Destination
Ich finde es ein Super-Feature, dass man am Drucker mit der "Scannen in"-Taste auswählen kann, was und wohin man scannen möchte. Das ging bis Windows XP mit dem umfänglichen HP-Treiberpaket. Unter Windows 7 funktioniert nichts davon.
Der geniale Kollege Dag Rende hat auf seiner Homepage wunderschön dokumentiert, wie er dahintergekommen ist, die "Scannen-In" Funktion unter Linux nachzubilden. Im Folgenden zeige ich nicht den ganzen Entwicklungsweg, das kann Dag besser, sondern nur wie ich es auf der Pi implementiert habe.
Das Shellscript scanloop läuft als daemon ständig und wird auch automatisch gestartet. Es prüft zuerst, ob mit der Scannen-In-Taste eines der gleichnamigen Scan-Scripts ausgewählt wurde und führt es aus, wenn dem so ist. Dann wird geprüft, ob die Einträge in der Scannen-In-Liste den Namen der vorhandenen Scan-Scripts entsprechen und lädt sie bei Bedarf in den Drucker. Dazu wird das Script scanto-Destination aufgerufen. Die IP-Adresse muss natürlich angepasst werden.
Datei /usr/local/scripts/scanloop
#!/bin/bash
cd "`dirname $0`"
set -o pipefail
while true; do
# if scan-to button pressed - run the command corresponding to the
# destination name
name=`wget -q -O - http://192.168.100.30/hp/device/notifications.xml \
| egrep -o '<ScanToDeviceDisplay>(.*)</ScanToDeviceDisplay>' \
| sed -e 's/<ScanToDeviceDisplay>//' \
| sed -e 's/<\/ScanToDeviceDisplay>//' \
| sed -e 's/.*://'` && {
if [ "$name" != "" ]; then
if [ -x "/usr/local/scripts/scan-command/$name" ]; then
(cd /Data/SCANS; "/usr/local/scripts/scan-command/$name" >/dev/null 2>&1)
chmod a+r /Data/SCANS/*
fi
fi
}
# update scan-to destinations in printer if necessary
/usr/local/scripts/scanto_destination -l | sed 's/.*://' >/tmp/printer-dests && ls /usr/local/scripts/scan-command >/tmp/command-d
diff /tmp/printer-dests /tmp/command-dests | egrep '<|>' | sed 's#<#/usr/local/scripts/scanto_destination -d#;s#>#./scanto_destinat
sleep 5
done
Datei /usr/local/scripts/scanto_destination.sh
#!/bin/bash
# command to maintain the scan-to destination list in the HP Color LaserJet
# 2840 printer
adr="192.168.100.30"
if [ "$1" == "-a" ]; then
name=$2
[[ ! "$name" =~ ":" ]]&& name="$HOSTNAME:$name"
postdata="AddScanToDest_1=127.0.0.1-$HOSTNAME%5e${name/:/%3a}%5eDestFolder"
echo $postdata
wget -q -O - --post-data="$postdata" http://$adr/hp/device/set_config.html
elif [ "$1" == "-d" ]; then
name=$2
[[ ! "$name" =~ ":" ]]&& name="$HOSTNAME:$name"
postdata="RemoveScanToDest_1=${name/:/%3a}"
wget -q -O - --post-data="$postdata" http://$adr/hp/device/set_config.html
elif [ "$1" == "-l" ]; then
wget -q -O - http://$adr/hp/device/info_scanto_destinations.xml | sed -n '/<DeviceDisplay>/s/<\/*DeviceDisplay>//gp'
else
echo 'usage: scanto_destination -l -a <destname> -d <destname> for listing adding and deleting destinations'
fi
Schließlich zeige ich noch zwei Beispiele für Scan-Scripts. Diese liegen bei mir im Verzeichnis /usr/local/scripts/scan-command
Pic300
Das erste Script Scannt ein Bild in 300 Pix/inch von der Glasplatte
cd /Data/SCANS/
now=$(date +"%Y-%d-%m_%H-%M-%S")
file="/Data/SCANS/scan_$now"
# hp-scan -m 'color' -r300 -x 'jpeg' -s 'file'
scanimage --format=tiff --resolution 300 > $file
chown pi:users $file
chmod ugo+rw $file
Auto-PDF
Dieses Script ist schon ein bisschen umfänglicher: Es liest ein mehrseitiges Dokument aus dem Sheetfeeder und macht ein PDF-Dokument daraus. Abgelegt wird es, wie alle Scans, in /Data/SCANS, dieses Verzeichnis wird per Samba freigegeben.
mkdir /tmp/workdir
cd /tmp/workdir
now=$(date +"%Y-%d-%m_%H-%M-%S")
outname="/home/linke/Dropbox/SCANS/scan_$now"
echo "##### Scanning #####"
scanimage -y 279.4 -x 215.9 --batch --format=tiff --resolution 300 --source ADF
echo "##### Converting to PDF #####"
tiffcp -c lzw out*.tif output.tif
tiff2pdf output.tif > $outname.pdf
echo "##### Cleaning Up #####"
rm /tmp/workdir/*
echo "##### Done #####"
Und weiter?
Natürlich kann man sich jetzt alles mögliche dazu basteln, man muss es nur in ein Script packen können. Beispielsweise haben ich damit Experimentiert, die Scans per Email zu verschicken, oder Dokumente per OCR in Klartext zu übertragen. Alles mögliche geht und wir sind da noch längst nicht am Ende!
Happy scanning!
{jcomments on}
- Zugriffe: 453