Page 1 of 1

Repartitionne ta TI-Nspire CX/CM et étends sa capacité !

Unread postPosted: 15 Apr 2014, 17:20
by critor
Les calculatrices TI-Nspire disposent d'une mémoire Flash NAND comportant 5 zones distinctes:
  • Manuf (identifiant du modèle, taille de la mémoire SDRAM, propriétés de l'écran, graphismes de démarrage pour les TI-Nspire CX)
  • Boot2 (code de démarrage dont le rôle est de lancer le système d'exploitation dit OS)
  • Boot Data (historique des démarrages de l'OS et de leurs paramètres: version minimale d'OS installable, mode PTT et état de la diode associée, émulation TI-84 pour les TI-Nspire non-CAS monochromes)
  • Diags (logiciel de diagnostics)
  • Système de fichiers (l'OS et tous les documents TI-Nspire)
Pas de Boot1 qui en effet se trouve dans un autre puce ce qui le rend moins facilement reprogrammable.

Sur les TI-Nspire monochromes, la mémoire NAND faisait 32Mo, découpés en pages mémoire de 512octets.
Ces zones se voyaient allouer les tailles suivantes:
ZoneTaille
(pages)
Taille
(Ko/Mo)
Manuf3216Ko
Boot226561328Ko
1,297Mo
Boot Data12864Ko
Diags1280640Ko
Système de fichiers3230720Ko
30Mo


Sur les TI-Nspire CX et TI-Nspire CM, la mémoire NAND est passée à 128Mo découpés en blocs de 64 pages mémoire de 2Ko chacune.
ZoneTaille
(blocs)
Taille
(pages)
Taille
(Ko/Mo)
Manuf164128Ko
Boot22113442688Ko
2,625Mo
Boot Data3192384Ko
Diags7448896Ko
Système de fichiers99263488126976Ko
124Mo


Le formatage des zones allouées au système de fichiers (au format FlashFX sur TI-Nspire) consomme toutefois un petit peu d'espace.
Cela explique que les capacités utilisables reportées par l'OS soient légèrement inférieures (perte d'un petit peu plus de 7% à chaque fois):
  • 27,8Mo au lieu de 30Mo pour les TI-Nspire monochromes
  • 115,2Mo au lieu de 124Mo pour les TI-Nspire CX/CM

Une grande différence avec les modèles précédents est que là où les TI-Nspire monochromes voyaient les tailles de chaque zone codées en dur dans chaque module exécutable (Boot2, Diags et OS), les TI-Nspire CX/CM disposent dans la zone Manuf de la mémoire NAND d'une véritable table de partitions au même titre que le disque dur d'un ordinateur ! :bj:
Ce qui veut dire entre autres que cette table est modifiable ! ;)

Dans un article précédent, je vous sortais mySpire, un programme pour personnaliser l'écran de démarrage TI-Nspire, et vous annonçais que c'était mon avant-dernier programme Ndless.
Voici donc venue ce soir l'heure de ce qui sera je pense mon dernier programme Ndless - nsPartManagic, le gestionnaire de partitions pour TI-Nspire CX/CM ! :bj:

Sur une TI-Nspire CX/CM dont la table n'a jamais été altérée, nsPartManagic vous représentera visuellement le tableau ci-dessus tel que ci-contre, et vous permettra de redimensionner et/ou déplacer chaque zone ! :bj:
En prime, les zones encadrées de rouge indiquent la taille minimale de chaque zone nécessaire pour le bon fonctionnement de la calculatrice, et l'interface vous interdira de réduire davantage. ;)



On remarque que le Boot2 n'occupe en fait que 7 blocs (896Ko) sur les 21 qui lui sont alloués - mais quel gaspillage de place ! :o

Effectivement, voici l'historique des tailles de Boot2 CX/CM récupérés à ce jour:
Version Boot2Taille (Ko)
3.0.0.DEVBUILD CX957Ko
3.0.1.131 CX847Ko
3.0.2.141 CX849Ko
3.1.0.0 CM846Ko
3.1.0.16 CX855Ko
3.1.0.16 CM857Ko
3.2.4.7 CX870Ko


Comme dans le contexte du développement de la TI-Nspire CX il y a eu une amélioration de la compression du Boot2, il est possible que les 21 blocs correspondent à une ancienne estimation qui n'a alors pas été révisée.

Si l'on met de côté la vieille version 3.0.0.DEVBUILD car provenant d'un prototype, tous les Boot2 CX/CM de production sortis jusqu'à présent nécessitent moins de 896Ko et donc seulement 7 blocs ! :bj:
Nous pouvons donc gagner 14 blocs pour le système de fichiers en redimensionnant la zone allouée au Boot2 de 21 à 7 blocs. :D

Sur TI-Nspire CM, aucun problème puisque TI semble avoir cessé tout développement pour cette calculatrice.
Sur TI-Nspire CX, même si ça ne cause aucun problème à ce jour on peut se demander, vu la croissance rapide des tailles de Boot2, si il ne vaudrait pas mieux réduire de 21 à 8 blocs plutôt que 7. En effet, il est possible que d'ici une ou deux versions, le Boot2 TI-Nspire CX dépasse 896Ko et nécessite donc 8 blocs. Si vous mettez à jour une TI-Nspire CX avec un nouvel OS incluant un Boot2 nécessitant 8 blocs, il est fort probable que la calculatrice sera détruite après le 1er démarrage de l'OS.



La zone Boot Data dispose donc de 3 blocs, et en utilise un seul sur la capture ci-dessus. Toutefois en pratique, il est bien possible qu'elle en utilise davantage.
On peut la redimensionner de 3 à 1 bloc, ce qui avec 64 pages mémoire est largement suffisant pour un simple historique des démarrages de l'OS, gagnant ainsi 2 blocs supplémentaires pour le système de fichiers. :bj:

Pourquoi ne pas réduire à 0 bloc alors, si c'est un simple historique des paramètres enregistrés à chaque démarrage de l'OS ?

Réduire à 0 bloc permet en théorie de supprimer ces paramètres, et notamment la protection anti-downgrade par version minimale d'OS installable. ;)
Et en pratique, ça marche. Après avoir réduit à 0 bloc, on peut désormais de façon permanente installer n'importe quel OS sans aucune manipulation supplémentaire, y compris le vieil OS 3.0.1 ! :bj:

Donc, pourquoi est-ce que j'interdis ce réglage, comme indiqué par le cadre rouge sur la capture d'écran ?
Et bien la zone Boot Data contient d'autres choses, dont les paramètres du mode examen PTT.

Vous pensez que réduire la zone Boot Data à 0 bloc permet de bloquer définitivement le mode examen, et que j'ai simplement voulu ne pas attaquer ce mode ?
Et bien non ce n'est pas le cas. En fait, TI a mis une sécurité (une de plus...) dans l'OS: si les paramètres du PTT (activé ou non donc) ne peuvent être lus correctement, ce qui est le cas avec 0 bloc, et bien l'OS passe automatiquement en mode examen et vous offre donc des fonctionnalités réduites. :(

C'est donc pour vous protéger que je fixe le minimum de taille de la zone Boot Data à 1 bloc.
Je vous déconseille fortement de recompiler en supprimant cette limitation, car il y a potentiellement de quoi bloquer définitivement votre calculatrice en mode examen et donc avec des fonctionnalités réduites. Car en effet selon le contexte (Ndless 3.1, Ndless 3.6, Nlaunchy), il peut-être difficile voir même impossible d'installer Ndless en mode examen.



Voici donc le résultat de ces deux premières manipulations - nous pouvons gagner jusqu'à 16 blocs (2Mo) et la capacité de notre système de fichiers passe de 115.2 à 117.3Mo, soit un gain de 2.1Mo ! :bj:
Image Image




Reste maintenant à voir ce que l'on fait de la zone Diags. Elle comprend 7 blocs dont seulement 5 sont utilisés pour le code du logiciel de diagnostics.
  • On peut laisser à 7 blocs, ce qui permet notamment de programmer un Boot2 dans cette zone, avoir deux images de Boot2 utilisables sur sa calculatrice pouvant être une sécurité empêchant sa destruction.
  • On peut la réduire à 5 blocs.
  • Ou l'on peut même supprimer le logiciel de diagnostics via la combinaison de démarrage :nsdo: :nsen: :nsmo:, et ensuite réduire cette zone à 0 bloc. Notons que dans ce cas-là, cela complique certaines procédures de dépannage qui au lieu d'un lancement du logiciel de diagnostics nécessiteront un retrait de la batterie et donc un tournevis. :(

Dans ce dernier cas, voici le résultat - nous gagnons au total jusqu'à 23 blocs (2.875Mo) et la capacité passe de 115.2 à 118Mo, soit un gain de 2.8Mo ! :bj:
Image Image


De quoi stocker plein de fichers PDF supplémentaires ! ;)



A ce jour, la seule utilité pratique de cet outil permettant pourtant tant de choses semble être d'étendre la capacité du système de fichiers TI-Nspire CX/CM.
Toutefois peut-être lui trouverons-nous d'autres applications dans le futur, dont par exemple la possibilité de faire coexister une partition Linux avec la partition FlashFX de l'OS TI-Nspire... ;)




