1er dumping partiel des TI-Nspire CAS+
Posted: 30 Apr 2012, 07:09
Dans une news précédente, nous vous présentions le prototype TI-Nspire CAS+ P1-EVT2:
Il disposait d'u temps de démarrage extrêmement long d'1min30. Pour comprendre ce qu'il fabriquait, nous avions utilisé une interface RS232:
Nous constations alors la décompression systématique du système de fichiers à chaque redémarrage, comme si l'OS s'installait à chaque fois:
Mais une autre surprise qui apparaît à la toute fin du démarrage ci-dessus, est le lancement du shell Datalight inclus mais désactivé sur les Nspire ultérieures, et qui permet de naviguer sans contrainte dans le système de fichiers de la CAS+, contrairement au logiciel TI-Nspire Computer Link 1.0 qui avec les CAS+ n'accède pas directement au système de fichiers réels, mais à un disque virtuel ne reprenant que le contenu du dossier /documents et aucun dossier ou fichier système.
Le fichier /phoenix/install/devfiletree.zip de 640Ko semblait très intéressant, et nous supposions qu'il contenait ce qui était décompressé au démarrage.
Nous l'avons donc copié dans le dossier /documents afin de le rendre accessible via le TI-Nspire Computer Link.
Mais autre problème par la suite: le pilote des TI-Nspire CAS+ fourni avec le TI-Nspire Computer Link 1.0 crée une carte réseau virtuel, et additionne 1 à son IP pour attribuer une IP à la TI-Nspire CAS+ via DHCP.
Les logs RS232 montraient que le DHCP échouait et que la TI-Nspire CAS+ n'acceptait pas l'IP, et ne pouvait donc pas communiquer.
Bug ou pilote inadapté à ce prototype plus ancien, il y a une astuce: la TI-Nspire CAS+ P1-EVT2 doit être branchée en USB pendant son démarrage, et là elle accepte l'IP au lancement de l'OS.
Mais re-problème... Le TI-Nspire Computer Link 1.0 freeze à la détection des unités connectées, étant sans doute contrarié par ce vieux prototype P1-EVT2...
Re-astuce de notre part, nous avons fait un telnet sur l'IP de la CAS+ avec le port 10001 et avons pu récupérer manuellement le fichier devfiletree.zip avec la commande fget.
Le fichier ne contient pas l'OS, mais de nombreux chemins et chaînes de caractères. On remarquera notamment les chaînes montrant que l'upgrade de l'OS était possible/prévu, et dont la formulation est bel et bien différente des TI-Nspire finales. Il y avait même apparemment le choix pour l'utilisateur de l'unité réceptrice d'accepter/refuser l'upgrade de l'OS avec une boîte de dialogue oui/non:
A bientôt!
Il disposait d'u temps de démarrage extrêmement long d'1min30. Pour comprendre ce qu'il fabriquait, nous avions utilisé une interface RS232:
Nous constations alors la décompression systématique du système de fichiers à chaque redémarrage, comme si l'OS s'installait à chaque fois:
- Code: Select all
Boot Loader Stage 1
Build: Feb 27 2006, 18:04:35
Copyright (c) 2006 Texas Instruments Incorporated
System clock: 78 MHZ
SDRAM memory test:
Data (ticks=0)
Addr (ticks=1)
Fill (ticks=5)
Test (ticks=11)
Pass (ticks=17)
Checking for NAND: NAND Flash ID: ST Micro NAND256W3A
Launching BOOT2 software...
100%
BOOT1 complete.
Boot Loader Stage 2
Build: Feb 27 2006, 18:06:34
Copyright (c) 2006 Texas Instruments Incorporated
Initializing graphics subsystem.
NAND Flash ID: ST Micro NAND256W3A
Initializing filesystem.
Datalight Reliance v2.00.0451
Copyright (c) 2003 - 2005 Datalight, Inc.
Registered to #9DE08703
FlashFX sample project for the OMAP5912 OSK running Nucleus
Datalight FlashFX Pro v2.0 Build 966
Nucleus Edition for ARM9
Copyright (c) 1993-2005 Datalight, Inc.
Patents: US#5860082, US#6260156.
Detected FfxDelay() parameters: Count=59276 MicroSec=8192 Shift=13
FFX: NAND chip manufacturer: ST Micro (20) chip NAND256W3A (75)
FlashFX SDK License ID #57363077
Filesystem ready.
100%
Beginning system initialization.
Preparing file system...
Datalight Reliance v2.00.0451
Copyright (c) 2003 - 2005 Datalight, Inc.
Registered to #9DE08703
FlashFX sample project for the OMAP5912 OSK running Nucleus
Datalight FlashFX Pro v2.0 Build 966
Nucleus Edition for ARM9
Copyright (c) 1993-2005 Datalight, Inc.
Patents: US#5860082, US#6260156.
Detected FfxDelay() parameters: Count=59365 MicroSec=8192 Shift=13
FFX: NAND chip manufacturer: ST Micro (20) chip NAND256W3A (75)
FlashFX SDK License ID #57363077
File system ready.
Unpacking data...
Creating directory phoenix
Unpacking file phoenix/components
Creating directory phoenix/ctlg
Unpacking file phoenix/ctlg/CtrlCtlg.sav
Creating directory phoenix/ctlg/locales
Creating directory phoenix/ctlg/locales/da
Unpacking file phoenix/ctlg/locales/da/strings.res
Creating directory phoenix/ctlg/locales/de
Unpacking file phoenix/ctlg/locales/de/strings.res
Creating directory phoenix/ctlg/locales/en
Unpacking file phoenix/ctlg/locales/en/2dtemplates.res
Unpacking file phoenix/ctlg/locales/en/all.res
Unpacking file phoenix/ctlg/locales/en/math.res
Unpacking file phoenix/ctlg/locales/en/strings.res
Unpacking file phoenix/ctlg/locales/en/units.res
Creating directory phoenix/ctlg/locales/fr
Unpacking file phoenix/ctlg/locales/fr/strings.res
Creating directory phoenix/ctlg/locales/it
Unpacking file phoenix/ctlg/locales/it/strings.res
Creating directory phoenix/ctlg/locales/no
Unpacking file phoenix/ctlg/locales/no/strings.res
Unpacking file phoenix/ctlg/NormCtlg.sav
Creating directory phoenix/dcol
Creating directory phoenix/dcol/locales
Creating directory phoenix/dcol/locales/da
Unpacking file phoenix/dcol/locales/da/strings.res
Creating directory phoenix/dcol/locales/de
Unpacking file phoenix/dcol/locales/de/strings.res
Creating directory phoenix/dcol/locales/en
Unpacking file phoenix/dcol/locales/en/icons.res
pn-srv6-423: nuc_init usb
Unpacking file phoenix/dcol/locales/en/strings.res
Creating directory phoenix/dcol/locales/fr
Unpacking file phoenix/dcol/locales/fr/strings.res
Creating directory phoenix/dcol/locales/it
Unpacking file phoenix/dcol/locales/it/strings.res
Creating directory phoenix/dcol/locales/no
Unpacking file phoenix/dcol/locales/no/strings.res
Creating directory phoenix/dlog
Creating directory phoenix/dlog/locales
Creating directory phoenix/dlog/locales/da
Unpacking file phoenix/dlog/locales/da/strings.res
Creating directory phoenix/dlog/locales/de
Unpacking file phoenix/dlog/locales/de/strings.res
Creating directory phoenix/dlog/locales/en
Unpacking file phoenix/dlog/locales/en/strings.res
Creating directory phoenix/dlog/locales/fr
Unpacking file phoenix/dlog/locales/fr/strings.res
Creating directory phoenix/dlog/locales/it
Unpacking file phoenix/dlog/locales/it/strings.res
Creating directory phoenix/dlog/locales/no
Unpacking file phoenix/dlog/locales/no/strings.res
Creating directory phoenix/geog
Creating directory phoenix/geog/locales
Creating directory phoenix/geog/locales/da
Unpacking file phoenix/geog/locales/da/strings.res
Creating directory phoenix/geog/locales/de
Unpacking file phoenix/geog/locales/de/strings.res
Creating directory phoenix/geog/locales/en
Unpacking file phoenix/geog/locales/en/icons.res
pn-srv6-431: nuc_init net
Unpacking file phoenix/geog/locales/en/strings.res
Creating directory phoenix/geog/locales/fr
Unpacking file phoenix/geog/locales/fr/strings.res
Creating directory phoenix/geog/locales/it
Unpacking file phoenix/geog/locales/it/strings.res
Creating directory phoenix/geog/locales/no
Unpacking file phoenix/geog/locales/no/strings.res
Creating directory phoenix/math
Creating directory phoenix/math/locales
Creating directory phoenix/math/locales/da
Unpacking file phoenix/math/locales/da/strings.res
pn-srv6-444: nuc_init dev N=1
Creating directory phoenix/math/locales/de
Unpacking file phoenix/math/locales/de/strings.res
Creating directory phoenix/math/locales/en
Unpacking file phoenix/math/locales/en/strings.res
Creating directory phoenix/math/locales/fr
Unpacking file phoenix/math/locales/fr/strings.res
Creating directory phoenix/math/locales/it
Unpacking file phoenix/math/locales/it/strings.res
Creating directory phoenix/math/locales/no
Unpacking file phoenix/math/locales/no/strings.res
Creating directory phoenix/ntpd
Creating directory phoenix/ntpd/locales
Creating directory phoenix/ntpd/locales/da
Unpacking file phoenix/ntpd/locales/da/strings.res
Creating directory phoenix/ntpd/locales/de
Unpacking file phoenix/ntpd/locales/de/strings.res
Creating directory phoenix/ntpd/locales/en
Unpacking file phoenix/ntpd/locales/en/icons.res
Unpacking file phoenix/ntpd/locales/en/strings.res
Creating directory phoenix/ntpd/locales/fr
Unpacking file phoenix/ntpd/locales/fr/strings.res
Creating directory phoenix/ntpd/locales/it
Unpacking file phoenix/ntpd/locales/it/strings.res
Creating directory phoenix/ntpd/locales/no
Unpacking file phoenix/ntpd/locales/no/strings.res
Creating directory phoenix/scpd
Creating directory phoenix/scpd/locales
Creating directory phoenix/scpd/locales/da
Unpacking file phoenix/scpd/locales/da/strings.res
Creating directory phoenix/scpd/locales/de
Unpacking file phoenix/scpd/locales/de/strings.res
Creating directory phoenix/scpd/locales/en
Unpacking file phoenix/scpd/locales/en/icons.res
Unpacking file phoenix/scpd/locales/en/strings.res
Creating directory phoenix/scpd/locales/fr
Unpacking file phoenix/scpd/locales/fr/strings.res
Creating directory phoenix/scpd/locales/it
Unpacking file phoenix/scpd/locales/it/strings.res
Creating directory phoenix/scpd/locales/no
Unpacking file phoenix/scpd/locales/no/strings.res
Creating directory phoenix/syst
Unpacking file phoenix/syst/localenames
Creating directory phoenix/syst/locales
Creating directory phoenix/syst/locales/da
Unpacking file phoenix/syst/locales/da/dialogs.res
Unpacking file phoenix/syst/locales/da/imechars.res
Creating directory phoenix/syst/locales/da/sampledocuments
Unpacking file phoenix/syst/locales/da/sampledocuments/Kom godt i gang.tns
Creating directory phoenix/syst/locales/da/settings
Unpacking file phoenix/syst/locales/da/settings/factory.zip
Unpacking file phoenix/syst/locales/da/strings.res
Creating directory phoenix/syst/locales/de
Unpacking file phoenix/syst/locales/de/dialogs.res
Unpacking file phoenix/syst/locales/de/imechars.res
Creating directory phoenix/syst/locales/de/sampledocuments
Unpacking file phoenix/syst/locales/de/sampledocuments/Erste Schritte.tns
Creating directory phoenix/syst/locales/de/settings
Unpacking file phoenix/syst/locales/de/settings/factory.zip
Unpacking file phoenix/syst/locales/de/strings.res
Creating directory phoenix/syst/locales/en
Unpacking file phoenix/syst/locales/en/dialogs.res
Unpacking file phoenix/syst/locales/en/icons.res
Unpacking file phoenix/syst/locales/en/imechars.res
Creating directory phoenix/syst/locales/en/sampledocuments
Unpacking file phoenix/syst/locales/en/sampledocuments/Getting Started.tns
Creating directory phoenix/syst/locales/en/settings
Unpacking file phoenix/syst/locales/en/settings/factory.zip
Unpacking file phoenix/syst/locales/en/strings.res
Creating directory phoenix/syst/locales/fr
Unpacking file phoenix/syst/locales/fr/dialogs.res
Unpacking file phoenix/syst/locales/fr/imechars.res
Creating directory phoenix/syst/locales/fr/sampledocuments
Unpacking file phoenix/syst/locales/fr/sampledocuments/Prise en main rapide.tns
Creating directory phoenix/syst/locales/fr/settings
Unpacking file phoenix/syst/locales/fr/settings/factory.zip
Unpacking file phoenix/syst/locales/fr/strings.res
Creating directory phoenix/syst/locales/it
Unpacking file phoenix/syst/locales/it/dialogs.res
Unpacking file phoenix/syst/locales/it/imechars.res
Creating directory phoenix/syst/locales/it/sampledocuments
Unpacking file phoenix/syst/locales/it/sampledocuments/Guida introduttiva.tns
Creating directory phoenix/syst/locales/it/settings
Unpacking file phoenix/syst/locales/it/settings/factory.zip
Unpacking file phoenix/syst/locales/it/strings.res
Creating directory phoenix/syst/locales/no
Unpacking file phoenix/syst/locales/no/dialogs.res
Unpacking file phoenix/syst/locales/no/imechars.res
Creating directory phoenix/syst/locales/no/sampledocuments
Unpacking file phoenix/syst/locales/no/sampledocuments/Komme i gang.tns
Creating directory phoenix/syst/locales/no/settings
Unpacking file phoenix/syst/locales/no/settings/factory.zip
Unpacking file phoenix/syst/locales/no/strings.res
Creating directory phoenix/syst/settings
Creating directory phoenix/tblt
Creating directory phoenix/tblt/locales
Creating directory phoenix/tblt/locales/da
Unpacking file phoenix/tblt/locales/da/dialogs.res
Unpacking file phoenix/tblt/locales/da/strings.res
Creating directory phoenix/tblt/locales/de
Unpacking file phoenix/tblt/locales/de/dialogs.res
Unpacking file phoenix/tblt/locales/de/icons.res
Unpacking file phoenix/tblt/locales/de/strings.res
Creating directory phoenix/tblt/locales/en
Unpacking file phoenix/tblt/locales/en/dialogs.res
Unpacking file phoenix/tblt/locales/en/icons.res
Unpacking file phoenix/tblt/locales/en/strings.res
Creating directory phoenix/tblt/locales/fr
Unpacking file phoenix/tblt/locales/fr/dialogs.res
Unpacking file phoenix/tblt/locales/fr/strings.res
Creating directory phoenix/tblt/locales/it
Unpacking file phoenix/tblt/locales/it/dialogs.res
Unpacking file phoenix/tblt/locales/it/strings.res
Creating directory phoenix/tblt/locales/no
Unpacking file phoenix/tblt/locales/no/dialogs.res
Unpacking file phoenix/tblt/locales/no/strings.res
Finished unpacking.
System build date: May 1 2006, 15:15:42
Launching system...
Datalight Command Shell for Nucleus
A:‘¤œ‘̘
Mais une autre surprise qui apparaît à la toute fin du démarrage ci-dessus, est le lancement du shell Datalight inclus mais désactivé sur les Nspire ultérieures, et qui permet de naviguer sans contrainte dans le système de fichiers de la CAS+, contrairement au logiciel TI-Nspire Computer Link 1.0 qui avec les CAS+ n'accède pas directement au système de fichiers réels, mais à un disque virtuel ne reprenant que le contenu du dossier /documents et aucun dossier ou fichier système.
- Code: Select all
A:\>c:
C:\>cd /phoenix/install
C:\phoenix\install\>dir
1980-01-01 00:00:00 <Dir> .
1980-01-01 00:00:00 <Dir> ..
1980-01-01 00:00:00 639280 devfiletree.zip
1980-01-01 00:00:00 17 manifest
Free Space: 18773504 bytes
Le fichier /phoenix/install/devfiletree.zip de 640Ko semblait très intéressant, et nous supposions qu'il contenait ce qui était décompressé au démarrage.
Nous l'avons donc copié dans le dossier /documents afin de le rendre accessible via le TI-Nspire Computer Link.
Mais autre problème par la suite: le pilote des TI-Nspire CAS+ fourni avec le TI-Nspire Computer Link 1.0 crée une carte réseau virtuel, et additionne 1 à son IP pour attribuer une IP à la TI-Nspire CAS+ via DHCP.
Les logs RS232 montraient que le DHCP échouait et que la TI-Nspire CAS+ n'acceptait pas l'IP, et ne pouvait donc pas communiquer.
Bug ou pilote inadapté à ce prototype plus ancien, il y a une astuce: la TI-Nspire CAS+ P1-EVT2 doit être branchée en USB pendant son démarrage, et là elle accepte l'IP au lancement de l'OS.
Mais re-problème... Le TI-Nspire Computer Link 1.0 freeze à la détection des unités connectées, étant sans doute contrarié par ce vieux prototype P1-EVT2...
Re-astuce de notre part, nous avons fait un telnet sur l'IP de la CAS+ avec le port 10001 et avons pu récupérer manuellement le fichier devfiletree.zip avec la commande fget.
Le fichier ne contient pas l'OS, mais de nombreux chemins et chaînes de caractères. On remarquera notamment les chaînes montrant que l'upgrade de l'OS était possible/prévu, et dont la formulation est bel et bien différente des TI-Nspire finales. Il y avait même apparemment le choix pour l'utilisateur de l'unité réceptrice d'accepter/refuser l'upgrade de l'OS avec une boîte de dialogue oui/non:
A bientôt!