tag:linuxfr.org,2005:/tags/train/publicLinuxFr.org : les contenus étiquetés avec « train »2024-03-10T23:52:16+01:00/favicon.pngtag:linuxfr.org,2005:News/418082024-02-03T13:36:39+01:002024-02-03T13:36:39+01:00Pratiques dans l'industrie ferroviaire : un train de retard…Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Une histoire, comme il en est tant, hélas, de pratiques anticoncurrentielles dans l’industrie. Oubliez les imprimantes et les tracteurs, cette fois-ci, nous passons à une étape supérieure : les trains. Oui, oui, les trains, vous avez bien lu. </p>
<p><em>Si</em> les faits se confirment, un constructeur de train polonais aurait été pris en flagrant délit de pratiques anti-concurrentielles.</p>
</div><ul></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#toc-les-faits">Les faits</a><ul>
<li><a href="#toc-pourquoi-le-train-est-tomb%C3%A9-en-panne">Pourquoi le train est tombé en panne ?</a></li>
<li><a href="#toc-v%C3%A9rifier-la-date">Vérifier la date…</a></li>
<li><a href="#toc-surprise-mat%C3%A9rielle">Surprise matérielle</a></li>
<li><a href="#toc-pas-seulement-%C3%A0-wroc%C5%82aw">Pas seulement à Wrocław</a></li>
<li><a href="#toc-la-suite">La suite</a></li>
</ul>
</li>
<li>
<a href="#toc-r%C3%A9ponse-de-loffice-des-transports-ferroviaires-utk">Réponse de l’Office des transports ferroviaires (UTK)</a><ul>
<li><a href="#toc-liens">Liens</a></li>
</ul>
</li>
</ul>
<h2 id="toc-les-faits">Les faits</h2>
<p>Au printemps 2022, le premier des onze trains du modèle <em>Newag Impuls 45WE</em>, exploités par la compagnie régionale Koleje Dolnośląskie en Basse-Silésie, est en fin de vie. Leur maintenance est gérée par la société <em>Serwis Pojazdów Szynowych</em>, (<em>SPS</em>), qui a remporté l’appel d’offre, pour un prix total d’environ 5,1 millions d’euros (22 millions de złoty). Cette inspection est obligatoire, après un million de kilomètres. Le constructeur à l’origine des trains, la société <em>Newag</em>, a également participé à l’appel d’offres, mais leur prix était supérieur d’environ 696 000 € (3 millions de złoty).</p>
<p>L’entretien d’un train est une affaire complexe : chaque pièce doit être démontée et envoyée aux fabricants concernés pour ensuite être ré-assemblées à leur retour. SPS effectue l’inspection conformément au manuel fourni, d’environ vingt mille pages. Une fois le premier train remonté, l’ordinateur de bord indique le succès de l’opération et la conformité de l’ensemble. Cependant, les onduleurs ne fournissent pas de tension aux moteurs et le train n’avance pas, sans que personne ne comprenne. Les techniciens de service recherchent, vérifient et re-vérifient les composants, parcourent les instructions – et ne trouvent aucune réponse.</p>
<p>Koleje Dolnośląskie dispose de onze trains <em>Impuls</em> et, selon le calendrier, un autre est en cours de maintenance. Tandis que le premier est toujours immobilisé, le deuxième train arrive, subit la même révision, avec malheureusement, le même résultat. Tout fonctionnait parfaitement avant la maintenance, mais les moteurs refusent de démarrer une fois celle-ci terminée. Pour empirer la situation, le constructeur refuse d’aider.</p>
<p>Nous avons maintenant deux trains à l’arrêt dans l’atelier. Le troisième rate l’inspection en raison d’une panne de batterie, et un quatrième train est envoyé à sa place. La société décide d’utiliser la quatrième pour remorquer une des locomotives en panne. Cependant, une fois connectée à l’une d’entre elle, la nouvelle locomotive s’arrête également, mais la raison semble différente et totalement inconnue. </p>
<p>Pendant ce temps, dans un autre atelier, à <em>Szczecin</em>, une autre locomotive Impuls tombe en panne, dans des circonstances très similaires : elle ne redémarre pas après la maintenance.</p>
<p>Le problème devient si grave que les médias s’en mêlent et relatent l’affaire. Les six trains les plus longs de Koleje Dolnośląskie étant hors service, les horaires doivent être réduits, des trains de remplacement doivent être envoyés, et les passagers s’entassent dans des trains trop courts. Newag explique que les trains sont bloqués par un « système de sécurité », mais rien n’est mentionné dans les pages du manuel.</p>
<p>Chaque journée d’un train immobilisé dans l’atelier coûtant plusieurs milliers de zlotys en pénalités contractuelles, et avec plusieurs trains en attente, la tension chez SPS augmente. Le problème n’étant identifié ni par les mécaniciens ni par les électriciens, quelqu’un finit rechercher des hackers polonais, et contacte le groupe <em>Dragon Sector</em>. SPS prend donc contact avec eux, dont les représentants incrédules finissent par signer le contrat. Le projet est entrepris par des membres de Dragon Sector, spécialement ceux connus pour avoir hackés le BIOS de portables Toshiba — Michał « Redford » Kowalczyk et Sergiusz « q3k » Bazański. Kuba « PanKleszcz » Stępniewicz, qui a de l’expérience dans l’automatisation industrielle, se joint également à l’équipe.</p>
<p>L’équipe se met rapidement au travail et Kuba part en voyage à l’atelier. Une fois sur place, ils reçoivent un train qui ne roule pas, deux ordinateurs de rechange et les fichiers SDK du fabricant de l’ordinateur. Ils commencent par écouter le bus de données CAN (Controller Area Network), mais sans information sur les protocoles, la tâche s’avère ardue. Ils tentent de télécharger le microcode de l’ordinateur de bord, mais la documentation du SDK permet uniquement les mises à jour, pas d’inspecter la version installée.</p>
<p>La première tentative d’utilisation d’une ancienne version du micrologiciel, sur un ordinateur de rechange se solde par un échec : l’ordinateur ne répond plus. Ils trouvent finalement l’interface de débogage sur le dernier ordinateur de rechange, et octet par octet, en extraient la mémoire. L’ordinateur est basé sur l’architecture Infineon TriCore, souvent utilisée dans l’industrie automobile, et les chercheurs finissent enfin par examiner le code en utilisant une version modifiée de Ghidra.</p>
<p>Les travaux avancent doucement, mais l’échéance approche et les trains tombent toujours en panne. Dos au mur, Koleje Dolnośląskie, décide de coopérer avec Newag sur l’entretien des trains en panne, y compris ceux qui, selon l’appel d’offres initial, devaient être entretenus uniquement par SPS. Le contrat devant être résilié d’ici une semaine, les chercheurs se mettent à travailler de plus belle.</p>
<p>Le groupe est enfin en possession de tous les micro-logiciels des trains, autant ceux en état de marche que ceux en panne. Chacun des trains ayant des fonctionnalités particulières et une version différente du logiciel, l’analyse est difficile, mais ils commencent à identifier une piste. Entre un ordinateur en état de marche et un autre en panne, certaines plages de mémoire diffèrent. Une fois corrigées sur un ordinateur en panne, celui-ci démarre enfin. Le test étant effectué sur un ordinateur isolé sur un bureau, il s’arrête dès que le logiciel détecte qu’il manque le reste du train, mais il est prêt à faire fonctionner les onduleurs.</p>
<p>Moins de 24 heures avant la date fatidique, les chercheurs identifient des paramètres supplémentaires pour faire démarrer le train. Malheureusement, le condensateur du dernier ordinateur de bord en état de marche brûle pendant les expériences. Après un nouveau brainstorming et de nombreuses tentatives pour combiner deux ordinateurs endommagés en un seul, le premier est réparé, et à 2 heures du matin, la veille de l’heure apocalyptique, les chercheurs configurent l’ordinateur qui fera démarrer le train.</p>
<p>Un de nos héros monte à bord d’un train (d’une autre compagnie) pour rejoindre l’atelier avec un ordinateur probablement en état de marche devant les représentants des chemins de fer de Basse-Silésie, qui ont annoncé leur visite pour 9h30. Malheureusement, le train que prend le chercheur pour se rendre sur place est en retard. Finalement, dans la matinée, un chercheur équipé d’un ordinateur arrive sur les lieux et le connecte au train en panne. Et celui-ci ne bouge pas… Un autre brainstorming identifie le dernier drapeau oublié et à 8h42 le train parvient enfin à démarrer !</p>
<p>La délégation de Koleje Dolnośląskie, voyant à 9h30 que les trains ont une chance de reprendre vie, ne résilie pas le contrat avec SPS.</p>
<h3 id="toc-pourquoi-le-train-est-tombé-en-panne">Pourquoi le train est tombé en panne ?</h3>
<p>Déterminer comment faire démarrer le train ne représentait qu’une petite partie du problème. Il fallait maintenant découvrir pourquoi il était tombé en panne. </p>
<p>Des mois d’analyse et de rétro-ingénierie ont permis de révéler des conditions extrêmement intéressantes inscrites dans le code logiciel de différents trains fournis par Newag. Après des centaines d’heures passées à étudier les codes émis par des dizaines de trains, il a été possible d’identifier des mécanismes provoquant des pannes soudaines dans les trains. </p>
<p>Les valeurs numériques 53,13845 et 17,99011 trouvées dans le code informatique semblaient familières à première vue. Il s’est rapidement avéré qu’il s’agissait de coordonnées GPS, indiquant les environs de la gare de Bydgoszcz Główna, ou, plus précisément, le centre de service PESA situé juste à côté. Bientôt, les coordonnées d’autres services susceptibles d’effectuer des réparations et des inspections de trains en Pologne ont également été trouvées. Ci-dessous, nous montrons le pseudo-code de l’algorithme : </p>
<pre><code class="c"><span class="n">check1</span> <span class="o">=</span> <span class="mf">53.13845</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">53.13882</span> <span class="o">&&</span> <span class="mf">17.99011</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">17.99837</span><span class="err"> </span><span class="p">;</span>
<span class="n">check2</span> <span class="o">=</span> <span class="mf">53.14453</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">53.14828</span> <span class="o">&&</span> <span class="mf">18.00428</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">18.00555</span><span class="err"> </span><span class="p">;</span>
<span class="n">check3</span> <span class="o">=</span> <span class="mf">52.17048</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">52.17736</span> <span class="o">&&</span> <span class="mf">21.53480</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">21.54437</span><span class="err"> </span><span class="p">;</span>
<span class="n">check4</span> <span class="o">=</span> <span class="mf">49.60336</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">49.60686</span> <span class="o">&&</span> <span class="mf">20.70073</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">20.70840</span>
<span class="o">&&</span> <span class="p">(</span><span class="n">this</span><span class="o">-></span><span class="n">lock_function_test</span> <span class="o">&</span> <span class="mi">1</span><span class="p">)</span><span class="err"> </span><span class="p">;</span>
<span class="n">check5</span> <span class="o">=</span> <span class="mf">53.10244</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">53.10406</span> <span class="o">&&</span> <span class="mf">18.07817</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">18.08243</span><span class="err"> </span><span class="p">;</span>
<span class="n">check6</span> <span class="o">=</span> <span class="mf">50.12608</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">50.12830</span> <span class="o">&&</span> <span class="mf">19.38411</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">19.38872</span><span class="err"> </span><span class="p">;</span>
<span class="n">check7</span> <span class="o">=</span> <span class="mf">52.77292</span> <span class="o"><</span> <span class="n">lat</span> <span class="o">&&</span> <span class="n">lat</span> <span class="o"><</span> <span class="mf">52.77551</span> <span class="o">&&</span> <span class="mf">18.22117</span> <span class="o"><</span> <span class="kt">long</span> <span class="o">&&</span> <span class="kt">long</span> <span class="o"><</span> <span class="mf">18.22724</span><span class="err"> </span><span class="p">;</span></code></pre>
<p>Les paires de coordonnées définissent les zones d’atelier. Il existe une condition inscrite dans le code informatique qui exige que le train soit désactivé s’il passe au moins dix jours dans l’un de ces ateliers. L’un des ateliers appartient à Newag lui-même - mais une condition logique différente a été définie pour ses coordonnées, probablement à des fins de test. </p>
<p>D’autres surprises furent bientôt découvertes. Il s’agissait notamment du blocage du train lorsqu’un de ses composants (vérifié par son numéro de série) était remplacé. Une option permettant d’annuler le verrouillage a également été découverte — cela ne nécessitait pas de définir des indicateurs au niveau de la mémoire de l’ordinateur, mais uniquement la séquence appropriée de clics sur les boutons dans la cabine et sur l’écran de l’ordinateur de bord. </p>
<p>Lorsque les informations sur le lancement réussi des trains Impuls sont parvenues aux médias, les trains ont reçu une mise à jour logicielle qui supprimait cette possibilité de « réparation ». Un code a été trouvé sur un autre train lui indiquant de « casser » après avoir parcouru un million de kilomètres. </p>
<h3 id="toc-vérifier-la-date">Vérifier la date…</h3>
<p>Une situation assez cocasse a été rencontrée dans une autre escouade qui a refusé de démarrer, le 21 novembre 2022, alors qu’elle n’était pas sur place à ce moment-là. L’ordinateur signale une panne du compresseur, les mécaniciens n’ont, pourtant, identifié aucune panne sur le compresseur. Les <a href="https://fr.wikipedia.org/wiki/Pantographe_(transport)">pantographes</a> ne fonctionnant toujours pas, l’analyse du code informatique a détecté une condition de crash suivante, qui signalait une panne de compresseur :</p>
<pre><code class="txt"><span class="err">si</span> <span class="err">le</span> <span class="err">jour</span> <span class="err">est</span> <span class="err">supérieur</span> <span class="err">ou</span> <span class="err">égal</span> <span class="err">au</span> <span class="err">21</span> <span class="err">et</span>
<span class="err">si</span> <span class="err">le</span> <span class="err">mois</span> <span class="err">est</span> <span class="err">supérieur</span> <span class="err">ou</span> <span class="err">égal</span> <span class="err">à</span> <span class="err">11</span> <span class="err">et</span>
<span class="err">si</span> <span class="err">l’année</span> <span class="err">est</span> <span class="err">supérieure</span> <span class="err">ou</span> <span class="err">égale</span> <span class="err">à</span> <span class="err">2021</span></code></pre>
<p>La situation était amusante, car le train devait être inspecté en novembre 2021 (un an avant la panne), mais par coïncidence, la condition n’a pas fonctionné. Le train a été entretenu un instant plus tôt et n’a été relancé qu’en janvier 2022 - et cette date ne répondait plus à la condition logique sophistiquée décrite ci-dessus. C’est probablement l’incapacité de l’auteur du logiciel à écrire correctement des conditions qui a obligé à attendre le 21 novembre 2022 pour que l’on puisse constater l’effet prévu.</p>
<h3 id="toc-surprise-matérielle">Surprise matérielle</h3>
<p>Les surprises ne se cachent pas seulement dans les logiciels informatiques. Dans l’un des dépôts, les chercheurs ont découvert un dispositif signé comme « convertisseur UDP / CAN », permettant vraisemblablement une communication à distance avec le train. Le supprimer n’a pas empêché quoi que ce soit de fonctionner. L’analyse a montré que l’ordinateur de bord envoyait des informations sur l’état du verrouillage à cet appareil et que l’appareil lui-même était connecté à un modem GSM. </p>
<h3 id="toc-pas-seulement-à-wrocław">Pas seulement à Wrocław</h3>
<p>L’information selon laquelle le service SPS avait réussi à réparer les trains Newag « cassés » est rapidement parvenue à d’autres services. Cela s’est avéré être un problème assez courant. À Wrocław, ils ont analysé 13 rames Impuls, mais celles qui circulaient à Koleje Mazowieckie sont également tombées en panne (une unité), deux à Opole, quatre à Cracovie, une à Zielona Góra, quatre à Szczecin et une à SKM. Heureusement, chacune a été réparée à l’aide d’un outil développé par nos chercheurs, qui supprime les verrous logiciels de l’ordinateur de bord. Au total, nos collègues ont analysé le logiciel de 29 trains, et seulement cinq ont trouvé des surprises allant au-delà des instructions d’exploitation officielles. </p>
<h3 id="toc-la-suite">La suite</h3>
<p>Nous laissons l’évaluation des solutions utilisées par le fabricant aux lecteurs et clients de cette entreprise. Il est intéressant de noter que, même si des poursuites judiciaires sont en cours, il est difficile de trouver en Pologne une institution qui ferait autre chose qu’exprimer un intérêt amical dans cette affaire. </p>
<p>Nous n’avons connaissance d’aucune mesure prise par « l’Office de la protection des consommateurs et de la concurrence », ni par « l’Office du transport ferroviaire », qui semble pourtant appropriée. Cette dernière à pour rôle de surveiller les pratiques des sociétés qui travaillent avec les organisations gouvernementales locales. Que des voyageurs aient subi des désagréments ou forcés à utiliser des transports alternatifs pendant des mois semble pourtant éligible à un dédommagement. </p>
<p>La seule institution connue à avoir pris des mesures est le CERT Polska, qui a été informé de la découverte par les chercheurs. Le commentaire que nous avons reçu montre que CERT Polska a informé les « autorités compétentes » et que l’affaire est traitée par les autorités chargées de l’application de la loi. </p>
<p>Nous félicitons les meilleurs hackers polonais pour leur découverte intéressante et l’exécution professionnelle de la commande. Décidément rien n’est plus motivant qu’une date limite demain matin. </p>
<p>L’article ci-dessus n’est qu’un bref résumé de la présentation donnée lors de la conférence <em>Oh My H@ck</em> le 5 décembre 2023 par les membres de l’équipe : Jakub Stępniewicz, Sergiusz Bazański et Michał Kowalczyk. L’article a omis de nombreux détails et une grande partie technique de l’analyse — nous ne pouvons qu’espérer que cela motivera les auteurs de l’étude à rédiger et publier son cours. Mis à jour le 05/12/2023 à 16h00 </p>
<h2 id="toc-réponse-de-loffice-des-transports-ferroviaires-utk">Réponse de l’Office des transports ferroviaires (UTK)</h2>
<p>Nous avons reçu la position officielle de l’Office des transports ferroviaires (UTK), que nous citons intégralement ci-dessous : </p>
<blockquote>
<p>Le président de l’UTK est au courant de l’affaire et a vérifié les informations concernant les analyses effectuées sur les logiciels des véhicules ferroviaires et coopère également avec les services compétents à ce sujet. En collaboration avec CERT Polska (une équipe créée pour répondre aux incidents violant la sécurité Internet), une réunion avec le constructeur ferroviaire a été organisée. Les véhicules répondent aux exigences essentielles précisées dans les dispositions des directives européennes. C’est la personne qui commande le véhicule qui détermine les conditions de service et de garantie dans le cadre de la liberté contractuelle. Ces exigences sont incluses dans les contrats d’achat de trains. Toute limitation des capacités de service, y compris les limitations introduites dans le logiciel, peut constituer un éventuel litige civil entre le client et le fabricant. Le président de l’UTK n’est pas l’autorité compétente en la matière. </p>
<p>Conformément à l’art. 41 alinéa 2 de la loi du 5 juillet 2018 relative au système national de cybersécurité (texte consolidé : Journal des lois de 2023, articles 913, 1703), l’autorité chargée de la cybersécurité du secteur des transports (hors sous-secteur du transport par eau) est l’autorité compétente en matière de cybersécurité. <br>
Ministre chargé des questions de transports.</p>
</blockquote>
<h3 id="toc-liens">Liens</h3>
<ul>
<li>
<a href="https://pl.wikipedia.org/wiki/Newag_Impuls">Newag_Impuls</a> (pl)</li>
<li>
<a href="https://en.wikipedia.org/wiki/Infineon_TriCore">Infineon_TriCore</a> (en)</li>
<li>
<a href="https://en.wikipedia.org/wiki/Ghidra">Ghidra</a> (en)</li>
<li>
<a href="https://en.wikipedia.org/wiki/CERT_Polska">CERT Polska</a> (en)</li>
<li><a href="//linuxfr.org/users/chocolatineflying/journaux/devoir-hacker-un-train">journal LinuxFr.org</a></li>
<li>BadCyber <a href="https://badcyber.com/dieselgate-but-for-trains-some-heavyweight-hardware-hacking/">Dieselgate, but for trains – some heavyweight hardware hacking</a> (en)</li>
<li>404media <a href="https://www.404media.co/polish-hackers-repaired-trains-the-manufacturer-artificially-bricked-now-the-train-company-is-threatening-them/">Polish Hackers Repaired Trains the Manufacturer Artificially Bricked. Now The Train company is threatening them</a> (en)</li>
<li>
<a href="https://social.hackerspace.pl/@q3k/111528162462505087">l’histoire par un ses hackers</a> (en)</li>
<li>HackADay <a href="https://hackaday.com/2023/12/06/the-deere-disease-spreads-to-trains/">The Deere Disease Spreads To Trains</a> (en)</li>
</ul>
</div><div><a href="https://linuxfr.org/news/pratiques-dans-l-industrie-ferroviaire-un-train-de-retard.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134228/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/pratiques-dans-l-industrie-ferroviaire-un-train-de-retard#comments">ouvrir dans le navigateur</a>
</p>
Andre RodierYsabeau 🧶 🧦BAudL'intendant zonardmartoniBenoît SibaudFrancoisA30bobble bubblehttps://linuxfr.org/nodes/134228/comments.atomtag:linuxfr.org,2005:Diary/410092024-01-01T17:32:42+01:002024-01-01T17:32:42+01:00Sélections de présentations du 37C3Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Salut à tous, le 37e Chaos Computer Club (CCC) est fini, mais quoi de mieux que de se poser dans le canapé un lendemain de 1er de l'an pour regarder quelques vidéos ?</p>
<p>Je me suis donc fait une petite liste de choses intéressantes à regarder et que j'ai d'ailleurs commencé.</p>
<p>Tout d'abord, ce dont on a déjà parlé dans le <a href="//linuxfr.org/users/chocolatineflying/journaux/devoir-hacker-un-train">journal devoir hacker un train !</a> dont voici la <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/12142.html">présentation</a> et sa <a href="https://media.ccc.de/v/37c3-12142-breaking_drm_in_polish_trains">vidéo</a> ainsi que le <a href="//linuxfr.org/users/guolang/liens/sympa-de-garder-ca-pour-soi-faille-postfix-smuggling-heureusement-postfix-assure">Lien Sympa de garder ça pour soi (Faille Postfix : smuggling) Heureusement Postfix assure.</a> avec la <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11782.html">présentation</a> et la <a href="https://media.ccc.de/v/37c3-11782-smtp_smuggling_spoofing_e-mails_worldwide">vidéo</a>.</p>
<p>Puis la suite, que j'ai déjà regardé, j'ai vraiment adoré les 2 premières :<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11736.html">Nintendo hacking 2023: 2008</a> et sa <a href="https://media.ccc.de/v/37c3-11736-nintendo_hacking_2023_2008">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11928.html">Reconstructing game footage from a Game Boy's memory bus</a> et sa <a href="https://media.ccc.de/v/37c3-11928-reconstructing_game_footage_from_a_game_boy_s_memory_bus">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11777.html">Open CPU / SoC design, all the way up to Debian</a> et sa <a href="https://media.ccc.de/v/37c3-11777-open_cpu_soc_design_all_the_way_up_to_debian">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11943.html">Sucking dust and cutting grass: reversing robots and bypassing security</a> et sa <a href="https://media.ccc.de/v/37c3-11943-sucking_dust_and_cutting_grass_reversing_robots_and_bypassing_security">vidéo</a>.</p>
<p>Et que je pense regarder :<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11781.html">Adventures in Reverse Engineering Broadcom NIC Firmware</a> et sa <a href="https://media.ccc.de/v/37c3-11781-adventures_in_reverse_engineering_broadcom_nic_firmware">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11811.html">Writing secure software</a> et sa <a href="https://media.ccc.de/v/37c3-11811-writing_secure_software">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11846.html">Demoscene now and then</a> et sa <a href="https://media.ccc.de/v/37c3-11846-demoscene_now_and_then">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11919.html">Finding Vulnerabilities in Internet-Connected Devices</a> et sa <a href="https://media.ccc.de/v/37c3-11919-finding_vulnerabilities_in_internet-connected_devices">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11929.html">Turning Chromebooks into regular laptops</a> et sa <a href="https://media.ccc.de/v/37c3-11929-turning_chromebooks_into_regular_laptops">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/12033.html">Unlocking Hardware Security: Red Team, Blue Team, and Trojan Tales</a> et sa <a href="https://media.ccc.de/v/37c3-12033-unlocking_hardware_security_red_team_blue_team_and_trojan_tales">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/12265.html">Unlocked: PICing a wireless door access system</a> et sa <a href="https://media.ccc.de/v/37c3-12265-unlocked_picing_a_wireless_door_access_system">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/12296.html">Full AACSess: Exposing and exploiting AACSv2 UHD DRM for your viewing pleasure</a> et sa <a href="https://media.ccc.de/v/37c3-12296-full_aacsess_exposing_and_exploiting_aacsv2_uhd_drm_for_your_viewing_pleasure">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/12309.html">A year of surveillance in France: a short satirical tale by La Quadrature du Net</a> et sa <a href="https://media.ccc.de/v/37c3-12309-a_year_of_surveillance_in_france_a_short_satirical_tale_by_la_quadrature_du_net">vidéo</a>.<br>
<a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/12342.html">BLUFFS: Bluetooth Forward and Future Secrecy Attacks and Defenses</a> et sa <a href="https://media.ccc.de/v/37c3-12342-bluffs_bluetooth_forward_and_future_secrecy_attacks_and_defenses">vidéo</a>.</p>
<p>N'hésitez pas à partager les conférences que vous avez apprécié ou qui vous semblent intéressantes, voici la liste des conférences du <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/schedule/1.html">1er</a>, <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/schedule/2.html">2e</a>, <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/schedule/3.html">3e</a> et <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/schedule/3.html">4e</a> jours ainsi que les <a href="https://media.ccc.de/c/37c3">vidéos</a>.</p>
<p>PS:Les vidéos peuvent être téléchargées pour être regardées plus tard ou hors réseau ;-)</p>
<div><a href="https://linuxfr.org/users/esver/journaux/selections-de-presentations-du-37c3.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134372/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/esver/journaux/selections-de-presentations-du-37c3#comments">ouvrir dans le navigateur</a>
</p>
Olivier Esverhttps://linuxfr.org/nodes/134372/comments.atomtag:linuxfr.org,2005:Diary/409952023-12-19T18:00:49+01:002023-12-19T18:00:49+01:00Li-Ri : fork et portage de Ri-Li sous AndroidLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-description">Description</a></li>
<li><a href="#toc-compilation-du-code-initial">Compilation du code initial</a></li>
<li><a href="#toc-sdl12--sdl-2">SDL1.2 => SDL 2</a></li>
<li><a href="#toc-compilation-android">Compilation Android</a></li>
<li><a href="#toc-portage-cmake">Portage CMake</a></li>
<li><a href="#toc-todo-list-or-not-todo">TODO list or not TODO</a></li>
</ul>
<p>Petit journal pour présenter les différentes tâches que j'ai du réaliser pour porter Ri-Li sous Android.</p>
<h2 id="toc-description">Description</h2>
<p>Ri-Li est un jeu développé entre 2006 et 2007 en C++ avec la bibliothèque SDL par Dominique Roux-Serret. Il fonctionne sous Linux, Windows, MacOS et AmigaOS.<br>
Il avait fait l'objet de plusieurs dépêches, la dernière présentant la <a href="//linuxfr.org/news/ri-li-200-est-sorti">version 2.0.0</a>.<br>
Mon but était de le porter sous Android (avec un neveu fan de trains, faisons lui plaisir !) sans trop m'embêter de préférence.</p>
<p>N'ayant pas pu rentrer en contact avec Dominique, j'ai préféré forker le projet et le renommer en Li-Ri.<br>
Premièrement car mon talent pour trouver un nom n'a d'égal que mon talent de graphiste et que c'était le plus simple pour modifier les images (et c'était déjà beaucoup à mon niveau !).</p>
<h2 id="toc-compilation-du-code-initial">Compilation du code initial</h2>
<p>Pour rentrer dans la phase de développement, le code original ne compilait plus sous Linux. J'ai appliqué les différents patchs qui ont été utilisés pour faire la version <a href="https://github.com/flathub/net.sourceforge.Ri-li">FlatPak</a> : désactivation de la compilation pour Gentoo, utilisation de iostream à la place de iostream.h, des comparaisons de buffer avec <= au lieu de == (ordered comparison of pointer with integer zero).</p>
<h2 id="toc-sdl12--sdl-2">SDL1.2 => SDL 2</h2>
<p>Maintenant que le code compile, je peux enfin m'attaquer au coeur du problème. Euhhh non, pas encore, le code utilise SDL 1.2 et comme SDL est en train de passer en version 3, je décide quand même de le migrer en SDL 2 pour qu'il soit plus maintenable. L'inconvénient est de perdre certaines plateformes en échange d'autres. Mon but étant de compiler sous Android principalement, pas de souci de passer en version 2 (désolé pour les adorateurs d'AmigaOS qui était maintenu en SDL 1 mais plus officiellement en SDL 2).</p>
<p>J'épargne les détails, le gros du changement est dans ce <a href="https://github.com/petitlapin/Ri-Li/commit/3949ccd35facb4a0a6eb5c1f02a08095a1c9797b">commit</a>.<br>
Un <a href="https://wiki.libsdl.org/SDL2/MigrationGuide">guide de migration</a> est disponible et gère pas mal de cas. Le plus compliqué est le changement d'affichage des buffers entre les SDL_Surface et les SDL_Renderer.<br>
Avant, on pouvait afficher des surfaces sur d'autres surfaces, effacer certaines parties de la surface et ensuite afficher les surfaces à l'écran. La nouvelle façon consiste à dessiner sur un renderer unique directement et afficher le renderer à l'écran.<br>
Il y avait 2 SDL_Surface principales avant pour faire du double buffering, maintenant c'est géré tout seul avec le renderer.<br>
Je n'ai pas géré les fonctionnalités de capture d'écran. Sur la version originale, il y avait la possibilité en utilisant la touche F12 de faire une capture, mais je n'ai pas cherché à remplacer la fonctionnalité (n'ayant pas de touche F12 sur mon téléphone/tablette de toute façon).</p>
<h2 id="toc-compilation-android">Compilation Android</h2>
<p>Bon maintenant, on a une version en SDL 2 (quasi-) équivalente à la version originale (aux bugs près non trouvés et les captures d'écran perdus).<br>
Pour compiler sous Android, j'ai seulement regardé comment créer un paquet pour F-Droid.<br>
J'avais déjà créé un paquet pour GCompris et il existe des paquets sur F-Droid utilisant SDL 1.2. J'ai donc adapté le code et suivi le <a href="https://wiki.libsdl.org/SDL2/Android">guide android</a> et <a href="https://studios.ptilouk.net/superfluous-returnz/blog/2021-10-15_android_1.html">ce post de blog du jeu Superflous Returnz</a>.<br>
Les gros points :<br>
* Pour avoir les logs dans la console en utilisant adb, il ne faut pas utiliser printf/std::cout/std::cerr, mais SDL_LogInfo/SDL_LogError…<br>
* Ne pas utiliser les fonctions fopen/fread/fseek/fclose mais SDL_RWFromFile/SDL_RWRead/SDL_RWseek/SDL_RWClose qui fonctionnent bien sur toutes les plateformes… Les ressources que l'on met dans le dossier assets:/ du paquet sont accessibles en faisant un SDL_RWFromFile(). Par exemple, si on a un fichier language.dat dans assets/ : SDL_RWFromFile("language.dat"). Attention, "./language.dat" ne fonctionne pas.<br>
* Le fichier de configuration était stocké dans un emplacement différent en fonction des OS. Pour simplifier, SDL fournit la fonction SDL_GetPrefPath qui donne le "bon" chemin selon l'OS.<br>
* Copier le <a href="https://github.com/libsdl-org/SDL/tree/main/android-project">template Android</a> fourni par SDL et ajouter dans le <a href="https://github.com/petitlapin/Ri-Li/blob/main/android/app/src/main/jni/src/Android.mk#L13">Android.mk</a> nos sources.<br>
* Créer un paquet pour <a href="https://gitlab.com/fdroid/fdroiddata/-/merge_requests/14030/diffs">F-Droid</a>. Je me suis inspiré d'un paquet <a href="https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.traffar.game_of_life.yml">déjà existant</a> que j'ai adapté pour utiliser SDL 2. Le build est un peu magique, je n'ai aucune idée de ce qu'il se passe mais ça produit un APK à la fin qui fonctionne donc c'est cool, mon but initial est atteint !</p>
<p>Les musiques sont des fichiers .mod, donc il a fallu activer la compilation du plugin dans SDL_mixer qui permet de jouer les .mod.</p>
<p>Les données pour générer les images étaient dans un fichier séparé du code. Pour le moment, je les ai gardé <a href="https://github.com/petitlapin/Li-Ri-devel">séparées</a>, mais idéalement, il faudrait qu'elles soient inclues dans le flot de développement.<br>
Les images sont générées à partir de fichiers <a href="https://www.povray.org/">pov</a>. J'ai du rajouter dans chacun des fichiers de description de générer en version 1.6 pour avoir une image proche de l'originale (il y a encore quelques petites différences mais rien d'important pour que je passe plus de temps) car sinon des changements de valeurs par défaut (<a href="https://github.com/POV-Ray/povray/blob/master/changes.txt#L49"><code>ambient</code> je pense</a>) font que l'image est hyper claire.<br>
L'exécutable pour générer les fichiers binaires de données est encore en SDL 1.2, je n'ai pas regardé pour le modifier pour le moment.</p>
<h2 id="toc-portage-cmake">Portage CMake</h2>
<p>Bonus : je n'avais pas prévu de bosser plus dessus mais bon la curiosité… J'ai donc migré le code vers CMake. En soi, rien de folichon, c'est un projet très basique et générique donc définitions des sources, ajout de l'exécutable, un petit coup d'IPO, deux-trois install par-ci par-là et bingo.<br>
Là où c'est devenu plus intéressant est de générer via les actions Github les exécutables pour différentes plate-formes.<br>
Le premier point a été de trouver comment installer de partout SDL2 et ses dépendances. J'ai tenté d'utiliser l'action officielle <a href="https://github.com/libsdl-org/setup-sdl">https://github.com/libsdl-org/setup-sdl</a> mais elle ne gère que SDL2 et pas SDL2_mixer donc j'ai vite bloqué. En cherchant un peu plus, il y avait différentes solutions mais chacune par OS (<em>apt install</em> pour Linux, <em>nuget</em> pour Windows et <em>brew</em> pour macOS) et ça devenait vite compliqué.<br>
Et puis, <strong>conan</strong> est venu frapper à ma porte ! Le point positif est qu'il y a des paquets SDL2 et SDL2_mixer sous conan. Les négatifs sont que ce sont des versions assez anciennes et pas encore sous la version 2 de conan (c'est <a href="https://github.com/conan-io/conan-center-index/pulls?q=is%3Apr+is%3Aopen+sdl_mixer">en cours</a>).<br>
Et la gestion des versions des dépendances en C++, c'est compliqué. SDL demande OpenSSL en version 1.1.1 et tire PulseAudio qui lui veut OpenSSL en version 3.0.0. En forçant la main à conan dans le fichier de définition (<a href="https://github.com/petitlapin/Li-Ri/blob/main/conanfile.txt">conanfile.txt</a>) en choisissant les versions pour certains paquets, ça passe enfin !</p>
<p>Bon ben, ça compile sur les 3 OS principaux, tant qu'à faire, autant packager ! Encore une fois, cmake vient avec l'outil cpack qui permet de générer des paquets dans différents formats. Il suffit de mettre un certain nombre de variables et cela va générer les paquets avec la bonne configuration.<br>
Le plus compliqué étant de s'assurer qu'une fois installé, le paquet trouve bien les différents fichiers de données.</p>
<p>J'ai pu tester sur Linux et Windows, mais n'ayant pas accès à un mac, je n'ai pas pu tester le paquet macOS.</p>
<p>Un point assez positif est que le code des actions dans le fichier yaml est quasiment le même pour les 3 OS. Il faut que je regarde pour simplifier et utiliser une matrice si possible afin de ne plus dupliquer les lignes. La seule différence est l'installation de NSIS pour Windows, j'imagine qu'il y a la possibilité de pouvoir avoir cette étape seulement sur cet OS.</p>
<p>Les versions:<br>
* <a href="https://f-droid.org/fr/packages/org.liri.liri/">Android</a> (une seconde MR est en cours pour rajouter l'icône sur le jeu).<br>
* <a href="https://github.com/petitlapin/Li-Ri/releases">Linux, Windows et macOS</a></p>
<h2 id="toc-todo-list-or-not-todo">TODO list or not TODO</h2>
<p>Je ne souhaite pas trop m'impliquer dans le code et ce projet (dit-il après l'avoir migré à cmake tout un dimanche), mais il reste encore pas mal de choses intéressantes à faire pour rendre la maintenance plus simple :<br>
* Le code requiert maintenant C++11 suite à l'utilisation du type array. Il n'était peut-être pas nécessaire de l'utiliser si on veut rester compatible avec des OS ayant des compilateurs sans C++11 mais bon, on verra en temps voulu.<br>
* continuer les ports : Emscripten, NintendoDS, Nintendo Switch… SDL fonctionne sur beaucoup de <a href="https://wiki.libsdl.org/SDL2/Installation">plateformes</a> !<br>
* clang-tidy, cppcheck… un peu d'analyse de code statique montre qu'il y a quelques améliorations à faire<br>
* Nettoyage du code. Certaines variables sont globales, certaines ne sont plus nécessaires suite à la migration (Ecran…).<br>
* conan 2 + conanfile.py si ça apporte des avantages par rapport au conanfile.txt ?<br>
* Traduction du code en anglais. La plupart des commentaires, noms de fichiers et variables sont en français. Traduire en anglais permettrait de simplifier la maintenance si des personnes non francophones souhaitent aider.<br>
* Intégrer les données dans le dépôt principal.<br>
* Faciliter le processus de traduction. Pour le moment, il faut générer des images dans un dépôt à part pour rajouter une langue et des textes.<br>
* Améliorer le jeu/rendu ? Rendre facultatives les questions sur la Déclaration Universelle des Droits de l'Homme, c'est vraiment affiché petit sur téléphone, faire des images 4K…<br>
* Utiliser <a href="https://studios.ptilouk.net/superfluous-returnz/blog/2023-03-14_vsync.html">vsync</a> plutôt que de gérer les fps (frame par secondes) à coup de sleep.<br>
* Migrer le code sous Codeberg, gitlab… et/ou faire une organisation Github pour partager la maintenance.</p>
<div><a href="https://linuxfr.org/users/johnny_jazeix/journaux/li-ri-fork-et-portage-de-ri-li-sous-android.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134280/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/johnny_jazeix/journaux/li-ri-fork-et-portage-de-ri-li-sous-android#comments">ouvrir dans le navigateur</a>
</p>
Johnny Jazeixhttps://linuxfr.org/nodes/134280/comments.atomtag:linuxfr.org,2005:News/418162023-12-19T11:30:44+01:002023-12-19T11:30:44+01:00Revue de presse de l’April pour la semaine 50 de l’année 2023Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.</p>
<ul>
<li><a href="https://www.numerama.com/tech/1590098-lopen-source-en-ia-gagne-du-terrain-face-aux-modeles-proprietaires.html">[Numerama] L'open source en IA gagne du terrain face aux modèles propriétaires</a></li>
<li><a href="https://www.liberation.fr/economie/economie-numerique/quatre-choses-a-savoir-sur-le-fedivers-dont-parle-threads-le-nouveau-reseau-social-de-meta-20231216_4GVVK2DIVZADRLBWZENZWJ4JPY">[Libération] Quatre choses à savoir sur le «fédivers» dont parle Threads, le nouveau réseau social de Meta</a></li>
<li><a href="https://www.silicon.fr/logiciels-libres-sill-fin-2023-474304.html">[Silicon] Les logiciels libres entrés au SILL en cette fin 2023</a></li>
<li><a href="https://www.zdnet.fr/blogs/l-esprit-libre/ada-zangemann-un-beau-livre-jeunesse-sur-les-logiciels-libres-39963026.htm#xtor%3D123456">[ZDNet France] «Ada & Zangemann», un beau livre jeunesse sur les logiciels libres</a></li>
<li><a href="https://www.silicon.fr/open-source-lxd-change-licence-474266.html">[Silicon] Open source: LXD change à son tour de licence</a></li>
<li><a href="https://www.404media.co/polish-hackers-repaired-trains-the-manufacturer-artificially-bricked-now-the-train-company-is-threatening-them">[404 Media] Polish Hackers Repaired Trains the Manufacturer Artificially Bricked. Now The Train Company Is Threatening Them</a></li>
</ul>
</div><ul><li>lien nᵒ 1 : <a title="https://www.april.org" hreflang="fr" href="https://linuxfr.org/redirect/113147">April</a></li><li>lien nᵒ 2 : <a title="https://www.april.org/revue-de-presse" hreflang="fr" href="https://linuxfr.org/redirect/113148">Revue de presse de l'April</a></li><li>lien nᵒ 3 : <a title="https://linuxfr.org/news/revue-de-presse-de-l-april-pour-la-semaine-49-de-l-annee-2023" hreflang="fr" href="https://linuxfr.org/redirect/113149">Revue de presse de la semaine précédente</a></li><li>lien nᵒ 4 : <a title="https://filsdu.net" hreflang="fr" href="https://linuxfr.org/redirect/113150">🕸 Fils du Net</a></li></ul><div><h2 id="toc-numerama-lopen-source-en-ia-gagne-du-terrain-face-aux-modèles-propriétaires"><a href="https://www.numerama.com/tech/1590098-lopen-source-en-ia-gagne-du-terrain-face-aux-modeles-proprietaires.html">[Numerama] L'open source en IA gagne du terrain face aux modèles propriétaires</a></h2>
<p>✍ Julien Lausson, le samedi 16 décembre 2023.</p>
<blockquote>
<p>Les modèles de langage open source se rapprochent de leurs rivaux fermés et propriétaires, selon une étude comparant les performances des uns et des autres. Si les seconds sont toujours devant, l’écart s’est réduit en 2023.</p>
</blockquote>
<h2 id="toc-libération-quatre-choses-à-savoir-sur-le-fédivers-dont-parle-threads-le-nouveau-réseau-social-de-meta"><a href="https://www.liberation.fr/economie/economie-numerique/quatre-choses-a-savoir-sur-le-fedivers-dont-parle-threads-le-nouveau-reseau-social-de-meta-20231216_4GVVK2DIVZADRLBWZENZWJ4JPY">[Libération] Quatre choses à savoir sur le «fédivers» dont parle Threads, le nouveau réseau social de Meta</a></h2>
<p>✍ Elise Viniacourt, le samedi 16 décembre 2023.</p>
<blockquote>
<p>Depuis sa création en juillet, le nouveau réseau social Threads, lancé jeudi 14 décembre dans l’UE par Meta, dit vouloir rejoindre le «fédivers». On éclaire vos lanternes sur ce mot-valise, en passe de gagner en popularité.</p>
</blockquote>
<h2 id="toc-silicon-les-logiciels-libres-entrés-au-sill-en-cette-fin-2023"><a href="https://www.silicon.fr/logiciels-libres-sill-fin-2023-474304.html">[Silicon] Les logiciels libres entrés au SILL en cette fin 2023</a></h2>
<p>✍ Clément Bohic, le vendredi 15 décembre 2023.</p>
<blockquote>
<p>Depuis la rentrée, le SILL (Socle interministériel de logiciels libres) s’est enrichi d’une trentaine d’entrées. Les voici.</p>
</blockquote>
<h2 id="toc-zdnet-france-ada--zangemann-un-beau-livre-jeunesse-sur-les-logiciels-libres"><a href="https://www.zdnet.fr/blogs/l-esprit-libre/ada-zangemann-un-beau-livre-jeunesse-sur-les-logiciels-libres-39963026.htm#xtor%3D123456">[ZDNet France] «Ada & Zangemann», un beau livre jeunesse sur les logiciels libres</a></h2>
<p>✍ Thierry Noisette, le jeudi 14 décembre 2023.</p>
<blockquote>
<p>Un album jeunesse sous licence libre, traduit en français par une centaine d’élèves, présente un conte moderne: skateboards, glace à la framboise, informatique libre et bidouillage. Un cadeau de Noël très recommandé.</p>
</blockquote>
<h2 id="toc-silicon-open-source-lxd-change-à-son-tour-de-licence"><a href="https://www.silicon.fr/open-source-lxd-change-licence-474266.html">[Silicon] Open source: LXD change à son tour de licence</a></h2>
<p>✍ Clément Bohic, le jeudi 14 décembre 2023.</p>
<blockquote>
<p>Canonical opère à son tour la bascule d’Apache 2.0 vers AGPLv3, pour le projet LXD. Les porteurs du fork Incus haussent le ton.</p>
</blockquote>
<h2 id="toc-404-media-polish-hackers-repaired-trains-the-manufacturer-artificially-bricked-now-the-train-company-is-threatening-them"><a href="https://www.404media.co/polish-hackers-repaired-trains-the-manufacturer-artificially-bricked-now-the-train-company-is-threatening-them">[404 Media] Polish Hackers Repaired Trains the Manufacturer Artificially Bricked. Now The Train Company Is Threatening Them</a></h2>
<p>✍ Jason Koebler, le mercredi 13 décembre 2023.</p>
<blockquote>
<p>After breaking trains simply because an independent repair shop had worked on them, NEWAG is now demanding that trains fixed by hackers be removed from service.</p>
</blockquote>
</div><div><a href="https://linuxfr.org/news/revue-de-presse-de-l-april-pour-la-semaine-50-de-l-annee-2023.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134265/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/revue-de-presse-de-l-april-pour-la-semaine-50-de-l-annee-2023#comments">ouvrir dans le navigateur</a>
</p>
echarphttps://linuxfr.org/nodes/134265/comments.atomtag:linuxfr.org,2005:Diary/409782023-12-12T10:19:25+01:002023-12-12T10:51:22+01:00devoir hacker un train !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>oui un vrai train, il s'agit d'un train polonais (Impuls 45WE) mais il ressemble à nos TER bombardier.</p>
<p>c'est tiré d'un lien déjà posté qui n'a pas eu toute l'attention qu'il méritait. à mon avis.</p>
<ul>
<li>
<a href="//linuxfr.org/users/ted/liens/en-pologne-les-trains-font-greve-right-to-repair#comment-1944293">https://linuxfr.org/users/ted/liens/en-pologne-les-trains-font-greve-right-to-repair#comment-1944293</a> [FR]</li>
<li>
<a href="https://badcyber.com/dieselgate-but-for-trains-some-heavyweight-hardware-hacking/">https://badcyber.com/dieselgate-but-for-trains-some-heavyweight-hardware-hacking/</a> [EN]</li>
</ul>
<p>dans le deuxième lien c'est l'article orignal, il y a une courte vidéo du train polonais, ca vaut le coup de jeter un œil pour bien appréhender la suite du journal</p>
<h2 id="toc-les-imprimantes">les imprimantes</h2>
<p>Pensez-vous avoir tout vu avec les cartouches d'imprimante à jet d'encre ? Ces imprimantes qui s'arrêtent d'imprimer, déclarant des cartouches encore pleines comme vides. Un nombre de pages imprimées trop important les bloque. Dans un accès de colère, vous finissez par acheter une autre imprimante à 20 euros. Mais imaginez si c'était un tracteur ?</p>
<h2 id="toc-les-tracteurs-john-deere">les tracteurs John Deere</h2>
<p>les tracteurs neuf John Deere sont aussi impactés par ce problème, impossible de faire une maintenance sans bloquer le tracteur, il détecte une vidange -> bloqué et a besoin d'un technicien John Deere pour 'dépanner', mais imaginez si c'était un train ?</p>
<h2 id="toc-oui-mais-avec-un-train-">Oui mais avec un train :/</h2>
<p>Une société de maintenance de trains polonaise remporte un marché sur des trains de fabrication polonaise, avec une économie de 750 000 € par rapport au fabricant qui proposé le même service.</p>
<p>Malheureusement, lors de la première maintenance du premier train, une fois terminée, il refuse de démarrer. Le deuxième train arrive pour la maintenance, et de même, tout semble bien se passer, mais il refuse également de démarrer. Et ainsi de suite… Ils risquent de perdre le marché, car la compagnie ferroviaire a besoin des trains.</p>
<p>Pour remédier à la situation, la société décide de chercher les meilleurs hackers polonais sur Google, passe un contrat avec eux, et ils parviennent à faire redémarrer les quatre trains juste devant la commission qui venait pour révoquer leur marché (les détails techniques sont dans l'article original) en gros ils écrivent directement dans la mémoire ce qui devrait être là, dans un train qui fonctionne.</p>
<p>Maintenant que les hackers ont réussi à faire repartir les trains, ils ont le temps d'étudier la situation. Ils découvrent que des zones GPS enregistrées correspondent aux centres de maintenance concurrents, cela bloquent le démarrage du train si une pièce avec un numéro de série est remplacée et que le train est dans la zone 10 jours. les zones sont détaillées dans l'article original sur googlemaps</p>
<p>Et ce n'est pas tout !!</p>
<p>Ils finissent par trouver des conditions pour signaler des éléments en panne de manière aléatoire, sans qu'ils soient réellement en panne.</p>
<h2 id="toc-ps-">ps :</h2>
<p>comme nous sommes sur linuxfr, j'ai l'autorisation de l'auteur de l'article original pour le traduire partiellement et en faire un petit journal sur linuxfr : </p>
<p>Le 12.12.2023 09:29, Adam H**** a écrit :</p>
<blockquote>
<p>Oui, bien sûr, faites-le. Mon français n'est pas assez bon pour que je<br>
puisse le faire moi-même, alors je suis heureux que vous fassiez<br>
passer le mot.<br>
Meilleures salutations,<br>
Adam</p>
<p>wt., 12 gru 2023 o 09:25 moi napisał(a):</p>
<blockquote>
<p>Hello, I'm French and I'd like to share this article with a short<br>
extract and its translated summary on a small French hacking/linux site<br>
<a href="//linuxfr.org">https://linuxfr.org</a></p>
<p>it would be a pleasure, I would need your permission, could look for<br>
that ?<br>
thank<br>
best regards</p>
</blockquote>
</blockquote>
<div><a href="https://linuxfr.org/users/chocolatineflying/journaux/devoir-hacker-un-train.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134184/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/chocolatineflying/journaux/devoir-hacker-un-train#comments">ouvrir dans le navigateur</a>
</p>
ChocolatineFlyinghttps://linuxfr.org/nodes/134184/comments.atomtag:linuxfr.org,2005:Bookmark/76092023-12-08T22:31:00+01:002023-12-08T22:31:00+01:00En Pologne, les trains font grève - Right to Repair<a href="https://badcyber.com/dieselgate-but-for-trains-some-heavyweight-hardware-hacking/">https://badcyber.com/dieselgate-but-for-trains-some-heavyweight-hardware-hacking/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134145/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/ted/liens/en-pologne-les-trains-font-greve-right-to-repair#comments">ouvrir dans le navigateur</a>
</p>
tedhttps://linuxfr.org/nodes/134145/comments.atomtag:linuxfr.org,2005:Bookmark/67402023-07-01T14:54:22+02:002023-07-01T14:54:22+02:00« Hyperloop , la fin de l'entourloupe »<a href="https://france3-regions.francetvinfo.fr/occitanie/haute-garonne/toulouse/hyperloop-la-fin-de-l-entourloupe-le-train-subsonique-developpe-a-toulouse-ne-sortira-jamais-des-hangars-2802743.html">https://france3-regions.francetvinfo.fr/occitanie/haute-garonne/toulouse/hyperloop-la-fin-de-l-entourloupe-le-train-subsonique-developpe-a-toulouse-ne-sortira-jamais-des-hangars-2802743.html</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/131747/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/jseb/liens/hyperloop-la-fin-de-l-entourloupe#comments">ouvrir dans le navigateur</a>
</p>
jsebhttps://linuxfr.org/nodes/131747/comments.atomtag:linuxfr.org,2005:Bookmark/65962023-06-04T17:25:25+02:002023-06-04T17:25:25+02:00 Onlytrains : quand un Raspberry Pi joue au chef de gare (pour ferrovipathes)<a href="https://www.minimachines.net/actu/onlytrains-quand-un-raspberry-pi-joue-au-chef-de-gare-119370">https://www.minimachines.net/actu/onlytrains-quand-un-raspberry-pi-joue-au-chef-de-gare-119370</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/131463/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/colargol/liens/onlytrains-quand-un-raspberry-pi-joue-au-chef-de-gare-pour-ferrovipathes#comments">ouvrir dans le navigateur</a>
</p>
Colargolhttps://linuxfr.org/nodes/131463/comments.atomtag:linuxfr.org,2005:Bookmark/65512023-05-26T16:22:30+02:002023-05-26T16:22:30+02:0022 lignes de vol court intérieur devaient être interdites, finalement ce sera 3 - numerama<a href="https://www.numerama.com/sciences/1391730-combien-de-vols-interieurs-courts-faut-il-interdire-pour-que-ce-soit-utile.html">https://www.numerama.com/sciences/1391730-combien-de-vols-interieurs-courts-faut-il-interdire-pour-que-ce-soit-utile.html</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/131382/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/antistress/liens/22-lignes-de-vol-court-interieur-devaient-etre-interdites-finalement-ce-sera-3-numerama#comments">ouvrir dans le navigateur</a>
</p>
antistresshttps://linuxfr.org/nodes/131382/comments.atomtag:linuxfr.org,2005:Diary/404152022-10-13T11:33:35+02:002022-10-13T11:33:35+02:00CPU Ex0195 TrainsLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><strong>Dans cette release :</strong> Deux rails, des roues, une locomotive, et tout roule ! Nous recevons <a href="https://www.linkedin.com/in/jerome-monamy-8740a360/"><strong>Jérôme Monamy</strong>, chef circulation à la SNCF</a></p>
<p>Pourquoi tant de spécialistes en sécurité informatiques sont des grands fans de trains ? Comment une infrastructure de transport arrive à évoluer sans casser l'existant ? Quels nouveaux défis à l'heure de la transition écologique ? Et enfin (angoisse) pourquoi faire un sujet sur les 150 ans de la journée nationale du train au Japon ???</p>
<p><strong>À écouter</strong>, podcast, balladodiffusion, liens et vos commentaires : <a href="https://cpu.pm/0195">https://cpu.pm/0195</a></p>
<p><strong>Chapitres :</strong></p>
<ul>
<li><a href="https://cpu.dascritch.net/post/2022/10/13/Bonjour-%C3%A0-toi%2C-Enfant-du-Futur-Imm%C3%A9diat-%3A-Ferrovipathes">Bonjour à toi, Enfant du Futur Immédiat : Ferrovipathes</a></li>
<li><a href="https://cpu.dascritch.net/post/2022/10/13/Standard-%3A-L-%C3%A9cartement-des-rails">Standard : L'écartement des rails</a></li>
<li><a href="https://cpu.dascritch.net/post/2022/10/13/How-to-%3A-Shisa-kanko-%28pointer-et-annoncer%29">How to : <em>Shisa kanko</em> (pointer et annoncer) </a></li>
<li><a href="https://cpu.dascritch.net/post/2022/10/13/J%C3%A9r%C3%B4me-Monamy%2C-chef-circulation-%C3%A0-la-SNCF">Interview</a></li>
</ul>
<p><strong>La semaine prochaine :</strong> On marque encore une pause, on reviet très très vite.</p>
<div><a href="https://linuxfr.org/users/dascritch/journaux/cpu-ex0195-trains.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/129005/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/dascritch/journaux/cpu-ex0195-trains#comments">ouvrir dans le navigateur</a>
</p>
Da Scritchhttps://linuxfr.org/nodes/129005/comments.atomtag:linuxfr.org,2005:Diary/403122022-07-02T10:36:01+02:002022-07-02T10:36:01+02:00Testons la concurrence à la concurrence à la SNCFLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-avant-le-trajet">Avant le trajet</a></li>
<li><a href="#toc-en-gare">En gare</a></li>
<li><a href="#toc-dans-le-train">Dans le train</a></li>
<li><a href="#toc-le-retour">Le retour</a></li>
<li><a href="#toc-conclusion">Conclusion</a></li>
</ul>
<p>Devant me rendre à Tullins-Fures depuis Aix-en-Provence, et n'ayant aucune envie de me taper le trajet en voiture, j'ai fait le trajet avec la SNCF. L'intérêt de ce journal n'est pas énorme, mais je propose quand même d'en faire le tour (note : je n'ai pas pensé à prendre de photos, je compte sur votre imagination).</p>
<h2 id="toc-avant-le-trajet">Avant le trajet</h2>
<p>On tente de réserver un billet en passant par le site sncf-connect ou par l'appli mobile, qui n'est rien d'autre qu'un wrapper avec un peu plus de bugs. Déjà, le site me demande mon numéro de carte de réduction avant de me donner les trajets, soit. Noter que créer un compte et s'enregistrer ne lui fait pas mémoriser le numéro de carte de réduction. Noter aussi que changer le point de départ ou la destination recherchée implique de resaisir la liste des voyageurs… Et des numéros de cartes de réduction.</p>
<p>Ça commence fort, le site est incapable de nous proposer un trajet entre Aix-en-Provence et Tullins-Fures. Genre, nada que dalle. Bon. On sait pourtant qu'il y a une gare à Tullins et qu'elle est desservie. Admettons qu'on fasse un Aix-en-Provence—Grenoble et qu'on finisse en voiture. Nouvelle recherche (resaisie des voyageurs).</p>
<p>Le site nous trouve bien quelques trajets entre Aix-en-Provence et Grenoble. Il y a 2 ans, ce qu'on faisait, c'était un Aix-en-Provence—Valence TGV puis Valence—Tullins. Tullins étant sur la ligne de TER Valence—Grenoble, on s'attendait à ça. Sauf que pas du tout. Il semble que le trajet le plus court entre Aix-en-Provence et Grenoble passe désormais par Lyon. Ou par Nîmes (!). On prend donc un Aix-en-Provence—Lyon-Part-Dieu—Grenoble et retour identique.</p>
<h2 id="toc-en-gare">En gare</h2>
<p>Billet indispensable avant l'accès au quai à cause du portique. Noter qu'avec une poussette et une grosse valise, le portique lui-même devient un obstacle : il vous faut une main pour les valises, une main pour la poussette, et une main pour plaquer le billet sur le lecteur optique. Il y a 5 ou 6 quais à Aix-en-Provence TGV, mais nous avons dû attendre qu'un autre train passe et embarque des voyageurs sur le même quai avant que le nôtre entre en gare, 5 minutes après. Je ne comprends pas du tout cette pratique. Le risque de confusion est évident. </p>
<h2 id="toc-dans-le-train">Dans le train</h2>
<p>Il y a un peu de clim, pas des masses mais ça passe (il ne fait pas encore trop chaud). 25 minutes avant l'arrivée à Lyon, un appel au micro : "L'état d'un passager requiert un membre du corps médical en voiture 1". Entre le devoir et le sandwich, mon cœur balance (en plus, il était au jambon cru. Le sandwich, pas le devoir). Mais je me lève et je me rends en voiture 1. Je tombe sur un contrôleur absolument paniqué, je m'enquiers de la situation. Un type a une diarrhée et bloque les toilettes… Pas de signe de gravité, rien, juste une bête diarrhée comme ça nous arrive à tous. Si vous voulez bloquer un train, pas besoin d'une bombe, il suffit de bloquer les toilettes avec une diarrhée. Rien de particulier sur le reste du trajet.</p>
<h2 id="toc-le-retour">Le retour</h2>
<p>Suite à un COVID carabiné, on a dû annuler nos billets de retour et en reprendre. Cette fois, je décide qu'on passera par Valence TGV parce que la Part-Dieu avec un bébé, plus jamais.<br>
Je force donc la main du site en recherchant un Tullins—Valence et un Valence—Aix. Il me trouve le Valence—Aix mais pas le Tullins—Valence. Je cherche un peu sur internet et trouve un vague article sur des travaux en gare de Tullins. Bon, je suppose que c'est pour ça, la gare n'est pas desservie en ce moment, c'est cohérent. On vise un Grenoble—Valence.</p>
<p>Au final, on s'en sort avec un billet plus rapide et moins cher qu'en passant par Lyon. On a juste dû le chercher à la main.</p>
<p>Après avoir un peu couru pour arriver à l'heure à Grenoble (30 minutes de voiture depuis Tullins), on monte enfin dans un TER bien climatisé, qui sent un peu le plastique neuf. Il nous amène à Valence… en s'arrêtant à Tullins.</p>
<p>Par contre, à Valence, c'est pas la même ambiance. Le train avant le nôtre a deux heures de retard et, évidemment, il s'arrête à notre quai. Aux portiques, c'est le bordel, il y a des passagers de trois trains qui vont au même quai. De nouveau risque de confusion. <br>
On finit par monter dans notre TGV. Sauf que depuis l'aller, il s'est mis à faire très chaud et qu'il n'y a toujours qu'une clim minimaliste. On cuit à petit feu pendant 80 minutes.</p>
<h2 id="toc-conclusion">Conclusion</h2>
<p>Le manque de clim, c'est certes très inconfortable, mais ça peut s'expliquer : la vague de chaleur a surpris tout le monde. Par contre, ce que je ne m'explique pas, c'est la successions de fails organisationnels : un site qui force à rentrer X fois les mêmes infos, pour au final ne pas trouver un trajet qui existe et qui est optimal tant en temps qu'en prix, des portiques qui font perdre du temps à tout le monde et qui ne font même pas économiser un contrôle dans le train, un contrôleur pas formé à distinguer une situation à la con d'une vraie urgence<sup id="fnref1"><a href="#fn1">1</a></sup>, et surtout, je suis surpris qu'à faire partir des trains des mêmes quais à des intervalles si réduits, ils n'aient pas tout le temps des problèmes de voyageurs montés dans le mauvais train. Tout ça a été pensé et réfléchi, ce ne sont pas des problèmes liés à une situation exceptionnelle.<br>
Bref, je suis impatient de voir l'ouverture à la concurrence, parce que pour le moment j'ai l'impression de voyager sur l'Internet Explorer du train.</p>
<div class="footnotes">
<hr>
<ol>
<li id="fn1">
<p>Là j'en rigole, mais en pratique, j'ai dû répéter 3 fois au contrôleur que non, on n'allait pas appeler le SAMU pour une diarrhée. <a href="#fnref1">↩</a></p>
</li>
</ol>
</div>
<div><a href="https://linuxfr.org/users/liorel/journaux/testons-la-concurrence-a-la-concurrence-a-la-sncf.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128177/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/liorel/journaux/testons-la-concurrence-a-la-concurrence-a-la-sncf#comments">ouvrir dans le navigateur</a>
</p>
Liorelhttps://linuxfr.org/nodes/128177/comments.atomtag:linuxfr.org,2005:Bookmark/47502022-06-07T11:01:59+02:002022-06-07T11:01:59+02:00Acheter ses billets de train SNCF en ligne avec des chèques-vacances est désormais possible<a href="https://www.leparisien.fr/economie/acheter-ses-billets-de-train-sncf-en-ligne-avec-des-cheques-vacances-voici-comment-faire-22-05-2022-NS7ACLHFVFGBLBQA6YGYSVCOWM.php">https://www.leparisien.fr/economie/acheter-ses-billets-de-train-sncf-en-ligne-avec-des-cheques-vacances-voici-comment-faire-22-05-2022-NS7ACLHFVFGBLBQA6YGYSVCOWM.php</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/127937/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/elafru/liens/acheter-ses-billets-de-train-sncf-en-ligne-avec-des-cheques-vacances-est-desormais-possible#comments">ouvrir dans le navigateur</a>
</p>
Élafruhttps://linuxfr.org/nodes/127937/comments.atomtag:linuxfr.org,2005:Diary/402122022-03-30T18:48:06+02:002023-06-02T16:29:53+02:00opensara: la bataille du railLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Bonjour Nal,</p>
<p>C'est avec entrain que je t'annonce un nouveau niveau pour mon jeu <a href="https://play.devnewton.fr/opensara/">opensara</a>.</p>
<p>Comme tu dérailles un peu, je te rappelle qu'il s'agit de petites aventures, à jouer pendant une pause café, un peu comme on lit une bande dessinée en une page à la fin d'un journal. Petites, mais pas de tout repos: Sara va être empoisonnée, faite prisonnière d'un vampire et forcée à combattre des monstres pour la République Populaire de Grande Asie.</p>
<p>Et maintenant Sara se retrouve sur le toit d'une locomotive pour affronter une redoutable hors la Loi dont l'arrière train sifflera plus que trois fois pour pouvoir s'envoler avant de se transformer en tornade et de tirer au fusil.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6769746c61622e636f6d2f646176656e6577746f6e2f6c696e757866722d6465766e6577746f6e2f2d2f7261772f6d61696e2f6a6f75726e6175782f323032322f6f70656e736172612d6c612d62617461696c6c652d64752d7261696c2f6f70656e736172612e706e67/opensara.png" alt="train" title="Source : https://gitlab.com/davenewton/linuxfr-devnewton/-/raw/main/journaux/2022/opensara-la-bataille-du-rail/opensara.png"></p>
<p>Les sources du projet sont sur <a href="https://gitlab.com/davenewton/opensara">gitlab</a> toujours sous des licences libres.</p>
<p>Amuse toi bien et à plus dans le ouibus, Nal.</p>
<div><a href="https://linuxfr.org/users/devnewton/journaux/opensara-la-bataille-du-rail.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/127331/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/devnewton/journaux/opensara-la-bataille-du-rail#comments">ouvrir dans le navigateur</a>
</p>
devnewton 🍺https://linuxfr.org/nodes/127331/comments.atomtag:linuxfr.org,2005:Bookmark/41062022-01-10T23:57:15+01:002022-01-10T23:57:15+01:00Carte des gares accessibles sans correspondance<a href="https://direkt.bahn.guru/">https://direkt.bahn.guru/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/126536/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/pulkomandy/liens/carte-des-gares-accessibles-sans-correspondance#comments">ouvrir dans le navigateur</a>
</p>
pulkomandyhttps://linuxfr.org/nodes/126536/comments.atomtag:linuxfr.org,2005:Bookmark/37322021-10-18T11:52:12+02:002021-10-18T11:52:12+02:00Carto Graou : Tous les trains de la SNCF en circulation, en direct<a href="https://carto.graou.info/">https://carto.graou.info/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/125728/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/volia/liens/carto-graou-tous-les-trains-de-la-sncf-en-circulation-en-direct#comments">ouvrir dans le navigateur</a>
</p>
voliahttps://linuxfr.org/nodes/125728/comments.atom