Pour conclure, trois mises en garde:

Notons que même si il est doté de garde-fous, nsPartManagic est un programme capable de détruire votre calculatrice si il est mal utilisé.
Vous devez donc soit comprendre techniquement ce que vous êtes en train de faire et être capable d'en anticiper les conséquences, soit attendre comme pour d'autres programmes que des tutoriels entièrement sécurisés soient publiés.

Précisons aussi que contrairement aux autres zones (Manuf, Boot2, Boot Data, Diags) le format du contenu du système de fichiers (FlashFX) n'est pas documenté publiquement. A ce jour, toute altération de cette dernière zone (déplacement ou redimensionnement) entraînera une perte totale de son contenu, la calculatrice vous invitant à réinstaller l'OS au prochain redémarrage, et vous devrez ensuite réenvoyer tous vous documents, y compris Ndless.

Enfin, à partir du moment où vous avez altéré votre table de partitions, vous ne devez plus utiliser d'utilitaires de reprogrammation ou dumping NAND sortis avant nsNandMgr v2.0.
En effet, ces utilitaires ne lisaient pas les valeurs de la table de partitions mais utilisaient des valeurs par défaut qui ne seront donc plus valables pour votre calculatrice.
Sur TI-Planet ils ont normalement tous été désactivés et redirigés vers nsNandMgr v2.0, premier et seul utilitaire de reprogrammation NAND à tenir correctement compte de la table des partitions à ce jour, mais ce n'est peut-être pas le cas sur d'autres sites qui ont copié d'anciens utilitaires ou versions.




Téléchargement :
nsPartManagic

Re: Repartitionne ta TI-Nspire CX/CM et étends sa capacité !

Unread postPosted: 15 Apr 2014, 19:42
by Adriweb
Félicitations pour cet outil de qualité professionnelle :)

Re: Repartitionne ta TI-Nspire CX/CM et étends sa capacité !

Unread postPosted: 16 Apr 2014, 07:29
by Lionel Debroux
Les mises en garde sont une nouvelle fois bien visibles, mais il y aura encore forcément des utilisateurs qui feront des bêtises...

Très bon travail, comme toujours :)