π
<-

Linky pour 84+/84+SE/84+CSE - programmation USB...

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Linky pour 84+/84+SE/84+CSE - programmation USB...

Unread postby Lionel Debroux » 06 May 2013, 19:28


Brandon Wilson, qu'on ne présente plus, s'est mis à réécrire une application permettant les communications USB sur 84+, 84+SE et même 84+CSE :)
The famous Brandon Wilson started rewriting an application for USB communications on the 84+, 84+SE and even 84+CSE :)

La version d'origine d'un framework de communication USB pour 84+/84+SE s'appelle usb8x. Elle a été réalisée il y a des années, quand on avait moins d'infos sur le contrôleur USB.
The original version of a USB communication framework for 84+/84+SE is called usb8x. It was made years ago, when we had less information about the USB controller.


Téléchargement des binaires: http://brandonw.net/calcstuff/Linky.zip
Code source sur Github: http://github.com/brandonlw/Linky
Linky est le petit nom d'une version 89T d'usb8x que Brandon avait créée il y a une paire d'années. J'y avais contribué le code de mapping clavier interne <-> clavier USB HID, et que j'avais utilisée avec succès sur une board de développement ARM dépourvue de port USB A femelle pleine taille.
Linky is the nickname of a 89T version of usb8x, which Brandon created about two years ago. I had contributed the internal keyboard <-> USB HID keyboard mapping code, and I had successfully used it on an embedded ARM development board without full-size female USB A port.

BrandonW prévoit d'implémenter les modes hôte et périphérique USB, en le faisant de façon plus correcte que le vilain ensemble d'attentes codées en dur qu'est la stack USB de l'OS de TI, car il pense qu'on a assez d'infos sur le contrôleur USB nommé MUSBFDRC pour faire les choses comme il faudrait.
The plan is to support both USB host and peripheral mode, implementing USB "correctly" instead of the hard-coded-delay mess that is the TI-OS implementation. I think we understand enough now about the MUSBFDRC controller that we can make this a reality.

Le mode hôte de Linky devra corriger certaines vieilles limitations d'usb8x (comme l'envoi de certains gros paquets), aussi bien que permettre la gestion des hubs et de plusieurs drivers. Le but est que non seulement il soit possible de connecter plus d'un périphérique à la fois, mais encore plus intéressant, que deux programmes / applications différentes puissent communiquer en même temps avec des périphériques différents: àa permettrait de connecter à la fois un clavier HID et un stockage de masse, un clavier et une souris, etc.
Host mode will address some longstanding issues with usb8x (like sending certain large packets) as well as hub and multiple driver support - not only will you be able to attach more than one USB peripheral at the same time, but two different programs/applications can communicate to each at the same time. That way you can do things like hook up both a keyboard and flash drive, or keyboard and mouse, etc.

Brandon est au courant que ses buts sont ambitieux (NdT: il a accompli tant d'autres choses ambitieuses !) et que le chemin est encore long, mais pour commencer, il a déjà fait suffisamment de code pour faire se comporter la calculatrice comme un périphérique standard Device Firmware Upgrade, ce qui permet de lire et d'écrire des images brutes en Flash, en utilisant un outil standard et portable (Windows, Linux, OS X et certainement d'autres) en ligne de commande nommé "dfu-util". Pour autant que BrandonW sache (NdT: idem pour moi), les dumps et reflashages n'avaient jamais été faits de cette façon là sur la famille 84+ auparavant.
It's a little ambitious, I know, and it's far from done, but as a teaser, I've added a "DFU mode" tool that makes the calculator show up as a DFU (Device Firmware Upgrade) device, so you can read and write raw images to the flash chip using a standard and portable (Windows, Linux, OS X and certainly others) command-line utility called "dfu-util". As far as BrandonW (translator's note: and I) are aware, dumps and reflashes were never done before that way on the 84+ family.

En mode "téléchargement" (reflashage), Linky se copie en RAM, et tourne sans interruptions, sans faire aucune référence à l'OS, de façon à pouvoir réécrire l'OS (et la mémoire certificats, si l'utilisateur le demande) à sa guise.
For "download" (flashing) mode, Linky copies itself into RAM and runs interrupt-less and OS-less so it's free to overwrite the OS (and certificate, if you specify it).

Pour dumper la ROM complète:
1. Dans le menu Tools de LINKYDRV, sélectionner 1) DFU ROM Dump, puis choisir d'inclure ou pas la zone des certificats. L'option est là au cas où l'inclure ne fonctionnerait pas (par exemple à cause d'un exploit de déverrouillage qui aurait été corrigé).
2. Sur Windows, télécharger et lancer l'utilitaire "zadig" pour installer un driver WinUSB pour le nouveau périphérique qui est apparu (NdT: vilaine limitation de Windows).
3. Utiliser l'utilitaire en ligne de commande dfu-util: dfu-util -U dump.rom
To dump the ROM:
1. In LINKYDRV's Tools menu, select 1) DFU ROM Dump, then choose whether to include the certificate or not. The option is there in case "with" doesn't work (because of a patched unlock exploit or something).
2. If on Windows, download and run the "zadig" utility to install a WinUSB driver for the new device that's shown up (translator's note: ugly Windows limitation).
3. Run the dfu-util command line utility with: dfu-util -U dump.rom

