Ihr habt es mit Sicherheit bemerkt, das man den XServer seit längerem nicht mehr mit STRG + ALT + BACKSPACE abschießen kann. Da ich mir die neue Kombination einfach nicht merken kann, stelle ich bei meinem PC das immer wieder auf die alte Kombination um. Solltet ihr das auch vorhaben, das geht so:
1 sudo dpkg-reconfigure keyboard-configuration
Diese Seite ist nicht mehr aktuell und wird bald durch eine neue Version von NooK24.eu ersetzt!
Heute habe ich Kubuntu 12.10 auf meinem Computer installiert. Die Installation habe ich von einem USB-Stick aus durchgeführt.
Zuerst einmal habe ich mir unter Windows mit LinuxLive USB Creator den USB-Stick erstellt:
Das Installieren der Windows Updates überspringe ich dann einfach einmal mit:
1 shutdown -s -t 1
Danach habe ich vom eben erstellten USB-Stick gestartet und mit der Installation begonnen. Nach der installation habe ich ersteinmal für mich unverzichtbare Tools installiert:
1 apt-get install mesa-utils recorditnow htop mc vim kdenlive vlc x264 libdvdread4 libxvidcore4 flac kscreensaver kscreensaver-xsavers kscreensaver-xsavers-extra
Mit diesem Befehl installiert ihr einmal die Mesa-Tools (erklärung später), den VLC-Mediaplayer, einige Codecs, Bildschirmschoner und kdenlive (erklärung später)
Danach habe ich den Grafikkartentreiber installiert:
Im Screenshot lasse ich nach der installation der Treiber, glxgears laufen um die Treiber zu testen (Im Paket mesa-utils enthalten)
Jetzt wo die Grafikkartentreiber installiert sind, fehlt noch ein Guter Musikplayer. Früher fand ich Amarok immer toll. Allerdings in der neuen Version gefällt mir dieser garnicht. Aber es gibt eine Lösung für die alten Amarok Fans! Es heist: Clementine und kann über die Paketquellen von Ubuntu bezogen werden:
Jetzt haben wir alle guten Player für Film und Audio, fehlt noch ein Videoschnittprogramm.
In dem Befehl oben habe ich einaml recorditnow und kdenlive installiert.
Mit recorditnow könnt ihr euren Desktop aufnehmen. Das Video das dabei entsteht, könnt ihr dann mit kdenlive bearbeiten. Kdenlive erinnert mich dabei sehr an Sony Vegas.
Jetzt fehlt noch etwas für den Spaß! Aber moment! Der Beta-Cleint für Steam ist ja da! Also habe ich gleich noch Steam installiert
Immer mehr Applikationen können unter Linux verwendet werden. Die gebotenen Tools werden immer stabiler und besser. Da ich mit Linux, ins besonderer Debian, Ubuntun und Suse schon lange im Serverbereich arbeite, möchte ich jetzt auch meinen Desktop-PC mit Kubuntu ausstatten.
Dafür habe ich mich für Kubuntu entschieden.
Meine Erfahrungen und Hürden auf die ich dabei stoße, werde ich in der neuen Kategorie Linux -> Kubuntu festhalten. Eventuell hilft es euch, den Umstieg zu wagen, und eventuelle Probleme vorzubeugen.
Viele von euch kennen bestimmt den VMWare Server mit seiner Weboberfläche. Diese Oberfläche hat einem immer eine schnelle Konfiguration seiner virtuellen Maschinen erlaubt. Leider läuft der VMWare Server unter neuen Systemen nicht mehr ohne weiteres. Mittlerweile habe ich Oracle VirtualBox recht schätzen gelernt und benutze es unter allen Systemen. Sowohl auf meinem Mac OS X, meinem Kubuntu, oder Windows PC. Jeder dieser Rechner hat VirtualBox installiert.
Auf meinem Ubuntu Server hatte ich über viele Jahre KVM im Einsatz. Eines Tages kam der Moment, wo der Server komplett neu installiert werden musste. Da die Konfiguration von KVM doch etwas größer war, habe ich nach einer schnellen Alternative gesucht und habe dabei phpVirtualBox gefunden. Nachdem ich mir die Projektwebseite angeschaut hatte, war ich sofort überzeugt und wollte das Tool testen!
Das tolle an phpVirtualBox ist, das es alle Funktionen bietet, die auch von Oracle VirtualBox geboten werden, also die GUI Version die wir alle kennen. phpVirtualBox kommuniziert mit Oracle VirtualBox über eine angebotene API. Dadurch ist es möglich, komplett VirtualBox vom Browser aus zu steuern und virtuelle Maschinen zu erstellen, konfigurieren, starten und stoppen. In diesem How To möchte ich euch zeigen, wie Ihr phpvirtualbox richtig installiert.
Die Anleitung zur Installation kann auch nach dem offiziellen Wiki Artikel erfolgen:
http://code.google.com/p/phpvirtualbox/wiki/Installation
Bekannte Probleme:
Ich hatte bei mir das Problem, dass das Init-Scrit /etc/init.d/vboxweb-service nicht vorhanden war. Aus diesem Grund habe ich meine Installation aus dem Ubuntu Repository wieder gelöscht (Ubuntu 12.04.1 LTS Precise) und die aktuelle VirtualBox Version direkt von der Herstellerwebseite heruntergeladen und installiert:
https://www.virtualbox.org/wiki/Linux_Downloads
1 apt-get remove virtualbox2 wget http://download.virtualbox.org/virtualbox/4.2.6/virtualbox-4.2_4.2.6-82870~Ubuntu~precise_amd64.deb3 dpkg --install virtualbox-4.2_4.2.6-82870~Ubuntu~precise_amd64.deb
Danach sollten alle benötigten Ini-Scripte vorhanden sein:
1 root@kubuntu01:~# ls /etc/init.d/vbox*2 /etc/init.d/vboxautostart-service /etc/init.d/vboxballoonctrl-service /etc/init.d/vboxdrv /etc/init.d/vboxweb-service3 root@kubuntu01:~#4
Los gehts:
Ich führe bei mir die Installation unter dem root Benutzer durch:
1 sudo su
Installation von VirtualBox (bitte bekannte Probleme beachten!):
1 apt-get install virtualbox
Eventuell ist der nächste Schritt optional, probiert es einfach mal aus!
1 VBoxManage setproperty websrvauthlibrary null
Das VirtualBox Extension Pack wird benötigt, um eine VRDP Verbindung auf die virtuellen Maschinen aufzubauen. (Weitere Infos zum Thema bietet Wikipedia)
1 wget http://download.virtualbox.org/virtualbox/4.2.6/Oracle_VM_VirtualBox_Extension_Pack-4.2.6-82870.vbox-extpack2 VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.6-82870.vbox-extpack
Die Benutzergruppe vboxusers sollte an eurem System schon existieren. Jetzt müsst Ihr dieser Gruppe noch einen Benutzer zuweisen:
1 adduser vbox2 adduser vbox vboxusers
Existiert die Gruppe vboxusers nicht, könnte Ihr diese manuell erstellen:
1 groupadd vboxusers
Das Passwort des Benutzers wird später von phpVirtualBox genutzt, um auf die VirtualBox API zuzugreifen. Dieses Passwort benötigt nur die phpVirtualBox Oberfläche! Ihr solltet hier ein sehr sicheres Passwort wählen!
In die Datei /etc/default/virtualbox müsst ihr jetzt noch euren eben angelegten Benutzer eintragen:
1 VBOXWEB_USER=vbox2
Damit ist die Konfiguration an VirtualBox abgeschlossen und Ihr könnte den vboxweb-service starten:
1 /etc/init.d/vboxweb-service start
Download und Konfiguration von phpVirtualBox:
1 mkdir -p /var/www/vbox2 cd /var/www/vbox/3 wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.2-4.zip4 unzip phpvirtualbox-4.2-4.zip5 rm phpvirtualbox-4.2-4.zip6 mv phpvirtualbox-4.2-4/* .7 rm -r phpvirtualbox-4.2-4/8 mv config.php-example config.php
Jetzt müsst ihr noch die Konfiguration von phpVirtualBox anpassen
1 vim /var/www/vbox/config.php
Passt hier folgende Variablen an:
1 var $username = 'vbox';2 var $password = 'pass';3 var $language = 'de';4 var $consoleKeyboardLayout = 'DE';5 var $consoleHost = '192.168.1.100'; //Eure IP-Adresse/Domain Name
Das Passwort für $password= habt ihr gesetzt, als Ihr den Benutzer vbox angelegt habt!
Danach könnt ihr euch unter http://EURE-IP-ADRESSE/vbox anmelden. Die Benutzerdaten lauten:
Benutzername: admin
Passwort: admin
In der phpVirtualBox Oberfläche könnte Ihr dann unter Datei -> Passwort ändern ein neues Passwort für den aktuellen Benutzer setzen.
SSL Einrichten:
Wenn Ihr den Server aus dem Internet erreicht, solltet ihr unbedingt die Verbindung mit SSL (https) sichern! Ich zeige kurz an meinem Beispiel, wie es mit einem selbst erstellten SSL Zertifikat funktioniert.
Zuerst müsst Ihr folgende Schritte ausführen:
1 mkdir -p /etc/apache2/vbox_ssl/2 cd /etc/apache2/vbox_ssl/3 openssl req -new > vbox.server.csr4 openssl rsa -in privkey.pem -out vbox.server.key5 openssl x509 -in vbox.server.csr -out vbox.server.csr -req -signkey vbox.server.key -days 7306 a2enmod ssl
Jetzt habt ihr schonmal ein SSL Zertifikat erstellt. Jetzt müsst Ihr euren Apache noch beibringen, dass er das ganze auch noch laden soll. Dazu müsst ihr die Datei /etc/apache2/conf.d/vbox.conf erstellen und mit folgendem Inhalt füttern:
1 vim /etc/apache2/conf.d/vbox.conf2 <VirtualHost EURE-IP-ADRESSE:443>3 ServerName EURE-IP-ADRESSE4 SSLEngine on5 SSLCertificateKeyFile /etc/apache2/vbox_ssl/vbox.server.key6 SSLCertificateFile /etc/apache2/vbox_ssl/vbox.server.csr7 DocumentRoot /var/www/vbox/8 </VirtualHost>9
Danach müsst ihr den Webserver noch neustarten, damit er die neue Konfiguration übernimmt:
1 /etc/init.d/apache2 restart
Fertig! Wenn ihr jetzt https://EURE-IP-ADRESSE im Browser aufruft, solltet Ihr direkt auf die phpVirtualBox Oberfläche kommen und das ganze SSL verschlüsselt.
Lizenz (Stand 07.01.2013)
Noch ein Wort zum aktuellen Lizenzmodell von Oracle. Wenn ihr eine Privatperson seit, könnte ihr VirtualBox kostenlos nutzen, auch das Extension Pack. VirtualBox an sich steht seit der Version 4.0 unter der GPLv2. Das bedeutet, VirtualBox kann jeder, auch Firmen kostenlos benutzen. Wenn ihr allerdings das VirtualBox Extension Pack installiert, ändert sich die Lizenz!
Das bedeutet, die Grundfunktionen die VirtualBox bereitstellt können von jedem Benutzer in der Firma genutzt werden. Die Funktionen die durch das Extension Pack hinzukommen wie (PXE, VRDP oder USB2.0) darf nur von der Person benutzt werden, die das Extension Pack installiert hat. Alle anderen Benutzer dürfen nur die standard VirtualBox Funktionalitäten nutzen!
Das nur als kleiner Tipp am Rande. Allerdings ist das nur das, was ich unter dem Lizenzmodell von VirtualBox verstehe! Wenn dieser Fall bei euch eintritt, und ihr VirtualBox nicht als Privatperson nutzt, fragt auf jeden Fall bei Oracle nach, ob ihr eine Lizenz benötigt! Ich übernheme keine Gewährleistung oder Haftung für die Richtigkeit meiner Aussage bezüglich des Lizenzmodells!
Mehr zum Thema Extension Pack: http://de.wikipedia.org/wiki/VirtualBox#Funktionen_des_propriet.C3.A4ren_Moduls
Viel Spaß
Verwandte Themen:
Ich habe heute die Funktion zum Zeichen von Graphen noch etwas überarbeitet und einige Bugs behoben. Um das ganze etwas zu testen, habe ich mir ein USB Termometer von TEMPerl bestellt. Den Treiber für Linux habe ich mit etwas Googlen recht schnell gefunden. Ter Treiber an sich ist in C geschrieben. Um den Aufwand so klein wie möglich zu halten, habe ich den C-Code in PHP einfach via exec() aufgerufen. Den Output des Treibers habe ich mir auch etwas angepasst, ich bekomme bei mir nurnoch die Temperatur als float zurück, ohne Einheit oder anderen Text.
Danach habe ich ein kleines PHP-Script geschrieben, welches die Temperatur ausliest und an das Display übergibt. Über meine PHP Klasse raspilcd_dz lasse ich dann einen Graphen von der Temperatur erstellen. Und so sieht das ganze dann aus:
Ich werde eine neue Version der PHP Klasse zum Download anbieten, sobald ich durch den VLC-Player durchsteige. Ich würde gerne noch eine Audiovisualisierung auf das Display bringen, wenn man Musik über den VLC abspielt. Das ganze funktioniert auch schon fast, ich habe nur noch so meine Probleme mit den Videofiltern des VLC.
Sobald es dort etwas neues gibt, werde ich die PHP Klasse mit Graphenfunktion und Audiovisualisierung wie gewohnt hier zum Download anbieten.
Hier mein Quelltext, mit dem ich die Temperatur auslese und über meine PHP Klasse raspilcd_dz auf das Display schreibe:
01 <?php02 require_once "raspilcd_dz.php";03 $LCD = new raspilcd_dz();04 $LCD->CLI->_echo("|---------------------------------------|", 'green');05 $LCD->CLI->_echo("|\t\t\t\t\t|", "green");06 $LCD->CLI->_echo("| Daniel Ziegler - www.nook24.eu \t|", 'yellow');07 $LCD->CLI->_echo("| Raspberry PI Temp 2 LCD\t\t|", 'purple');08 $LCD->CLI->_echo("|\t\t\t\t\t|", "green");09 $LCD->CLI->_echo("|---------------------------------------|", 'green');10 $LCD->CLI->_echo();11 12 //apt-get install libusb-dev13 14 $TEMPerlBinary = '/var/www/LCD/TEMPerl/pcsensor';15 $LCD->lcd_init();16 $LCD->CLI->_echo("LCD Display geladen", 'green');17 18 19 $GraphAsArray = array();20 21 while(true){22 exec($TEMPerlBinary, $output);23 if(isset($output[0]) && is_numeric($output[0])){24 array_push($GraphAsArray, $output[0]);25 $LCD->CLI->_print_r($LCD->drawGraphFromArray($GraphAsArray, 'Temperatur: ', 10));26 $LCD->CLI->_echo("Aktueller Wert : ".end($GraphAsArray),'yellow');27 $LCD->CLI->_echo("Abbruch -> [STRG] + [C]",'red');28 }29 unset($output);30 usleep(50000);31 }
Weitere Links:
Raspberry PI LCD Display mit PHP v2.1
Ich habe wieder etwas an meiner PHP Klasse raspilcd_dz geschraubt und um eine Funktion zum Zeichnen von Graphen erweitert.
Download + Video coming soon. Hier schon einmal ein paar Screens:
Funktion aus der Klasse:
01 /**02 * drawGraphFromArray()03 * Benötigt ein Array mit Werten und zeichnet diese dann als Graph auf das Display04 * @param $data Array mit Werten => array(1,6,20,12,65.30,...)05 * @param $text Beschreibung des Graph06 * @param $flush Wie viele Punkt im Graph dargestellt werden sollen, beginnend mit dem letzten Punkt im Array07 * @author Daniel Ziegler08 */09 function drawGraphFromArray($data = array(), $text = "Aktueller Wert: ", $flush = 100){10 .11 .12 .13 }
Aufruf der Funktion:
1 $LCD->drawGraphFromArray(explode(',', $_POST['Werte']), $_POST['Text'], $_POST['Flush']);
Graph 1:
Aufbau:
Punkte: 13, Text: Mein Graph
, Flush: 100
Graph 2:
Aufbau:
Punkte: 13, Text: Mein Graph
, Flush: 5 (die ersten 8 Punkt werden verworfen und nur die letzten 5 Punkt im Graph gezeichnet)
Graph 3:
Aufbau:
Punkte: 9, Text: Temperatur, Flush: 1000
Dezimalzahlen auf dem Display:
Sobald ich kann, werde ich eine neue Version der PHP Klasse hochladen!
Weiteres zum Thema:
So könnt Ihr mit Hilfe von vb.net ganz einfach prüfen, welche IP-Adresse in eurem Netzwerk vergeben sind:
01 Public Class Form102 03 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click04 Dim ip As Integer05 Dim ip2check06 Dim pingResult07 For ip = 0 To 25508 ip2check = "192.168.1." & ip09 pingResult = My.Computer.Network.Ping(ip2check)10 If (CheckBox1.Checked = True) Then11 If (pingResult = True) Then12 ListBox1.Items.Add(ip2check)13 ListBox2.Items.Add(pingResult)14 End If15 Else16 ListBox1.Items.Add(ip2check)17 ListBox2.Items.Add(pingResult)18 End If19 20 ProgressBar1.Value = ip21 Threading.Thread.CurrentThread.Sleep(250)22 Application.DoEvents()23 24 Next25 26 End Sub27 28 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load29 Me.Text = "IP Checker"30 End Sub31 32 End Class
Wie versprochen poste ich euch einmal alles was ich bisher zum Thema Raspberry PI und LCD Displays mit PHP weis.
Ich habe mir dazu das LCD Display von Emsystech gekauft. Hier noch ein Link auf die aktuelle Version + Software Download von Emsystech (GPLv3).
Hier könnt ihr mein C-Programm + PHP Klasse herunterladen.
Inhalt:
raspilcd_dz.c (GPLv3)
raspilcd_dz.php (GPLv2)
index_2.php (GPLv2)
index_3.php (GPLv2)
html.helper.php (GPLv2)
+ zwei Testbilder
Weitere Links:
Raspberry PI LCD Display mit PHP v2.1 -> Graph der Temperatur mit PHP
Raspberry PI LCD Display mit PHP v2.1
Wenn ihr auch dieses Display habt, müsst Ihr erst einmal das Kernel-Modul laden:
1 echo spi-bcm2708 >> /etc/modules
Danach müsst ihr euch den Sourcecode von Emsystech herunterladen (RaspiLCD V0.9.0.zip oben verlinkt). Das ZIP-File das ihr da bekommt müsst ihr natürlich entpacken und einmal compilen:
1 make -f makefile
Jetzt könnt ihr das Programm starten
1 ./raspilcd
Ok, so weit so gut. Jetzt löscht ihr die Datei main.c und ladet euch mein .zip Paket herunter (Downloadlink oben).
1 chmod +x run.sh2 ./run.sh fliesstext hallo welt
1 ./raspilcd_dz --help
Damit lässt du dir folgende Hilfe anzeigen:
Jetzt müsst ihr die .php Dateien in den DocumentRoot eures Webservs kopieren. Ich gehe in dem ganzen Text einmal davon aus, dass ihr wisst was ihr tut, und das PHP, GCC und co installiert sind.
Danach musst du eventuell noch in der Datei raspilcd_dz.php den Pfard zu meinem C-Programm anpassen.
1 function __construct(){2 $this->color = 1; //Farbe mit der auf das Display geschrieben wird3 $this->width = 128; //Breite des Displays in px4 $this->height = 64; //Höhe des Displays in px5 $this->maxChar = 21; //Maximale Zeichen je Zeile6 $this->maxLines = 7; //Maximale Zeilen7 $this->delimiter = ".!."; //Trennzeichen für explode und co.8 $this->useSudo = true; //Führt die Exec Befehle als Root aus (visudo -> www-data ALL=(ALL) NOPASSWD: ALL)9 $this->pathToBinary = $this->escStr("/root/raspilcd_dz"); //Pfard zur ausführbaren C-Datei <-- HIER ggf Anpassen
Danach sollte alles funktionieren, und du kannst die Datei index_2.php und index_3.php in deinem Browser öffnen.
Wenn ihr euch eine eigene PHP-Datei erstellen wollt, müsst ihr zu erst immer die Funktion lcd_init aufrufen, um das Display zu initialisieren. Diese Funktion muss nur einmal aufgerufen werden!
1 require_once "raspilcd_dz.php";2 $LCD = new raspilcd_dz();3 $LCD->lcd_init();
In meinen zwei Beispieldateien mache ich das natürlich und ihr müsst dort nichts ändern damit es funktioniert.
Mit der Datei index_2.php kannst du das Display initialisieren, Texte darauf schreiben, alles löschen, Linien malen, oder ein eigenes Bild malen.
Zum Beispiel so etwas:
Die Datei index_3.php ermöglicht dir einen Bilderupload und zeigt eine Vorschau des Bildes im Browser und auf dem Display.
Am besten wandelt ihr die Bilder vorher in sehr kontrastreiche Schwarz/Weis Bilder, ansonsten wird nicht viel davon auf dem Display dargestellt werden können. Das liegt allerdings nicht daran, dass PHP keine Schwarz/Weiß Bilder erstellen kann. Das Problem kommt daher, dass im Hintergrund kein Graustufenbild, sondern wirklich ein Schwarz/Weiß bild erstellt wird. Jeder Pixel kann also entweder schwarz, oder weiß sein.
So könnte das ganze dann aussehen:
Einmal die Vorschau im Browser:
Und auf dem Display:
Viel Spaß!
Wenn du wegen dem RPI Display mit PHP hier bist, dazu werde ich demnächst alles zum Download + Doku berreitstellen, was du dafür brauchst. Bin leider noch nocht dazu gekommen :/




















