Page 1 of 1

[RESOLU] TiLP sur Linux et Nspire CX

Unread postPosted: 29 Mar 2013, 23:18
by ShootPad
Bonjour à tous,

Je souhaite utiliser TiLP pour Linux (sur Ubuntu 12.04), afin d'envoyer des fichiers vers ma Nspire CX CAS sans devoir repasser sous Windows.

Malheureusement, après de longues recherches sur Internet (forums de tiplanet.org et consorts inclus), ainsi que de multiples tentatives de paramétrage, j'avoue ne même pas réussir à faire reconnaître ma calculette par TiLP.

Je pense avoir configuré, compilé et installé TiLP correctement ; je dispose de la version 1.16. N'importe quelle forme d'aide sera la bienvenue ! Je vous en remercie à l'avance.

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 02:53
by Levak
Bonsoir,

Normalement il suffit d'utiliser http://lpg.ticalc.org/prj_tilp/download/install_tilp.sh
Bien entendu, ne pas utiliser le paquet disponible dans les dépôts d'ubuntu.

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 08:35
by Lionel Debroux
Et à la fin, il faut soit lancer TILP en tant que root, soit ajouter une définition pour udev, comme décrit dans le fichier pointé par le script :)

N'hésite pas à continuer à nous poser des questions si tu as toujours un problème. Aussi, la trace dans le terminal pourrait être utile.

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 10:31
by ShootPad
Erf. Je me demande comment j'ai fait pour passer à côté de ce script...

Anyway. J'ai réussi à compiler tout ça (il manque d'ailleurs un "#define CALC_TI80 1" dans le fichier calc_80.c de libticalcs) ; pour l'instant, je le lance en tant que root, avec une Nspire CX connectée au préalable.

