{"id":224,"date":"2017-05-31T01:23:02","date_gmt":"2017-05-30T23:23:02","guid":{"rendered":"https:\/\/www.pingu-mobil.de\/iot\/?p=224"},"modified":"2021-05-14T10:07:52","modified_gmt":"2021-05-14T08:07:52","slug":"erster-teilerfolg-bzgl-browser-im-vollbildmodus","status":"publish","type":"post","link":"http:\/\/www.iot-embedded.de\/iot-2017\/technik\/erster-teilerfolg-bzgl-browser-im-vollbildmodus\/","title":{"rendered":"Erster Teilerfolg bzgl. Browser im Vollbildmodus"},"content":{"rendered":"<p>Das UI des Magic Mirror-Projekts basiert, modernen Entwicklungstrends folgend, auf einer HTML5-Weboberfl\u00e4che. Der Raspberry Pi muss beim Hochfahren also eine grafische Umgebung mit einem Browser im Vollbild- bzw. Kioskmodus starten. Aus diesem Grund habe ich auch versucht, m\u00f6glichst viel zum Linux Grafik Stack im Skript zu beschreiben. Es fehlen aber noch ein paar entscheidende Stellen, weil ich die Sachen ja quasi selbst erst hinbekommen muss, bevor ich sie im Skript dokumentieren kann.<\/p>\n<p>Folgendes habe ich inzwischen hinbekommen:<\/p>\n<ul>\n<li>Kompilieren von Weston als grafische Umgebung<\/li>\n<li>Start von Westen beim Hochfahren als unpriviligierter Benutzer (war tats\u00e4chlich etwas T\u00fcftelarbeit)<\/li>\n<li>Kompilieren des Midori Browsers (basiert auf Webkit)<\/li>\n<\/ul>\n<p>Die ersten beiden Punkte sind im Skript schon beschrieben, der Midori Browser noch nicht. Anscheinend hatte ich mir einfach durch zu viel Ausprobieren irgend etwas zerschossen. Nach einem &#8222;make clean&#8220; war es aber eigentlich ganz einfach. (Merke: Reboot tut immer gut). Ich musste eigentlich nur wie im Skript beschrieben Weston aktivieren und dann zus\u00e4tzlich folgende Eintr\u00e4ge ausw\u00e4hlen:<\/p>\n<ul>\n<li>Target packages &#8211;&gt; Libraries &#8211;&gt; Graphics &#8211;&gt; libgtk3<\/li>\n<li>Target packages &#8211;&gt; Libraries &#8211;&gt; Graphics &#8211;&gt; libgtk3 &#8211;&gt; Wayland backend<\/li>\n<li>Target packages &#8211;&gt; Graphic applications &#8211;&gt; midori<\/li>\n<\/ul>\n<p>Dennoch l\u00e4uft der Browser noch nicht. Als letztes Puzzlest\u00fcck muss ich nun noch die 3D-Grafikbeschleunigung zum Laufen bringen. Denn bisher kann Wayland nur den Linux-Framebuffer ohne Grafikbeschleunigung nutzen. Midori bzw. Webkit lassen sich damit aber nicht starten (s. Bildschirm<span style=\"color: #800000\">foto<\/span>). Sobald die Grafikbeschleunigung l\u00e4uft kann ich dann endlich die restlichen Teile zu &#8222;Grafik unter Linux&#8220; abschlie\u00dfen und eine vollst\u00e4ndige Konfiguration bereitstellen, die beim Hochfahren direkt bis zum Browser bootet.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-225 size-full\" src=\"http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Midori-SegFault.jpg\" alt=\"\" width=\"1056\" height=\"594\" srcset=\"http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Midori-SegFault.jpg 1056w, http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Midori-SegFault-300x169.jpg 300w, http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Midori-SegFault-1024x576.jpg 1024w, http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Midori-SegFault-768x432.jpg 768w\" sizes=\"(max-width: 1056px) 100vw, 1056px\" \/><\/p>\n<p>Wie ich <a href=\"https:\/\/wiki.gentoo.org\/wiki\/Raspberry_Pi_VC4\">schon herausgefunden habe<\/a>, muss auf der SD-Karte in der config.txt folgende Zeile eingef\u00fcgt werden, damit der Kernel den Grafiktreiber l\u00e4dt:<\/p>\n<pre>dtoverlay=vc4-fkms-v3d<\/pre>\n<p>Allerdings h\u00e4ngt sich der Raspberry Pi dann beim Hochfahren auf. Meine Vermutung ist nun, dass der Kernel zu alt ist, da an dem OpenSource 3D-Treiber f\u00fcr den Broadcom Videocore IV noch viel entwickelt wird. Blogposts wie <a href=\"http:\/\/free-electrons.com\/blog\/free-electrons-rpi-upstream-kernel\/\">dieser von Free Electrons<\/a> legen die Vermutung nahe, dass ich eine ganz aktuelle Kernelversion ben\u00f6tige. Mein n\u00e4chster Versuch wird daher sein, Buildroot auf die aktuellste Kernelversion umzulenken. Wenn dies nicht funktioniert, versuche ich es mit dem vorkompilierten Kernel aus dem <a href=\"https:\/\/github.com\/raspberrypi\/firmware\">offiziellen Raspberry Pi Firmware Git-Repository<\/a>.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-230\" src=\"http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Browser.jpg\" alt=\"\" width=\"500\" height=\"324\" srcset=\"http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Browser.jpg 500w, http:\/\/www.iot-embedded.de\/iot-2017\/wp-content\/uploads\/sites\/2\/2017\/05\/Browser-300x194.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das UI des Magic Mirror-Projekts basiert, modernen Entwicklungstrends folgend, auf einer HTML5-Weboberfl\u00e4che. Der Raspberry Pi muss beim Hochfahren also eine grafische Umgebung mit einem Browser im Vollbild- bzw. Kioskmodus starten. Aus diesem Grund habe ich auch versucht, m\u00f6glichst viel zum<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/posts\/224"}],"collection":[{"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":1,"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/posts\/224\/revisions"}],"predecessor-version":[{"id":582,"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/posts\/224\/revisions\/582"}],"wp:attachment":[{"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/media?parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/categories?post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.iot-embedded.de\/iot-2017\/wp-json\/wp\/v2\/tags?post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}