1

J'ouvre un topic pour le projet qui n'a que trop duré (quoi, 3 ans déjà ?)

Son but est de fournir un support USB hôte pour la TI-89 Titanium, ainsi que des drivers pour différentes classes de périphériques (à terme de l'HID ultra-léger pour clavier/souris, du mass storage et du bluetooth).

Techniquement la pile USB complète doit être réécrite, comme ça a été fait avec ubs8x pour TI-84 Plus, la pile existante d'AMS n'étant pas assez souple et ne fournissant pas facilement des points d'entrée.
On peut distinguer une couche bas-niveau offrant les fonctions USB de base, les drivers qui exposent leurs API, et les applications les utilisant. Actuellement la première couche est en bonne voie pour être très prochainement utilisable.

Mon but est de distribuer rapidement le premier morceau, quitte à laisser le reste à des personnes motivées (d'où le topic pour me forcer à publier quelque chose plutôt que ça parte dans l'oubli - accessoirement aussi pour éviter tous les mails que je vois passer). Ca sera probablement mon dernier projet sur TI, à moins d'autres idées loufoques ou d'une Nspire pas trop fermée.
Habituellement on met ça à la fin du lisezmoi mais comme il n'est pas encore né il à sa place ici : jusqu'ici je remercie Romain Liévin pour le prêt de sa Titanium pendant un temps, pour l'achat d'une nouvelle à bon prix, pour ses conseils et ses infos; Dan Englender pour son travail de "l'autre côté", avec qui j'ai pu dégoter un tas d'infos sur l'hardware et les spécifications USB, et pour son don de câble-adapteur USB; Kevin Kofler pour sa doc de l'API USB de haut-niveau d'AMS et son aide sur quelques autres trucs; JfG ou FpgForge pour le petit nom du projet (ma mémoire flanche qu'il se dénonce).

Trève de blabla (autant distiller les infos au fil de l'eau), voilà une première mini vidéo toute pas belle de test de la couche basse (ucore) avec une souris USB.

2

Ouah! Très prometteur!

Ca donne envie de voir la suite smile
avatarAncien pseudo : worfang.

3

Concrêtement, qu'est-ce qui a été fait et qu'est-ce qui reste à faire ?
avatar« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

4

#046#
C'est ton combientième dernier projet ? grin
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

5

Mais euh. Celui là je le traîne au bout, histoire que ça parte pas dans le vent, c'est déjà assez laborieux.

Sasume : j'ai étudié l'ensemble de la pile d'AMS, je l'ai réécrite telle quelle en C et je l'ai validée à l'exécution. J'ai documenté les ports I/O suffisamment clairs et complété avec Dan Englender la wiki concernant la 84+ qui s'avère partager le même contrôleur USB (aujourd'hui j'ai des .txt à part à cause de quelques divergences). Il y a encore beaucoup de ports inconnus, mais tant qu'on sait quoi émettre où et quand personnellement ça ne me gêne pas. J'ai commencé à ré-écrire depuis zéro les primitives d'échanges USB (donc aujourd'hui du code nettoyé de copyright TI).

Aujourd'hui il reste à finir ces primitives (je suis dessus, il ne reste pas grand chose), et à rendre l'API publique utilisable les drivers plus propre (le premier morceau que je voudrais distribuer).
Puis le driver mass storage pourra être commencé. Pour faire au plus rapide je pense extraire umass et les morceaux nécessaires SCSI de FreeBSD, que j'ai exploré en détail (dont le code m'apparaissait plus simple que celui de Linux).
Les drivers souris/clavier (HID en mode boot) seront eux simplicissimes à écrire.

Noter que tout ça sera portable sur Nspire si par chance le même contrôleur est utilisé (d'où l'interêt de coder en C), conditionné à l'ouverture de la plateforme au dev.

6