TiLP a l'air de détecter ma Nspire, mais il rencontre des problèmes pour en tirer des infos (ticalcs_calc_features ne renvoie rien) et ne parvient pas à transférer de fichiers dessus. Voici une sortie de TiLP, correspondant à un démarrage puis à une tentative d'envoi d'un fichier :

Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
TiLP2 - Version 1.17, (C) 1999-2008 Romain Lievin
THIS PROGRAM COMES WITH ABSOLUTELY NO WARRANTY
PLEASE READ THE DOCUMENTATION FOR DETAILS
built on Mar 30 2013 09:42:42
tilp-INFO: setlocale: fr_FR.UTF-8
tilp-INFO: bindtextdomain: /usr/share/locale/
tilp-INFO: textdomain: tilp2
ticables-INFO: librairie ticables version 1.3.3
ticables-INFO: setlocale: fr_FR.UTF-8
ticables-INFO: bindtextdomain: /usr/local/share/locale
ticables-INFO: textdomain: libticables2
ticables-INFO: kernel: 3.2.0-39-generic-pae
tifiles-INFO: librairie tifiles version 1.1.6
tifiles-INFO: setlocale: fr_FR.UTF-8
tifiles-INFO: bindtextdomain: /usr/share/locale
tifiles-INFO: textdomain: libticables2
ticalcs-INFO: librairie ticalcs version 1.1.8
ticalcs-INFO: setlocale: fr_FR.UTF-8
ticalcs-INFO: bindtextdomain: /usr/share/locale
ticalcs-INFO: textdomain: libticables2
ticables-INFO: Vérification du support lib-usb:
ticables-INFO:     support usb: disponible.
ticables-INFO: Vérification de l'utilisabilité de lib-usb:
ticables-INFO:     système de fichiers usb (/dev/bus/usb/): mounted
tilp-INFO: Opening cable UsbKernel on port #1 to communicate with calculator NSpire
tilp-INFO: msg_box1: [Error] [Can't set cable]
tilp-INFO: msg_box1: press ENTER for OK


(tilp:1373): ticalcs-CRITICAL **: ticalcs_update_set: handle is NULL

(tilp:1373): ticalcs-CRITICAL **: ticalcs_calc_features: handle is NULL

(tilp:1373): ticalcs-CRITICAL **: ticalcs_calc_features: handle is NULL

(tilp:1373): ticalcs-CRITICAL **: ticalcs_calc_features: handle is NULL

(tilp:1373): ticalcs-CRITICAL **: ticalcs_calc_features: handle is NULL

(tilp:1373): ticalcs-CRITICAL **: ticalcs_calc_features: handle is NULL
tilp-INFO: Opening cable UsbKernel on port #1 to communicate with calculator NSpire

(tilp:1373): ticables-CRITICAL **: ticables_options_set_timeout: handle is NULL

(tilp:1373): ticalcs-CRITICAL **: ticalcs_calc_isready: handle is NULL

(tilp:1373): ticables-CRITICAL **: ticables_options_set_timeout: handle is NULL

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 10:48
by Lionel Debroux
il manque d'ailleurs un "#define CALC_TI80 1" dans le fichier calc_80.c de libticalcs)

CALC_TI80 est un élément d'une enum, défini dans tifiles.h et ticonv.h à une autre valeur que 1. Si la définition de CALC_TI80 manquait, ça ne compilerait jamais pour moi :)
A mon avis, tu as une autre version des headers à un autre endroit, de priorité supérieure à la compilation que tu as faite avec le script. Soit des packages système, soit des restes de ta compilation précédente de TILP II 1.16 et libs associées.

Quant à ta trace, elle montre que le câble "UsbKernel" a été sélectionné... est-ce toi qui l'as fait manuellement, ou bien est-ce TILP qui a pris une initiative stupide ? :D
Ce câble n'existe plus depuis longtemps, je crois d'ailleurs que je devrais l'enlever de l'interface utilisateur...

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 11:05
by ShootPad
Lionel Debroux wrote:
il manque d'ailleurs un "#define CALC_TI80 1" dans le fichier calc_80.c de libticalcs)

CALC_TI80 est un élément d'une enum, défini dans tifiles.h et ticonv.h à une autre valeur que 1. Si la définition de CALC_TI80 manquait, ça ne compilerait jamais pour moi :)



J'ai mis une valeur au pif, histoire que ça compile ; comme j'ai pas de TI-80 de toute façon... :D

Lionel Debroux wrote:Quant à ta trace, elle montre que le câble "UsbKernel" a été sélectionné...


J'ai essayé d'envoyer un fichier avec tous les câbles possibles ; seul DirectLink tente de transférer quelque chose. Une boîte de transfert s'ouvre, affiche un message d'erreur, transfert le fichier et finit par d'autres messages d'erreur, sans que rien n'apparaîsse sur ma calculette. Voici une sortie correspondant à l'envoi d'un (tout petit) fichier :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
TiLP2 - Version 1.17, (C) 1999-2008 Romain Lievin
THIS PROGRAM COMES WITH ABSOLUTELY NO WARRANTY
PLEASE READ THE DOCUMENTATION FOR DETAILS
built on Mar 30 2013 09:42:42
tilp-INFO: setlocale: fr_FR.UTF-8
tilp-INFO: bindtextdomain: /usr/share/locale/
tilp-INFO: textdomain: tilp2
ticables-INFO: librairie ticables version 1.3.3
ticables-INFO: setlocale: fr_FR.UTF-8
ticables-INFO: bindtextdomain: /usr/local/share/locale
ticables-INFO: textdomain: libticables2
ticables-INFO: kernel: 3.2.0-39-generic-pae
tifiles-INFO: librairie tifiles version 1.1.6
tifiles-INFO: setlocale: fr_FR.UTF-8
tifiles-INFO: bindtextdomain: /usr/share/locale
tifiles-INFO: textdomain: libticables2
ticalcs-INFO: librairie ticalcs version 1.1.8
ticalcs-INFO: setlocale: fr_FR.UTF-8
ticalcs-INFO: bindtextdomain: /usr/share/locale
ticalcs-INFO: textdomain: libticables2
ticables-INFO: Vérification du support lib-usb:
ticables-INFO:     support usb: disponible.
ticables-INFO: Vérification de l'utilisabilité de lib-usb:
ticables-INFO:     système de fichiers usb (/dev/bus/usb/): mounted
tilp-INFO: Opening cable DirectLink on port #1 to communicate with calculator NSpire
ticables-INFO: Vérification du support lib-usb:
ticables-INFO:     support usb: disponible.
ticables-INFO: Vérification de l'utilisabilité de lib-usb:
ticables-INFO:     système de fichiers usb (/dev/bus/usb/): mounted
ticables-INFO:  found TI-Nspire(tm) Handheld on #1, version <1.05>
ticables-INFO: found bulk in endpoint 0x81

ticables-INFO: found bulk out endpoint 0x01

ticalcs-INFO: Obtention des dossiers & variables & applications:
ticalcs-INFO:   opening session from port #8002 to port #4060:
ticalcs-INFO:   unknown directory list command in </>:
ticalcs-INFO:    6400:8002->6401:4060 AK=00 SQ=01 HC=00 DC=0cf1 (11 bytes)
ticalcs-INFO:     20 01 2F 00 00 00 00 00 00 00 00
ticalcs-INFO:   receiving ack:
ticalcs-INFO:    0000:4003->0000:4003 AK=00 SQ=01 HC=d5 DC=ec0f (2 bytes)
ticalcs-INFO:     0F EC
ticalcs-INFO: XXX weird src_port

ticalcs-INFO: XXX weird .dst_port

ticalcs-INFO: XXX weird addr

ticalcs-INFO: XXX weird .ack

ticables-INFO:  found TI-Nspire(tm) Handheld on #1, version <1.05>
ticables-INFO: found bulk in endpoint 0x81

ticables-INFO: found bulk out endpoint 0x01

tilp-INFO: Opening cable DirectLink on port #1 to communicate with calculator NSpire
ticables-INFO: Vérification du support lib-usb:
ticables-INFO:     support usb: disponible.
ticables-INFO: Vérification de l'utilisabilité de lib-usb:
ticables-INFO:     système de fichiers usb (/dev/bus/usb/): mounted
ticables-INFO:  found TI-Nspire(tm) Handheld on #1, version <1.05>
ticables-INFO: found bulk in endpoint 0x81

ticables-INFO: found bulk out endpoint 0x01

ticalcs-INFO: Vérification du status:
ticables-INFO:  found TI-Nspire(tm) Handheld on #1, version <1.05>
ticables-INFO: found bulk in endpoint 0x81

ticables-INFO: found bulk out endpoint 0x01

ticalcs-INFO:   device address request:
ticalcs-INFO:    0000:4003->0000:4003 AK=00 SQ=01 HC=d5 DC=ec0f (2 bytes)
ticalcs-INFO:     0F EC
ticalcs-INFO:   assigning address 6401:
ticalcs-INFO:    6400:4003->6401:4003 AK=00 SQ=01 HC=00 DC=1343 (4 bytes)
ticalcs-INFO:     64 01 FF 00
ticalcs-INFO:   waiting for LOGIN request (OS >= 1.2 check)...
ticalcs-INFO:   receiving login:
ticalcs-INFO:    6401:8002->6400:4050 AK=00 SQ=01 HC=e2 DC=3976 (6 bytes)
ticalcs-INFO:     02 00 00 00 00 00
ticalcs-INFO:   sending nAck:
ticalcs-INFO:    6400:00d3->6401:8002 AK=0a SQ=01 HC=00 DC=5040 (2 bytes)
ticalcs-INFO:     40 50
ticalcs-INFO:   receiving disconnect:
ticalcs-INFO:    6401:40de->6400:4050 AK=00 SQ=02 HC=4e DC=0280 (2 bytes)
ticalcs-INFO:     80 02
ticalcs-INFO:   sending ack:
ticalcs-INFO:    6400:00ff->6401:8002 AK=0a SQ=02 HC=00 DC=5040 (2 bytes)
ticalcs-INFO:     40 50
ticalcs-INFO: OS = 1.4 or later
ticalcs-INFO:   opening session from port #8003 to port #4002:
ticalcs-INFO:   sending echo:
ticalcs-INFO:    6400:8003->6401:4002 AK=00 SQ=01 HC=00 DC=0615 (7 bytes)
ticalcs-INFO:     00 72 65 61 64 79 00
ticalcs-INFO:   receiving ack:
ticalcs-INFO:    6401:00ff->6400:8003 AK=0a SQ=01 HC=eb DC=0240 (2 bytes)
ticalcs-INFO:     40 02
ticalcs-INFO:   receiving echo:
ticalcs-INFO:    6401:4002->6400:8003 AK=00 SQ=03 HC=04 DC=0615 (7 bytes)
ticalcs-INFO:     00 72 65 61 64 79 00
ticalcs-INFO:   sending ack:
ticalcs-INFO:    6400:00ff->6401:4002 AK=0a SQ=03 HC=00 DC=0380 (2 bytes)
ticalcs-INFO:     80 03
ticalcs-INFO:   closed session from port #8003 to port #4002:
ticalcs-INFO:   disconnecting from service #4002:
ticalcs-INFO:    6400:40de->6401:4002 AK=00 SQ=02 HC=00 DC=0380 (2 bytes)
ticalcs-INFO:     80 03
ticalcs-INFO:   receiving ack:
ticalcs-INFO:    6401:00ff->6400:8003 AK=0a SQ=02 HC=ec DC=0240 (2 bytes)
ticalcs-INFO:     40 02
ticalcs-INFO: Envoi de variable(s):
ticalcs-INFO:   opening session from port #8004 to port #4060:
ticalcs-INFO:   sending variable:
ticalcs-INFO:    6400:8004->6401:4060 AK=00 SQ=03 HC=00 DC=c750 (33 bytes)
ticalcs-INFO:     03 01 2F 6D 61 ..... 00 00 00 00 53
ticalcs-INFO:   receiving ack:
ticalcs-INFO:    6401:00ff->6400:8004 AK=0a SQ=03 HC=4c DC=6040 (2 bytes)
ticalcs-INFO:     40 60
ticalcs-INFO:   file status:
ticalcs-INFO:    6401:4060->6400:8004 AK=00 SQ=04 HC=47 DC=0400 (1 bytes)
ticalcs-INFO:     04
ticalcs-INFO:   sending ack:
ticalcs-INFO:    6400:00ff->6401:4060 AK=0a SQ=04 HC=00 DC=0480 (2 bytes)
ticalcs-INFO:     80 04
ticalcs-INFO:   ok
ticalcs-INFO:   sending file contents:
ticalcs-INFO:    6400:8004->6401:4060 AK=00 SQ=04 HC=00 DC=dfb3 (84 bytes)
ticalcs-INFO:     05 6B 65 72 6E ..... 62 6F 6F 74 0A
ticalcs-INFO:   receiving ack:
ticalcs-INFO:    6401:00ff->6400:8004 AK=0a SQ=04 HC=4d DC=6040 (2 bytes)
ticalcs-INFO:     40 60
ticalcs-INFO:   receiving status:
ticalcs-INFO:    6401:4060->6400:8004 AK=00 SQ=05 HC=4d DC=09ff (2 bytes)
ticalcs-INFO:     FF 09
ticalcs-INFO:   sending ack:
ticalcs-INFO:    6400:00ff->6401:4060 AK=0a SQ=05 HC=00 DC=0480 (2 bytes)
ticalcs-INFO:     80 04

(tilp:1902): ticalcs-WARNING **: Nspire error code 0x09 not found in list. Please report it at <tilp-devel@lists.sf.net>.
ticables-INFO:  found TI-Nspire(tm) Handheld on #1, version <1.05>
ticables-INFO: found bulk in endpoint 0x81

ticables-INFO: found bulk out endpoint 0x01


EDIT: Hmmm bon ça marche, finalement. Il m'a suffit de redémarrer mon Linux. Le transfert culmine à un petit 27 Ko/s ; mais j'ai tout mon temps pour envoyer un rootfs de 30 Mo... Sinon, j'ai une dernière question : est-il possible d'envoyer des fichiers sur la Nspire sans qu'ils se terminent obligatoirement par l'extension .tns ? Genre rootfs.ext2 et pas rootfs.ext2.tns? TiLP ne semble pas l'autoriser.

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 11:39
by Lionel Debroux
J'ai mis une valeur au pif, histoire que ça compile ; comme j'ai pas de TI-80 de toute façon... :D

Je me doute bien, mais justement - si tu as à faire ça, c'est qu'il y a un problème avec la façon dont tu compiles. Je n'ai pas à le faire, et personne d'autre n'a à le faire. Il doit te rester des fichiers plus vieux qui interfèrent avec la compilation actuelle ;)

J'ai essayé d'envoyer un fichier avec tous les câbles possibles ; seul DirectLink tente de transférer quelque chose.

C'est normal, c'est le seul câble possible pour une Nspire :)
La version de TILP II extraite depuis SVN positionne l'auto-détection à vrai par défaut, pour faire comme TI-Connect et TINC(L)S. Ton fichier de config a été créé avec une version plus ancienne, et je ne mets évidemment pas à jour le fichier de config (sous peine d'écraser les modifs de l'utilisateur), donc ton TILP ne va actuellement pas faire l'auto-détection du câble et modèle.
Pour corriger ça, soit tu utilises l'interface graphique pour cocher "USB scan at startup" dans la config des devices (Ctrl + D, ou par le menu), soit tu effaces le fichier ~/.tilp.

