{"id":151,"date":"2018-09-16T21:45:32","date_gmt":"2018-09-16T20:45:32","guid":{"rendered":"http:\/\/www.fabidouille.com\/?p=151"},"modified":"2018-09-17T09:22:10","modified_gmt":"2018-09-17T08:22:10","slug":"mazdette","status":"publish","type":"post","link":"https:\/\/www.fabidouille.com\/?p=151","title":{"rendered":"Mazdette!"},"content":{"rendered":"<p>Bonjour,<\/p>\n<p>Pas mal de choses depuis la derni\u00e8re fois, des choses non bidouillesques,\u00a0des choses bidouillesques mais pas (encore?) racont\u00e9es et une chose bidouillesque que je m&rsquo;en vais vous raconter maintenant.<\/p>\n<p>Satisfait possesseur d&rsquo;une Mazda 2 2015 achet\u00e9e neuve en septembre 2015, je me suis permis de la tweaker quelque peu, quelques mois apr\u00e8s la premi\u00e8re mise en circulation \u00e0 l&rsquo;aide de <a href=\"https:\/\/github.com\/Trevelopment\/MZD-AIO\/\">soft-tout-fait-qui-marchotte-mais-un-peu-fait-main-quand-m\u00eame facilement trouvable sur l&rsquo;Internet Mondial<\/a>, comme disent certains.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/visser.io\/wp-content\/uploads\/2017\/04\/maxresdefault-825x510.jpg\" alt=\"Image result for mazda entertainment cmu\" \/><\/p>\n<p>\u00ab\u00a0Bien\u00a0\u00bb, tu me diras lecteur restant \u00e0 convaincre, \u00ab\u00a0mais pourquoi en \u00e9taler la dessus?\u00a0\u00bb<\/p>\n<p>Il se trouve qu&rsquo;il y a quelques semaines de cela, j&rsquo;ai r\u00e9it\u00e9r\u00e9 l&rsquo;op\u00e9ration pour ajouter -notamment- une fonctionnalit\u00e9 des plus int\u00e9ressantes pour le grand utilisateur d&rsquo;app android podcasts\/deezer que je suis: Android Auto. AInsi que mettre une s\u00e9quence de boot anim\u00e9 \u00e0 la Matrix -parce que je le trouve joli- et un fond d&rsquo;\u00e9cran repr\u00e9sentant un syst\u00e8me stellaire imaginaire -pour la m\u00eame raison-.<\/p>\n<p>Apr\u00e8s une partielle r\u00e9ussite, le seul d\u00e9faut subsistant consistait en un d\u00e9faut majeur d&rsquo;affichage du lecteur audio legacy, que j&rsquo;ai souhait\u00e9 corriger en tweakant plus que le tweaker, et l\u00e0 les foudres de l&rsquo;enfer commenc\u00e8rent \u00e0 pointer le bout de leur nez.<\/p>\n<p>En effet, le jour m\u00eame du retour d&rsquo;une semaine de vacances -un dimanche, ce d\u00e9tail aura son importance plus tard-, je me lance dans cette \u00ab\u00a0correction finale\u00a0\u00bb qui se cl\u00f4t par une impassible, fatale, implacable s\u00e9quence de boot qui ne peut finir. Infinie d\u00e9ception.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcTGRLAGFPQdfHbbagUJ0G1yC8kS3wNNDTYqVKH_fvbdYTzLDHS7\" alt=\"Related image\" \/><\/p>\n<p>Sans le d\u00e9crire, le syst\u00e8me sur lequel se base l&rsquo;outil de tweaking mentionn\u00e9 plus haut ressemble aux autorun des anciens (et peut \u00eatre actuels?) Windows.<\/p>\n<p>L&rsquo;outil lanc\u00e9, il se manifeste en ouvrant via un simple appel de script sh (oui, le syst\u00e8me audio\/video\/gps vis\u00e9 par ces modifications tourne sous un linux custom) des fen\u00eatres sur l&rsquo;\u00e9cran embarqu\u00e9 dans la voiture pour manifester ses activit\u00e9s.<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/windows-27927_1280.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-152\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/windows-27927_1280.png\" alt=\"\" width=\"317\" height=\"317\" \/><\/a><\/p>\n<p>Une des premi\u00e8res actions prises alors fut alors d&rsquo;activer la cr\u00e9ation d&rsquo;un access point (AP) wifi par la voiture (l&rsquo;utilisation standard est invers\u00e9e: la voiture se connecte typiquement \u00e0 un AP cr\u00e9e par un smartphone pour mettre \u00e0 jour certaines donn\u00e9es) et d&rsquo;un acc\u00e8s SSH, d\u00e9marche toujours assist\u00e9e par l&rsquo;outil de tweaking.<\/p>\n<p>Op\u00e9ration faite sur l&rsquo;autoroute de retour des vacances, bien s\u00fbr ni laptop ni t\u00e9l\u00e9phone au volant.<\/p>\n<p>Cet acc\u00e8s m&rsquo;a permis d&rsquo;accentuer nettement la situation dramatique dans laquelle je m&#8217;embourbais, car il me d\u00e9lia l&rsquo;acc\u00e8s au syst\u00e8me de fichier, en tant que root, de la voiture.<\/p>\n<p>La sagesse des premiers instants s&rsquo;est alors vite estomp\u00e9e, car quelques op\u00e9rations que je ne raconterai pas ici &#8211; qui impliquent <span style=\"color: #ff0000;\">chose \u00e0 ne jamais, jamais faire<\/span> de lancer <a href=\"https:\/\/mazda3revolution.com\/forums\/2014-2018-mazda-3-skyactiv-audio-electronics\/178554-mazda-cmu-v33-boot-loop.html\">un script qui parait bien trouv\u00e9 au hasard d&rsquo;un forum<\/a>\u00a0qui me causa la disparition pure et simple, sans backup, de fichiers critiques pour le syst\u00e8me &#8211;\u00a0 me firent dans un premier temps perdre l&rsquo;autorun (aucune fen\u00eatre ne s&rsquo;ouvrait apr\u00e8s l&rsquo;insertion de cl\u00e9s USB d\u00f4t\u00e9es de l&rsquo;autorun), et dans un deuxi\u00e8me temps l&rsquo;acc\u00e8s SSH.<\/p>\n<p>Je me retrouvai avec le syst\u00e8me de divertissement HS (sans GPS, audio, possibilit\u00e9 de modifier le comportement de l&rsquo;\u00e9clairage de la voiture, etc&#8230;), qui essaye mis\u00e9rablement de booter sans y parvenir.<\/p>\n<p>Le destin ayant toujours le moyen de garder le sourire, il s\u2019arrange\u00e2t pour que cette m\u00e9saventure arriva le jour m\u00eame des trois ans d&rsquo;anniversaire de l&rsquo;achat de ma voiture. Et la garantie \u00e9tait, bien entendue, de trois ans exactement.<\/p>\n<p>Le lendemain matin, j&rsquo;arrivai \u00e0 la premi\u00e8re heure, d\u00e9pit\u00e9, \u00e0 mon concessionnaire Mazda qui m&rsquo;annon\u00e7a qu&rsquo;en effet la garantie \u00e9tait d\u00e9pass\u00e9e depuis 8 heures.<\/p>\n<p>Le responsable local tente <a href=\"http:\/\/www.robzor.com\/2018%20FIRMWARE%20CMU%20UPDATE%20PROCEDURE-WORLDWIDE.pdf\">la proc\u00e9dure de recovery<\/a> qui consiste \u00e0 mettre le syst\u00e8me dans un mode sp\u00e9cial pour mettre \u00e0 jour le firmware (en appuyant simultan\u00e9ment sur les boutons musique+mute+favoris), sans effet. Peut \u00eatre est ce du \u00e0 la suppression du fichier sm.conf, qui semble s\u00e9quencer le d\u00e9marrage post boot kernel de certains composants importants..<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove4-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-158\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove4-1.png\" alt=\"\" width=\"122\" height=\"98\" \/><\/a><\/p>\n<p>..puis un technicien d\u00e9di\u00e9 confirme, on m&rsquo;annonce que cela n&rsquo;est pas r\u00e9parable, et qu&rsquo;il faut commander le nouveau module entier.<\/p>\n<p>Quelques mails et jours plus tard, un geste exceptionnel du constructeur me permettait d&rsquo;obtenir un nouveau CMU (c&rsquo;est le nom de la boite qui comprend l&rsquo;\u00e9cran, l&rsquo;ampli audio, le SOC ARM (un Freescale iMX6, un cat \/proc\/cpuinfo permet de le trouver) orchestrant tout cela) avec un rabais de 80%, c&rsquo;est \u00e0 dire 263.84 euros TTC au lieu de 1099.34 euros HT (prix standard Mazda), sans la pose bien entendu.<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-174\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove12.png\" alt=\"\" width=\"727\" height=\"43\" \/><\/a><\/p>\n<p>Nouvellement motiv\u00e9 par ce gain de pr\u00e8s de 300 euros, je m\u2019attelle \u00e0 la t\u00e2che de tentative de r\u00e9paration du syst\u00e8me dit irr\u00e9parable.<\/p>\n<p>Tout syst\u00e8me linux ou m\u00eame pas linux en g\u00e9n\u00e9ral, qu&rsquo;il soit compliqu\u00e9 (smartphone android, syst\u00e8me audio\/gps\/video voiture, gros routeur, tvbox&#8230;) ou plus simple (sonnette) permet quasi syst\u00e9matiquement une communication s\u00e9rie.<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/transmission-simultane-liaison-serie-rs232-cours-sciences-de-lingenieur-bac-s.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-159\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/transmission-simultane-liaison-serie-rs232-cours-sciences-de-lingenieur-bac-s.png\" alt=\"\" width=\"519\" height=\"311\" \/><\/a><\/p>\n<p>Une s\u00e9rie de 0s et de 1s, \u00e9chang\u00e9e par deux fils, un pour transmettre (Tx) et un pour recevoir (Rx).<\/p>\n<p>On branche le Tx du transmetteur sur le Tx du r\u00e9cepteur, le Rx du transmetteur sur le Rx du r\u00e9cepteur.<\/p>\n<p>Le 0, c&rsquo;est le niveau de la masse (GND), comme toujours.<\/p>\n<p>Le 1, c&rsquo;est soit une diff\u00e9rence de potentiel de 5v ou de 3.3v par rapport \u00e0 la masse. C&rsquo;est ce qu&rsquo;on appelle le signal TTL.<\/p>\n<p>Il est capital de savoir si on parle avec des signaux 5v ou 3.3v, car si le p\u00e9riph\u00e9rique comprend le 3.3v et qu&rsquo;on lui parle avec un niveau TTL 5v, au mieux \u00e7a marche pas, au pire on casse tout.<\/p>\n<p>On trouve <a href=\"http:\/\/advdownload.advantech.com\/productfile\/PIS\/ROM-DK5420\/Product%20-%20Datasheet\/ROM-DK5420_DS(10.07.14)20141007153121.pdf\">ais\u00e9ment sur le net<\/a> que sur le Freescale MX6,\u00a0 il s&rsquo;agit de TTL 3.3v :<a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-160\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove5.png\" alt=\"\" width=\"416\" height=\"138\" \/><\/a><\/p>\n<p>Donc ma mission, accept\u00e9e par d\u00e9faut, sera de<\/p>\n<ol>\n<li>d\u00e9monter le CMU<\/li>\n<li>tenter la communication en mode TTY\/console via l&rsquo;UART (qui permet la communication s\u00e9rie) pour<\/li>\n<li>restaurer les fichiers d&rsquo;origines.. ah oui j&rsquo;ai oubli\u00e9 cette partie.<\/li>\n<\/ol>\n<h1>R\u00e9cup\u00e9rer les fichiers d&rsquo;origines<\/h1>\n<p>La commence une croisade, celle qui consiste \u00e0 r\u00e9cup\u00e9rer les fichiers critiques modifi\u00e9es par l&rsquo;outil de tweaking, puis malencontreusement supprim\u00e9s, qui se sont av\u00e9r\u00e9s \u00eatre:<\/p>\n<ul>\n<li>\/jci\/opera\/opera_home\/opera.ini<\/li>\n<li>\/jci\/scripts\/stage_wifi.sh<\/li>\n<li>\/jci\/sm.conf<\/li>\n<li>\/jci\/opera\/opera_dir\/userjs\/fps.js<\/li>\n<\/ul>\n<p>Version br\u00e8ve:<\/p>\n<ol>\n<li>il faut r\u00e9cup\u00e9rer dans un lieu myst\u00e9rieux et miraculeux, c&rsquo;est \u00e0 dire <a href=\"https:\/\/my.hidrive.com\/share\/hsodpqja.l#$\/Mazda_Firmware\/EU_N\">ici<\/a>. Pour chaque paire de fichier, il faut prendre le .up le plus volumineux. Ce .up est un .zip.<\/li>\n<li>il faut trouver o\u00f9 y sont cach\u00e9s les fichiers miraculeux.<\/li>\n<\/ol>\n<p>Comme il est dommage de faire simple quand on peut faire compliqu\u00e9, cet endroit est dans le r\u00e9pertoire racine <strong>rootfs1upd\\<\/strong>, on y trouve:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-161\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove6.png\" alt=\"\" width=\"422\" height=\"110\" \/><\/a><\/p>\n<p>Dans le .dat du premier fichier .gz, \u00e0 nouveau une archive cach\u00e9e, on trouve un fichier si bien nomm\u00e9:\u00a0<strong>e0000000001<\/strong>. Dans lequel, qui se trouve \u00eatre encore une archive cach\u00e9e, qui contient un r\u00e9pertoire nomm\u00e9: <strong>. <\/strong>.Oui, il se nomme point (\u00ab\u00a0.\u00a0\u00bb). Dans lequel on trouve l&rsquo;arborescence rootfs du \/ du syst\u00e8me.<\/p>\n<p>N&rsquo;oublions pas, une des archives est prot\u00e9g\u00e9e par mot de passe. Et comme je suis sympa, voici le c\u00e9same: <em>5X\/9vAVhovyU2ygK<\/em> (si, si).<\/p>\n<h1>Extraire la b\u00eate<\/h1>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-153\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove.png\" alt=\"\" width=\"905\" height=\"515\" \/><\/a><\/p>\n<p>En retirant la longue bande (en tirant vers 1, puis 2, &#8230;) en esp\u00e9rant acc\u00e9der au d\u00e9montage du CMU.<\/p>\n<p>Et bien c&rsquo;\u00e9tait une mauvaise id\u00e9e, on y acc\u00e8de pas par l\u00e0 malgr\u00e9 une all\u00e9chante vis.<\/p>\n<p>Il faut en fait d\u00e9clipser la partie indiqu\u00e9e en rouge dans la photo suivante:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-154\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove2.png\" alt=\"\" width=\"905\" height=\"515\" \/><\/a><\/p>\n<p>En faisant tr\u00e8s attention \u00e0 ne pas rayer\/\u00e9rafler le plastique, tr\u00e8s fragile. J&rsquo;ai utilis\u00e9 le capuchon d&rsquo;un stylo bic, tr\u00e8s efficace et propre.<\/p>\n<p>L&rsquo;\u00e9tape suivante est de d\u00e9clipser la partie derri\u00e8re l&rsquo;\u00e9cran, toujours m\u00eame technique, cela part plus facilement.<\/p>\n<p>On alors facilement les deux vis sous l&rsquo;\u00e9cran qu&rsquo;il faut enlever avec une cl\u00e9 \u00e0 douille avec une allonge (il faut un certain couple pour les desserrer) de taille 10.<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-156\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove3.png\" alt=\"\" width=\"1059\" height=\"794\" \/><\/a><\/p>\n<p>Puis il suffit de d\u00e9loger le CMU de son compartiment, en le tirant vers le haut (il faut un peu insister).<\/p>\n<p>On remarque l&rsquo;abondance de bandes adh\u00e9sive (gros scotch marron) pour \u00e9viter de rayer la console en plastique, vu que le CMU est en m\u00e9tal.<\/p>\n<p>On trouve des r\u00e9f\u00e9rences techniques un partout plus ou <a href=\"http:\/\/mazdaman.x10host.com\">moins<\/a> claires sur le net, qui correspondent en vrac \u00e0 des mazda 3, 6, CX-5, versions am\u00e9ricaines, europ\u00e9ennes, versions &lt;2015 ou plus r\u00e9centes, plus ou moins r\u00e9v\u00e9latrices de son mod\u00e8le.<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-166\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove8.png\" alt=\"\" width=\"794\" height=\"1059\" \/><\/a><\/p>\n<h1>Communiquer avec la b\u00eate<\/h1>\n<p>Alors, sur le net on trouve de tout.<\/p>\n<p>De ceux qui conseillent de souder directement les Tx, Rx sur le PCB de la carte m\u00e8re:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/1-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-162\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/1-1.jpg\" alt=\"\" width=\"1024\" height=\"768\" \/><\/a><\/p>\n<p><a href=\"https:\/\/yms.livejournal.com\/3007282.html\">Ceux<\/a> qui utilisent un programmeur pour r\u00e9\u00e9crire la flash soud\u00e9e qui contient le syst\u00e8me.<\/p>\n<p>Et, enfin, les sages qui peuvent se le permettre qui rusent en ajoutant des fils dans le connecteur qui contient des slots pour les Tx Rx:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/cmu-rx-tx.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-164\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/cmu-rx-tx.jpg\" alt=\"\" width=\"960\" height=\"540\" \/><\/a><\/p>\n<h2>Mais je vois pas de pins Rx et Tx sur mon PC, comment je fais Monsieur?<\/h2>\n<p>Alors en g\u00e9n\u00e9ral, on utilise un convertisseur usb TTL, soit 5v (bon pour nous) soit 3.3v (pas bon pour nous).<\/p>\n<p>On en trouve des centaines entre 1 et 2 euros frais de port inclus sur aliexpress avec les mots cl\u00e9s \u00ab\u00a0TTL USB converter 3.3v\u00a0\u00bb.<\/p>\n<p>Mais la proposition de Mazda (80% de remise) \u00e9tait valable seulement 30 jours, je ne pouvais donc pas me permettre d&rsquo;attendre ce convertisseur TTL.<\/p>\n<p>Alors premi\u00e8re solution envisag\u00e9e: sortir un vieux laptop pentium 2 trouv\u00e9e dans une poubelle avec un port s\u00e9rie. Potentielle grosse erreur, car les niveaux TTL peuvent \u00eatre 12v sur les PCs.<\/p>\n<p>Autre solution, utiliser un arduino (qui n&rsquo;en n&rsquo;a pas quelques dizaines chez soi?) comme un convertisseur TTL.<\/p>\n<p>En effet, les Arduino Uno sont compos\u00e9s d&rsquo;un Atmel 328P (le micro controlleur) et d&rsquo;un chip FTDI convertissant USB (vers PC) &lt;=&gt; s\u00e9rie (vers microcontrolleur).<\/p>\n<p>Une astuce, que j&rsquo;ai essay\u00e9, consiste \u00e0 court-circuiter la borne RST (reset) du microcontrolleur \u00e0 la masse, pour \u00ab\u00a0d\u00e9sactiver\u00a0\u00bb le microcontrolleur, et n&rsquo;activer que le chip FTDI USB s\u00e9rie.<\/p>\n<p>Astuce que j&rsquo;ai essay\u00e9, qui n&rsquo;a pas march\u00e9. Oui, c&rsquo;est bien la peine que je vous la d\u00e9voile..<\/p>\n<p>Ce qui a march\u00e9 pour moi, simplement faire un programme (sketch) arduino suivant:<\/p>\n<pre>void setup(){\r\npinMode(0,INPUT);   \r\npinMode(1,INPUT); \r\n} \r\nvoid loop(){ \r\n}<\/pre>\n<p>Qui a march\u00e9.<\/p>\n<p>Par contre, attention!<\/p>\n<p>Les arduino uno fonctionnent avec un TTL \u00e9gal \u00e0 la tension d&rsquo;alimentation, ici 5v.<\/p>\n<p>Contre astuce 1: utiliser des circuits convertisseurs de niveau logique 5v&lt;-&gt;3.3v trouvable pour moins d&rsquo;un euro sur les sites asiatiques. Ou se le faire avec un pont diviseur de tension (r\u00e9sistances).<\/p>\n<p>Contre astuce 2: Il se trouve que j&rsquo;ai un vieux clone chinois d&rsquo;Arduino, le Funduino qui a comme pouvoir magique d&rsquo;avoir un switch physique qui permet de basculer ses niveaux TTL de 5v \u00e0 3.3v:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/SKU146982a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-168\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/SKU146982a.jpg\" alt=\"\" width=\"600\" height=\"600\" \/><\/a><\/p>\n<p>Il n&rsquo;y avait plus qu&rsquo;\u00e0 connecter l&rsquo;ensemble:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-167\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove9.png\" alt=\"\" width=\"794\" height=\"1059\" \/><\/a><\/p>\n<p>J&rsquo;ai test\u00e9 avec succ\u00e8s avec des fils classiques dupont de breadboards.<\/p>\n<p>Ma technique: d\u00e9nuder de 3 bons centim\u00e8tres, faire passer le fil \u00e0 l&rsquo;int\u00e9rieur de la fiche pour faire d\u00e9passer les fils et les rouler \u00e0 l&rsquo;ext\u00e9rieur, pour s&rsquo;assurer que le contact se fasse (il n&rsquo;y a pas d&rsquo;encoche metallique dans la fiche, car ces pins ne sont pas sens\u00e9es \u00eatre utilis\u00e9s).<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-165\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove7.png\" alt=\"\" width=\"793\" height=\"520\" \/><\/a><\/p>\n<h1>Que le texte d\u00e9file<\/h1>\n<p>Un putty\/xshell\/n&rsquo;importe quel soft qui permet de communiquer en RS232 (s\u00e9rie) 115200 bauds, 8 databits, pas de bit de parit\u00e9, et 1 stop bit plus tard et la magie se passa.<\/p>\n<h1>Premi\u00e8re d\u00e9convenue<\/h1>\n<p>Pour transf\u00e9rer en s\u00e9rie les 4 fichiers textes mentionn\u00e9s plus haut,<\/p>\n<p>apr\u00e8s avoir<\/p>\n<ol>\n<li>d\u00e9activer le watchdog timer noyau: <strong>echo 1 &gt; \/sys\/class\/gpio\/Watchdog\\ Disable\/value<br \/>\n<\/strong>(plus d&rsquo;infos <a href=\"https:\/\/elinux.org\/UDOO_watchdog\">ici<\/a> pour comprendre ce mecanisme watchdog et le lien avec \/sys\/class\/gpio)<\/li>\n<li>et remonter le rootfs en \u00e9criture: <strong>mount -o rw,remount \/<\/strong><\/li>\n<\/ol>\n<p>un<\/p>\n<p><strong>cat &gt; lefichier<\/strong><\/p>\n<p>suivi d&rsquo;un copie colle termin\u00e9 par un <strong>^D<\/strong> (control D) fit le job.<\/p>\n<p>Apr\u00e8s red\u00e9marrage toutefois, cela ne red\u00e9marrait toujours pas.<\/p>\n<p>Premi\u00e8re d\u00e9convenue, donc, et coucher \u00e0 1h50 du matin.<\/p>\n<h1>Soupir, espoir<\/h1>\n<p>Le lendemain, plein d&rsquo;espoir, surgit l&rsquo;ombre du failsafe.<\/p>\n<p>Le failsafe est l&rsquo;un des deux .up qui composent le firmware. Le failsafe est un syst\u00e8me rudimentaire qui permet de mettre \u00e0 jour le syst\u00e8me, qui est normalement appel\u00e9 par le process qui s&rsquo;active avec la combinaison Musique+mute+favoris d\u00e9crite plus haut, qui ne fonctionnait plus dans notre cas.<\/p>\n<p>Il y avait une page sur le net qui expliquait comment forcer ce mode en hardware, <a href=\"http:\/\/www.2x4logic.com\/invokefailsafe.html\">ici<\/a>.<\/p>\n<p>D\u00e9sormais, cette page d\u00e9bouche sur ce message obscur: \u00ab\u00a0<b>These web pages were intended for sharing information from Electrical Engineer to fellow Electrical Engineer. They have now been removed due to people who ignore warnings, erroneously think that they can pretend to be an experienced Electrical Engineer, and think that following a haphazard subset of steps in a dangerous process (that they were warned not to do) is somehow equivalent to performing all of them.<\/b>\u00a0\u00bb<\/p>\n<p>Non intimid\u00e9, une recherche via le site &#8211; fabuleux dit en passant &#8211; web.archive.org (l&rsquo;internet wayback machine) montre 14 snapshots entre juin 2016 et janvier 2018, le dernier qui montre l&rsquo;information date du 8 mars 2017:\u00a0https:\/\/web.archive.org\/web\/20170308064828\/2x4logic.com\/invokefailsafe.html<\/p>\n<p>La on apprendre une proc\u00e9dure r\u00e9serv\u00e9e aux initi\u00e9s qui explique comment l&rsquo;auteur a, \u00e0 l&rsquo;aide d&rsquo;un bus pirate, forc\u00e9 le boot depuis le failsafe. Et notamment il explique que le bloc boot-select est configurable via un \u00e9tat for\u00e7able dans mtd (mtdblock1).<\/p>\n<p>Et oh surprise, un script configure_flash.sh trouvable dans le rootfs contient une fonction switch_ibc, qui en fonction de l&rsquo;entier qu&rsquo;on lui passe configure ce mtd : 1 boot normal (syst\u00e8me de fichier linux rootfs), mais sinon (2 par exemple) : boot sur failsafe.<\/p>\n<h1>Bonheur<\/h1>\n<p>Apr\u00e8s avoir inject\u00e9 ce script par la proc\u00e9dure d\u00e9crite plus haut, celle du chat raisonn\u00e9, quel bonheur de voir le failsafe s&rsquo;executer au prochain reboot, qui permet de r\u00e9installer le firmware (les 2 fichiers up) plac\u00e9es judicieusement dans un cl\u00e9 usb branch\u00e9e sur le syst\u00e8me.<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-169\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove10.png\" alt=\"\" width=\"1059\" height=\"1059\" \/><\/a><\/p>\n<p>Et de voir la vie rena\u00eetre sur cet \u00e9cran:<\/p>\n<p><a href=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-170\" src=\"https:\/\/www.fabidouille.com\/wp-content\/uploads\/2018\/09\/toremove11.png\" alt=\"\" width=\"1059\" height=\"1059\" \/><\/a><\/p>\n<p><strong>Information int\u00e9ressante finale num\u00e9ro 1:<\/strong> ne pas oublier d&rsquo;appuyer r\u00e9guli\u00e8rement sur la p\u00e9dale d&#8217;embrayage, le voyant d&rsquo;indicateur du bouton on\/off de la voiture change d&rsquo;\u00e9tat, et \u00e7a semble emp\u00eacher la mise en standby non souhaitable pendant le flashage du firmware<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Information int\u00e9ressante finale num\u00e9ro 2:<\/strong> cette proc\u00e9dure semble pouvoir fonctionner dans tous les v\u00e9hicules mazda un peu r\u00e9cents (&gt;=2014), mazda 2, 3, 6, cx-5&#8230; et le user par d\u00e9faut est <strong>user<\/strong> (avec droits root), le mot de passe <strong>jci<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bonjour, Pas mal de choses depuis la derni\u00e8re fois, des choses non bidouillesques,\u00a0des choses bidouillesques mais pas (encore?) racont\u00e9es et une chose bidouillesque que je m&rsquo;en vais vous raconter maintenant. Satisfait possesseur d&rsquo;une Mazda 2 2015 achet\u00e9e neuve en septembre 2015, je me suis permis de la tweaker quelque peu, quelques mois apr\u00e8s la premi\u00e8re&hellip;<\/p>\n<p><a class=\"more-link\" href=\"https:\/\/www.fabidouille.com\/?p=151\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-151","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=\/wp\/v2\/posts\/151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=151"}],"version-history":[{"count":6,"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=\/wp\/v2\/posts\/151\/revisions"}],"predecessor-version":[{"id":177,"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=\/wp\/v2\/posts\/151\/revisions\/177"}],"wp:attachment":[{"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabidouille.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}