Concernant les adapteurs USB, Dan Englender m'avait envoyé un modèle de Serialio. Apparemment ça se trouve maintenant plus couramment qu'à l'époque (Amazon.jp, Vernier (spécial pour TI d'ailleurs), Hama (le site français est par terre, pas moyen de voir s'il en vend), par contre en France je sais pas...

7

cool, on pourra brancher une webcam dessustrifus
sinon, pour le bluetooth ça serait génial que ça fonctionne, ça serait la 1ere fois que quelqu'un réaliserait une communication sans fil entre 2Ti qui fonctionne (le module radio et l'irlink ne fonctionnant pas à ma connaissance)

8

Voir ente une TI et un téléphone, un PC, ou n'importe quoi happy
avatarQue cache le pays des Dieux ? - Ximoon's Box - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

9

aussi, mais pour pouvoir communiquer et gruger pdt les exams ce serait le pied grin

10

d3us (./7) :
cool, on pourra brancher une webcam dessustrifus

Je doute que le débit tienne. Les facteurs limitants seront toujours débit/cpu, RAM et courant.

11

Bravo !

A propos de courant, ça mange beaucoup les piles ou c'est raisonnable ?

12

Aucune idée pour l'instant. Je fais des tests intensifs depuis une semaine avec des piles rechargeables neuves, on va voir combien de temps ça va tenir.

13

Bonne nouvelle, apparemment ma clé USB répond correctement aux commandes SCSI, donc les transferts de type Bulk fonctionnent aujourd'hui.

Mon problème est maintenant une casse-tête de licence : les drivers USB de FreeBSD (dont mass storage que je porte en premier) reposent sur l'API usbdi que je dois implémenter (une 20aine de fonctions et quelques structures de données). Malheureusement le sous-système USB de FreeBSD est sous licence BSD 4 clauses, notamment incompatible avec la GPL.
Mon idée était d'avoir la couche basse (ucore) dans une bibliothèque séparée sous une licence lâche (genre BSD 2 clauses), de créer une lib spécifique d'adaptation implémentant usbdi (nécessairement sous BSD 4 clauses), et d'avoir umass dans une 3ème lib appelant la 2ème (elle aussi sous BSD 4 clauses). Comme ça si jamais des drivers GPL (genre Linux) étaient amenés à être portés, on créerait une lib équivalente à usbdi implémentant l'interface analogue de Linux, appelée par les drivers portés Linux. Tant que les libs sous GPL et les libs sous BSD 4 clauses ne sont pas liés dynamiquement en même temps la GPL n'est pas violée.

Le problème est la création de cette lib d'adaptation d'API usbdi : si la lib de couche basse ucore expose une API publique de fonctions, structures et constantes proches de usbdi de FreeBSD (mais par exemple sous des noms différents, et éventuellement quelques différences pour être compatible avec l'API Linux), et si usbdi fait simplement des casts des structures et de la délégation d'appel, est-ce que ça reste légal ou trop à la limite ?
Une autre solution radicale est de tout couvrir en BSD 4 clauses et s'interdir le portage de drivers GPL.

Noter que tous ces problèmes sont une fois de plus dû à l'aspect viral de la GPL.

Ca n'a rien à voir mais je viens de voir qu'il y avait plusieurs projets de nouveaux drivers prévus pour la 84+, notamment un driver d'imprimante qui commence à marcher.

14

Ça prend combien de place en mémoire, tout ça ?
avatar« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

15

Pour l'instant 5ko pour la couche HW. Les différents portage prendront de la place mais ça me gêne pas personnellement, le but c'est d'avoir un truc utilisable le plus rapidement possible.

16

Il me semblait que la 4clause avait disparu des BSD. Tu peux regarder du coté d'OpenBSD. Peut-être que tu n'auras pas ce problème.

17

> Noter que tous ces problèmes sont une fois de plus dû à l'aspect viral de la GPL.
Mais non, FUD ! La GPL est très bien.
Tes problèmes sont uniquement dus au fait que tu es un très vilain programmeur qui n'utilise pas La Seule Vraie Licence Libre, mais une licence plus libérale, qui permet même de rendre le code propriétaire (cf Apple à une époque avec le kernel de MacOS X, basé sur FreeBSD). Cela pour des raisons stupides ("dont le code m'apparaissait plus simple que celui de Linux" n'est pas une raison valable tongue)


dehors
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

18

roll

./16 : les implémentations USB de OpenBSD et FreeBSD sont toutes les 2 issues de celle de NetBSD à 4 clauses sick
Finalement je vais partir sur du code en BSD 2 clauses utilisant les structures en BSD 4 clauses, et on avisera plus tard pour les problèmes de portage de code sous GPL, c'est pas irreversible non plus.

19

ils on cas utiliser des drivers en LGPL plutot que GPL et puis basta nan mais, te fait pas chier avec ces pbms de licences, reste en BSD/4 ou mix de BSD/2\BSD/4 et ça sera largement suffisant, de toute maniere 99% des drivers doivent exister en clauses BSD.

Et c'est une realitée, le code BSD est bcp plus propre que le code de Linux...
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

20

Alors à plus long terme : il faudrait une implémentation de FAT simple à porter. La plus simple et propre (i.e. pas avec des dizaines de dépendance à extraire) que j'ai trouvé est celle de GRUB2, mais qui permet simplement la lecture... et est sous GPL.
Je suis pas sûr qu'extraire FAT des *BSD soit très simple, mais à revoir.

21

A propos de ./13 :
Y'a toujours un truc qui cloche. Le JDK est aujourd'hui sous GPL avec une Classpath exception permettant à des programmes Java non GPL d'utiliser les classes du JDK. Mais d'après ce post de quelqu'un de chez Sun (et le post du forum qu'il mentionne), Java ME est sous GPL sans cette Classpath exception, avec pour raison que la distribution des application JME se fait toujours séparémment de la plateforme Java, donc sans besoin de l'exception.

