π
<-
Chat plein-écran
[^]

Un meilleur PoC de firmware tiers pour Prime...

Nouveautés, projets, mises à jour.

Un meilleur PoC de firmware tiers pour Prime...

Message non lude Lionel Debroux » 21 Déc 2015, 19:10

Hier, "Jean-Baptiste Boric" s'est présenté sur Omnimaga comme allant faire un autre firmware tiers pour la Prime, non pas à partir du fichier armfir.elf embarqué dans l'apps disk comme je l'avais fait il y a bientôt un an et demi, mais un niveau plus bas, et donc probablement avec plus de contrôle, dans PRIME_OS.ROM.
Et aujourd'hui, il a posté la trace ordinateur d'une session GDB obtenue en tournant un GDBstub côté calculatrice :)

Code: Tout sélectionner
(gdb) x/16x 0x30000000
0x30000000:     0x30000020      0x00000000      0x00100000      0x30000000
0x30000010:     0x00100000      0x004a3556      0x36313432      0x00000000
0x30000020:     0xeb000000      0xeafffffe      0xe92d4008      0xe59f000c
0x30000030:     0xeb00017f      0xe59f0008      0xeb0001cc      0xeb00012b
(gdb) set *(unsigned) 0x30000000 = 0x12345678
(gdb) x/16x 0x30000000
0x30000000:     0x12345678      0x00000000      0x00100000      0x30000000
0x30000010:     0x00100000      0x004a3556      0x36313432      0x00000000
0x30000020:     0xeb000000      0xeafffffe      0xe92d4008      0xe59f000c
0x30000030:     0xeb00017f      0xe59f0008      0xeb0001cc      0xeb00012b
(gdb) x/4x 0x56000070
0x56000070:     0x1400150a      0x00000062      0x01554050      0x00000000
(gdb)


Le GDBstub contient des fonctions d'examination et de manipulation d'état des registres et de la mémoire.
ExtendeD en avait implémenté un dans Ncubate, fork de nspire_emu; je l'avais réintégré dans une version plus moderne de nspire_emu; Firebird, le vrai émulateur de Nspire, le propose toujours, bien sûr.


Bref, ça n'a peut-être pas l'air très excitant comme ça pour les non initiés, et puis je m'y prends peut-être mal pour l'expliquer... mais voici donc le PoC merdique (*1) que j'avais fait enfin dépassé :)
Si Jean-Baptiste continue sur sa lancée pendant des semaines, ceci signe peut-être enfin, plus de deux ans après l'introduction des Prime sur le marché, le vrai début de la programmation alternative sur Prime, ce qui n'était pas le but de mon PoC (*2) :)

Nous vous tiendrons informés de ses avancées, bien sûr.

Source de l'info: https://www.omnimaga.org/introduce-your ... ody-22224/ , https://github.com/boricj/ripem

*1: en relatif, mon armfir.elf tiers était mieux que tout ce qui avait été fait jusque là et encore sur presque un an et demi après, mais en absolu, c'était nul, comme on peut s'y attendre pour un travail de ce genre réalisé en une dizaine d'heures seulement. Et puis étant l'auteur, j'ai le droit de critiquer mon travail comme je veux, surtout quand c'est mérité :)
*2: mon PoC était comme une invitro, une invitation à mieux faire - et Jean-Baptiste est le premier à la saisir, félicitons-le ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Un meilleur PoC de firmware tiers pour Prime...

Message non lude jean-baptiste boric » 21 Déc 2015, 23:48

Et dire que je voulais garder la surprise pour Noël... :D

Bonjour à tous, c'est l'auteur de ce firmware tiers. Excusez mes manières, je suis tout nouveau ici.

Je tiens à garder la date de sortie "officiel" pour le 25 décembre le temps de pouvoir améliorer le PoC, documenter le tout et faire un triple jeu de mots en anglais, je ne m'étalerai donc pas sur les détails avant la date butoir. Par contre, ce n'est pas pour des raisons de contrôle que j'ai décidé de remplacer PRIME_OS.ROM au lieu de armfir.elf (les deux devraient donner un contrôle total de la machine, mais j'ai pas vérifié).

La raison théorique est que c'est l'endroit idéal pour faire un bootloader non-officiel. Vu que BXCBOOT0.BIN (qui charge PRIME_OS.ROM) n'a pas vocation à être mis à jour aussi souvent que PRIME_OS.ROM (qui charge armfir.elf), c'est un endroit beaucoup plus stable dans le temps pour du développement tiers comparé à armfir.elf. Remplacer BXCBOOT0.BIN n'est par contre pas une bonne idée car à la moindre erreur ressusciter la calculette devient très compliqué, étant donné que le recovery est à l'intérieur.

La raison pratique est que je n'avais pas réussi à faire fonctionner le PoC existant avec la dernière version du firmware de HP pour des raisons qui m'échappent en partie... (j'avais réussi sur une version précédente et j'avais bien remarqué que l'adresse en mémoire de base du fichier ELF avait changé entre temps, mais pas moyen d'obtenir la fameuse mire...)

Premier post et je casse déjà la légende. Ca commence bien on dirait :)
Avatar de l’utilisateur
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 4.5%
 
Messages: 374
Inscription: 21 Déc 2015, 22:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: boricj

Re: Un meilleur PoC de firmware tiers pour Prime...

Message non lude Adriweb » 22 Déc 2015, 00:04

Bien joué :)
Je me suis mis en watcheur sur le repo GitHub pour suivre l'évolution...
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Un meilleur PoC de firmware tiers pour Prime...