Une boîte de transfert s'ouvre, affiche un message d'erreur, transfert le fichier et finit par d'autres messages d'erreur, sans que rien n'apparaîsse sur ma calculette. Voici une sortie correspondant à l'envoi d'un (tout petit) fichier :
Code: Select all
...
ticalcs-INFO:   receiving status:
ticalcs-INFO:    6401:4060->6400:8004 AK=00 SQ=05 HC=4d DC=09ff (2 bytes)
ticalcs-INFO:     FF 09
ticalcs-INFO:   sending ack:
ticalcs-INFO:    6400:00ff->6401:4060 AK=0a SQ=05 HC=00 DC=0480 (2 bytes)
ticalcs-INFO:     80 04

(tilp:1902): ticalcs-WARNING **: Nspire error code 0x09 not found in list. Please report it at <tilp-devel@lists.sf.net>.
ticables-INFO:  found TI-Nspire(tm) Handheld on #1, version <1.05>
ticables-INFO: found bulk in endpoint 0x81

ticables-INFO: found bulk out endpoint 0x01

Tu as fait une opération qui ne plaît pas à la calculatrice, et elle le signale par un code d'erreur qui n'avait pas encore été rencontré / rapporté par le précédent mainteneur, un utilisateur ou moi en six ans :)
C'est une bonne occasion d'ajouter ce code d'erreur, donc: peux-tu m'envoyer (ou poster ici) les fichiers que tu essaies d'envoyer, ainsi que la procédure exacte que tu utilises pour ce faire (vers quel élément de la partie de gauche, exactement, fais-tu un drag&drop) ?
Aussi, quelle version d'OS ta calculatrice tourne-t-elle ? Je vois que c'est un OS 2.x ou 3.x, à cause du fait qu'une seule paire d'endpoints est indiquée, mais quelle version précisément ?
Enfin, tu peux positionner VPKT_DBG à 2 dans le fichier dusb_vpkt.c de libticalcs, et refaire un (sudo) make install.

