{"id":798,"date":"2018-04-16T13:04:47","date_gmt":"2018-04-16T11:04:47","guid":{"rendered":"http:\/\/blogs.igalia.com\/jaragunde\/?p=798"},"modified":"2018-06-22T11:16:54","modified_gmt":"2018-06-22T09:16:54","slug":"updated-chromium-for-genivi-platform","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/jaragunde\/2018\/04\/updated-chromium-for-genivi-platform\/","title":{"rendered":"Updated Chromium on the GENIVI platform"},"content":{"rendered":"<p>I&#8217;ve devoted some of my time at Igalia to get a newer version of Chromium running on the <a href=\"https:\/\/at.projects.genivi.org\/wiki\/pages\/viewpage.action?pageId=11567210\">GENIVI Development Platform<\/a> (GDP).<\/p>\n<p>Since the last update, there have been news regarding Wayland support in Chromium. My colleagues <a href=\"https:\/\/www.igalia.com\/nc\/igalia-247\/igalian\/item\/agomes\/\">Antonio<\/a>, <a href=\"https:\/\/www.igalia.com\/nc\/igalia-247\/igalian\/item\/msisov\/\">Maksim<\/a> and <a href=\"https:\/\/www.igalia.com\/nc\/igalia-247\/igalian\/item\/fwang\/\">Fr\u00e9d\u00e9ric<\/a> have worked on a new Wayland backend following modern Chromium architecture. You can find more information in their own blogs and talks. I&#8217;m linking the <a href=\"https:\/\/www.youtube.com\/watch?v=PzplMvdJPoI\">most recent talk<\/a>, from FOSDEM 2018.<\/p>\n<p><iframe loading=\"lazy\" title=\"The Chromium project&#039;s Way to Wayland (FOSDEM 2018)\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/PzplMvdJPoI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Everyone can already try the new, Igalia-developed backend on their embedded devices using the meta-browser layer. I built it along with the GDP but discovered that it cannot run as it is, due to the lack of ivi-shell hooks in the new Chromium backend. This is going to be fixed in the mid-term, so I decided not to spend a lot of time researching this and chose a different solution for the current GDP release.<\/p>\n<p>The LG SVL team <a href=\"http:\/\/webosose.org\/blog\/updated-chromium-lagacy-wayland-support\/\">recently announced<\/a> the release of an updated Ozone Wayland backend for Chromium, based on the legacy implementation provided by Intel, as a part of the webOS OSE project. This is an update on the backend we were already running on the GDP, so it looked like a good idea to reuse their work.<\/p>\n<p>I added the <a href=\"https:\/\/github.com\/lgsvl\/meta-lgsvl-browser\/\">meta-lgsvl-browser<\/a> layer to the GDP, which provides recipes for several Chromium flavors: <code>chromium-lge<\/code> is the one that builds upon the legacy Wayland backend and currently provides Chromium version 64.<\/p>\n<p>The <code>chromium-lge<\/code> browser worked out-of-the-box on Raspberry Pi, but I faced some trouble with the other supported platforms. In the case of ARM64 platforms, we were finding a &#8220;relocation overflow&#8221; problem. This is something that my colleagues had <a href=\"https:\/\/blogs.igalia.com\/msisov\/2017\/06\/09\/running-chromium-m60-on-r-car-m3-board-aglwayland\/\">already detected<\/a> when trying the new Wayland backend on the R-Car gen. 3 platform, and it can be fixed by enabling compiler optimization flags for binary size.<\/p>\n<p>In the case of Intel platforms, compilation failed due to a build-system assertion. It looks like Clang&#8217;s <a href=\"http:\/\/clang.llvm.org\/docs\/ControlFlowIntegrity.html\">Control Flow Integrity<\/a> feature is enabled by default on x64 Linux builds, but we aren&#8217;t using the Clang compiler. The solution consists just in disabling this feature, like the <a href=\"https:\/\/github.com\/OSSystems\/meta-browser\/blob\/d1c902440cba26a9d1271cfb914633c68ee3791c\/recipes-browser\/chromium\/chromium-gn.inc#L165\">upstream meta-browser<\/a> project was already doing.<\/p>\n<p><a href=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2018\/04\/IMG_20180410_182516.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2018\/04\/IMG_20180410_182516-1024x576.jpg\" alt=\"\" width=\"584\" height=\"329\" class=\"alignnone size-large wp-image-805\" srcset=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2018\/04\/IMG_20180410_182516-1024x576.jpg 1024w, https:\/\/blogs.igalia.com\/jaragunde\/files\/2018\/04\/IMG_20180410_182516-300x169.jpg 300w, https:\/\/blogs.igalia.com\/jaragunde\/files\/2018\/04\/IMG_20180410_182516-768x432.jpg 768w, https:\/\/blogs.igalia.com\/jaragunde\/files\/2018\/04\/IMG_20180410_182516-500x281.jpg 500w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>The ongoing work is shared in <a href=\"https:\/\/github.com\/GENIVI\/genivi-dev-platform\/pull\/174\">this pull request<\/a>. I hope to be able to make it for the next GDP release!<\/p>\n<p>Finally, this week my colleague Xavi is <a href=\"https:\/\/www.igalia.com\/nc\/igalia-247\/news\/item\/igalia-will-be-at-the-genivi-all-member-meeting-in-munich\/\">taking part in the GENIVI All Member Meeting<\/a>. If you are interested in browsers, make sure you attend his talk, &#8220;<a href=\"http:\/\/genivievents.com\/sessions\/wayland-support-in-open-source-browsers\/\">Wayland Support in Open Source Browsers<\/a>&#8220;, and visit our booth during the Member Showcase! (EDIT: check out the slides in <a href=\"https:\/\/www.slideshare.net\/igalia\/wayland-support-in-open-source-browsers-18th-genivi-amm\">our slideshare page<\/a>!)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve devoted some of my time at Igalia to get a newer version of Chromium running on the GENIVI Development Platform (GDP). Since the last update, there have been news regarding Wayland support in Chromium. My colleagues Antonio, Maksim and &hellip; <a href=\"https:\/\/blogs.igalia.com\/jaragunde\/2018\/04\/updated-chromium-for-genivi-platform\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":17,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,23,24,3],"tags":[25],"class_list":["post-798","post","type-post","status-publish","format-standard","hentry","category-automotive","category-browsers","category-chromium","category-igalia","tag-genivi"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts\/798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/comments?post=798"}],"version-history":[{"count":18,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts\/798\/revisions"}],"predecessor-version":[{"id":832,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts\/798\/revisions\/832"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/media?parent=798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/categories?post=798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/tags?post=798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}