{"id":129,"date":"2020-08-30T14:29:54","date_gmt":"2020-08-30T12:29:54","guid":{"rendered":"https:\/\/www.renaudschweingruber.com\/?p=129"},"modified":"2020-09-01T19:41:14","modified_gmt":"2020-09-01T17:41:14","slug":"retropie-x86","status":"publish","type":"post","link":"https:\/\/www.renaudschweingruber.com\/index.php\/2020\/08\/30\/retropie-x86\/","title":{"rendered":"RetroPie x86"},"content":{"rendered":"\n<p class=\"has-text-align-left\">Cela fait un moment que je n&rsquo;ai pas \u00e9crit sur ce blog et je me suis dit qu&rsquo;un dimanche pluvieux comme aujorud&rsquo;hui serait un jour id\u00e9al pour \u00e7a. <\/p>\n\n\n\n<p class=\"has-text-align-left\">J&rsquo;ai un NUC peu puissant qui traine dans un coin achet\u00e9 \u00e0 bas pris sur Ricardo.ch que j&rsquo;utilise pour faire des tests et me suis dit que j&rsquo;allais une fois essayer d&rsquo;installer RetroPie sur un processeur x86 pour comparer la qualit\u00e9 de l&rsquo;\u00e9mulation et la vitesse par rapport \u00e0 un Raspberry.<\/p>\n\n\n\n<p>En cherchant, je suis tomb\u00e9 sur <a href=\"https:\/\/www.lucaswilliams.net\/index.php\/tag\/howto\/\" class=\"external\" rel=\"nofollow\">un article<\/a> tr\u00e8s bien fait qui r\u00e9capitule toutes les \u00e9tapes pour le faire de mani\u00e8re simple et rapide. Il comprend cependant des typo dans les commandes \u00e0 passer qui sont pour moi g\u00e9nantes si quelqu&rsquo;un d&rsquo;inexp\u00e9riment\u00e9 veut le refaire. Le bug de cet article est donc de reprendre ce qui a \u00e9t\u00e9, de corriger ces quelques typos et l&rsquo;expliquer en fran\u00e7ais.<\/p>\n\n\n\n<p><em><strong>Edit <\/strong>: apr\u00e8s avoir r\u00e9dig\u00e9 cet article, je me suis rendu compte que quelqu&rsquo;un avait encore plus facilit\u00e9 le processus, rendant caduque le reste de l&rsquo;article, gr\u00e2ce \u00e0 <a href=\"https:\/\/github.com\/MizterB\/RetroPie-Setup-Ubuntu\" class=\"external\" rel=\"nofollow\">ce script<\/a> que je vous recommande fortemment.<\/em><\/p>\n\n\n\n<p>La premi\u00e8re \u00e9tape est donc de t\u00e9l\u00e9charger un ISO de Ubuntu 18.04 LTS version serveur et d&rsquo;imager une cl\u00e9 USB avec (par exemple avec Balena Etcher). Pourquoi la version serveur ? Simplement parce qu&rsquo;elle est d\u00e9nu\u00e9e d&rsquo;interface graphique que nous n&rsquo;utiliserons pas, ce qui la rend plus light et ne consommera pas de l&rsquo;espace de stockage inutilement.<\/p>\n\n\n\n<p>Pour l&rsquo;installation d&rsquo;Ubuntu, je vous recommande de laisser toutes les options par d\u00e9faut : utiliser le disque complet, pas de LVM, pas d&rsquo;encrpytion, DHCP pour l&rsquo;Ethernet et cliquer sur installer.<\/p>\n\n\n\n<p>Ensuite, pour la cr\u00e9ation d&rsquo;un user de base, entrez les m\u00eames identifiants que vous utiliseriez sur un Pi, pas besoin de complexifier quelque chose qui ne le n\u00e9cessite pas (apr\u00e8s, c&rsquo;est vous qui voyez&#8230;).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>User: Retro Pie<\/li><li>Server Name: retropie<\/li><li>Username: Pi<\/li><li>Password: raspberry<\/li><\/ul>\n\n\n\n<p>J&rsquo;ai \u00e9galement configur\u00e9 l&rsquo;OS pour activer SSH afin de pouvoir facilement effectuer les op\u00e9rations suivantes depuis ma machine principes.<\/p>\n\n\n\n<p>Apr\u00e8s quelques minutes se termine l&rsquo;installation et vous pouvez retirer la cl\u00e9 USB.<\/p>\n\n\n\n<p>Il est recommand\u00e9 d&rsquo;utiliser le noyeau HWE pour RetroPie car les kernels plus r\u00e9cents disposent de fonctionnalit\u00e9s que RetroPie n&rsquo;utilise pas. Rappelez-vous : light is right. Pour le faire, commencez avec ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt upgrade\nsudo apt install --install-recommends linux-generic-hwe-18.04<\/code><\/pre>\n\n\n\n<p>Puis red\u00e9marrez votre NUC. Une fois red\u00e9marr\u00e9, on va entrer dans le vif du sujet avec RetroPie. Connectez-vous donc \u00e0 votre NUC en SSH.<\/p>\n\n\n\n<p>On va d&rsquo;abord faire en sorte que l&rsquo;utilisateur \u00ab\u00a0pi\u00a0\u00bb soit en mesure de lancer des commandes en tant que root (sudo) sans pasword (\u00e7a ira beaucoup plus vite pour la suite):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sed -i -e '$a\\pi ALL=(ALL) NOPASSWD:ALL' \/etc\/sudoers<\/code><\/pre>\n\n\n\n<p>Rentrez le password configur\u00e9 et nous serons bons, vous n&rsquo;aurez plus \u00e0 rentrer de mani\u00e8re syst\u00e9matique ce password.<\/p>\n\n\n\n<p>Ensuite, nous allons ajouter le repository universe avec toutes les d\u00e9pendances n\u00e9cessaires \u00e0 RetroPie :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-add-repository universe\nsudo apt update -y\nsudo apt upgrade -y \nsudo apt install xorg openbox pulseaudio alsa-utils menu libglib2.0-bin python-xdg at-spi2-core dbus-x11 git dialog unzip xmlstarlet --no-install-recommends -y<\/code><\/pre>\n\n\n\n<p>On va ensuite cr\u00e9er un script d&rsquo;autod\u00e9marrage OpenBox afin de d\u00e9marrer le terminal puis d\u00e9marrer EmulationStation :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/.config\/openbox\necho 'gnome-terminal --full-screen --hide-menubar -- emulationstation' >> ~\/.config\/openbox\/autostart<\/code><\/pre>\n\n\n\n<p>Puis un fichier .xsession adapt\u00e9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'exec openbox-session' >> ~\/.xsession<\/code><\/pre>\n\n\n\n<p>On fait en suite que X11 d\u00e9marre au boot :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'if &#91;&#91; -z $DISPLAY ]] &amp;&amp; &#91;&#91; $(tty) = \/dev\/tty1 ]]; then' >> ~\/.bash_profile\nsed -i '$ a\\startx -- -nocursor >\/dev\/null 2>&amp;1' ~\/.bash_profile \nsed -i '$ a\\fi' ~\/.bash_profile<\/code><\/pre>\n\n\n\n<p>On souhaite ensuite que l&rsquo;utilisateur pi se logue automatiquement et que EmulationStation devienne l&rsquo;\u00e9cran principale affich\u00e9 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/etc\/systemd\/system\/getty@tty1.service.d\nsudo sh -c 'echo &#91;Service] >> \/etc\/systemd\/system\/getty@tty1.service.d\/override.conf' \nsudo sed -i '$ a\\ExecStart=' \/etc\/systemd\/system\/getty@tty1.service.d\/override.conf\nsudo sed -i '$ a\\ExecStart=-\/sbin\/agetty --skip-login --noissue --autologin pi %I $TERM' \/etc\/systemd\/system\/getty@tty1.service.d\/override.conf\nsudo sed -i '$ a\\Type=idle' \/etc\/systemd\/system\/getty@tty1.service.d\/override.conf<\/code><\/pre>\n\n\n\n<p>Apr\u00e8s \u00e7a, nous sommes d\u00e9sormais pr\u00eats pour d\u00e9marrer le t\u00e9l\u00e9chargement de RetroPie depuis le repository Git et lancer le script d&rsquo;isntallation :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone --depth=1 https:\/\/github.com\/RetroPie\/RetroPie-Setup.git\nsudo RetroPie-Setup\/retropie_setup.sh<\/code><\/pre>\n\n\n\n<p>Ceci va lancer l&rsquo;installation de RetroPie. Acceptez l&rsquo;EULA et choisissez l&rsquo;installation \u00ab\u00a0Basic\u00a0\u00bb. Selectionnez \u00ab\u00a0Yes\u00a0\u00bb pour installer tous les packages de Core et Main. C&rsquo;est d\u00e9sormais le moment o\u00f9 vous pouvez aller faire autre chose, le processus de compilation va prendre du temps.<\/p>\n\n\n\n<p>Une fois la compilation termin\u00e9e, vous pouvez red\u00e9mmarer votre NUC depuis le menu.<\/p>\n\n\n\n<p>L&rsquo;article original contient ensuite des instructions de customisation pour l&rsquo;utilisation d&rsquo;une manette Xbox One. N&rsquo;en ayant pas une, je passerai au dessus de ces explications. Si cela vous int\u00e9resse, je vous recommande de vous r\u00e9f\u00e9rer \u00e0 l&rsquo;article original.<\/p>\n\n\n\n<p>L&rsquo;\u00e9tape suivante sera de rendre les choses un peu plus jolies et cacher toutes ces vilains logs au boot qui d\u00e9montrent trop qu&rsquo;il s&rsquo;agit d&rsquo;un b\u00eate Linux. On va donc cacher tout \u00e7a avec Plymouth avec le theme par d\u00e9faut de Pacman :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install plymouth plymouth-themes plymouth-x11 -y\ngit clone --depth=1 https:\/\/github.com\/HerbFargus\/plymouth-themes.git tempthemes\nsudo cp -r ~\/tempthemes\/. \/usr\/share\/plymouth\/themes\/\nrm -rf tempthemes\nsudo update-alternatives --install \/usr\/share\/plymouth\/themes\/default.plymouth default.plymouth \/usr\/share\/plymouth\/themes\/retropie-pacman\/retropie-pacman.plymouth 10\nsudo update-alternatives --set default.plymouth \/usr\/share\/plymouth\/themes\/retropie-pacman\/retropie-pacman.plymouth\nsudo update-initramfs -u\nsudo cp \/etc\/default\/grub \/etc\/default\/grub.backup\nsudo sed -i -e 's\/GRUB_TIMEOUT=10\/GRUB_TIMEOUT=2\/g' \/etc\/default\/grub\nsudo sed -i -e 's\/GRUB_CMDLINE_LINUX=\"\"\/GRUB_CMDLINE_LINUX=\"quiet splash\"\/g' \/etc\/default\/grub\nsudo update-grub<\/code><\/pre>\n\n\n\n<p>Puis on cache les infos de last login :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sed -i -e 's\/session optional pam_lastlog.so\/#session  optional pam_lastlog.so\/g' \/etc\/pam.d\/login\nsudo sed -i -e 's\/session optional pam_motd.so motd=\\\/run\\\/motd.dynamic\/#session optional pam_motd.so motd=\\\/run\\\/motd.dynamic\/g' \/etc\/pam.d\/login\nsudo sed -i -e 's\/session optional pam_motd.so noupdate\/#session optional pam_motd.so noupdate\/g' \/etc\/pam.d\/login\nsudo sed -i -e 's\/session optional pam_mail.so standard\/#session optional pam_mail.so standard\/g' \/etc\/pam.d\/login<\/code><\/pre>\n\n\n\n<p>On cache le terminal :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -i '1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ use-theme-colors false' ~\/.bash_profile \nsed -i '1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ use-theme-transparency false' ~\/.bash_profile \nsed -i '1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ default-show-menubar false' ~\/.bash_profile \nsed -i \"1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ foreground-color '#FFFFFF'\" ~\/.bash_profile \nsed -i \"1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ background-color '#000000'\" ~\/.bash_profile \nsed -i \"1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ cursor-blink-mode 'off'\" ~\/.bash_profile \nsed -i \"1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ scrollbar-policy 'never'\" ~\/.bash_profile \nsed -i '1 i\\dbus-launch gsettings set org.gnome.Terminal.Legacy.Profile:\/org\/gnome\/terminal\/legacy\/profiles:\/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9\/ audible-bell false' ~\/.bash_profile \ncp \/etc\/xdg\/openbox\/rc.xml ~\/.config\/openbox\/rc.xml \ncp ~\/.config\/openbox\/rc.xml ~\/.config\/openbox\/rc.xmlbackup \nsed -i '\/\/a ' ~\/.config\/openbox\/rc.xml \nsed -i '\/\/a true ' ~\/.config\/openbox\/rc.xml \nsed -i '\/\/a no ' ~\/.config\/openbox\/rc.xml \nsed -i '\/\/a below ' ~\/.config\/openbox\/rc.xml \nsed -i '\/\/a no ' ~\/.config\/openbox\/rc.xml \nsed -i '\/\/a yes ' ~\/.config\/openbox\/rc.xml \nsed -i '\/\/a ' ~\/.config\/openbox\/rc.xml<\/code><\/pre>\n\n\n\n<p>Vous comprenez maintenant pourquoi il est recommand\u00e9 d&rsquo;utiliser SSH ? \ud83d\ude42<\/p>\n\n\n\n<p>Et pour finir, on va retirer cloud-init, qui ne nous sert \u00e0 rien :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt purge cloud-init -y\nsudo rm -rf \/etc\/cloud\/\nsudo rm -rf \/var\/lib\/cloud\/<\/code><\/pre>\n\n\n\n<p>Voil\u00e0, vous devriez d\u00e9sormais \u00eatre op\u00e9rationnels ! Il se peut qu&rsquo;il faille tweaker un peu certains param\u00e8tres graphiques pour obtenir de meilleures performances. Il s&rsquo;av\u00e8re que jouer en 4k va rendre l&rsquo;exp\u00e9rience tr\u00e8s mauvaise et il vous est sugg\u00e9r\u00e9 de rester en 1080p. <\/p>\n\n\n\n<p>Amusez-vous bien !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cela fait un moment que je n&rsquo;ai pas \u00e9crit sur ce blog et je me suis dit qu&rsquo;un dimanche pluvieux comme aujorud&rsquo;hui serait un jour id\u00e9al pour \u00e7a. J&rsquo;ai un NUC peu puissant qui traine dans un coin achet\u00e9 \u00e0 bas pris sur Ricardo.ch que j&rsquo;utilise pour faire des tests et me suis dit que &hellip; <a href=\"https:\/\/www.renaudschweingruber.com\/index.php\/2020\/08\/30\/retropie-x86\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">RetroPie x86<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":135,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6],"tags":[],"class_list":["post-129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-emulation","category-raspberry"],"_links":{"self":[{"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/posts\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/comments?post=129"}],"version-history":[{"count":12,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/posts\/129\/revisions"}],"predecessor-version":[{"id":142,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/posts\/129\/revisions\/142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/media\/135"}],"wp:attachment":[{"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/media?parent=129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/categories?post=129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.renaudschweingruber.com\/index.php\/wp-json\/wp\/v2\/tags?post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}