Nouveau firmware tiers plus intéressant pour HP Prime...
Posted: 25 Dec 2015, 22:08
Aujourd'hui, Jean-Baptiste Boric a publié les binaires d'une première version officielle de son firmware tiers "Rip'Em" pour Prime, que j'avais signalé plus tôt cette semaine, et ouvre vraisemblablement une nouvelle page de l'histoire de la Prime
Ce qu'il a fait est basé sur le remplacement du deuxième étage de chargement (PRIME_OS.ROM, anciennement BESTAARM.ROM) spécial. Moyennant d'ouvrir sa Prime pour connecter un adaptateur au port série TTL 3.3V (même matériel que pour reflasher le boot2 des Nspire, et bien d'autres choses hors calculatrices), ce nouveau code permet pour l'instant de:
Jean-Baptiste donne quelques éléments sur ce qu'il veut faire maintenant et ce sur quoi on peut aider:
L'auteur, cependant, ne prévoit pas de:
Le premier firmware tiers que j'avais fait, et que Jean-Baptiste référence dans son annonce, était basé sur le troisième et dernier étage de chargement, armfir.elf dans PRIME_APP.DAT (anciennement APPSDISK.DAT). Il a déjà passé plus de temps que moi sur son firmware, et a fait nettement mieux... enfin quelqu'un qui s'intéresse réellement aux firmwares tiers sur la Prime, plus de deux ans après critor et moi, presque un an et demi après mon PoC !
Je renouvelle mes félicitations à Jean-Baptiste, et vous invite à faire de même
Et bien sûr, si vous faites des bêtises avec vos calculatrices et que vous les cassez (NdT: c'est difficile avec des Prime, tant qu'on n'explose pas le mode recovery dans le boot0 - et ça, il faut vraiment le faire exprès), c'est pour vos pieds. Ni Jean-Baptiste, ni moi, ni les autres ne seront responsables.
Code source et téléchargements: https://github.com/boricj/ripem
Source de l'info: https://www.omnimaga.org/hp-prime/annou ... -hp-prime/
Ce qu'il a fait est basé sur le remplacement du deuxième étage de chargement (PRIME_OS.ROM, anciennement BESTAARM.ROM) spécial. Moyennant d'ouvrir sa Prime pour connecter un adaptateur au port série TTL 3.3V (même matériel que pour reflasher le boot2 des Nspire, et bien d'autres choses hors calculatrices), ce nouveau code permet pour l'instant de:
- lancer un GDBstub sur port série, écrit par Jean-Baptiste, permettant de modifier les registres et la mémoire, et d'uploader puis lancer du code;
- charger et lancer un seul fichier ELF (NdT: format d'exécutables standard), deux tels payloads étant actuellement disponibles: dummy.elf pour faire clignoter les LEDs examen et utiliser la Prime comme complément au sapin de Noël (c'est de saison), ou le PRIME_OS.ROM standard après empaquetage dans un fichier ELF avec l'outil "osrom2elf" fourni;
- lancer sa propre application arbitraire "bare metal" (contrôle complet du matériel sans aucune couche d'abstraction) avec les librairies fournies, qui ne demandent qu'à être étendues
Jean-Baptiste donne quelques éléments sur ce qu'il veut faire maintenant et ce sur quoi on peut aider:
- commencer par jouer avec Rip'Em, évidemment - ce n'est pas compliqué ou dangereux, on peut facilement reflasher la Prime pour mettre ou enlever l'OS standard;
- documenter le matériel en utilisant le GDBstub. NdT: et/ou d'autres programmes. Le chip S3C2416 est bien documenté, avec sa datasheet publique, et bien géré par Linux; mais il manque par exemple les assignations des GPIO;
- porter le GDBstub standard, pour l'utiliser plutôt que celui fait par Jean-Baptiste. NdT: peut-être que celui de Jean-Baptiste ne gère peut-être pas toutes les commandes; mais écrire un GDBstub est un exercice formateur et il a eu raison de le faire
- écrire un driver USB série, et remettre le GDBstub par dessus, pour permettre de se passer de matériel supplémentaire pour utiliser le firmware tiers de façon utile;
- ajouter la gestion de plusieurs payloads et le choix au démarrage par une interface simple. NdT: pour ça, il faut vraisemblablement documenter le clavier d'abord.
L'auteur, cependant, ne prévoit pas de:
- s'occuper du firmware standard: reverse-engineering, patches et autres modifications. Il s'intéresse davantage à faire des choses nouvelles sur lesquelles on a un plein contrôle, et la todo list constitue déjà une bonne occupation. NdT: les devs de HP ont déjà écrit que HP ne nous emmerdera pas tant qu'on fait des choses complètement séparées du firmware standard, mais qu'il y aura le jeu du chat et de la souris, comme sur Nspire, si on s'attaque au firmware standard.
- faire de Rip'Em un programme compliqué et lourd. Le seul but est d'être un lanceur d'ELF, et non un OS complet. Même le GDBstub devrait devenir à terme un programme séparé
Le premier firmware tiers que j'avais fait, et que Jean-Baptiste référence dans son annonce, était basé sur le troisième et dernier étage de chargement, armfir.elf dans PRIME_APP.DAT (anciennement APPSDISK.DAT). Il a déjà passé plus de temps que moi sur son firmware, et a fait nettement mieux... enfin quelqu'un qui s'intéresse réellement aux firmwares tiers sur la Prime, plus de deux ans après critor et moi, presque un an et demi après mon PoC !
Je renouvelle mes félicitations à Jean-Baptiste, et vous invite à faire de même
Et bien sûr, si vous faites des bêtises avec vos calculatrices et que vous les cassez (NdT: c'est difficile avec des Prime, tant qu'on n'explose pas le mode recovery dans le boot0 - et ça, il faut vraiment le faire exprès), c'est pour vos pieds. Ni Jean-Baptiste, ni moi, ni les autres ne seront responsables.
Code source et téléchargements: https://github.com/boricj/ripem
Source de l'info: https://www.omnimaga.org/hp-prime/annou ... -hp-prime/