Eingestellte Auflösung eines Raspi oder BBB abfragen

Um herauszufinden, welche Bildschirmauflösung ein RasPi oder ein BeagleBoneBlack verwendet, sind folgende Kommandos hilfreich:

pi@raspberrypi ~ $ cat /proc/cmdline
dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1318 bcm2708_fb.fbheight=736 bcm2708.boardrev=0x3 bcm2708.serial=0xfac46d2a smsc95xx.macaddr=B8:27:EB:C4:6D:2A sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0xec00000 vc_mem.mem_size=0x10000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

Oder auf einem BeagleBoneBlack:

root@beaglebone:~# cat /proc/cmdline
console=tty0 console=ttyO0,115200n8 capemgr.disable_partno=BB-BONELT-HDMI video=HDMI-A-1:800x480@60 root=UUID=639c0198-9bfd-4609-9c6a-abbb25a2e049 ro rootfstype=ext4 rootwait fixrtc quiet init=/lib/systemd/systemd

„Eingestellte Auflösung eines Raspi oder BBB abfragen“ weiterlesen

Helligkeit eines BB_View 7.0″ Displays einstellen

Nun benutze ich schon eine ganze Zeit ein BB_View LED TFT Display für meinen Beaglebone, aber bislang bin ich nicht auf die Idee gekommen, mal die Helligkeit zu verändern.

Oder, um genau zu sein, die Helligkeit der Hintergrundbeleuchtung.

Nach längerer Google Suche bin ich auf folgendes gestossen:

Unter /sys/class/backlight/backlight.12 (wobei die Zahl am Ende variieren kann) finden sich einige Files, mit denen sich die Hintergrundbeleuchtung steuern und kontrollieren lässt.

Z.B.:

cat actual_brightness gibt die aktuell Helligkeit aus (bei mir zwischen 0 und 100)

cat max_brightness den Maximalwert

Mit echo 90 > brightness stellt man die Helligkeit auf den Wert 90

 

QT Applikationen starten

Seit einiger Zeit experimentiere ich mit QT auf einem Beaglebone Black (BBB), einem Kleincomputer mit ARM Prozessor, ganz ähnlich einem Raspberry Pi.

Da die aktuelle Version 5.x nicht ohne weiteres auf dem Beaglebone läuft, benutze ich Version 4.8.
Wirklich beeindruckend und wenn man die Entwicklungsumgebung erst einmal zum laufen gebracht hat auch recht luxuriös zu bedienen.

Das Ausführen einer graphischen Testapplikation vom Command Prompt aus scheitert aber erst mal.
D.h. man hat das Executable auf den BBB kopiert und started es mit ./demoprog.

Es passiert ausser einer Fehlermeldung QWSSocket::connectToLocalFile could not connect:: No such file or directory gar nichts.

Des Rätsels simple Lösung: Das Programm mit dem Parameter -qws starten, also etwa /demoprog -qws.

Woran liegt’s?

Sollte ein X-Windows laufen, sollte die Applikation auch ohne den Parameter ausgeführt werden, allerdings im Fenster.
Wenn man, wie ich, keine Ressourcen mit X-Windows verschwenden will, liefert QT ein eigenes graphisches Backend.
Das muss man mit -qws allerdings expliziet starten, ansonsten versucht die Applikation einen QWS Server zu finden, was natürlich prompt scheitert.

 

Warum löst mein Router private IP Adressen nicht auf?

Kaum macht man mal ein Firmware Upgrade auf den Router, und schon geht nix mehr….

Na ja, nicht gerade nix, aber ich konnte schlagartig meine Dreambox nicht mehr über ihren Hostnamen erreichen. Die anderen Rechner auch nicht.

Diese Hostnamen sind brav bei meiner Domaine registriert, d.h. pc1.my-domain.tk verweist auf eine private IP Adresse, z.B. 192.168.1.5
ping pc1.my-domain.tk sollte also funktionieren.
Statt dessen: Host not found.

Das Ganze ist eine Sicherheitseinstellung meines WLAN Routers, der, wie üblich, als DNS Server für meine PCs agiert.
Ich bin mir nicht sicher auf welche Weise ein Angreifer sowas ausnützen könnte, aber es wird schon Sinn machen.

„Warum löst mein Router private IP Adressen nicht auf?“ weiterlesen

Pakete installieren / anzeigen

Raspbian Wheezy für den RPi ist ein Debian-Derivat, was mich jedes Mal zur Verzweifelung bringt.

Zum Beispiel bei der Paketverwaltung. Daher ein paar Hinweise:

Installierte Pakete anzeigen:
sudo dpkg --get-selections

Verfügbare Pakete suchen:
sudo apt-cache search suchwort [suchwort] (sucht in Beschreibungen, mehrere Suchwörter werden UND-Verknüpft)
sudo apt-cache pkgnames suchwort (findet Pakete deren Name mit suchwort anfängt)

Paket installieren:
sudo apt-get install paketname

Daten vom seriellen Port lesen

Als neuer Raspberry Pi und Arduino Besitzer, stellt sich irgendwann die Frage, wie man die vom Arduino emittierten Daten vom Rpi lesen kann.

Der Arduino wird per USB an den RPi angeschlossen und verwendet zur Datenübertragung ein serielles Protokoll.

Er gibt sich dabei als ein USB Modem aus, was er natürlich nicht ist. Aber deswegen meldet sich nicht als /dev/ttyUSB0 beim RPi, sondern als /dev/ttyACM0.

Mehr zu den Unterschieden zwischen /dev/ttyUSB und /dev/ttyACM findet sich hier: https://www.rfc1149.net/blog/2013/03/05/what-is-the-difference-between-devttyusbx-and-devttyacmx/

Ansonsten muß eigentlich nur die richtige Baudrate eingestellt werden, was mit folgendem Kommando geschieht:

stty -F /dev/ttyACM0 38400

Anschliessend kann man die vom Arduino gesendeten Daten ganz einfach anzeigen lassen:

cat /dev/ttyACM0

 

Tastatur Events an der richtigen Stelle verarbeiten

Mal wieder etwas das man wissen sollte, einen aber Unmengen Zeit kostet wenn man’s nicht weiss.

Folgendes Szenario: Windows Forms Applikation mit einer Listbox.

Ich möchte auf die Page-Up und Page-Down Tasten unabhängig von dieser ListBox auswerten.
Allerdings gehen die KeyDown Events IMMER an die ListBox, die auf ein Page-Down natürlich mit herunterscrollen reagiert, was sie aber nicht soll. Focus auf die Form des Hauptfensters setzen hilft da gar nicht.

Microsoft liefert die Erklärung: Sobald eine Form ein Control wie eine ListBox enthält, gehen die Events ausschliesslich an die Controls. Nur eine Form ohne Controls erhält Key-Events.

Dieses Verhalten zu ändern ist denkbar einfach: Man setzt die Eigenschaft KeyPreview der Form auf True!

„Tastatur Events an der richtigen Stelle verarbeiten“ weiterlesen

MKV Chapter mit directshow auslesen

Da ich ja gerade aus Unzufriedenheit über die erhältlichen hardware Mediaplayer meine eigene Player-Software für meinen Eigenbau-HTPC schreibe, verbringe ich viel Zeit mit der Suche nach Informationen zu directshow. Das hier ist das Ergebnis einer erfolgreichen Suche 😉

Ich spiele mit Vorliebe MKV’s ab. Und da in letzter Zeit immer mehr MKV’s über Chapter / Kapitel verfügen, möchte ich die natürlich auch „anspringen“ können.

Die beim Abspielen involvierten Audio- und Videodecoder wissen von den Kapiteln nichts, das ist Aufgabe des Splitters.
In meinem Fall (wie eigentlich immer) ist das der Haali Media Splitter.
Leider findet man, wann man nicht einem directshow Interface für Chapter sucht, immer wieder Referenzen auf ein Interface namens IChapterInfo.
Dummerweise gibt’s keine Beispiele, nur die Definition des Interfaces. Mangels Erfahrung mit COM bin ich hier nicht weitergekommen.

„MKV Chapter mit directshow auslesen“ weiterlesen

Und los geht’s!

Und da sitze ich nun vor meinem Computer, WordPress Blog frisch installiert, Template ausgesucht (auch wenn ich damit noch nicht so ganz glücklich bin), und denke über meine ersten Artikel nach.

Was schreibt man da rein?
Na ja, Ihr seht das Resultat 😉

Aber in Zukunft wird es hier um die Dinge gehen, mit denen ich mich beruflich und privat beschäftigt. Hauptsächlich Dingen mit Bezug zur Programmierung, Multimedia, Web-Develpment, Windows, Linux und was mir sonst so über den Weg läuft.

Ich beschäftige mich seit dem Studium mit IT im allgemeinen und habe mir, obwohl ich beruflich hauptsächlich Projektmanagement betreibe, die Faszination für das Entwickeln bewahrt. Hauptsächlich in C#, Visual Basic und PHP.
Ausserdem habe ich reichlich Erfahrung in Windows Soft- und Hardware Support, was meine Kollegen zu genüge ausnutzen, auch wenn ich schon lange nicht mehr an der Hotline sitze.
Und dann gibt’s da noch das Thema Datensicherung, das mir besonders am Herzen liegt.
Weil ich immer wieder auf meine Sicherungen zurückgreifen musste und mit vielen existierenden Lösungen nicht zufrieden bin, stelle ich einen eigenen Service auf die Füsse.

Alles in allem stoße ich immer wieder auf Tipps, bekannte Probleme, Lösungen, Code-Schnippsel die es wert sind aufgehoben zu werden.
Und aufheben werde ich sie in Zukunft hier.

Viel Spaß beim Lesen! Und ich freue mich auf Eure Kommentare!

Christian