Owncloud Fehler „cURL is using outdated NSS version“

Meine Owncloud zeigte schon seit einer ganzen Zeit auf der Admin Seite zwei Fehler an:

cURL is using an outdated NSS version (NSS/3.15.4). Please update your operating system or features such as installing and updating apps via the app store or Federated Cloud Sharing will not work reliably.

und

This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features.

In Google findet man etliche Hinweise auf diese Fehler, mit einigen Tipps wie das Ganze zu beheben wäre, die mir aber alle nicht geholfen haben. Im Endeffekt liegt das Problem bei den cURL und SSH Versionen, die von einem RHEL 7, CentOS 7 oder Scientific Linux 7 verwendet werden.
„Owncloud Fehler „cURL is using outdated NSS version““ weiterlesen

Software RAID: Festplatte tauschen

In meinem Server sind 6 Festplatten installiert und mittel Software RAID (mdadm) redundant konfiguriert.

Eine dieser Festplatten scheint gerade auszufallen, und im folgenden möchte ich beschreiben wie man diesen Zustand erkennt und wie man die Platte ohne Datenverlust gegen eine Neue austauchen kann.

„Software RAID: Festplatte tauschen“ weiterlesen

Owncloud und SELinux

Ich betreibe einen Owncloud Server auf Scientific Linux 7.1.
Scientific Linux basiert auf RedHat Enterprise Linux (genau wie CentOS) und ist eine sehr stabile und ausgereifte Platform.

Einen kleinen Haken gibt es bei diesen Linuxen: SELinux

Na gut, nicht nur ein Haken, es erhöht auch die Sicherheit, ist allerdings nicht gerade intuitiv zu bedienen.

In meinem Fall gab es nach der Installation immer wieder SELinux Fehlermeldungen der folgenden Art:

May 12 20:57:09 arthus setroubleshoot: SELinux is preventing /usr/sbin/httpd from getattr access on the file /mnt/owncloud/data/tethisit/files/IMAG0032.jpg. For complete SELinux messages. run sealert -l 5148762e-03f3-4f4d-bc0a-ffc018b540ec

„Owncloud und SELinux“ weiterlesen

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