#51 Le 26/02/2013, à 19:14
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Super bizarre.
Le warning c'est sur un printf avec un argument long, un problème 32/64bits.
C'est quel modèle de compilation ton raspberry ? 32, 64 ?
Pour le reste, tu plantes vraiment à la première requête de curl, comme si curl n'arrivait pas à parler à la freebox.
Je soupçonne que ça pourrait venir d'une confusion de librairie 32/64 avec la librairie curl utilisée.
Pour bien faire il faut isoler juste le morceau qui fait la première requête curl et voir ce qu'il se passe.
Là je ne peux pas te tester ça parce que ma mère est ici avec moi... et donc sa Freebox est éteinte... par conséquent impossible de faire le moindre test. Je regarde ça ce W.E. au plus tard, pour te faire un bout de programme tout simple que tu patcheras directement "en dur" avec ton IP:port, et qui va juste se connecter à la Freebox.
Dernière modification par Zakhar (Le 26/02/2013, à 19:14)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#52 Le 27/02/2013, à 14:16
- fano05
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Bonjour à tous,
Et merci pour toutes vos contributions...et à ZAKHAR pour l'initiative.Nous sommes tous sous linux avec la freebox je vois! malheureusement, mon niveau ne me permets pas de vous aider...
Par avance je m'excuse si j'interfère dans vos posts pour mon soucis.
Mis à part que je n'arrive pas à suivre la procédure, mon soucis est le transfert (sans passer par le téléchargement car le débit n'est que d'environ 100ko/s...) de fichiers entre mon portable et ... deux freebox! Je fais le riche! Plaisanterie à part, j'ai une freebox au domicile, et une autre au magasin.
Lorsque je suis en local pas de soucis, je passe par le réseau local pour me connecter à la box où se trouve donc mon portable, mais si je veux aller récupérer des fichiers dans l'autre box, c'est niente pour un déplacement ou une copie de façon rapide...
Si vous avez une idée pour pouvoir monter mes deux freebox dès le démarrage, ou pouvoir passer par le réseau pour faire apparaître les deux freebox à la fois, je suis preneur!
Merci,
Stéphane.
Hors ligne
#53 Le 27/02/2013, à 17:55
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
@stagebi : je viens d'y repenser... avant de faire un programme spécifique, est-ce que tu peux tester déjà avec l'utilitaire curl. Je présume qu'il existe déjà tout compilé/packagé avec le Rasp.Pi car c'est un grand classique !..
Il faut donc que tu installes curl, puis tu fais :
curl http://88.179.XX.XX:12345/login.php
En effet, si déjà avec curl ça ne marche pas... bah... ben tu as un autre problème indépendant de mon programme et de sa compilation 32/64 !
Une fois ceci fait et OK, je te conseille, dans le premier post, de prendre l'ancien source (celui à la fin du premier post). Il est un tout petit peu plus lent, parce qu'il ne fait pas d'asynchronisme... mais il est moins "expérimental" et donc ne souffre pas des quelques bugs assez gênants de la "RC"... Assez "gênant", c'est à dire que dans certains cas bien précis -qui se manifestent plutôt en usage local-, tu peux avoir un fichier qui est lu de façon incorrecte, et donc le programme local verra un fichier corrompu (heureusement, comme c'est du "Read Only", l'exemplaire du fichier qui est sur la Freebox, lui, est inchangé, et reste correct)...
@fano05
Non, non tu n'interfères pas. Tu es même au bon endroit !..
Et du reste ça me fait plaisir d'avoir des "clients" et ça m'encourage à reprendre et améliorer le truc.
Pour être sûr d'avoir bien compris ton besoin, je vais nommer tes éléments :
Freebox H (Freebox at Home) celle de la maison.
Freebox S (Freebox at Shop) celle de ton magasin.
PC ton "portable"... car beaucoup de gens utilisent ce nom ambigü pour un téléphone, alors qu'il est plus approprié de dire : "mobile", voire en entier "téléphone mobile", ou "smartphone" selon le cas... en tout cas c'est mon vocabulaire !
En effet, si tu parles d'un "portable" qui est un "téléphone mobile" ou un "smartphone", même si c'est un Android, hélas, le kernel Android n'est pas (encore ?) compilé avec Fuse, et par conséquent mon programme n'y serait pas directement portable sans remplacer le kernel... ce qui est une opération pas neutre !..
Donc je fais les hypothèses que :
Freebox H et Freebox S sont bien toutes les deux des Freebox V6 (Révolution), sans cela, mon programme ne fonctionne pas.
PC est bien un PC (portable)... et pas un smartphone... et bien sûr, il tourne sur Linux (sinon je ne peux pas grand chose pour toi ! )
Donc ton besoin est (ce que j'en comprends) :
- au démarrage de PC, je veux monter à la fois Freebox H et Freebox S, que PC soit au magasin ou à la maison.
C'est tout à fait possible avec mon logiciel (si les hypothèses ci-dessus sont OK), par contre il faudra l'emballer dans un script si tu ne veux pas voir d'erreur. En effet, pour le cas où, par exemple ton PC n'est pas connecté à un réseau fixe, et se trouve dans une zone sans Wifi ouvert, les montages vont échouer.
Par contre, une chose importante à comprendre... ce n'est pas parce que tu fais un montage que la vitesse sera supérieure aux 100Ko/s !
Ce truc là est une limite physique de l'ADSL dont la voie montante est limitée à 1Mbps (par construction), et donc au mieux tu as dans les 100 à 110K les bons jours !..
Le programme ne fait ni plus ni moins que ce que tu peux faire avec l'interface standard de Free... il le fait juste de façon automatique et plus pratique dans la philosophie Linux. Et donc, il ne peut pas aller plus vite que ce que tu peux faire "à la main" (c'est à dire avec l'interface web à distance fournie en standard par Free). En réalité, il va même un chouïa moins vite (environ 5%) à cause du découpage en blocs.
Donc si ça t'intéresse, et que les hypothèses sont les bonnes, on peut voir où tu "coinces".
Zakhar
Dernière modification par Zakhar (Le 27/02/2013, à 18:13)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#54 Le 28/02/2013, à 10:18
- stagebi
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Hello Zakhar,
Le
curl http://88.179.XX.XX:12345/login.php
fonctionne bien et m'affiche le code html de la page de login de la freebox.
J'ai compilé l'ancien programme avec la commande
`curl-config --cc --cflags --libs` `pkg-config fuse --cflags --libs` -o fbxrofs-dbg-old fbxrofs-old.c -Wall -g -DDEBUG
Je le lance avec :
./fbxrofs-dbg-old -f -l7 http://88.179.XX.XX:12345 /media/fbx
Et j'obtiens toujours l'erreur au bout de quelques secondes :
Mot de passe :
Erreur curl 7
Message : couldn't connect to host
Dernière modification par stagebi (Le 28/02/2013, à 10:19)
Hors ligne
#55 Le 01/03/2013, à 00:15
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
De l'intérêt de tenir la documentation (et les commentaires...) à jour !..
En fait, les indications sur comment compiler sont mauvaises (désolé ! ), et si tu as compilé comme indiqué ci-dessus, c'est probablement pas bon, et tu as dû avoir des erreurs de "link".
J'ai donc fait un petit programme de test que voici, il s'appelle fbxlogin.c
Il se compile ainsi (en 64 bits) sur Precise :
`curl-config --cc --cflags` -o fbxlogin fbxlogin.c -D_FILE_OFFSET_BITS=64 `curl-config --libs` -g
(Il faut peut-être adapter le file_offset si tu es en 32 bits... essaye sans le -D... et il va te dire)
Voici le petit code :
#define FUSE_USE_VERSION 26
#include <fuse.h>
#include <stdio.h>
#include <curl/curl.h>
/*
Compiler avec
`curl-config --cc --cflags` -o fbxlogin fbxlogin.c -D_FILE_OFFSET_BITS=64 `curl-config --libs` -g
*/
int main ()
{
CURL *curl;
char *pFbxLoginURI= "http://78.79.80.81:12345/login.php";
char *pFbxPasswordPost= "login=freebox&passwd=Mot2Pass";
curl_global_init( CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl == NULL)
{
printf("Erreur curl_easy_init\n");
return 1;
}
curl_easy_setopt( curl, CURLOPT_VERBOSE , 1L);
curl_easy_setopt( curl, CURLOPT_URL , pFbxLoginURI );
curl_easy_setopt( curl, CURLOPT_POSTFIELDS, pFbxPasswordPost );
curl_easy_perform( curl );
curl_easy_cleanup( curl );
return 0;
}
Bien sûr, il faut mettre ton IP:Port et ton mot de passe correct dans les variables du programme prévues à cet effet que tu devineras aisément !..
Pour l'exemple j'ai mis des trucs bidons (mais au format correct).
Il ne doit pas y avoir d'erreur de compilation/lien
Ca doit dire un truc du genre:
$ ./fbxlogin
* About to connect() to 78.79.80.81 port 12345 (#0)
* Trying 78.79.80.81... * connected
> POST /login.php HTTP/1.1
Host: 78.79.80.81:12345
Accept: */*
Content-Length: 29
Content-Type: application/x-www-form-urlencoded
* upload completely sent off: 29out of 29 bytes
< HTTP/1.1 302 Moved Temporarily
< Server: nginx
< Date: Thu, 28 Feb 2013 23:03:04 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: FBXSID="UlLVw+LEE7Hid8vx86KWWHWQltIpp4xm+6YER9tH9gY5NQwy3Fcse7u7Vnkcr/Uh"; Max-Age=86400; HTTPOnly
< X-FBX-CSRF-Token: Fusd3YK5HLRItbnlyqMCwutlQyqoTbHsilFD9rznnHMYoJmDhx5BLsUIFAH9QKb8
< Location: /settings.php
<
* Connection #0 to host 78.79.80.81 left intact
* Closing connection #0
Et donc c'est bien probablement juste la directive de compilation qui n'allait pas avec fbxrofs. Il faut mettre les librairies à la fin, comme c'est fait dans ce petit exemple.
Dernière modification par Zakhar (Le 01/03/2013, à 00:17)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#56 Le 01/03/2013, à 09:48
- stagebi
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Salut Zakhar en encore merci pour le temps que tu as passé sur mon problème !
Ça fonctionne niquel avec les bonnes options de compilation, j'ai maintenant accès aux fichiers de la freebox en ligne de commande
Hors ligne
#57 Le 01/03/2013, à 18:33
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Parfait pour ton Raspberry, il a donc un "disque distant" (read-only) de 250Go gratos !..
Et désolé, en fait je vais mettre à jour ce commentaire. J'étais tombé sur le sujet au début du développement, j'ai un peu galéré à trouver. J'ai même fait un rapport de bug sur la documentation de curl qui était toujours fausse. Depuis, suite au rapport de bug, ils ont bien modifié la documentation de curl... mais j'avais omis de faire la modification qui s'imposait dans le source.
C'est donc dans la /TODO !
Dernière modification par Zakhar (Le 01/03/2013, à 18:35)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#58 Le 01/03/2013, à 18:53
- Xun
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Je m'abonne
Hors ligne
#59 Le 01/03/2013, à 19:25
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
T'as un Raspberry π aussi
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#60 Le 01/03/2013, à 20:31
- Xun
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
J'ai une freebox v6 et un RPI également
Pourquoi on parle de celui-ci dans la conversation ?
Hors ligne
#61 Le 01/03/2013, à 20:57
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Oui, juste un peu plus haut, stagebi confirme qu'il a réussi à compiler et à utiliser mon truc et à le faire marcher sur le RPI.
Si ça t'intéresse, probablement qu'il pourra te donner le truc tout compilé... à moins que tu ne veuilles jouer avec à le compiler.
Et du coup, il a un RPI avec un disque (read-only) gratuit de 250Go qu'on peut accéder tranquillement en ligne de commande. Elle est pas belle la vie !
Dernière modification par Zakhar (Le 01/03/2013, à 20:59)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#62 Le 01/03/2013, à 21:02
- fano05
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
@ZAKHAR,
Merci pour la réponse...
"Donc ton besoin est (ce que j'en comprends) :
- au démarrage de PC, je veux monter à la fois Freebox H et Freebox S, que PC soit au magasin ou à la maison."
C'est tout à fait cela! Et PC est bien un ordinateur ...portable et rien d'autre!
Concernant le soucis du débit qui est en réalité à la source de cette demande,
j'ai remarqué que quand je fais un copié-collé ou un déplacement de mon PC (ou inversement) vers la box où mon PC se trouve, donc, la vitesse de transfert est de 1 à 3 giga...(pour mémoire, hier pour rapatrier tout mon dossier home, 10giga, il m'a fallu dans cette configuration à peu près 3/4 d'heure il me semble), contre une journée et 4h (indiquée dès les premiers instants!) pour un transfert par...téléchargement, donc dans la configuration inverse où le PC ne se trouvant pas être "physiquement" au même endroit qu'une de mes box.
Je ne suis pas assez calé, même pas du tout, en informatique pour comprendre les différentes vitesses et leurs limites suivant le matériel utilisé, mais ce sont mes constants suivant les cas cités...
Merci pour le coup de main, je viens de passer vers la 12.04, j'ai encore des bricoles à finioler, puis je réessayerai tes conseils.
A+, Stéphane.
Hors ligne
#63 Le 01/03/2013, à 21:05
- fano05
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
Un oubli, en relisant ton message...
Je n'utilise jamais le wifi, je passe toujours en filaire...
Hors ligne
#64 Le 01/03/2013, à 21:17
- Zakhar
Re : "Montez" votre Freebox V6 à distance... streamez votre musique et + !
C'est tout à fait ça.
En local le réseau est du gigabit. Et donc si ton portable est aussi équipé en Gigabit Ethernet, tu as la vitesse théorique maximale qui se situe autour de 120Mo/s (pas Mb, mais bien Mo !)
Cependant, il se trouve que le disque de la Freebox V6 est super lent et donc il va te limiter autour de 20Mo/s en écriture et de 40Mo/s en lecture.
Si tu as copié 10Go de la Freebox à ton PC, 45 minutes ça fait du 37Mo/s, on est donc bien dans les chiffres annoncés. Si tu avais au contraire écrit 10Go de données sur la Freebox, tu peux multiplier le temps par 2 (à peu près) sachant que le disque de la Freebox est bien plus lent en écriture.
A distance, c'est tout autre chose !.. Là tu es limité par la voie montante de l'ADSL, qui est à 1Mb/s (des bits cette fois, pas des octets !), soit 120Ko/s ... c'est à dire 1000 fois moins rapide que la connexion locale.
Donc tu peux avoir en tête, pour la lecture de 1Go de données sur la Freebox :
- Local = 30 sec
- Distant = 2h30
Et ces chiffres là sont dus aux limites physiques réseaux/disque dur. Les logiciels utilisés n'y changent rien.
Et donc effectivement, pour tes 10Go, à distance, ça fait dans les 25heures si ta ligne est au max !..
Donc que tu utilises l'interface standard et l'option "télécharger" de ton navigateur, ou mon logiciel, les temps ci-dessus seront à peu près les mêmes (à quelques pourcents près). C'est juste une question de possibilités, par exemple les Ubunteros ci-dessus sont ravis d'avoir la possibilité de faire de la ligne de commande pour accéder à leurs fichiers, ce qui, à l'évidence, n'est pas possible avec le machin standard qui requiert un navigateur, et donc une interface graphique (enfin il existe aussi des navigateurs mode "texte"... mais c'est pas super pratique !)
Dans le "moins geek", s'il y a des musiques sur ta Freebox et que tu veux les lire via l'interface standard, la manipulation est lourde :
- lancer le browser (firefox, ...)
- se connecter à la Freebox
- naviguer avec leur explorateur à 2 balles jusqu'au répertoire audio
- télécharger sur le disque local
- ... attendre... (surtout si c'est à distance !)
- aller chercher le fichier ainsi téléchargé avec ton lecteur de musique favori (rythmbox, VLC, ...)
- et pour faire "propre"... penser à supprimer le fichier une fois celui-ci lu (sauf si tu as téléchargé dans /tmp, auquel cas ce sera automatiquement supprimé au prochain boot)
Avec le logiciel de montage, tes fichiers apparaissent dans l'arborescence de ta machine, comme si la Freebox était une simple clé USB.
Et donc pour lire la musique, il te suffit de repérer le fichier dans ton arborescence et de cliquer dessus.
Si c'est du MP3 "raisonnablement" compressé, ça passe en streaming même à 1Mbps ADSL montant !
La manipulation est donc autrement plus simple !
Un oubli, en relisant ton message...
Je n'utilise jamais le wifi, je passe toujours en filaire...
C'est mieux, parce que le Wifi, même en local, c'est bien plus lent.
Dernière modification par Zakhar (Le 01/03/2013, à 21:27)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne