Tag Archives: debian

Développement noyau sur e60

Comme j’ai accès à la console série sur liseuse Samsung e60 compilons un nouveau noyau linux.

Le processeur de la liseuse e60 est un ARM, pour compiler le noyau pour ce processeur il nous faut une chaine de compilation croisée.
La première option est d’utiliser celle fournie par samsung avec le reste des sources. A priori ça fonctionne mais utiliser des binaires de sources inconnue ne m’enchantait guerre.
La seconde solution serait de recompiler la chaine nous même, c’est souvent la seule solutions pour des systèmes exotiques nécessitant quelques patchs.
Ici, a bien regardé les fichiers de Samsung, les binutils viennent d’une version entre 2.17 et 2.18 (leur version est nommée 2.17.50 mais ne correspond pas tout à fait à se snapshot non plus…) mais il ne semble pas y avoir de patch ‘maison’. Quand a gcc j’ai pas pris le temps de vérifier.
J’ai opté pour la chaine de compilation croisée du projet emdebian dans sa version lenny (Tout comme le propose le magazine Open Silicium n°1 dans son article sur FriendlyARM).

Installation de la chaine de compilation croisée sur debian

Tout d’abord les clef des l’archive:


sudo apt-get install emdebian-archive-keyring

Ensuite nous ajoutons un fichier /etc/apt/sources.list.d/emdebian.list avec le contenu suivant:


deb http://ftp.uk.debian.org/emdebian/toolchains lenny main
deb-src http://ftp.uk.debian.org/emdebian/toolchains lenny main

Puis une mise à jours des liste des paquets afin d’installer les paquets nécessaires:


sudo apt-get update
sudo apt-get install libc6-armel-cross libc6-dev-armel-cross libstdc++6-armel-cross binutils-arm-linux-gnueabi gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi

Voila, nous disposons maintenant d’une chaine de compilation croisée installée avec des paquets, donc facile à mettre à jour ou à désinstaller.

Les sources du noyau

Samsung fournit une version modifiée du 2.6.29.4, en récupérant la branche git 2.6.29.y du noyau, j’ai rapidement vu que leur changement s’appliquait à la version 2.6.29.6 (dernière de cette branche).

Afin de mieux trier les changements michel.s avait déjà séparé les changements de Samsung en plusieurs patchs (les patchs sur le projet e60-open). Après quelques essai j’ai concocté un fichier series qui permet d’appliquer ces patchs avec quilt ou mieux encore de des importer dans une branche git avec git quiltimport. L’ordre que j’ai choisit permet en particulier de se débarrasser facilement des quelques patchs (les derniers).