Tout ça, c'est pour que j'aie le maximum d'éléments pour essayer de reproduire de mon côté :)

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 11:59
by ShootPad
Je me doute bien, mais justement - si tu as à faire ça, c'est qu'il y a un problème avec la façon dont tu compiles. Je n'ai pas à le faire, et personne d'autre n'a à le faire. Il doit te rester des fichiers plus vieux qui interfèrent avec la compilation actuelle

Effectivement, j'avais déjà installé TiLP à la main avant d'utiliser le script. D'où interférence, sans doute.

Tu as fait une opération qui ne plaît pas à la calculatrice, et elle le signale par un code d'erreur qui n'avait pas encore été rencontré / rapporté par le précédent mainteneur, un utilisateur ou moi en six ans
C'est une bonne occasion d'ajouter ce code d'erreur, donc: peux-tu m'envoyer (ou poster ici) les fichiers que tu essaies d'envoyer, ainsi que la procédure exacte que tu utilises pour ce faire (vers quel élément de la partie de gauche, exactement, fais-tu un drag&drop) ?
Aussi, quelle version d'OS ta calculatrice tourne-t-elle ? Je vois que c'est un OS 2.x ou 3.x, à cause du fait qu'une seule paire d'endpoints est indiquée, mais quelle version précisément ?


Par chance, je suis "accidentellement" parvenu à reproduire le bug ; il suffit simplement d'ouvrir TiLP avec une Nspire CX CAS connectée (et OS 3.1.0.392 dans mon cas). Ensuite, envoyer n'importe quel fichier à partir du bouton "Envoyer des variables à des calculatrices non silencieuses.", mais sans avoir appuyé au préalable sur "Lister le contenu de la calculatrice." Je pense donc que ce n'est pas quelque chose de bien grave.

Sinon, pas d'idée pour transférer, ou même renommer à distance un fichier sur la Nspire, pour se débarasser de l'extension .tns ?

Re: TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 12:05
by Lionel Debroux
Je n'avais pas vu ton edit :)

Ensuite, envoyer n'importe quel fichier à partir du bouton "Envoyer des variables à des calculatrices non silencieuses."

Ah ouais, c'est possible, ça ? La Nspire est une calculatrice silencieuse. Bug d'UI à ajouter dans la TODO list, bah.

EDIT: Hmmm bon ça marche, finalement. Il m'a suffit de redémarrer mon Linux.

Normalement, ça n'est pas nécessaire - on n'est pas sous Windows ici ^^

Le transfert culmine à un petit 27 Ko/s ;

La mesure n'est pas super fiable, mais oui, les transferts sont lents...

Sinon, j'ai une dernière question : est-il possible d'envoyer des fichiers sur la Nspire sans qu'ils se terminent obligatoirement par l'extension .tns ? Genre rootfs.ext2 et pas rootfs.ext2.tns? TiLP ne semble pas l'autoriser.

&
Sinon, pas d'idée pour transférer, ou même renommer à distance un fichier sur la Nspire, pour se débarasser de l'extension .tns ?

TILP ne l'autorise pas (tout comme TINC(L)S) parce que les Nspire ne l'autorisent pas. Les documents pour Nspire doivent obligatoirement être envoyés avec une extension .tns.

Re: [RESOLU] TiLP sur Linux et Nspire CX

Unread postPosted: 30 Mar 2013, 12:12
by ShootPad
TILP ne l'autorise pas (tout comme TINC(L)S) parce que les Nspire ne l'autorisent pas. Les documents pour Nspire doivent obligatoirement être envoyés avec une extension .tns.

Bon, pas grave. Je ferai avec.

En tout cas, merci pour votre aide, tous ! Désormais, je vais pouvoir créer des rootfs et les tester en live dans la foulée, sans devoir rebooter à chaque fois. Bon week-end !