Message non lude Lionel Debroux » 22 Déc 2015, 15:14

Et dire que je voulais garder la surprise pour Noël... :D

Après qu'un breakthrough ait été posté sur un forum public surveillé régulièrement par plusieurs personnes (ce qui est d'autant plus facile, dans le cas d'Omnimaga, que le forum n'est plus que l'ombre de lui-même...), ce breakthrough n'est plus vraiment une surprise :)

Je tiens à garder la date de sortie "officiel" pour le 25 décembre le temps de pouvoir améliorer le PoC, documenter le tout et faire un triple jeu de mots en anglais, je ne m'étalerai donc pas sur les détails avant la date butoir.

Bien sûr, je comprends tout à fait :)
Quand ce sera officiel, tu auras une news sur le portail.

Par contre, ce n'est pas pour des raisons de contrôle que j'ai décidé de remplacer PRIME_OS.ROM au lieu de armfir.elf (les deux devraient donner un contrôle total de la machine, mais j'ai pas vérifié).

J'aurais dû écrire "probablement pas moins de contrôle", ouais.

La raison théorique est que c'est l'endroit idéal pour faire un bootloader non-officiel. Vu que BXCBOOT0.BIN (qui charge PRIME_OS.ROM) n'a pas vocation à être mis à jour aussi souvent que PRIME_OS.ROM (qui charge armfir.elf), c'est un endroit beaucoup plus stable dans le temps pour du développement tiers comparé à armfir.elf. Remplacer BXCBOOT0.BIN n'est par contre pas une bonne idée car à la moindre erreur ressusciter la calculette devient très compliqué, étant donné que le recovery est à l'intérieur.

En effet, modifier le boot0 est une des manips les plus dangereuses existantes pour des Prime, et tant que ce n'est pas une obligation pour bidouiller, nous savons tous qu'il vaut mieux éviter.
Dans les versions récentes de l'OS, HP ne met même plus à jour le boot0 avec le contenu de BXCBOOT0.BIN.

La raison pratique est que je n'avais pas réussi à faire fonctionner le PoC existant avec la dernière version du firmware de HP pour des raisons qui m'échappent en partie... (j'avais réussi sur une version précédente et j'avais bien remarqué que l'adresse en mémoire de base du fichier ELF avait changé entre temps, mais pas moyen d'obtenir la fameuse mire...)

Ah tiens, intéressant. Je n'avais même pas regardé pour faire fonctionner l'armfir.elf tiers sur une autre version: virtuellement tout le monde s'en foutait, de toute façon...

Premier post et je casse déjà la légende

Que veux-tu dire ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Un meilleur PoC de firmware tiers pour Prime...

Message non lude jean-baptiste boric » 22 Déc 2015, 18:18

Premier post et je casse déjà la légende

Que veux-tu dire ?


Premier post et j'avoue déjà ne (presque) pas savoir ce que je fais, vu qu'au lieu de réussir à comprendre pourquoi je n'arrive plus à lancer un armfir.elf alternatif je décide de remplacer PRIME_OS.ROM à la tronçonneuse, avec tout l'inconfort que de ne pas être chargé avec un fichier ELF bien standard.

Ou comment réussir à implémenter un stub GDB alors que mon code était décalé en mémoire de 32 octets par rapport à ce que je disais au linker faute de documentation. C'est assez impressionnant à quel point le jeu d'instruction ARM est permissif sur ce genre d'erreurs, mon code en a encore des séquelles...

Qu'on se le dise, je suis un débutant dans le monde des calculettes qui est vraiment très, très chanceux. D'où la phrase "premier post et je casse déjà la légende, ça commence bien on dirait" car commencer par exécuter des constantes en mémoire qui par miracle réussissent à finir par arriver au code qui était supposé être lancé au départ + le fait qu'en ARM les grosses constantes sont chargés avec un adressage relatif à pc (et donc l'erreur des 32 octets ne s'est pas fait trop sentir), c'est la chance (monstrueuse) du débutant en action et rien d'autre :o
Avatar de l’utilisateur
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 4.5%
 
Messages: 374
Inscription: 21 Déc 2015, 22:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: boricj

Re: Un meilleur PoC de firmware tiers pour Prime...

Message non lude Lionel Debroux » 25 Déc 2015, 21:38

Ne te dévalorise pas ;)
Tu fais beaucoup mieux que ne pas savoir ce que tu fais.

Je suis en train de rédiger la news sur la release officielle. C'est dommage que tu l'aies annoncée seulement sur le moins actif des 4 principaux sites de la communauté, tu sais ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Un meilleur PoC de firmware tiers pour Prime...

Message non lude DoOmnimaga » 26 Déc 2015, 09:14

Lionel Debroux a écrit:C'est dommage que tu l'aies annoncée seulement sur le moins actif des 4 principaux sites de la communauté, tu sais ;)
Je crois que c'est du au fait que le site en question est le premier à apparaitre dans Google lorsqu'on tape HP Prime assembly. :P (ironiquement, la majorité du développement tiers sur HP Prime se déroule depuis toujours dans la communauté TI)
Dream of Omnimaga
ImageImageImageImage
Avatar de l’utilisateur
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 7.9%
 
Messages: 682
Images: 25
Inscription: 21 Fév 2012, 12:04
Localisation: Quebec, Canada
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 11eme annee scolaire termine
YouTube: DJOmnimaga
Twitter/X: DJOmnimaga
Facebook: djomnimaga


Retourner vers Actualités

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 18 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1014 utilisateurs:
>976 invités
>33 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)