Google Nexu5 s lässt sich nicht mehr einschalten

Leider gehen beim Google Nexus 5 (eigentlicher Hersteller LG) die Schalter nach einiger Zeit kaputt.

Um an die Daten ran zukommen, habe ich den Schalter ausgelötet und temporäre Strippen zum kurzschließen rangelötet. Damit konnte ich wenigsten die Bilder sichern.

Den Schalter gibts relative günstige z.B. bei Ebay „LG Nexus 5 D820 D821 Power Switch“. Diesen dann mit SMD Lötpaste eingelötet und das gute Stück geht wieder.

Handy Repair – Google Nexus
Handy Repair – Google Nexus
Handy Repair – Google Nexus
Handy Repair – Google Nexus

Reparatur Kinder Waschmaschine

Die Waschmaschine meiner Nichte wollte nicht mehr anlaufen und war deswegen sehr traurig – so wie Kinder halt traurig sein können …

Beim Aufschrauben ist mir die Haarspange entgegengeflogen. Keine Ahnung wie sie das geschafft hat, jedenfalls von der Barbie war es nicht. Auch war es nicht der Grund des Defekts.

Kinder Waschmaschine Reparatur

Der Schalter in der Tür schloß nicht mehr und war lose. Ich habe den Schalter zurecht gebogen und neu fixiert. Probelauf und das Lächeln war mir sicher …

Kinder Waschmaschine Reparatur
Kinder Waschmaschine Reparatur
Kinder Waschmaschine Reparatur
Kinder Waschmaschine Reparatur

Open82541 UA_Variant to String

Ich habe in letzter Zeit einige Projekte mit OPC UA und der freien Biblothek open62541 von open62541.org abgewickelt. Die Bibliothek wird aktiv betreut und kann mit ihren kommerziellen Konkurenten sehr gut mithalten, auch in produktiven Umgebungen.

Direktes Lesen und Konvertieren von Variablen in die C/C++ Equivalente ist sehr einfach möglich, nur Strings wollten nicht. Hintergrund ist, dass der Daten Pointer des variablen Datentype UA_Variant nicht Nullterminiert ist. Man muss deswegen ein neues String Objekt erzeugen und den Datenpointer inkl. Länger übergeben. Dann funktioniert es auch!

Für alle Open62541 User hier ein kurzes Beispiel, ohne das der eigentliche Datentyp explizit geprüft wird, damit das Beispiel kurz und verständlich bleibt.

#include <string>
#include "open62541.h"

std::string get_variable(UA_Client *client, int namespace_index, char *variable)
{
    std::string       ret;
    UA_Variant       *var;
    UA_NodeId         node_id;
    UA_StatusCode     status;
    UA_String         tmp_str;

    node_id = UA_NODEID_STRING(namespace_index, variable);
    status = UA_Client_readValueAttribute(client, node_id, var);

    if(status == UA_STATUSCODE_GOOD)
    {
       tmp_str = *reinterpret_cast<UA_String*>(var->data);
       ret = std::string(reinterpret_cast<char *>(tmp_str.data), tmp_str.length);
    }

    return ret;
}

Compilieren z.B. mit folgendem Befehl um eine Bibliothek zu erstellen:

g++ -c -o test test.c

Ubuntu 18.04 Update – LXC Container starten nicht

Ich nutze auf meinem Ubuntu Server LXC Kontainer. Beim Update von Ubuntu 16.04 auf 18.04 funktionieren diese nicht mehr. Das hat zwei Gründe:

  1. Gibt es das Hilfsscript unter /usr/share/lxc/config/debian.common.conf nicht mehr
  2. Es wurde auf einen neuen Konfigurationsdateivariante umgestellt

Man kann die Konfigurationen für alle Kontainer unter /var/lib/lxc/ finden. Zum Debuggen kann man folgende Zeile verwenden

lxc-start -n <container> -F --logfile=/var/log/lxc<container>.log --logpriority=debug

Dabei steht <container> für den Container, den man starten will.

In der Configuration unter /var/lib/lxc/<container>/config muss folgende Zeile auskommentiert werden:

lxc.include = /usr/share/lxc/config/debian.common.conf
#lxc.include = /usr/share/lxc/config/debian.common.conf

Anschließend konvertiert man die Datei noch ins neue Format. Dabei wird eine Kopie angelegt. Ich habe dazu noch mein eigenes Backup angelgt, man weiß ja nie.

lxc-update-config -c config

bzw.

lxc-update-config -c /var/lib/lxc/<container>/config

 

Ubuntu 18.04 Update – kein KDE Desktop

Ich habe vor kurzem mein Ubuntu von 16.04 auf 18.04 geupdatet. Zur Vorbereitung sollte man die wichtigsten Dinge sichern und das System auf den letzten Stand updaten:

apt-get update
apt-get upgrade
apt-get dist-upgrade

Es gibt zwei Methoden hierfür:

Ubuntumethode

Hierfür wird das Paket „“ installiert und anschließend der Updatemanager ausgeführt:

apt-get install update-managerdo-release-upgrade

Debianmethode

Hierfür wird einfach das Release im APT ersetzt und dann ein Update//Upgrade durchgeführt.

sed -i -e "s/xenial/bionic/g" /etc/apt/sources.list
apt-get update
apt-get dist-upgrade

Danach werden einige Dateien heruntergeladen und man wird ggf. gefragt ob man seine Konfigurationen behalten will oder die Systemmaintainer Version installieren will. Das bleibt jedem selber überlassen.

Nach dem Update ist bei mir ist zwar der Loginscreen erschienen, allerdings war nach dem eintippen der Logindaten Schluß und der bekannte Desktop (bei mir KDE) wurde nicht geladen.

Als ersten Versuch habe ich versucht den Grafikmanager SDDM neu zu konfigurieren aber ohne Erfolg.

apt-get install --reinstall sddm

Ein weitere Info aus mehreren Blogs lautet, Nvidia Pakete zu deinstallieren und ggf. die Treiber für die Nvidia Grafikkarten von Nvidia herunterzuladen.

apt-get remove nvidia-*

Lösung brachte das Paket „plasma-workspace-wayland“.

apt-get install plasma-workspace-wayland

Der Hintergrund ist auch klar: KDE ist auf dem „alten“ System installiert. Der neue X-Server ist aber bei Ubuntu 18.04 nicht X11 sondern Wayland. KDE braucht deswegen ein Zwischenpaket, welches die API auf Wayland umsetzt.

Dann läufts auch mit KDE wieder.

PS.: Über Wayland und X11 lässt sich streiten, genauso über die verschiedenen Oberflächen wie KDE, Gnome, …

←Older