On notera dans ces patchs la présence de quelques fichiers binaires:

  • fs/rfs/*.o une couche de journalisation propriétaire sur la fat. Si vous voulez mon avis, elle n’est pas nécessaire, après tout nous disposons de systèmes de fichiers journalisé libre, et linux est capable de monter autre chose que de la FAT par USB…
  • drivers/usb/gadget/file_storage.o le fichier .c correspondant a de plus été retiré, la licence BSD/GPL de l’original autorise une distribution binaire (toutefois, je n’ai pas vérifié si Alan Stern est cité dans la doc) mais j’aurais bien apprécié que Samsung fournisse le source.

U-Boot

Avant de compiler le noyau, il nous faut l’utilitaire mkimage fourni par U-Boot. Ici, pas de chichis, nous compilons la version de U-Boot fournie par Samsung, et nous copions tools/mkimage dans notre path (c’est la seule méthode d’installation que j’ai pu trouver).


make smdkc100_config 
make CROSS_COMPILE=arm-linux-gnueabi-

cp tools/mkimage ~/bin/

Compilation de linux

Pour la configuration un des patch fourni un .config qui est une copie de config_rfs donc même sans appliquer ce patch, nous pouvons récupérer la config de samsung.

Ensuite, on compile enfin !


make CROSS_COMPILE=arm-linux-gnueabi- CFLAGS="-march=armv4t -mtune=cortex-a8" CXXFLAGS="-march=armv4t -mtune=cortex-a8" ARCH=arm uImage


Nous pouvons charger notre noyau en suivant la procédure de test de noyau du projet e60-open la commande pour changer le noyau sera alors


sudo dnw arch/arm/boot/uImage

Voila, ça marche ! Enfin presque, le noyau ne trouve pas ses modules. Ceux présents dans nos sources ne sont pas un vrai problème (mais le sujet d’un prochain article) en revanche les modules /lib/modules/max14540.ko et lib/modules/dhd.ko ne sont pas présent dans les sources alors qu’ils présentent une licence GPL au noyau.

Les sources manquants

Le site Samsung Open Source Release Center possède une interface pour les contacter, mais elle ne semble pas bien fonctionner (j’ai même booter mon netbook sous windows pour essayer avec IE8 sans succes!). En fouillant le forum e60 j’ai retrouvé leur adresse email et leur ai écrit, pas de réponse jusqu’à présent (pas même automatique…). Patience …

Conclusion

Nous pouvons compiler le noyau de la liseuse e60 sans utiliser la chaine de compilation fournie par Samsung.
Il reste du travail pour le changement des modules car ceux présent sur la liseuses sont compilé pour la version 2.6.29.4 du noyau et notre noyau refuse de les charger. (J’ai déjà fait quelques tests mais ça sera le sujet d’un prochain article.)
Et surtout sans les sources manquants nous allons avoir du mal a exploiter au mieux notre liseuse e60.

Mise à jours: Je viens de recevoir une réponse de Samsung, ils ont mis a jours leur archive. Il faut encore que je test ça.

déménagement … serveur compris

En fait ce serveur est hébergé à la maison, sur notre ligne ADSL, donc il a déménagé avec le reste !

Ceci explique la semaine d’interruption il y a deux semaine environ, si toutefois quelqu’un l’a remarqué (mis à part google).

Le déménagement à pris pas mal de mon temps, j’ai du tout emballer, en particulier mes bricolages électronique donc le projet n’a pas beaucoup avancé…

De plus je me suis offert un EeePC 1201HA, je voulais un écran 12 pouces pour avoir quelque chose d’un peu plus utilisable que le 701p. Il est livré avec Windows 7 et le chipset est un GMA500 (poulsbo) ce qui ne facilite pas l’installation de linux, mais bon j’ai installé debian (il reste encore à faire, mais ça sera le sujet d’un autre billet).

Mises à jour de WordPress et des plugins

À la suite des déboires d’hier, je viens de mettre à jours tous mes plugins.

Le changement des URI par le plugin Gengo, qui ajoutait les code des langues m’embarquait dans une redirection infinie (en ajoutant des fr+en/ à l’URI) j’ai du le désactiver. Mais ce faisant, j’ai cassé les URI existante de vos marque-pages (si vous en aviez) et surtout de Google…
Donc j’ai encore modifié gengo, maintenant les URI qui se terminent par un code de langue sont redirigé vers l’URI sans.
Une lecture récente: Cool URIs don’t change exprime ce besoin de conserver les URI, ici je redirige, c’est mieux que rien et vous évite le 404 ;)

J’ai trouvé ce lien sur le Blog de Peter Eisentraut. Je lisait sont article a propos de Remove et Purge. Je fut séduit par l’idée, je l’ai même appliqué quelques jours. Puis j’ai lut les commentaires, j’en reste à la méthode l~c pour crée une vue dans aptitude ;) . Par le passé, j’utilisais synaptic pour purger les résidus restant…

ça fait un bail…

Bon, en fait je lis plus que je n’écris depuis que j’ai syndiqué Planet Debian dans mon aggrégateur de flux, gregarious.

J’ai aussi fait quelques changement sur le thème, mis a jours wordpress sans gros soucis. Merci à wordpress et debian.

Pour finir, ce blog est sous titré « electronics » et je n’ai jamais parlé d’électronique jusqu’ici. En revanche j’ai pratiqué. ;)

J’ai cherché des soft pour tracé des schéma et garder un trace de mon travail, dans un premier temps pour moi, puis pour les publier sur ce blog quand il seront prèt.
Un projet qui m’a semblé intéressant: Fritzing mais il semble trop instable, Je ne veux pas dire qu’il plante mais que le format de fichier n’est pas figé. Ce qui signifie que des projets enregistré avec la version d’aujourd’hui ne s’ouvriront peut être plus avec la version de demain.

Donc je me suis tourné vers les outils du gEDA project. À commencer par gschem pour tracer les schéma électronique puis je me suis mis à PCB pour préparer mes cartes.
Je ne fait pas de vrai PCBs, je préfère utiliser des cartes à prototype et y souder pleins de petits fils, mais utiliser PCD avec une grille à 100mil (1mil c’est 1/1000 de pouces soit 0,0254mm) facilite grandement le placement des composants.

J’ai commencer à bricoler avec des micro-contrôleurs AVR de Atmel en utilisant avr-gcc et avr-libc. J’ai commencer par me faire un programmateur d’avrpar usb, l’USBtinyISP. Je publierais les fichiers gschem et PCB un des ces quatres. (ou plus vite si vous me le demandez).

J’allais oublié, J’ai retrouvé un vieux liens sur le Chip Directory. C’est une collection de ficher decrivant le brochage de beaucoup de vieux circuits tels les séries TTL 74xx et les séries MOS 40xx.

Configuration SSL et hôtes virtuels : Certificat multivalué

  1. Configuration SSL et hôtes virtuels (31 mai 2009)
  2. Configuration SSL et hôtes virtuels : Certificat multivalué (30 juillet 2009)

Le premier article reprenait les bases de la configuration SSL, maintenant nous pouvons vraiment nous attacher au cas des hôtes virtuels par nom, c’est à dire sur la même adresse IP.

Serait-il possible d’avoir deux noms de domaine en accompagnement pour le plat du jour ?

Pour établir la connexion SSL, le serveur présente son certificat, celui-ci doit donc être valide pour tous les noms de domaine qu’il représente. L’idée consiste donc à lister les différents domaines dans le certificat.

Ainsi quelque soit l’hôte virtuel contacté, le serveur répond par le même certificat qui est valide pour tous, et la connexion SSL s’établit.

Continue reading

Déclaration de revenu 2009 sous debian testing

J’ai simplement installé le paquet « sun-java6-plugin », j’avais déjà mon certificat (importé de firefox sous windows), et je n’ai eu aucune difficulté pour la signature.

En revanche j’ai eu droit à quelques erreurs de segmentations de iceweasel.

Et évidement le site ne reconnais pas iceweasel, mais ça passe.

Un dernier point, j’ai remarqué un problème d’affichage sur la page de résumé, et les boutons de signature/envoi, peut être dû aux onglets Adblock… ou a un bug…

Sinon avant de m’y mettre j’ai constater que certains avait eu plus de difficulté que moi l’an dernier, (en fait j’ai même commencé par installer sun-java5-plugin, mais ça ne marchait pas!).
Les détails
ici sur le blog d’Olivier Berger.

Un fauteuil pour deux, sous debian

Pour remplir certaines fonctions, il existe souvent plusieurs solutions, et côté logiciel c’est pareil !

Par exemple, pour la configuration du système, on a besoin d’un éditeur de texte. Sur les distributions récentes, on trouve souvent nano, d’autres utilisent vi (ou une variante comme nvi ou vim…). Sous debian, l’éditeur par défaut s’appelle editor tout simplement.

Voyons voir ce qu’il en est:

$ which editor
/usr/bin/editor
$ ls -la /usr/bin/editor
lrwxrwxrwx 1 root root 24 mar  4 09:01 /usr/bin/editor -> /etc/alternatives/editor

On se rend compte que editor n’est pas un programme mais un lien vers un fichier du même nom dans  /etc/alternatives et si nous allions voir ce fichier, c’est lui même un lien vers le programme utilisé comme éditeur par défaut.

Pour changer celui-ci on pourrait changer le lien, mais c’est un peu brutal vu que debian fournit une commande pour le faire : update-alternatives. Évidemment pour toucher à la configuration de système, il faut être root (utiliser su ou sudo selon votre méthode favorite).

# update-alternatives --config editor

Un petit menu en mode texte vous proposera de choisir une alternative.

Voila pour les généralités, le problème se pose en particulier pour le plugin flash de firefox (enfin iceweasel) car même après avoir installé le plugin provenant de debian-multimedia, firefox s’obstine toujours à utiliser swfdec, et ce dernier ne peut pas être désinstallé sans nuire à Gnome… La solution est juste au dessus ! En fait firefox utilise le plugin flash-mozilla.so qui est lui-même une alternative. Donc:

# update-alternatives --config flash-mozilla.so
Il y a 2 alternatives fournissant « flash-mozilla.so ».

Sélection    Alternative
-----------------------------------------------
*+        1    /usr/lib/swfdec-mozilla/libswfdecmozilla.so
          2    /usr/lib/flashplayer-mozilla/libflashplayer.so

Appuyez sur Entrée pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :2
Utilisation de « /usr/lib/flashplayer-mozilla/libflashplayer.so » pour fournir « flash-mozilla.so ».

Et le tour est joué !

Voila même si flash n’est pas libre, ce n’est pas une raison pour ne pas expliquer aux nouveaux arrivants sous debian ou ubuntu que d’aller renommer, effacer ou remplacer libswfdecmozilla.so pour que firefox joue du flash n’est pas la meilleure méthode.