{"id":709,"date":"2017-02-27T14:16:15","date_gmt":"2017-02-27T13:16:15","guid":{"rendered":"http:\/\/blogs.igalia.com\/jaragunde\/?p=709"},"modified":"2017-06-14T12:55:49","modified_gmt":"2017-06-14T10:55:49","slug":"genivi-fying-chromium-part-2","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/jaragunde\/2017\/02\/genivi-fying-chromium-part-2\/","title":{"rendered":"GENIVI-fying Chromium, part 2"},"content":{"rendered":"<p>In the <a href=\"https:\/\/blogs.igalia.com\/jaragunde\/2017\/01\/11\/genivi-fying-chromium\">previous blog post<\/a>, we introduced the work to port Chromium to the <a href=\"https:\/\/at.projects.genivi.org\/wiki\/pages\/viewpage.action?pageId=11567210\">GENIVI Development Platform<\/a> (GDP). We have continued working to improve the integration, and make everything easier to build.<\/p>\n<p>In first place, we are now using the latest code from the <a href=\"https:\/\/github.com\/01org\/ozone-wayland\">Ozone-Wayland<\/a> project that builds on top of Chromium 53 instead of Chromium 48. We have rebased the <em>meta-browser<\/em> recipes for the newer version and <a href=\"https:\/\/github.com\/OSSystems\/meta-browser\/commit\/d875f40c3a120118ddf998545dd7efba09d01cc1\">contributed the patch<\/a> to the upstream project, together with other patches to clean the build process and to fix issues on certain platforms.<\/p>\n<p>Some issues detected in the earlier steps of the integration were addressed. The aspect ratio of the browser window has been modified to fit the GDP demonstration HMI. A performance degradation when playing video had also been detected, the problem was not actually in Chromium, Pulseaudio was taking all the CPU away from the browser processes when using the default null sink. We fixed it by setting Alsa as the default sink with the command <code>pacmd \"set-default-sink AlsaPrimary\"<\/code> (do it in <code>\/etc\/pulse\/default.pa<\/code> to make the change persistent). We are obviously bypassing the GENIVI Audio Manager here, it should be integrated at a later point.<\/p>\n<p>We are in the <a href=\"https:\/\/github.com\/GENIVI\/meta-genivi-dev\/pull\/53\">process to merge our patches<\/a> into the GENIVI platform, to make the Chromium browser part of the default build. You currently have to use <a href=\"https:\/\/github.com\/jaragunde\/meta-genivi-dev\/tree\/chromium-integration\">our fork of <em>meta-genivi-dev<\/em><\/a>, while the <em>meta-browser<\/em> layer <a href=\"https:\/\/github.com\/GENIVI\/genivi-dev-platform\/pull\/59\">has already been added<\/a> as a submodule and it&#8217;s not necessary to explicitly add it.<\/p>\n<p>Finally, we have been testing how Chromium and Ozone-Wayland behave in multi-seat environments using the <a href=\"https:\/\/at.projects.genivi.org\/wiki\/display\/PROJ\/Wayland+IVI+Extension\">Wayland IVI Extension<\/a> and the IVI Layer Manager libraries to have full control of screens, layers, surfaces and focus. We have extracted <a href=\"http:\/\/lists.genivi.org\/pipermail\/genivi-projects\/2017-February\/005263.html\">some conclusions<\/a> that will allow us to make Chromium behave as expected in this scenario.<\/p>\n<div id=\"attachment_710\" style=\"width: 3210px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2017\/02\/IMG_20170208_141354.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-710\" src=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2017\/02\/IMG_20170208_141354.jpg\" alt=\"\" width=\"3200\" height=\"1800\" class=\"size-full wp-image-710\" \/><\/a><p id=\"caption-attachment-710\" class=\"wp-caption-text\">Chromium on a multi-seat environment<\/p><\/div>\n<p>All the work we have done is publicly available already. You may try it by:<\/p>\n<ul>\n<li>Setting up <a href=\"https:\/\/at.projects.genivi.org\/wiki\/display\/GDP\/GDP+Master\">GDP master<\/a> for your board. Make sure you are using the latest master to get the <em>meta-browser<\/em> layer automatically.<\/li>\n<li>While review is ongoing, you may add <a href=\"https:\/\/github.com\/jaragunde\/meta-genivi-dev\/tree\/chromium-integration\">our fork<\/a> as a new remote for the <em>meta-genivi-dev<\/em> submodule and switch to the <code>chromium-integration<\/code> branch.<\/li>\n<li>Finally, just bitbake your image, the Chromium browser has been made part of the default image in one of the <em>meta-genivi-dev<\/em> patches.<\/li>\n<\/ul>\n<p>A warning about platforms: please notice we are currently using a Minnowboard as a test platform. There is a <a href=\"http:\/\/lists.openembedded.org\/pipermail\/openembedded-devel\/2017-February\/110974.html\">known issue<\/a> on Raspberry Pi that we hope will be fixed soon. Regarding R-Car Gen. 2 boards, we think it should work, we have <a href=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2015\/10\/igalia_building_chromium_embedded_platform.pdf\">ran Chromium there before<\/a> but not recently.<\/p>\n<p>This work is performed by <a href=\"https:\/\/www.igalia.com\">Igalia<\/a> and sponsored by <a href=\"https:\/\/www.genivi.org\/\">GENIVI<\/a> through the Challenge Grant Program. Thank you!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2017\/01\/GENIVI_Black_Logo-no_background-300x263.png\" alt=\"GENIVI logo\" width=\"300\" height=\"263\" class=\"aligncenter size-medium wp-image-681\" srcset=\"https:\/\/blogs.igalia.com\/jaragunde\/files\/2017\/01\/GENIVI_Black_Logo-no_background-300x263.png 300w, https:\/\/blogs.igalia.com\/jaragunde\/files\/2017\/01\/GENIVI_Black_Logo-no_background-342x300.png 342w, https:\/\/blogs.igalia.com\/jaragunde\/files\/2017\/01\/GENIVI_Black_Logo-no_background.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the previous blog post, we introduced the work to port Chromium to the GENIVI Development Platform (GDP). We have continued working to improve the integration, and make everything easier to build. In first place, we are now using the &hellip; <a href=\"https:\/\/blogs.igalia.com\/jaragunde\/2017\/02\/genivi-fying-chromium-part-2\/\">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":[26,25],"class_list":["post-709","post","type-post","status-publish","format-standard","hentry","category-automotive","category-browsers","category-chromium","category-igalia","tag-chromium-on-genivi","tag-genivi"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts\/709","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=709"}],"version-history":[{"count":10,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts\/709\/revisions"}],"predecessor-version":[{"id":724,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/posts\/709\/revisions\/724"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/media?parent=709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/categories?post=709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/jaragunde\/wp-json\/wp\/v2\/tags?post=709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}