Donc d'après Sun un programme non-GPL peut parfaitement appeler une bibliothèque GPL tant que les deux ne sont pas distribués ensemble, et ne se rencontrent qu'au moment du binding dynamique. Ca devient tout de suite très simple de contourner les restrictions de la GPL, j'y crois pas trop...

22

c'est vraiment pas clair la situation de Java sorry

23

(comme la situation de tout ce qui est en GPL)
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

24

C'est très clair au contraire. Cf second post de http://forums.java.net/jive/thread.jspa?threadID=20101&tstart=0

This is more like an operating system such as Linux and the mere act of
writing, compiling, and running code on the platform does not infect it.

25

C'est n'importe quoi, il y a toute la librairie de classes aussi, c'est comme si la glibc était sous GPL et pas LGPL!
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

./24 : A quel moment détermine-t-on que Java est plutôt une plateforme ou plutôt un simple outil d'exécution ? (plus de nouveaux modèles récents de portables arrivent sur le marché plus ça va devenir flou)

27

(UP de loin)

(English version below)

Comme je ne vais très probablement plus travailler sur le projet à cause la Nspire qui me prendra du temps et parce que ça fait trop longtemps que je le traine, je profiter de cette relance pour distribuer tout ce qui est distribuable (documentation, notes et implémentation).

Tout est distribué en l'état, mais au moins ce ne seront pas des centaines d'heures d'effort qui partent en fumée.
La documentation et les notes sont dans le domaine public, le code a sa licence, mais je préfère si possible être prévenu de toute réutilisation.

-------

As I probably won't work anymore on this project because of the Nspire and because I have been lingering over it, here is anything I can share (documentation, notes and implementation).
Everything is distributed as is, but at least I hope this work will be reused for something.
The documentation and notes are in the public domain, the code has a license, but I would prefer to be notified of any reuse.



Mots-clés Google (pas sûr que ça serve mais tentons) : USB TI-68k TI-89 Titanium stack host I/O port documentation implementation usb8x

28

pour les mots clés google, ce serait mieux de les écrire avec un bon contraste au contraire :
ExtendeD (./27) :
USB TI-68k TI-89 Titanium stack host I/O port documentation implementation usb8x


(et félicitations/merci, au fait tongue)

29

USB TI-68k TI-89 Titanium stack host I/O port documentation implementation usb8x

Histoire que google ne passe pas à côté. triso ^^
avatarla Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

30

tu peux te moquer mais le coup du contraste c'est important il parait embarrassed
(genre le texte blanc sur fond blanc c'est des points négatifs à ce qu'on dit)