Linux.noyau : Noyau sans support des modules
Posté par JaguarWan () le 01 avril 2006J'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 (...)
> Lire le message (4 commentaires, moyenne: 2,3).
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 nv est aussi bon que le propriétaire, bonne surprise (...)
> Lire le message (3 commentaires, moyenne: 1,7).
Programmation.c : Hack de vfscanf(3), 4 questions
Posté par JaguarWan () le 02 janvier 2006Pour 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 suis pas très content de ma fonction (...)
> Lire le message (4 commentaires, moyenne: 1,8).
Programmation.c : wchar_t, conversion multibyte et Unicode...
Posté par JaguarWan () le 15 novembre 2005J'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é (...)
> Lire le message (4 commentaires, moyenne: 0,8).
Programmation.c : Polling
Posté par JaguarWan () le 07 octobre 2005J'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 (...)
> Lire le message (8 commentaires, moyenne: 1,5).
Linux.slackware : Installation imprimante HP Photosmart 2600
Posté par JaguarWan () le 04 octobre 2005Voici 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 (...)
> Lire le message (0 commentaire).
Programmation.c : mmap() et chaînes de caractères
Posté par JaguarWan () le 20 septembre 2005En 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 (...)
> Lire le message (2 commentaires, moyenne: 4).
Programmation.web : POST
Posté par JaguarWan () le 22 juin 2005J'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 la manière dont on fournit les données de (...)
> Lire le message (3 commentaires, moyenne: 3).
Programmation.c : Fauteuil roulant
Posté par JaguarWan () le 20 avril 2005J'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 fauteuil, et de récupérer les contours des objets se trouvant (...)
> Lire le message (6 commentaires, moyenne: 1,7).
Programmation.c : Terminé
Posté par JaguarWan () le 31 mars 2005J'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 mis en ligne, ou si en fait il est nul :)
En gros (...)
> Lire le message (2 commentaires, moyenne: 4,5).
Programmation.c : Fourberies de libpthread...
Posté par JaguarWan () le 19 mars 2005J'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 (...)
> Lire le message (2 commentaires, moyenne: 3).
Programmation.c : MacOS X insomniaque
Posté par JaguarWan () le 12 février 2005Je 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 petite question : par défaut (...)
> Lire le message (4 commentaires, moyenne: 1,5).
Programmation.c : HTTP, Mozilla vs Konqueror
Posté par JaguarWan () le 04 février 2005J'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 navigateurs (...)
> Lire le message (1 commentaire, moyenne: 1).
Programmation.c : Le mystère du pointeur global
Posté par JaguarWan () le 30 décembre 2004J'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 (...)
> Lire le message (13 commentaires, moyenne: 2).
Programmation.c : Sockets...
Posté par JaguarWan () le 28 décembre 2004J'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 (vieux bug qui s'était fait discret, le bougre).
Depuis, je me (...)
> Lire le message (7 commentaires, moyenne: 2,7).
Programmation.c : Chaines constantes...
Posté par JaguarWan () le 25 novembre 2004J'aimerais avoir une réponse définitive à une question idiote qui me taraude depuis quelque temps.
D'abord un petit code d'exemple :
hello.c :
-------------------------8<---------------------------------
#define CHAINE1 "coin coin !\n"
#define CHAINE2 "pan !\n"
int main(int argc, char **argv)
{
char *sChaine = NULL;
if (argc > 1)
{
sChaine = CHAINE1;
}
else
{
sChaine = CHAINE2;
}
printf(sChaine);
return 0 (...)
> Lire le message (5 commentaires, moyenne: 5,6).
Programmation.c : SIGSEGV
Posté par JaguarWan () le 07 novembre 2004Je suis en train de finaliser mon petit programme, avec des plugins et des threads (pthread). Ce que j'aimerais maintenant implémenter, c'est une gestion des segfault au niveau des threads afin qu'un plugin mal codé ne puisse pas faire planter l'ensemble de l'application. Je pourrais ainsi décharger le plugin en question, nettoyer ses données et tuer son thread sans compromettre le fonctionnement global de l'application.
Le problème, c'est que je ne sais pas trop comment coder ça (...)
> Lire le message (2 commentaires, moyenne: 2).
general.general : Récupération de fichiers
Posté par JaguarWan () le 03 novembre 2004Ça fait un bout de temps que je n'ai pas démarrer sous Windows, il a du se sentir seul et inutile, et il s'est suicidé tout seul comme un grand. Du jour au lendemain, les répertoires Program Files et Windows ont disparu de ma partition FAT32.
La plupart du temps, c'est quand perd quelque chose qu'on en a besoin. Je ne parles pas ici de mon Windows ;) mais de fichiers importants qui se trouvaient encore sur la partition.
Étant donné que je n'ai rien écrit depuis longtemps (...)
> Lire le message (4 commentaires, moyenne: 2,3).
general.general : Serveur X
Posté par JaguarWan () le 25 septembre 2004Suite à une requête de mes parents, je suis amené à lancer qemu dans un deuxième serveur X, qui est lancé en même temps que KDM. Ainsi, ils peuvent "passer de Linux à Windows" en utilisant CTRL+ALT+F(7|8).
Je lance le serveur avec la commande suivante :
/usr/bin/X11R6/X :1 vt8 &
et ensuite l'application en utilisant le display :1.
Ca marche, mais le problème c'est qu'au démarrage, ce serveur X s'affiche directement, ce qui oblige mes parents à faire un CTRL+ALT+F7 au (...)
> Lire le message (2 commentaires, moyenne: 3,5).
Linux.slackware : Y-a-t'il un nécromancien dans la salle ?
Posté par JaguarWan () le 11 septembre 2004Hier, j'ai tué mon pingouin. J'avais téléchargé les dernières mises à jour de slackware-current, qui comprenaient un rebuild de la glibc et ses dépendances. Et j'ai stupidement demandé à mon pingouin de faire un removepkg dessus... Maintenant, il n'arrive plus à exécuter quoi que ce soit (donc il ne boote plus ^_^") J'ai essayé de le rafistoler à la Frankenstein en utilisant le rescue-cd Slack, mais réinstaller les packages détruits n'a rien donné. J'ai alors tenté (...)
> Lire le message (11 commentaires, moyenne: 2,5).