Pour reflasher la ROM complète:
1. Dans le menu Tools de LINKYDRV, sélectionner 2) DFU ROM Write, puis choisir d'écrire la zone des certificats ou d'ignorer les données certificat du dump à reflasher.
2. Utiliser l'utilitaire en ligne de commande dfu-util: dfu-util -D dump.rom
To flash a ROM:
1. In LINKYDRV's Tools menu, select 2) DFU ROM Write, and then choose to either write the certificate or ignore it.
2. Run dfu-util from the command line with: dfu-util -D dump.rom

Note importante: ne choisissez surtout pas de réécrire la zone des certificats quand vous reflashez, à moins d'être vraiment sûr que le fichier à reflasher contient un contenu valide pour la zone des certificats !
Important note: do not choose to write the certificate when flashing the ROM unless you are really sure the file you're flashing includes a valid certificate.

Comme indiqué plus haut, il reste beaucoup de travail, mais c'est le début d'une implémentation "propre" d'un hook d'activité USB flexible (ou bien d'une fonction de polling sans interruptions et sans OS, si vous en avez besoin). Brandon élargira le mode périphérique quand il portera davantage de "drivers", mais pour l'instant, il faut se concentrer sur le mode hôte.
As mentioned above, it still needs a lot of work, but it's the start of a "clean" implementation of a flexible USB activity hook (or interrupt- and OS-less polling function, if you need it). Brandon will flesh out peripheral mode more once he starts porting more "drivers" to it, but for now it's time to focus on host mode.


Les lecteurs attentifs auront remarqué que Linky est une FlashApp tierce, pour 84+CSE, et qu'elle se transfère directement à la calculatrice avec les logiciels de communication standards, ce qui veut dire quelque chose à propos des clés RSA de signature / validation.
Astute readers will have noticed that Linky is a third-party FlashApp, for the 84+CSE, and that it can be directly transfered to the calculator with standard linking software, which means something about the signing / validation RSA keys.


Source de l'info: IRC et un peu plus tard, http://www.cemetech.net/forum/viewtopic.php?t=9146 .
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Linky pour 84+/84+SE/84+CSE - programmation USB...

Unread postby nikitouzz » 06 May 2013, 19:30

Ca me donne un paquet d'idee tout ca ..... (un programme d'echange de programme depuis la calculatrice uniquement en usb par exemple....) je reserve le projet :p
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: Linky pour 84+/84+SE/84+CSE - programmation USB...

Unread postby Streetwalrus » 07 May 2013, 06:50

Lionel Debroux wrote:
Les lecteurs attentifs auront remarqué que Linky est une FlashApp tierce, pour 84+CSE, et qu'elle se transfère directement à la calculatrice avec les logiciels de communication standards, ce qui veut dire quelque chose à propos des clés RSA de signature / validation.
Astute readers will have noticed that Linky is a third-party FlashApp, for the 84+CSE, and that it can be directly transfered to the calculator with standard linking software, which means something about the signing / validation RSA keys.

