Bonjour tout le monde,
J'ai voulu compiler un kernel 2.6.16.1 sans le support des modules, étant donné que mon matériel est désormais entièrement supporté par les drivers libres :)
Néanmoins, ce faisant, je me suis heurté à un problème très étrange: le noyau résultant marche très bien en apparence, mais le support réseau semble cassé.
Au démarrage, dhcpcd se contente de m'afficher mon adresse MAC puis d'attendre le timeout, et je ne peux rien pinger avec mes deux cartes réseaux.
(…)
Forum Linux.gui Drivers libres Radeon
Bonjour,
Passablement agacé par le fameux bug XID avec ma GeForce 5700, j'ai décidé de ne plus souiller mon noyau avec les drivers nvidia buggés et de passer à une carte graphique disposant de drivers libre.
Pour le moment je tourne avec le driver nv, qui est très stable mais n'accélère pas Render ni OpenGL. C'est donc un peu lent (traînées de fenêtres) et je ne peux plus faire de Tuxracer :)
Par contre, le support vidéo XV du driver (…)
Passablement agacé par le fameux bug XID avec ma GeForce 5700, j'ai décidé de ne plus souiller mon noyau avec les drivers nvidia buggés et de passer à une carte graphique disposant de drivers libre.
Pour le moment je tourne avec le driver nv, qui est très stable mais n'accélère pas Render ni OpenGL. C'est donc un peu lent (traînées de fenêtres) et je ne peux plus faire de Tuxracer :)
Par contre, le support vidéo XV du driver (…)
Forum Programmation.c Hack de vfscanf(3), 4 questions
Bonjour :)
Pour les besoins d'un projet, j'ai eu envie de bidouiller vfscanf pour l'adapter à mes besoins. J'ai quasi fini mon bidouillage mais j'ai quatre questions :
* de base mon snscanf ne travaille que sur des buffers, y aurait-il un moyen portable d'encapsuler des buffers dans des FILE * (en dehors de l'extension GNU fmemopen() pas portable du tout) pour que je puisse le généraliser aux fichiers ?
* J'ai ajouté la lecture de données binaires, mais je (…)
Pour les besoins d'un projet, j'ai eu envie de bidouiller vfscanf pour l'adapter à mes besoins. J'ai quasi fini mon bidouillage mais j'ai quatre questions :
* de base mon snscanf ne travaille que sur des buffers, y aurait-il un moyen portable d'encapsuler des buffers dans des FILE * (en dehors de l'extension GNU fmemopen() pas portable du tout) pour que je puisse le généraliser aux fichiers ?
* J'ai ajouté la lecture de données binaires, mais je (…)
Forum Programmation.c wchar_t, conversion multibyte et Unicode...
Bonsoir à tous :)
J'aurais encore une fois besoin de votre expertise pour cette fois les chaînes de caractère unicode.
J'ai commencé à coder un module pour gérer les chaînes, ajouté le support unicode, et tout semble marcher à peu près correctement, sauf l'affichage...
Quand je veux afficher une chaine qui contient vraiment des caractères spéciaux (par exemple des kanjis ou des voyelles avec umlaut), bah le printf ne l'affiche pas (pourtant avec %ls).
Interloqué, j'ai donc vérifié le contenu (…)
J'aurais encore une fois besoin de votre expertise pour cette fois les chaînes de caractère unicode.
J'ai commencé à coder un module pour gérer les chaînes, ajouté le support unicode, et tout semble marcher à peu près correctement, sauf l'affichage...
Quand je veux afficher une chaine qui contient vraiment des caractères spéciaux (par exemple des kanjis ou des voyelles avec umlaut), bah le printf ne l'affiche pas (pourtant avec %ls).
Interloqué, j'ai donc vérifié le contenu (…)
Forum Programmation.c Polling
Bonsoir, j'ai encore une question relative au réseau ;)
J'ai testé mon serveur avec siege, et le bousin dépasse difficilement les 100 requêtes par seconde... Tandis qu'un *vrai* serveur genre thttpd, en traite plus de mille sans broncher.
Après quelques expérimentations, j'en suis à réécrire le polling. Avant, il était géré avec un bête select(), mais forcément ça marche moins bien en charge. J'ai testé epoll, c'est vraiment une bonne API, mais en même temps ce n'est pas du tout (…)
J'ai testé mon serveur avec siege, et le bousin dépasse difficilement les 100 requêtes par seconde... Tandis qu'un *vrai* serveur genre thttpd, en traite plus de mille sans broncher.
Après quelques expérimentations, j'en suis à réécrire le polling. Avant, il était géré avec un bête select(), mais forcément ça marche moins bien en charge. J'ai testé epoll, c'est vraiment une bonne API, mais en même temps ce n'est pas du tout (…)
Forum Linux.slackware Installation imprimante HP Photosmart 2600
Mes parents ont récemment fait l'acquisition d'une imprimante multifonctions HP Photosmart 2600, que j'ai dûment installée et configurée sur l'ordinateur familial, qui tourne sous Slackware GNU/Linux :)
Voici la démarche que j'ai suivi pour qu'elle fonctionne correctement, en utilisant CUPS pour l'impression et xsane pour scanner.
I. Installation des drivers HPLIP
On peut les trouver ici: http://hpinkjet.sourceforge.net/(...)
Ils dépendent de la suite logicielle net-snmp, qui n'est pas installé par défaut sous Slackware. Voici comment procéder pour les installer sans soucis.
(…)
Voici la démarche que j'ai suivi pour qu'elle fonctionne correctement, en utilisant CUPS pour l'impression et xsane pour scanner.
I. Installation des drivers HPLIP
On peut les trouver ici: http://hpinkjet.sourceforge.net/(...)
Ils dépendent de la suite logicielle net-snmp, qui n'est pas installé par défaut sous Slackware. Voici comment procéder pour les installer sans soucis.
(…)
Forum Programmation.c mmap() et chaînes de caractères
Bonjour à tous :)
En lisant le code de vsftpd (http://vsftpd.beasts.org/(...) ), j'ai remarqué une idée qui me semble très intéressante pour disposer de chaînes de caractères/buffers plus "pratiques" à utiliser que les habituelles structures à base de { char *buffer; size_t size; }...
En gros, on stocke la chaîne de caractère dans une map anonyme, entre deux pages protégées avec mprotect(). On en profite pour stocker la taille de la chaine dans la première page mémoire, avant verrouillage.
(…)
En lisant le code de vsftpd (http://vsftpd.beasts.org/(...) ), j'ai remarqué une idée qui me semble très intéressante pour disposer de chaînes de caractères/buffers plus "pratiques" à utiliser que les habituelles structures à base de { char *buffer; size_t size; }...
En gros, on stocke la chaîne de caractère dans une map anonyme, entre deux pages protégées avec mprotect(). On en profite pour stocker la taille de la chaine dans la première page mémoire, avant verrouillage.
(…)
Forum Programmation.web POST
Bonjour à tous :)
J'ai implémenté un plugin http pour mon petit serveur, qui gère actuellement GET et HEADER, mais j'aimerais bien ajouter POST afin d'être compatible http 1.0...
Mon problème, c'est que je lis correctement la requête et le body, mais que je ne sais pas quoi faire de ce dernier ^_^'
J'ai examiné la RFC, qui indique différents code de retour suivant que l'on a créé une ressource ou pas. Mais ce que je ne comprend pas, c'est (…)
J'ai implémenté un plugin http pour mon petit serveur, qui gère actuellement GET et HEADER, mais j'aimerais bien ajouter POST afin d'être compatible http 1.0...
Mon problème, c'est que je lis correctement la requête et le body, mais que je ne sais pas quoi faire de ce dernier ^_^'
J'ai examiné la RFC, qui indique différents code de retour suivant que l'on a créé une ressource ou pas. Mais ce que je ne comprend pas, c'est (…)
Forum Programmation.c Fauteuil roulant
Bonjour à tous :)
J'ai encore des problèmes, mais ce n'est plus du réseau cette fois-ci. Pour mon stage, je dois coder une application qui permettrait à un robot de suivre un fauteuil roulant (il tourne avec un Pentium III). J'ai pour l'instant codé un gradient et une recherche de zone basée sur la couleur, en utilisant les algos de Bresenham pour que ça soit plus léger.
Je suis donc en mesure de trouver la zone où se trouve le (…)
J'ai encore des problèmes, mais ce n'est plus du réseau cette fois-ci. Pour mon stage, je dois coder une application qui permettrait à un robot de suivre un fauteuil roulant (il tourne avec un Pentium III). J'ai pour l'instant codé un gradient et une recherche de zone basée sur la couleur, en utilisant les algos de Bresenham pour que ça soit plus léger.
Je suis donc en mesure de trouver la zone où se trouve le (…)
Forum Programmation.c Terminé
Bonsoir à tous,
J'ai enfin fini mon projet tutoré pour l'IUT, il est assez stable maintenant (j'entend par là que je n'arrive plus à le faire planter mais qu'il reste surement des bugs fourbes tapis dans les recoins sombres).
Je l'ai mis sous GPL dans mon coin, mais je me disais que ça pourrait etre sympa de le rendre disponible sur internet si ça intéresse quelques personnes. Donc en fait, je voudrais savoir si mon bousin vaut le coup d'etre (…)
J'ai enfin fini mon projet tutoré pour l'IUT, il est assez stable maintenant (j'entend par là que je n'arrive plus à le faire planter mais qu'il reste surement des bugs fourbes tapis dans les recoins sombres).
Je l'ai mis sous GPL dans mon coin, mais je me disais que ça pourrait etre sympa de le rendre disponible sur internet si ça intéresse quelques personnes. Donc en fait, je voudrais savoir si mon bousin vaut le coup d'etre (…)
Forum Programmation.c Fourberies de libpthread...
Bonsoir à tous,
J'ai quelques soucis de portabilité avec la libpthread, et j'aurais besoin de votre expérience pour déterminer ce qui ne va pas dans mon utilisation de cette bibliothèque.
Mon petit serveur écoute grace à un thread dédié, qui boucle sur accept et enregistre les sockets récupérés dans un tableau.
Quand je quitte mon application, accept() étant bloquant, je suis dans l'obligation de faire un pthread_cancel() sur ce thread (et pour etre propre, un pthread_join() juste derrière). Normalement, accept() (…)
J'ai quelques soucis de portabilité avec la libpthread, et j'aurais besoin de votre expérience pour déterminer ce qui ne va pas dans mon utilisation de cette bibliothèque.
Mon petit serveur écoute grace à un thread dédié, qui boucle sur accept et enregistre les sockets récupérés dans un tableau.
Quand je quitte mon application, accept() étant bloquant, je suis dans l'obligation de faire un pthread_cancel() sur ce thread (et pour etre propre, un pthread_join() juste derrière). Normalement, accept() (…)
Forum Programmation.c MacOS X insomniaque
Bonjour à tous,
Je n'arrive pas à faire dormir mes pthreads sous OS X. Pourtant j'ai essayé pas mal de trucs : select(), nanosleep(), usleep(), une tisanne bien chaude...
Connaissez vous une bonne berceuse pour réellement susprendre ces bougres ? Pour l'instant je triche en fixant la valeur de nanosleep à 100000 (soit 10ms, j'ai bon ?), mais mon application consomme quand meme plus de 10% de CPU (ce qui fait ramer PearPC encore plus, je vous laisse imaginer).
Autre (…)
Je n'arrive pas à faire dormir mes pthreads sous OS X. Pourtant j'ai essayé pas mal de trucs : select(), nanosleep(), usleep(), une tisanne bien chaude...
Connaissez vous une bonne berceuse pour réellement susprendre ces bougres ? Pour l'instant je triche en fixant la valeur de nanosleep à 100000 (soit 10ms, j'ai bon ?), mais mon application consomme quand meme plus de 10% de CPU (ce qui fait ramer PearPC encore plus, je vous laisse imaginer).
Autre (…)
Forum Programmation.c HTTP, Mozilla vs Konqueror
Bonjour à tous,
J'ai encore un petit problème avec mon serveur :)
Pour le tester, j'ai fait un mini plugin HTTP qui envoie du html chaque fois qu'il reçoit quelque chose. Il marche avec Konqueror, mais pas avec Mozilla... et je n'arrive pas à trouver pourquoi.
J'ai consulté la RFC, et apparemment il faut renvoyer quelque chose du type :
HTTP/1.1 200 OK
Date: %s
Server: %s
Content-Type: text/html
Content-Length: %i
J'aimerais comprendre la différence de comportement entre les deux (…)
J'ai encore un petit problème avec mon serveur :)
Pour le tester, j'ai fait un mini plugin HTTP qui envoie du html chaque fois qu'il reçoit quelque chose. Il marche avec Konqueror, mais pas avec Mozilla... et je n'arrive pas à trouver pourquoi.
J'ai consulté la RFC, et apparemment il faut renvoyer quelque chose du type :
HTTP/1.1 200 OK
Date: %s
Server: %s
Content-Type: text/html
Content-Length: %i
J'aimerais comprendre la différence de comportement entre les deux (…)
Forum Programmation.c Le mystère du pointeur global
Bonjour à tous :)
J'ai encore un problème étrange pour lequel je n'arrive pas à trouver de documentation...
J'utilise dans mon programme une structure server_t avec plein de choses dedans. J'ai fait une collection de fonctions ServerFaitQuelqueChose pour modifier cette structure. Pour plus de confort, et étant donné qu'il ne peut n'y avoir qu'une structure server_t fonctionnelle à la fois, j'ai déclaré un pointeur global appelé this qui pointe dessus. Auparavant, quand tout allait bien, tout ceci se trouvait dans (…)
J'ai encore un problème étrange pour lequel je n'arrive pas à trouver de documentation...
J'utilise dans mon programme une structure server_t avec plein de choses dedans. J'ai fait une collection de fonctions ServerFaitQuelqueChose pour modifier cette structure. Pour plus de confort, et étant donné qu'il ne peut n'y avoir qu'une structure server_t fonctionnelle à la fois, j'ai déclaré un pointeur global appelé this qui pointe dessus. Auparavant, quand tout allait bien, tout ceci se trouvait dans (…)
Forum Programmation.c Sockets...
Bonjour à tous,
J'ai fait une fonction qui gère des entrées formattées sur un socket UDP à la scanf, qui ne marche plus :( En fait, il y a une fonction qui gère l'interpretation du formattage, et qui appelle au fur et a mesure la fonction buggée pour lire ce dont elle a besoin. Je me suis aperçu que ça ne marchait jusqu'il y a peu que parce que j'envoyais mes structures champ par champ et non pas entièrement linéarisées (…)
J'ai fait une fonction qui gère des entrées formattées sur un socket UDP à la scanf, qui ne marche plus :( En fait, il y a une fonction qui gère l'interpretation du formattage, et qui appelle au fur et a mesure la fonction buggée pour lire ce dont elle a besoin. Je me suis aperçu que ça ne marchait jusqu'il y a peu que parce que j'envoyais mes structures champ par champ et non pas entièrement linéarisées (…)