Donc il a déjà trouvé les clés d'application de la CSE ou alors ce sont les mêmes c'est bien ça ? :bj: Là ça veut dire qu'il fait d'une pierre deux coups puisqu'en plus ça permet d'exploiter correctement l'unique avantage de la 84+ sur la 83+SE.

Et nikitouzz je croyais que l'OS gérait déjà ça ?
User avatar
Streetwalrus
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 23.4%
 
Posts: 32
Joined: 12 Nov 2012, 21:57
Location: Israël
Gender: Male
Calculator(s):
MyCalcs profile
Class: BSc élec

Re: Linky pour 84+/84+SE/84+CSE - programmation USB...

Unread postby Lionel Debroux » 07 May 2013, 09:13

Ce ne sont pas les mêmes clés de signature / validation, mais vu qu'elles font la même longueur que les clés que nous avons factorisées en 2009 (d'abord Benjamin Moody en solo, puis les autres collectivement, principalement par http://boinc.unsads.com/rsals ), et que la puissance de calcul a augmenté depuis, c'est encore plus facile à factoriser maintenant qu'à l'époque :)
La factorisation de la clé publique de validation a été réalisée par une personne seule, munie de quelques ordinateurs, en quelques jours. Je sais (pour avoir vu ça sur MersenneForum) que si on se donne la peine de mettre des choses en place sur Amazon EC2, on peut factoriser une clé RSA 512 bits encore plus rapidement, et que c'est beaucoup moins cher que d'acheter un seul ordinateur, même bas de gamme.

Et nikitouzz je croyais que l'OS gérait déjà ça ?

Je pense qu'il voulait parler d'un programme côté calculatrice (un client de Linky) qui repose sur un protocole USB standard, comme Mass Storage Device ou Picture Transfer Protocol, et qui ne nécessite donc pas d'installation de drivers côté ordinateur (sauf pour les utilisateurs de Windows, qui complique la vie des utilisateurs cherchant simplement à faire des choses simples).
S'il y avait un protocole standard pour les ports série USB, il n'y aurait pas non plus besoin d'installer un driver spécial spécifique à un chip... malheureusement, il y a un gros manque dans le standard pour ce type de communications...
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Linky pour 84+/84+SE/84+CSE - programmation USB...

Unread postby Streetwalrus » 07 May 2013, 11:18

Ah d'accord. Pour ce qui est de l'OS, je suppose que le meilleur moyen est de patcher le boot code ou le certificat plutôt que d'essayer de factoriser une clé 2048 bits ? La communauté ne devrait pas tarder à s'y pencher je suppose.

Et effectivement connecter sa calculatrice en MSD comme la Casio Prizm est très intéressant. Combiné au DFU ça permettrait de se débarrasser de TILP/TI Connect pour les 84+ (en fait pas définitivement mais dans la plupart des cas). :bj:
User avatar
Streetwalrus
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 23.4%
 
Posts: 32
Joined: 12 Nov 2012, 21:57
Location: Israël
Gender: Male
Calculator(s):
MyCalcs profile
Class: BSc élec

Re: Linky pour 84+/84+SE/84+CSE - programmation USB...

Unread postby Lionel Debroux » 07 May 2013, 11:55

La factorisation d'une clé RSA 2048 bits est inatteignable pour encore très longtemps, en effet. Sauf coup de chance extraordinaire, équivalent à gagner à plusieurs dizaines de loteries.
Plus de 3 ans après la factorisation de RSA-768 par les chercheurs en pointe dans le domaine de la factorisation, la factorisation des clés RSA 768 bits reste hors de portée d'un groupe comme nous. La factorisation de RSA-1024 est encore trois ordres de grandeur plus difficile...

Pour utiliser la calculatrice comme un MSD et pouvoir transférer dans les deux sens des fichiers au format famille 84+ sans logiciel supplémentaire, il faut quand même une couche de mapping significative.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl


Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: Astrostellar, ClaudeBot [spider] and 12 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
822 utilisateurs:
>783 invités
>32 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)