done that
07/10/2008
Je suis bon (ou comment réparer le GPS du Nokia N95)
Je suis plus fort que les ateliers SAV de Nokia.
Le GPS de mon N95 marche !
Ce n'était pas un problème du logiciel. Ce n'était pas un problème de sensibilité de l'antenne. Tous les "Attente du GPS" et "Aucune connex." venaient en fait d'un... faux contact.
Un bête faux contact. Et je l'ai découvert grâce à cette page des forums support de Nokia (chercher en anglais "Waiting for GPS" et "No connection" a porté ses fruits). Et plus précisément ce texte :
pottsy : "It's to do with the connectors from the phone to the gps antenna. The antenna runs along the bottom of the phone and is stuck to the plastic surround that has the hole that the usb cable goes through. The connector is two gold spring type contacts that connect the antenna to the main PCB. When the phones are assembled, the contacts sometimes foul on the edge of the PCB rather than making contact with the contacts on the underside of the PCB, when looked at from the front of the phone.
The back of my phone and keypad fell off once and the GPS antenna and PCB could then be seen below the keypad. If you can see the spring contacts, they are not making contact with the gold contacts on the PCB. A Nokia service centre worker could probably push the connectors to where they should have been when the phone was built."
Traduction : "Ça à avoir avec les connecteurs du téléphone à l'antenne GPS. L'antenne court sur le bas du téléphone et est collée au morceau de plastique où est la prise pour le câble USB. Le connecteur (de l'antenne) est composé de deux contacts dorés de type ressort qui relient l'antenne à la carte mère. Quand les téléphones sont assemblés, les contacts se coincent sur le bord de la carte mère au lieu de toucher les contacts sous la carte mère, quand le téléphone est vu de face.
Le dos de mon téléphone et le pavé numérique sont tombés une fois et l'antenne et la carte mère étaient visibles sous le pavé numérique. Si vous pouvez voir les contacts flexibles, ils ne touchent pas les contacts dorés de la carte mère. Un centre de maintenance Nokia pourra probablement replacer les connecteurs là où ils auraient dû être quand le téléphone a été assemblé."
En images, vu de l'envers du téléphone. Dans le cercle jaune, les connecteurs ressort de l'antenne. En rouge, les connecteurs pour l'antenne GPS de la carte mère. Pointé en bleu, l'antenne GPS.

Antenne GPS du Nokia N95
© Stefan Constantinescu
Mais en fait on peut faire ça tout seul chez soi. J'ai utilisé un tournevis de précision pour soulever le pavé numérique, par le bas (voir photo plus bas). Il se déclipse facilement et s'enlève sans problèmes (c'est juste une pièce mécanique qui pousse les vrais contacts en dessous). Là, dans l'interstice entre la coque et la carte mère, j'ai effectivement vu ces deux contacts métalliques dorés le long du bord de la carte mère. Je les ai doucement poussés vers le fond du téléphone, et ils ont disparu sous la carte mère. J'ai remis le clavier en place, et le téléphone a capté quatre satellites en moins de 30 secondes !

Clavier du Nokia N95
© Stewart Butterfield
Il faut donc attaquer le clavier par les coins pointés par les flèches jaunes, à l'interstice entre la coque et le clavier. Une image du clavier détaché aide aussi à discerner ses bords :

Pavé numérique du Nokia N95
© Blueunplugged.com
Et le GPS marche super bien.
Je recommande vivement Google Maps pour mobiles.
A moi le geotagging !
04/06/2007
Migrer FreeBSD sur un autre disque
Pour des raisons comme le manque de place ou un changement de matériel, on peut être amené à changer le disque de son installation FreeBSD. J'ai survécu à la manœuvre, voici comment.
Tout d'abord, je refais de la pub pour l'excellent FreeBSD Cheat Sheets, et bien sûr le FreeBSD Handbook. Ces deux docs donnent à peu près toutes les bases pour le système.
Pour l'opération qui nous concerne, je me suis servi de Moving to a Larger Hard Drive de FreeBSD Cheat Sheets. Mais je me suis rendu compte que la "recette" n'est pas tout à fait complète. Je la reprends donc ici, traduite en français, et annotée d'après mon expérience (en italiques dans le texte).
Cet article décrit la méthode pour migrer votre système FreeBSD vers un autre disque dur. Cette procédure suppose que vous utilisez des disques ATA ou SATA (le cas des disques SCSI serait similaire toutefois), et que FreeBSD est le seul système sur le disque dur.
Éteignez la machine et installez le nouveau disque dans l'ordinateur. Dans mon cas, j'ai plutôt installé l'ancien disque dans la nouvelle machine, car je changeais la machine, et le nouveau disque étant de connectique SATA, je n'aurais pas pu le connecter sur l'ancienne machine. J'ai donc compilé un noyau
GENERIC(comment compiler un noyau chez FreeBSD Cheat Sheets et dans le Handbook) avant d'installer le disque dans la nouvelle machine. Installer le nouveau disque en maître sur le canal ATA secondaire vous donnera la plus grande bande passante pour le transfert de données, mais vous pouvez installer le nouveau disque en esclave sur le contrôleur ATA primaire. Assurez-vous de paramétrer les cavaliers sur le nouveau disque et le disque existant de façon adéquate. Ces conseils sont inutiles dans le cas des disques SATA, et les nouveaux disques et contrôleurs ne perdent plus tellement de performances lorsqu'ils sont connectés à la même chaîne ATA.Démarrez en mode single user. Si vous utilisez FreeBSD 5.x ou 6.x, choisissez l'option Boot FreeBSD in single user mode dans le menu de démarrage. Sinon, pendant le décompte du bootloader, appuyez sur une touche quelconque autre que la touche Entrée, et à l'invite de démarrage, entrez la commande :
ok boot -s
Acceptez le shell par défaut (
/bin/sh), et à l'invite du shell, entrez les commandes suivantes :# fsck -p # mount -u / # mount -a -t ufs # swapon -a
Lancez
sysinstall:# /usr/sbin/sysinstall (Sur FreeBSD 4.x, c'est/stand/sysinstall)Choisissez Configure, puis Fdisk sur le menu, et sélectionnez votre nouveau disque (pour les disques ATA, le nouveau disque sera
ad1si c'est l'esclave primaire, ouad2si c'est le maître secondaire ; pour un disque SATA sur le canal 4, ça seraad8). Pour la suite de ce document, nous supposerons que le nouveau disque estad2(Dans mon cas, c'était en faitad12).Dans FDISK Partition Editor, appuyez sur A pour utiliser le disque entier (attention au clavier, QWERTY par défaut, A c'est pour utiliser tout le disque, Q c'est pour quitter !). Appuyez sur W pour écrire les modifications sur disque, confirmez votre choix sur l'avertissement qui vous dit que ce que vous faites ne devrait être fait que sur un système déjà installé où vous ajoutez un disque. Appuyez sur Q pour continuer.
À l'invite Install Boot Manager, choisissez le gestionnaire de démarrage approprié. Ce document suppose que FreeBSD est le seul système installé, donc choisissez le gestionnaire Standard.
De retour au menu sysinstall, choisissez Label.
Dans le Disklabel Editor, créez les partitions suivantes :
ad2s1a /mnt 512 Mo en UFS2 ad2s1b swap 4 Go en swap (4x la RAM du système) ad2s1d /mnt/var 8 Go en UFS2 + Softupdates ad2s1e /mnt/tmp 4 Go en UFS2 + Softupdates ad2s1f /mnt/usr le reste en UFS2 + Softupdates
Ce schéma suppose que votre système de fichiers existant est défini comme l'organisation par défaut de FreeBSD. Si votre schéma est différent, reproduisez-le. De plus, je liste ici les tailles de partitions por mon disque de 160 Go, agrandies par rapport aux valeurs par défaut en adéquation avec mes besoins, adaptez à votre situation.
Le plus simple pour partitionner est de laisser faire Disklabel Editor. Appuyez sur A pour peupler le disque avec les partitions standard avec les tailles préconisées. Vous pourrez par la suite supprimer celles dont vous voulez changer la taille et les recréer avec vos paramètres.
Notez que si vous supprimez la première partition (a), la partition que vous créerez aura le nom d au lieu de a (donc
ad2s1ddans notre exemple), à moins que vous ne spécifiez que le point de montage est/. Changez ensuite le point de montage en/mnten utilisant l'option M.Écrivez les changements sur le disque par W (confirmez), vous aurez probablement un message d'erreur sur l'impossibilité d'ajouter
ad2s1ben partition de swap, mais c'est normal, vous en avez déjà une ! Vous pouvez donc ignorer le message. Appuyez sur Q pour continuer.Quittez sysinstall.
Les nouvelles partitions devraient êtres montées sur /mnt. Sinon montez-les :
# mount /dev/ad2s1a /mnt # mount /dev/ad2s1d /mnt/var # mount /dev/ad2s1f /mnt/usr
/mnt/tmp n'est pas indispensable, ce sont des fichiers temporaires.
Copiez les partitions existantes :
# tar cf - --one-file-system -C / --exclude='mnt/*' . | tar xpvf - -C /mnt # tar cf - --one-file-system -C /var . | tar xpvf - -C /mnt/var # tar cf - --one-file-system -C /usr . | tar xpvf - -C /mnt/usr
Éteignez la machine et enlevez l'ancien disque. Déplacez le nouveau disque à l'emplacement logique de l'ancien (même canal ATA, même position maître/esclave). Assurez-vous d'avoir replacé les cavaliers de manière adéquate. Si vous passez d'un disque ATA à un disque SATA, changez les entrées du fichier /boot/fstab pour refléter le changement du nom du disque.
Avant :
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1e /tmp ufs rw 2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
Après :
# Device Mountpoint FStype Options Dump Pass#
/dev/ad2s1b none swap sw 0 0
/dev/ad2s1a / ufs rw 1 1
/dev/ad2s1e /tmp ufs rw 2 2
/dev/ad2s1f /usr ufs rw 2 2
/dev/ad2s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
Attention à ne pas changer la définition du CD-ROM.
Démarrez en mode single user comme indiqué précedemment.
À l'invite du shell, montez les partitions :
# fsck -p # mount -u / # mount -a -t ufs # swapon -a
Vérifiez que toutes les partitions sont correctement montées :
# mount
Vous devriez obtenir quelque chose comme :
/dev/ad0s1a on / (ufs, local) devfs on /dev (devfs, local) /dev/ad0s1e on /tmp (ufs, local, soft-updates) /dev/ad0s1f on /usr (ufs, local, soft-updates) /dev/ad0s1d on /var (ufs, local, soft-updates)
Dans le cas d'un disque SATA, le nom du disque devrait être différent et conforme à la modification du /etc/fstab.
Redémarrez et lisez les messages du boot pour vous assurer que le système fonctionne correctement.
03/07/2006
Postgray avec Postfix
Le graylisting facile.
Cet article (lâchement repompé en partie sur HowtoForge), montre comment on peut implémenter un système de graylisting en moins de 5 min sous FreeBSD, à l'aide de Postgrey (à condition que Postfix soit déjà installé).
Pour ceux qui n'ont pas encore Postfix d'installé, je les renvoie vers Postfix SMTP AUTH (and TLS) HOWTO, c'est le maître Jedi qui m'a tout appris. C'est un tutoriel pour Linux, mais c'est trivial d'adapter à FreeBSD.
Petite explication du graylisting, avant de commencer. Le graylisting, c'est une méthode de filtrage de spams. Mais contrairement aux white et blacklists, qui sont des listes figées et à entretien manuel, la graylist est adaptative. Pour cela, elle utilise une fonction du protocole SMTP qui permet de signaler au serveur de courrier expéditeur qu'on ne peut pas recevoir de courrier pour l'instant. Et comme indiqué dans le protocole, le serveur de courrier reviendra peu après pour réessayer la remise. Notre serveur n'acceptera de courrier de celui-ci que si un certain délai (par défaut 5 minutes) s'est écoulé depuis la première tentative.
Or les spammeurs n'utilisent pas de vrais serveurs de courrier, et ne réessaient pas l'envoi de leurs spams. Du coup, ces derniers n'arrivent jamais dans les boîtes des utilisateurs ! Simple et efficace.
Le problème de ce système est que ça introduit un délai supplémentaire dans la remise du courrier électronique, du temps d'attente avant acceptation du mail. On peu réduire le temps d'attente du graylist, mais cela pourrait réduire l'efficacité du système, si jamais un spammeur bombarde le serveur pendant plusieurs minutes (la probabilité est faible, cependant).
Autre inconvéniant, l'expéditeur du mail peut recevoir un message d'erreur comme quoi le serveur destinataire a refusé le message, alors qu'il a bien été transmis, avec seulement un peu de retard.
Passons à l'installation de Postgray et l'intégration à Postfix :
D'abord, installer Postgray par les ports :
$ portinstall postgray
Si tout se passe bien, Postgray est installé.
Sinon, il faut observer les messages pendant l'installation et résoudre en conséquence.
Maintenant, il faut le configurer pour qu'il démarre avec le système, on va l'activer dans /etc/rc.conf :
$ echo postgray_enable="YES" >> /etc/rc.conf
Lançons Postgray :
$ /usr/local/etc/rc.d/postgray.sh start
S'il n'y a pas d'erreurs rapportées, c'est bon, ça roule.
Sinon faut aller regarder dans les logs pour voir ce qui cloche.
Postgray est maintenant installé et lancé, mais il ne sert à rien pour l'instant, Postfix ne l'utilise pas. Configurons-le. Il faut éditer le fichier /usr/local/etc/postfix/main.cf. Dans ce fichier, il y a une section qui ressemble à ça :
smtpd_recipient_restrictions =
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_invalid_hostname,
reject_rbl_client cbl.abuseat.org,
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
C'est la section qui dit à Postfix ce que doit respecter les expéditeurs pour accepter du courrier. Je vais pas expliciter les paramètres ici (ceux de mon serveur), je vous renvoie au document cité plus haut qui concerne l'installation de Postfix.
Modifions la section comme suit :
smtpd_recipient_restrictions =
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_invalid_hostname,
reject_rbl_client cbl.abuseat.org,
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023
On a donc ajouté la ligne check_policy_service inet:127.0.0.1:10023. Le nom du paramètre est assez explicite, on dit à Postfix de vérifier la politique de service, qui est disponible à l'adresse 127.0.0.1 (sur la machine locale), sur le port 10023 (port utilisé par défaut sous FreeBSD - peut-être défaut partout).
N'oubliez pas de mettre une virgule au paramètre d'avant, sinon ça marche pas.
Il reste à relancer Postfix :
$ postfix reload
Et voilà, en regardant les logs du service de courrier, vous devriez trouver des lignes comme celles-ci, maintenant :
Jul 3 11:41:49 annis postfix/smtpd[759]: NOQUEUE: reject: RCPT from mon-relai.mail.com[xxx.xxx.xxx.xxx]: 450 <toto@oo.com>: Recipient address rejected: Greylisted for 300 seconds (see http://isg.ee.ethz.ch/tools/postgrey/help/oo.com.html); from=<bozo@boo.com> to=<toto@oo.com> proto=ESMTP helo=<mon-relai.mail.com>
Le serveur mon-relai.mail.com a été placé en graylist pendant 5 minutes. Au bout de 5 minutes, la remise se fera normalement, et toto@oo.com recevra le mail de bozo@boo.com.
Et voilà, moins de spams en quelques minutes, c'est cool !
22/06/2006
Astuce Windows
Ce soir, j'ai foiré mon ordinateur, et je l'ai ramené sans trop galérer, ou comment accéder à la ligne de commandes pendant l'installation de Windows.
Ce soir, je ne sais pas ce qui m'a pris, je me suis dit que j'allais réactiver l'interface réseau nVidia de ma carte mère. Disons-le tout de suite, cette interface Ethernet ne me sert strictement à rien, je suis connecté en WiFi. Mais bon, ça me turlupine que ce périphérique merde, à cause probablement des anciens drivers nForce2 de mon ancienne carte mère...
Du coup aujourd'hui, je me dis que je vais désinstaller et réinstaller les pilotes nVidia de la carte mère. Facile. Mais non. La désinstallation/réinstallation a malmené les drivers des ports PATA et SATA, et du coup je me retrouve avec le fameux INACCESSIBLE_BOOT_DEVICE...
Qu'à cela ne tienne, je répare Windows. Bon, après coup je me suis dit "ah merde j'aurais dû utiliser la restauration système", mais c'était trop tard, la réparation était lancée. Mais là nouveau malheur : l'installation bloque dans la détection du matériel, à 34 minutes de la fin estimée.
Ça arrive, suffit de relancer l'install, et ça passe. Mais non. C'est pas grave, suffit de patienter pendant une douche. Mais non.
Je finis par chercher un moyen de bypass la détection du matériel. Mais je finis par dénicher d'autres choses : d'une, sur Windows XP gold et SP1, l'install peut bloquer à 34 minutes de la fin si on a un clavier USB... Mais moi je suis en SP2, et un clavir PS/2 n'arrange rien. De deux, plus intéressant, on peut ouvrir une console pendant l'installation de Windows ! Ça s'obtient par Shift-F10, et on peut lancer des programmes et tout !
Moi, pour me dépatouiller, j'ai lancé console appwiz.cpl, pour appeler Ajout/Suppression de programmes, pour tenter de dégager les drivers nVidia que je soupçonnais de blocage, et console sysdm.cpl, qui appelle Propriétés système, qui me donne accès au gestionnaire de périphériques, et où j'ai pu désinstaller les périphériques pouvant poser problème (genre les contrôleurs disque...).
Après deux ou trois tentatives de réparations, j'ai réussi à la mener à bien, et j'ai pu récupérer ma machine comme elle était. Ça m'a pris à peu près 3 heures. Mais bon, j'ai appris un truc (la console de l'installation), et surtout, 3 heures, c'est rien par rapport à la journée de réinstallation complète !
Moralité : n'essayez pas de bricoler un périphérique qui ne vous sert à rien. Mais je vais quand même réessayer de réactiver ce port Ethernet ce week-end, on sait jamais que ma réparation ait remis d'aplomb des choses...
24/10/2005
Migration Plone 2.1
Le site officiel manque de docs, et vu que j'y ai été empêtré toute une semaine, je vais relater mon expérience dans la migration de Plone vers la version 2.1. Pour utilisateurs avertis de Zope/Plone.
Plone est un système de gestion de contenus open source et gratuit. C'est la technologie derrière mon site. Dernièrement, les gens de chez Plone ont sorti une nouvelle version, la 2.1, qui apporte quelques nouveautés et améliorations, dont l'adoption d'Archetypes en tant que base des types de contenus, à la place des types CMF (Content Management Framework), utilisés depuis les débuts de Plone.
De fait, la migration de Plone 2.0.5 (ou antérieur) à Plone 2.1 (et supérieur) implique la migration automatique des anciens types de contenus, ce qui peut être à la fois long et laborieux. Dans mon cas, il s'agissait de migrer 4 sites répartis sur deux instances.
Première instance, le site web de ma boîte, plus un petit site perso. Le site web a un contenu majoritairement statique, composés de documents (CMFDocument), avec quelques fichiers PDF stockés en CMFFile. Le site perso est très réduit en taille, avec des documents et quelques photos. Le Data.fs de l'instance pèse dans les 500 Mo.
Deuxième instance, le site intranet de ma boîte, plus un site communautaire sur un artiste vietnamien. Le site intranet est très lourd, et chargé à bloc de fichiers PDF stockés en CMFFile, ainsi que des CMDDocuments. Le site communautaire est composé de documents en CMFDocument, de photos en CMFPhoto et de quelques chansons en MP3 (CMFFile). Le Data.fs fait environ 1 Go.
La procédure normale de migration de Plone (sur FreeBSD, ou d'autres Unix) est de tout d'abord, faire une sauvegarde complète du site, avec tous les produits (on sait jamais), télécharger le tarball de la nouvelle version de Plone sur leur site, placer les produits nouveaux et mis à jour dans le répertoire Products de l'instance, et lancer la mise à jour dans la ZMI par l'outil portal_migration, qui sait détecter la version installée, et qui effectue la migration tout seul comme un grand.
La migration en elle-même effectue la mise à jour des produits de support de Plone, comme Archetypes, et met à jour le site Plone en lui-même (avec les changements de paramètres, nouvelles variables, etc). Mais la migration en version 2.1 effectue une étape importante supplémentaire : elle convertit les éléménts CMFTypes du site en éléments Archetypes. Ça consiste en fait à prendre un objet CMFType, créer un nouvel objet Archetype équivalent, et à répliquer tous les paramètres et données au nouvel objet, et détruire l'objet CMFType. Ainsi on obtient un objet Archetype d'apparence identique à l'ancien objet CMFType.
Le script effectuant cette manœuvre recatalogue le site, trouve les objets CMFTypes à partir du portal_catalog, et les convertit. Or cette opération est longue et consommatrice de mémoire et d'espace disque temporaire.
La première erreur que j'ai eue, c'est No space left on device... En effet, l'interprêteur python qui effectuait la mise à jour a saturé le répertoire /tmp de la machine. En même temps, ce n'était pas très difficile, la taille par défaut de la partition abritant /tmp sur FreeBSD est de 256 Mo. Ce qui est suffisant pour la plupart des cas, mais là, les devs de Plone recommendaient au moins la taille du Data.fs pour la migration. Là, j'en étais loin... Normalement, python utilise tour à tour les répertoires /tmp, /var/tmp, /usr/tmp et le répertoire courant (et peut-être un autre, je sais plus) pour stocker les fichiers temporaires, et ne devrait théoriquement jamais se trouver à court d'espace disque avant la saturation totale de tous les disques. Mais là, il semble qu'il n'y a qu'un seul fichier utilisé pour la migration, et qui grossit pendant toute la durée de l'opération. Donc pas de fallback possible...
Du coup, j'ai monté une machine dédiée à la migration, avec une seule partition couvrant tout le disque. Plus de problème d'espace disque. Mais j'ai été confronté à des erreurs de type Memory Error... Et c'est à peu près les pires erreurs qu'on peut rencontrer dans Zope/Plone, ça veut dire en gros qu'il y a eu une erreur de lecture/écriture sur le Data.fs irrécupérable...
Au bout de deux ou trois échecs de migration directe, je me suis dit que je ne pouvais pas continuer comme ça : il y a tellement de choses qui sont faites dans la migration que je ne sais pas où s'est produit l'erreur, et l'opération met tellement de temps que j'en aurais pour des semaines avant de dépatouiller la chose à ce rythme.
J'ai alors essayé de comprendre la procédure. Et c'est pas bien sorcier. D'abord, essayer de nettoyer et alléger le fichier Data.fs pour faciliter la migration. Rien de compliqué, recataloguer le site (<site>/portal_catalog, onglet Advanced, Update Catalog),recompresser le fichier (Control_Panel/Database/main, onglet Database, Pack).
Ensuite, mettre à jour les produits déjà installés (par portal_quickinstaller. Ensuite, installer les nouveaux produits dont Plone a besoin (toujours par portal_quickinstaller). La version 2.1 apporte les produits suivants :
- ATContentTypes
- ATReferenceBrowserWidget
- Archetypes
- CMFActionIcons
- CMFCalendar
- CMFFormController
- CMFQuickInstallerTool
- GroupUserFolder
- MimetypesRegistry
- PloneErrorReporting
- PloneLanguageTool
- PortalTransforms
- PortalTransport
- ResourceRegistries
- kupu
Tout réinstaller/installer, sauf ATContentTypes. Une fois que les autres produits sont installés sans erreurs, on passe au point crucial, ATContentTypes.
ATContentTypes, c'est le produit qui apporte les types de contenus Archetypes (comme son nom l'indique). Or ça implique de recataloguer le site avant, et de créer un double Archetype de chaque objet CMFTypes du site, et enfin de supprimer les objets CMFTypes. Et c'est long !
A l'installation du produit, il y a un Update Catalog qui se fait, ça prend un moment (surtout si le site est grand). Une fois le produit installé, il faut passer aux choses sérieuses : portal_atct. C'est un outil placé par ATContentTypes à la racine du site. La première fois, si vous aviez déjà installé Archetypes avant, l'outil vous indiquera que l'instance n'est pas à jour. Il faudra passer par Version Migration pour ce faire.
Une fois que l'instance est à jour, il faut passer à la migration des types, dans Type Migration. Comme l'indique l'outil, pour cette étape, il vaut mieux lancer Zope en mode debug, ou consulter régulièrement le log de Zope, pour voir ce qu'il fabrique. Un clic sur Migrate lance la migration des types. Là j'ai connu l'enfer, avec des Memory Error inexplicables (pas de veleur d'erreur...).
Mais j'ai fini par voir qu'il y a au début du log le chemin complet de l'objet en cours quand l'erreur s'est produite. Pour moi, c'était à peu près tous les objets binaires (type octet-stream), comme des fichiers exécutables ou des fichiers Zip stockés en tant que CMFFile. Il est possible que notre utilisation de TextIndexNG2, un produit permettant une indexation plus fine des langues non latines, ait contrinué à cette erreur, car les index sont également regénérés lors de la migration des types. Peut-être que TextIndexNG2 n'a pas trouvé de "lecteur" approprié pour ces types et qu'il s'est emmêlé les pinceaux...
En tous cas, supprimer ces objets a suffi pour que la migration des types se fasse sans erreurs (mais bon, il faut relancer la migration de types autant de fois qu'il y a de fichiers problématiques).
Une fois les types migrés, c'est gagné. Il suffit d'utiliser l'outil portal_migration, et lancer la migration Plone. Il va alors repasser les étapes qu'on a déjà effectué, mais il ne fera rien ou presque, vu que tout est installé et migré côté Archetypes (mais la mise à jour du catalog va quand même se faire, et ça prend du temps...). Il va donc mettre à jour l'instance Plone, et le site sera opérationnel sous la nouvelle version !
Merci d'avoir lu jusqu'ici, c'est brouillon parce que mes tentatives de migration ont été brouillonnes, mais j'espère que ça pourra vous aider si vous rencontrez des problèmes pendant la migration.
10/12/2004
Multi-écrans sous X sur FreeBSD
X Window peut faire du multi-écran, voici comment (youhou mon premier howto réellement intéressant !). - étendu 25 janvier 2005
Oui, X Window peut faire du multi-écran, et oui X.org peut le faire. Mais c'est pas super documenté sur le net (ou je cherche comme un pied, ce qui est aussi une possibilité
).
Le pire, c'est que c'est pas très compliqué. Mais Xorg ne configure pas automatiquement la prise en charge multi-écrans, même s'il détecte plusieurs cartes ! Il détecte bien les cartes et moniteurs, mais en lançant un gestionnaire de fenêtres, on se retrouve avec un seul écran fonctionnel, alors que le test marche bien... Pire encore, si on a une carte multi-affichages, on n'a qu'une seule carte et un seul moniteur !
Lisez mon papier sur xorg.conf si ce n'est déjà fait, j'y explique les bases à connaître sur le fichier de configuration de X.org, et je vais me baser dessus pour l'étendre à la prise en charge multi-écrans.
Les prérequis pour une configuration multi-écrans, c'est déjà plusieurs écrans
, et plusieurs cartes graphiques, ou un carte graphique pouvant gérer plusieurs écrans. De plus en plus de cartes ont cette fonction, il est probable que vous ayez une telle carte sans même le savoir. A fortiori si vous avez un ordinateur portable (assez) récent, la puce graphique intégrée en est capable.
Si vous n'avez pas tout ça, faut se faire une raison, il n'y aura pas de multi-affichage (je le précise, des fois on me pose des questions farfelues comme "peut-on lire une clé USB qui n'est pas reliée à l'ordinateur ?").
Si par bonheur (et abondance de place sur le bureau) vous avez deux écrans ou plus et des puces graphiques pouvant supporter vos écrans, on peut se tenter le coup de frime.
Première étape, avoir une configuration Xorg qui marche, sur un écran (voir là sinon). Si vous avez deux cartes vidéo, Xorg les aura trouvées (sinon voir plus bas pour une tentative de solution), et elles apparaîtront dans des sections Device séparées. Dans mon cas, j'ai une puce Intel Extreme Graphics 2 intégrée sur AGP et une Matrox Millenium PCI :
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "ColorKey" # <i>
#Option "CacheLines" # <i>
#Option "Dac6Bit" # [<bool>]
#Option "DRI" # [<bool>]
#Option "NoDDC" # [<bool>]
#Option "ShowCache" # [<bool>]
#Option "XvMCSurfaces" # <i>
#Option "PageFlip" # [<bool>]
Identifier "Card0"
Driver "i810"
VendorName "Intel Corp."
BoardName "82865G Integrated Graphics Device"
BusID "PCI:0:2:0"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "SWcursor" # [<bool>]
#Option "HWcursor" # [<bool>]
#Option "PciRetry" # [<bool>]
#Option "SyncOnGreen" # [<bool>]
#Option "NoAccel" # [<bool>]
#Option "ShowCache" # [<bool>]
#Option "Overlay" # [<str>]
#Option "MGASDRAM" # [<bool>]
#Option "ShadowFB" # [<bool>]
#Option "UseFBDev" # [<bool>]
#Option "ColorKey" # <i>
#Option "SetMclk" # <freq>
#Option "OverclockMem" # [<bool>]
#Option "VideoKey" # <i>
#Option "Rotate" # [<str>]
#Option "TexturedVideo" # [<bool>]
#Option "Crtc2Half" # [<bool>]
#Option "Crtc2Ram" # <i>
#Option "Int10" # [<bool>]
#Option "AGPMode" # <i>
#Option "AGPSize" # <i>
#Option "DigitalScreen1" # [<bool>]
#Option "DigitalScreen2" # [<bool>]
#Option "TV" # [<bool>]
#Option "TVStandard" # [<str>]
#Option "CableType" # [<str>]
#Option "NoHal" # [<bool>]
#Option "SwappedHead" # [<bool>]
#Option "DRI" # [<bool>]
#Option "MergedFB" # [<bool>]
#Option "Monitor2HSync" # [<str>]
#Option "Monitor2VRefresh" # [<str>]
#Option "Monitor2Position" # [<str>]
#Option "MetaModes" # [<str>]
Identifier "Card1"
Driver "mga"
VendorName "Matrox Graphics, Inc."
BoardName "MGA 2064W [Millennium]"
BusID "PCI:1:7:0"
EndSection
Le pilote mga comporte beaucoup d'options, dont des références à un 2ème moniteur ("Monitor2Position"), mais la plupart sont destinées aux Milleniums récentes, dans la série G, pas mon ancêtre.
Les cartes sont correctement identifiées en tant que "Card0" et "Card1". On va pouvoir s'en servir directement.
Si vous avez une carte intégrée, c'est différent, vous n'avez qu'un seul Device, comme ceci :
Section "Device"
Identifier "Card0"
Driver "radeon"
VendorName "ATI"
BoardName "ATI Radeon Mobility M6"
Option "AGPMode" "4"
#VideoRam 32768
# NOTE: Enabling VideoRam produces strange errors,
# no problem, it detects 32MB anyway.
BusID "PCI:1:0:0"
EndSection
L'astuce, c'est qu'on sait que cette carte peut gérer deux moniteurs. On va donc la dupliquer :
Section "Device"
Identifier "Card0"
Driver "radeon"
VendorName "ATI"
BoardName "ATI Radeon Mobility M6"
Option "AGPMode" "4"
#VideoRam 32768
# NOTE: Enabling VideoRam produces strange errors,
# no problem, it detects 32MB anyway.
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Card1"
Driver "radeon"
VendorName "ATI"
BoardName "ATI Radeon Mobility M6"
Option "AGPMode" "4"
#VideoRam 32768
# NOTE: Enabling VideoRam produces strange errors,
# no problem, it detects 32MB anyway.
BusID "PCI:1:0:0"
EndSection
On recopie tout pareil, sauf qu'on change le nom de la carte, en "Card1" sur la "deuxième" carte !
Notez que votre XFree86 ou X.org peut ne pas présenter tous ces paramètres. Par exemple, sous Ubuntu, et XFree86 4 (je connais pas la version exacte, désolé), on a ce genre de chose :
Section "Device" Identifier "ATI Technologies, Inc. Radeon Mobility 9000 M9 (R250 Lf)" Driver "ati" BusID "PCI:1:0:0" EndSection
Ils omettent les infos VendorName et BoardName, mais Identifier est très explicite. Ce qui n'est pas forcément pratique pour relire le fichier. Mais en même temps, Ubuntu n'est pas vraiment fait pour les geeks qui éditent les fichiers de conf X à la main.
Enfin, ajouter une option pour indiquer au driver de la carte quels affichages matériels dépendent de cette carte, avec la directive Screen (qui n'est pas la section Screen !) :
Section "Device"
Identifier "Card0"
Driver "radeon"
VendorName "ATI"
BoardName "ATI Radeon Mobility M6"
Option "AGPMode" "4"
#VideoRam 32768
# NOTE: Enabling VideoRam produces strange errors,
# no problem, it detects 32MB anyway.
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Card1"
Driver "radeon"
VendorName "ATI"
BoardName "ATI Radeon Mobility M6"
Option "AGPMode" "4"
#VideoRam 32768
# NOTE: Enabling VideoRam produces strange errors,
# no problem, it detects 32MB anyway.
BusID "PCI:1:0:0"
Screen 1
EndSection
Voilà, on a maintenant deux cartes prêtes à l'emploi.
Si vous avez d'autres cartes ou si votre carte gère plus de deux affichages, continuez à copier-coller.
J'ai également deux déclarations Monitor, et deux Screen, dans ce xorg.conf :
Section "Monitor" #DisplaySize 300 230 # mm ### Uncomment if you don't want to default to DDC: # HorizSync 842150464.0 - 0.0 # VertRefresh 809972032.0 - 0.0 Identifier "Monitor0" VendorName "VSC" ModelName "VE510s" Option "DPMS" EndSection Section "Monitor" #DisplaySize 300 230 # mm ### Uncomment if you don't want to default to DDC: # HorizSync 1429222016.0 - 0.0 # HorizSync 30.0 - 70.0 # VertRefresh 1430467328.0 - 0.0 Identifier "Monitor1" VendorName "DEL" ModelName "DELL E771p" Option "DPMS" EndSection
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "Card1" Monitor "Monitor1" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection
Le "Screen0" utilise la carte "Card0" et le moniteur "Monitor0", de même que "Screen1" utilise les "1". Si vous avez une carte multi-affichages, dupliquez les sections Monitor et Screen que vous avez, et éditez-les.
Pour Monitor, comme Xorg ne le détecte pas tout seul, il faut le fabriquer à la main. Mettez "Monitor1" comme Identifier, à peu près ce que vous voulez en VendorName et ModelName. Pour les taux de rafraîchissement, il faudra vous référer au manuel ou au site du constructeur, ou une autre ressource sur le net pour les trouver. Et faites attention à ne pas mettre n'importe quoi, sinon le moniteur risque de brûler...
Pour Screen, faites juste attention à associer les bonnes cartes et les bon écrans, et à le nommer correctement (si vous gardez cette nomenclature de "0", "1","2", etc, ça ne devrait pas être trop difficile
). Reportez-vous au manuel pour connaître les différents modes d'affichage (profondeur de couleur, résolution) pour les reporter dans les SubSecton "Display". Les profondeurs de couleurs devraient suffire, pour FreeBSD.
J'ai vu qu'il existait des variantes (toujours chez Ubuntu) :
Section "Monitor" Identifier "Ecran générique" HorizSync 30-67 VertRefresh 50-75 Option "DPMS" EndSection Section "Screen" Identifier "Default Screen" Device "ATI Technologies, Inc. Radeon Mobility 9000 M9 (R250 Lf)" Monitor "Ecran générique" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1400x1050" EndSubSection SubSection "Display" Depth 4 Modes "1400x1050" EndSubSection SubSection "Display" Depth 8 Modes "1400x1050" EndSubSection SubSection "Display" Depth 15 Modes "1400x1050" EndSubSection SubSection "Display" Depth 16 Modes "1400x1050" EndSubSection SubSection "Display" Depth 24 Modes "1400x1050" EndSubSection EndSection
La section Monitor a les fréquences de rafraîchissement de l'écran renseignés, alors que sur la même section de X.org de FreeBSD, elles sont auto-détectées par défaut. Donc dans le doute, suivez les préférences de votre serveur X, et pour ajouter une section, renseignez les valeurs qu'il mentionne dans les sections existantes (je sais pas si je suis clair, là
.
De même, les sous-sections Display de la section Screen sont légèrement différentes. X.org de FreeBSD décrit une variable Viewport, alors que XFree86 de Ubuntu décrit une variable Modes. Je ne suis malheureusement pas expert en serveurs X pour dire si c'est une différence entre XFree86 et X.org ou si c'est une différence d'implémentation entre FreeBSD et Ubuntu... Donc c'est ce que je disais, renseignez les infos conformément à ce qui existe dans votre fichier quand vous spécifiez des écrans et cartes supplémentaires.
Enfin, passons au ServerLayout. Il y a juste deux options à vérifier. Mon xorg.conf par défaut me disait ça :
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" RightOf "Screen0" InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
Notez les paramètres de Screen 1. Il donne le nom de l'affichage à utiliser, et une position relative par rapport à l'écran principal, "Screen0". Par défaut, l'écran secondaire est sensé être placé à droite de l'écran principal, donc RightOf. Or mon écran secondaire est place à gauche du principal. Je vais donc remplacer cette option par LeftOf :
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" LeftOf "Screen0" InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
Le test (X -xfconfig /<emplacement>/xorg.conf) me donnera bien la bonne position d'écran, et si je déplace le curseur à gauche, il partira bien sur l'écran secondaire. Mais le bureau du gestionnaire de fenêtres sera toujours confiné à un seul écran !
Le truc, c'est une option jamais définie par défaut dans le xorg.conf : "Xinerama". Elle permet d'utiliser les différents écrans en bureau étendu :
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" LeftOf "Screen0" InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" Option "Xinerama" "true" EndSection
Et voilà, vous avez un affichage multi-écrans fonctionnel sous X !
J'avais promis de dire un mot sur les cartes non reconnues, et je le fais ici. Il peut y avoir plusieurs raisons à la non-détection de la carte vidéo. Première raison, elle n'est pas supportée par la version de X que vous avez. Là, pas de miracles, il faut se récupérer le bon driver, le recompiler au besoin et retenter la détection. Si vous savez qu'elle est supportée et que pour une raison obscure elle n'est pas détectée, regardez dans le dmesg pour voir si elle apparaît dans les périphériques détectés par le noyau. Moi, la Matrox Millenium donne ça :
pci1: <display, VGA> at device 7.0 (no driver attached)
Le noyau sait que c'est une carte vidéo, mais n'a pas de pilote spécifique à y affecter. Notez que la carte est présente sur le bus pci1, périphérique 7.0. C'est ce nombre que vous devrez fournir à xorg.conf pour forcer l'utilisation de cette carte. Rappelez-vous ma section "Device" :
Section "Device" Identifier "Card1" Driver "mga" VendorName "Matrox Graphics, Inc." BoardName "MGA 2064W [Millennium]" BusID "PCI:1:7:0" EndSection
L'option BusID permet de désigner la carte utilisée. Il faut aussi déterminer le driver à utiliser pour la carte. Pour ça, je ne sais pas.
Mais en creusant sur le net, ça doit pouvoir se trouver...
Voilà, j'espère que ça a pu vous aider ! Merci de m'avoir lu.
09/12/2004
Administrer FreeBSD avec Webmin
Je ne suis pas un Dieu des fichiers de conf, donc j'utilise des logiciels qui m'aident. :)
Et Webmin le fait admirablement bien ! Il est disponible par les ports : portinstall webmin.
Une fois installé, il faut le configurer : /usr/local/lib/webmin/setup.sh, et l'activer dans /etc/rc.conf, et enfin lancer Webmin par son script de démarrage : /usr/local/etc/rc.d/webmin.sh start (enfin bon, portinstall vous dit tout ça à la fin de l'installation, hein ?).
Pour la configuration, acceptez tout par défaut, c'est très bien, prenez l'encryption SSL, et mettez un mot de passe non trivial. Ah, s'il vous demande le type et la version de votre système d'exploitation, c'est bien sûr FreeBSD (choix 42 pour Webmin 1.170) et 5.3 (choix 23 pour Webmin 1.170), pour ceux qui suivent mes howtos simplistes.
Et une fois lancé, Webmin est accessible par l'adresse https://localhost:10000, ou https://<nom d'hôte>:10000, ou encore https://<ip de la machine>:10000.
Webmin vous demande de vous identifier, mettez le nom d'utilisateur et le mot de passe créés lors de la configuration. Vous vous retrouvez alors dans l'interface principale de Webmin. Je ne vais pas faire un manuel d'utilisation de Webmin, il y en a déjà de très bien là.
Je vais plutôt présenter les modules que j'utilise souvent et/ou qui sont réellement utiles (et sous leur noms en anglais, je trouve que la traduction française est médiocre).
Upgrade Webmin
Section Webmin, Webmin Configuration, Upgrade Webmin.
C'est là que se trouvent les utilitaires de mise à jour de Webmin. Le développement de Webmin est très actif, et Webmin et les modules sont régulièrement mis à jour. C'est la première chose à faire à l'installation d'un Webmin, vérifier l'existance d'une nouvelle version, et l'installer au besoin. Le cadre Upgrade Webmin permet cela. Sélectionnez Latest version from www.webmin.com, cochez Delete old version's directory after upgrade? et appuyez sur Upgrade Webmin. Effacer le répertoire de l'ancienne version est plus propre, car les préférences et modules de tierce-partie sont copiés vers la nouvelle version. Mais si vous avez un doute sur la compatibilité ou la stabilité d'une nouvelle version, gardez l'ancien répertoire au cas où.
Le cadre Update modules now permet de mettre à jour les modules. Il marche de façon similaire à Upgrade Webmin.
Le cadre Update modules on schedule permet de maintenir les modules de Webmin à jour, en lançant une recherche de mises à jour régulièrement. Par défaut, la mise à jour automatique est désactivée. Activez-la en ochant la case Scheduled updating currently enabled. Par défaut, la mise à jour se lance tous les jours à 3 h, mais vous pouvez la lancer à l'heure que vous voulez, avec l'intervalle de votre choix. Vous avez aussi le choix de recevoir par mail les rapports de mise à jour (normalement seulement si un ou plusieurs modules ont été mis à jour). Ces mails sont utilies, car ils signalent aussi les nouvelles versions de Webmin. Webmin lui-même n'est pas mis à jour automatiquement.
Running Processes
Section System, Running Processes.
C'est à la fois un ps et un top. Ça vous donne la liste des processus actifs, que vous pouvez ordonner par PID, par utilisateur, par occupation mémoire, par utilisation CPU. Vous pouvez également rechercher un processus par propriétaire, par nom, ou par occupation processeur. Il est également possible de lancer une commande.
Scheduled Cron Jobs
Section System, Scheduled Cron Jobs.
Ce module permet d'éditer les tables cron du système. Il y a des formulaires très user friendly pour créer, modifier et supprimer des tâches planifiées.
Software Packages
Section System, Software Packages.
C'est une interface vers les ports. Je ne l'utilise personnellement pas pour installer des ports, mais pour voir les packages installés et les désinstaller au besoin. Il y a un bouton Package Tree qui donne la liste complète des ports installés, avec nom et version. En cliquant sur un port, vous pouvez lister les fichiers du logiciel en appuyant sur le bouton List Files, ou le déinstaller avec le bouton Uninstall. Si vous décidez de désinstaller un port, Webmin vous demandera confirmation, et si le port est une dépendance d'autres logiciels, il vous le signalera et refusera de le désinstaller.
System Logs
Section System, System Logs.
Comme le nom l'indique, c'est là que vous pouvez consulter les journaux du système. Vous pouvez en outre ajouter d'autres fichiers à la liste. C'est pratique pour regarder un journal rapidement, sans ouvrir un shell ou un éditeur.
Section Servers
Cette section comporte de nombreux modules pour administrer les divers serveurs éventuellement installés sur la machine. Je reviendrai sur ces modules dans le document traitant de tel ou tel serveur.
Network Interfaces
Section Networking, Network Configuration, Network Interfaces.
C'est là que vous pouvez configurer les diverses interfaces réseau. Similaire à Sysinstall.
Routing and Gateway
Section Networking, Network Configuration, Routing and Gateway.
Sélection de la passerelle réseau par défaut, activation du mode routeur.
DNS Client
Section Networking, Network Configuration, DNS Client.
Nom d'hôte, paramètres DNS, ordre de recherche, domaine.
Host Addresses
Section Networking, Network Configuration, Host Addresses.
Permet d'éditer le fichier /etc/hosts.
System Time
Section Hardware, System Time.
Permet de régler l'heure et le fuseau horaire de la machine, et de programmer la synchronisation avec un serveur de temps NTP.
Command Shell
Section Others, Command Shell.
C'est une ligne de commande, mais non interactive. On peut lancer des commandes et voir le résultat, mais on ne peut répondre aux questions posées par les scripts et programmes. Ça peut dépanner si on n'a pas de serveur SSH, ou s'il n'est pas joignable. Le module se rappelle des dernière commandes, et peut les relancer ou permet d'éditer d'anciennes commandes avant de les lancer.
Custom Commands
Section Others, Custom Commands.
Cette section permet de créer des boutons qui lancent une commande, avec des options (utilisateur, répertoire d'exécution, variables d'environnement) personnalisées. Utile si on a besoin de lancer une commande souvent, sans pour autant lancer un SSH.
File Manager
Section Other, File Manager.
C'est un vrai gestionnaire de fichiers en Java. Il tourne sur la machine cliente (dans le navigateur). Il est possible d'effectuer toutes les opérations standard (copier, coller, couper, renommer, supprimer, etc...), à l'exception de la gestion de permissions. Il est possible en outre de télécharger et d'envoyer des fichiers sur la machine. Il est assez lent au démarrage, mais a des performances honnêtes (pour un programme en Java) une fois lancé.
SSH/Telnet Login
Section Others, SSH/Telnet Login.
Un client SSH/Telnet en Java. Ce module est uniquement un client, pour un accès SSH ou Telnet, il faut un vrai serveur lancé sur la machine. Et suivant l'implémentation de la machine virtuelle Java, l'autocomplétion par la touche Tab peut ou peut ne pas marcher. Je vous conseille d'utiliser le Separate window mode dans Module Config, ça ouvrira une fenêtre à part pour le client SSH.
System and Server Status
Section Others, System and Server Status
Ce module surveille l'état du système et des services qui tournent dessus. Le bouton Scheduled Monitoring permet d'activer le suivi des services, le planning du suivi, quand envoyer une alerte en mail, à qui envoyer le mail, etc.
Upload and Download
Section Others, Upload and Download
Ce module permet d'envoyer des fichiers sur la machine soit à partir d'une URL, soit à partir d'un fichier sur la machine locale. Il est possible de spécifier la destination, le propriétaire du fichier à l'arrivée, s'il faut extraire les archives. Le téléchargement d'une URL peut être programmé à une heure déterminée, par exemple la nuit, pour ne pas réduire la bande passante le jour.
Le fichier xorg.conf sur FreeBSD
Suite de la configuration X sous FreeBSD, on va expliciter le fichier de configuration.
Maintenant qu'on a un X qui marche (sinon voir ici), on va essayer de comprendre sa configuration, et ça nous servira de base pour gérer plusieurs écrans.
Il faut dire en aparté qu'à part Webmin (j'en parle ici), je n'utilise presque aucun utilitaire de configuration système, je me tape les fichiers de config à la main sous vi (c'est un vim, je crois, sous FreeBSD). C'est un peu comme pour le HTML, j'ai l'impression que j'ai une plus grande maîtrise sur le code (c'est sûrement qu'une impression). Donc dans ce papier, on va faire les choses à la dure, au vi. Utilisez ee ou un éditeur similaire, pas un outil de forcené comme vi, dans la vie réelle. Moi l'habitude du vi me vient de mes cours à la fac, où on me disait que seul vi était un outil de base de tout Unix et assimilés. Mais bon, je crois que c'est plus vraiment le cas de nos jours... Puis il y a un utilitaire bien fait pour X (par X.org), en mode graphique, tout en menus (assez) joli qui modifie le xorg.conf tout seul comme un grand, xorgcfg. Mais ça fait pas de mal de comprendre, pour pouvoir bidouiller le fichier si jamais X se plante...
On va partir d'un fichier auto-configuré. Le fichier xorg.conf est séparé en sections :
ServerLayout
Cette section décrit la configuration de l'affichage. C'est un agrégat des autres sections décrites dans le fichier. Il indique quels périphériques utiliser pour l'affichage (carte(s), écran(s)), et quels dispositifs de pointage utiliser (souris, clavier(s)). Voici ce que me donne l'auto-configuration :
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
Identifierest juste le nom que vous donnez à cette configuration. Là,Xorgme l'a rempli tout seul, mais j'aurais tout aussi bien pu mettre un truc du genre"Mon écran de bombe de balle". Aucune incidence sur le fichier de configuration (à part si vous mettez des guillemets dans la chaîne, ce qui ferait des erreurs). Il doit être unique.Screenpermet d'indiquer les écrans en service. Un écran est défini dans une sectionScreen, qui décrit un ensemble carte et écran (physique). Voir plus bas. L'écran décrit ici est le numéro0, donc le premier écran, il reprend la définition de"Screen0", et il affiche le bureau à partir des coordonnées0 0, en abscisses et ordonnées. En résumé, c'est le premier (et seul) affichage, et il affiche le bureau à partir du haut gauche (les abscisses sont inversées, elles croissent vers le bas de l'affichage).- Les
InputDevicedécrivent le clavier et la souris à utiliser, en indiquant leur définition. La mention"CorePointer"et"CoreKeyboard"indiquent que ces périphériques sont les périphériques principaux, si jamais il y avait plus d'un seul clavier ou plus d'une seule souris sur le système (pensez aux tablettes graphiques, par exemple).
Files, Modules
Ces sections décrivent les extensions à charger et les chemins d'accès aux bibliothèques. Ne changez pas ces déclarations si vous ne savez pas ce qu'elles signifient, ou sur quoi elles ont effet. Les réglages par défaut sont adéquats pour la plupart des usages.
InputDevice
C'est là qu'on définit les périphériques de saisie, souris, claviers, tablettes graphiques, tablette à numériser, etc. Voyons un exemple de souris et un exemple de clavier :
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection
Identifierest un nom pour cette définition de périphérique. On peut y mettre n'importe quoi, mais nommer les périphériques en rapport avec leur nature aide à la relecture du fichier.
Driverindique quel pilote utiliser pour ce périphérique. Généralement,"mouse"est le mieux indiqué pour une souris, à part si vous avez un driver particulier fourni par le fabricant (mais il y a des chances que ce ne soit pas une souris
.- Nous avons ensuite des déclarations
Option, qui permettent de préciser le comportement du périphérique."Protocol"indique le "driver" à utiliser."auto"est le choix le plus judicieux de nos jours, à moins que vous n'ayez une souris série (et qui a une souris série sur une machine récente de nos jours ?). Pour une souris USB,"auto"est une obligation."Device"indique le nom du périphérique dans/dev./dev/sysmouseest un périphérique virtuel vers le périphérique réel,/dev/ums0, pour une souris USB, par exemple.- Les options
"buttons"etZAxisMappingne sont pas créés par défaut parXorg. Ils permettent d'indiquer le nombre de "boutons" de la souris, et de définir le défilement de la roulette. Chacune des directions de la souris est considéré comme un bouton, donc sur une souris deux boutons et une roulette cliquable, on a 5 "boutons" en tout.ZAxisMappingindique quels boutons seront utilisés pour le défilement, ici la roulette haut et bas,"4 5". Si on met"1 2", les boutons gauche et droits feront défiler le texte dans les fenêtres ! Tout est possible.
Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "fr" EndSection
Le clavier ne diffère pas beaucoup de la souris. Identifier est toujours un nom (presque) quelconque, et son Driver est "keyboard". Les options sont un peu différentes, toutefois.
"XkbRules"indique le comportement du clavier."xorg"est le comportement "standard" du clavier. Paraît qu'on peut le mettre "à la Emacs", mais vu que j'aime pas Emacs, je ne sais pas comment.
Bon, en 30 s de recherche manuelle (même pas par Google, la honte), je ne trouve pas de docs là-dessus. Je verrai si j'ai le temps.
"XkbModel"indique le type de clavier que vous avez. C'est plus important qu'on ne croit, car il y a de subtiles différences entre claviers du monde, en nombre de touches. Mais bon, les claviers modernes européens (français ?) comportent 105 touches, donc j'utilise"pc105". Et"XkbLayout"indique ce qu'on a comme sérigraphie dessus, pour que ça corresponde.
Se reporter à xorgcfgpour les layouts.
Monitor
Une des sections essentielles de xorg.xonf, car elle décrit l'écran physique.
Section "Monitor" #DisplaySize 300 230 # mm ### Uncomment if you don't want to default to DDC: # HorizSync 842150464.0 - 0.0 # VertRefresh 809972032.0 - 0.0 Identifier "Monitor0" VendorName "VSC" ModelName "VE510s" HorizSync 30.0 - 62.0 VertRefresh 50.0 - 75.0 Option "DPMS" EndSection
Si votre écran est compatible DCC, la carte graphique obtiendra automatiquement les fréquences optimales d'affichage. Mais comme on peut le voir, des fois, ça donne des résultats curieux...
DisplaySize, paramètre complètement optionnel, précise la taille physique de l'écran, en millimètres. Je ne sais pas bien à quoi ça peut servir ?HorizSync, spécifie les fréquences de balayage horizontaux de l'écran. La détection DCC donne des chiffres fantaisistes, et sur cet écran LCD, la carte envoyait une fréquence non supportée... J'ai donc dû trouver les spécifications sur le net, et j'ai mis la valeur moi-même :30.0 - 62.0, fréquence en Hz.VertRefresh, pareil queHorizSync, la détection donne n'importe quoi, j'ai mis les valeurs constructeur à la place :50.0 - 75.0, toujours en Hz. Attention, X prend pour argent comptant les fréquences manuelles spécifiées, si l'écran ne les supporte pas, il peut être abîmé par la manœuvre !VendorNameetModelNamesont obtenus par DCC, et sont optionnels. Ce sont la marque et le modèle de l'écran. Là, j'ai un Viewsonic VE510s.- Enfin,
"DPMS"indique que l'écran supporte les modes d'économie d'énergie, qu'il peut passer en veille et tout.
Device
Ici on décrit la carte graphique, ses capacités, son emplacement, tout ça.
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "ColorKey" # <i>
#Option "CacheLines" # <i>
#Option "Dac6Bit" # [<bool>]
#Option "DRI" # [<bool>]
#Option "NoDDC" # [<bool>]
#Option "ShowCache" # [<bool>]
#Option "XvMCSurfaces" # <i>
#Option "PageFlip" # [<bool>]
Identifier "Card0"
Driver "i810"
VendorName "Intel Corp."
BoardName "82865G Integrated Graphics Device"
BusID "PCI:0:2:0"
EndSection
La détection marche plutôt bien, sur les X récents, et Xorg donne une liste exhaustive des options du driver de la carte. Les Intel Extreme Graphics sont pauvres en options...
Identifier, un nom.
Driver, le pilote le plus adapté pour la carte. Là, j'ai un Intel Extreme Graphics 2 sur un chipset Intel 865G, qui est pris en charge par le driver"i810".VendorNameetBoardName, c'est comme lesVendorNameetModelNamede la sectionMonitor, c'est pour la frime.
BusIDprécise l'emplacement de la carte. C'est un triplet de nombres. Ici"0:2:0", c'est le bus AGP (0), 3e emplacement (2), premier périphérique (0) (je suis pas complètement certain de cette explication, mais ça me semble avoir du sens). C'est le paramètre le plus important deDevice.
Screen
Ici on décrit l'affichage, en tant que couple Monitor/Device, et on spécifie les modes d'affichage disponibles.
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 Modes "800x600" "1024x768" EndSubSection EndSection
Identifier, pareil, un nom.DeviceetMonitor, la carte et l'écran à utiliser pour cet affichage. Une seule carte et un seul écran par affichage. Pour un double affichage à partir de la même carte, il y a une autre astuce (voir Multi-écrans).- Chaque
SubSection "Display"contient la définition d'un mode d'affichage.Viewportindique à partir d'où afficher le bureau par défaut.0 0commence en haut à gauche. En mettant d'autres coordonnées, on peut afficher seulement une portion de l'écran (ou afficher le milieu du bureau par défaut ? A vrai dire j'ai jamais essayé).Depthindique la profondeur de couleurs à utiliser pour l'affichage. Il va de 1 à 32, d'habitude (peut-être plus pour des cartes de graphistes professionnels). Il y a uneSubSection "Display"par profondeur de couleur.Modespermet de définir les résolutions supportées par l'affichage dans cette profondeur de couleurs. En l'absence de cette valeur, les modes sont déduits du DCC. On peut forcer une certaine résolution en ne précisant que celle-ci. Par exemple, si je veux forcer l'affichage en 1024x768 en couleurs 24 bits, alors que le DCC préconise 1152x864, je mettraiSubSection "Display" Viewport 0 0 Depth 24 Modes "1024x768" EndSubSection
Voilà, j'espère que ça vous a plu et que ça vous a appris, parce que ça m'a pris un près de 2 heures à rédiger tout ça.
(quoi, autant de temps pour ÇA ?!
)
08/12/2004
Utiliser les Ports dans FreeBSD
Avoir un FreeBSD qui marche, c'est bien, avoir des logiciels qui tournent dessus, c'est mieux !
Les ports, c'est une collection de logiciels adaptés pour tourner sous FreeBSD. Il y a de tout, et on y trouve la quasi-totalité des logiciels libres jamais développés, ainsi que quelques logiciels commerciaux.
Regardez dans le Handbook (français), c'est plus complet.
FreeBSD propose des commandes pour gérer les packages des ports, pkg_add, pkg_delete, etc. Mais je trouve pas ça très pratique.
On va donc utiliser portupgrade, qui est plus agréable. Tapez la commande suivante : cd /usr/ports/sysutils/portupgrade && make install clean. Si tout va bien, portupgrade est installé. Sinon, reportez-vous aux messages d'erreur pour déterminer ce qui ne va pas.
Maintenant, on peut installer les logiciels des ports par la commande portinstall, et les mettre à jour par la commande portupgrade. Elles se lancent suivies du nom du port à installer/mettre à jour, et hop c'est fait.
Elles admettent aussi des options, voici celles dont je me sers couramment :
-f: force la réinstallation d'un port. En effet,portupgradene lance la mise à jour d'un port seulement si une nouvelle version est disponible.-M <argument de make>: passe les arguments<arguments de make>aumakepour la compilation du port.-a: réinstalle TOUS les ports installés. utilisé avec-f, reconstruit tous les logiciels installés par les ports. Utile lors des mises à jour.
Configurer X sous FreeBSD
Deuxième étape de l'installation de FreeBSD, la configuration de l'interface graphique.
Après l'installation du système en soi, passons à la configuration de X Window.
La vraie doc sérieuse et bien faite se trouve dans le Handbook (en french), comme toujours.
Petite note : je parle ici de FreeBSD 5.3 et supérieurs, donc comprenant X.Org par défaut, à la place de XFree86. Une sombre affaire de licence a fait détourner de XFree86 la plupart des projets et entreprises utilisateurs de X Window...
Si vous avez suivi mon howto, vous devriez avoir la base de X. Sinon, lancez Sysinstall (sysinstall ou /stand/sysinstall), choisissez Configure, Distributions, et X.Org (XFree86 pour FreeBSD 5.2.1 et inférieurs). Ne chipotons pas, prenons tout dans les sous-catégories (entrez dans la sous-catégorie et sélectionnez All). Sysinstall vous demande alors d'où copier les binaires, remettez votre CD FreeBSD dans le lecteur, et sélectionnez CD/DVD.
FreeBSD 5.3 ne propose plus le configuration X Window. Il va falloir se débrouiller à la main, dans la console.
Je suppose que si vous avez suivi jusqu'ici, vous savez vous connecter sur un système Unix. Sinon, voici commen faire (du moins pour ce howto) : à l'invite login:, tapez root, appuyez sur la touche entrée, tapez le mot de passe du compte, et appuyez sur entrée. Voilà, vous êtes connecté en tant que root. Si vous préférez utiliser un autre utilisateur, faites comme bon vous semble. Mais il faut que cet utilisateur soit membre du groupe wheel, pour pouvoir utiliser la commande su, pour passer en super utilisateur et configurer le système.
En tant que root, tapez Xorg -configure. Cela lance une routine d'auto-configuration de X qui essaie (plutôt bien) de détecter votre carte graphique, votre écran et vos dispositifs de saisie. Vous pouvez tester le résultat avec la commande Xorg -config xorg.conf.new. Si vous avez un écran gris avec une croix en guise de curseur, c'est bon, votre X est configuré correctement. Sortez de l'écran de test en appuyant sur Ctrl-Alt-Backspace. Cette combinaison de touches arrête immédiatement le serveur X et vous fait sortir du mode graphique.
Copiez maintenant le fichier xorg.conf.new en /etc/X11/xorg.conf : cp xorg.conf.new /etx/X11/xorg.conf (créez le répertoire /etc/X11 au besoin).
Installons maintenant le gestionnaire de fenêtres. On va utiliser portupgrade, expliqué ce document. Choisissez un gestionnaire, et installez-le par portinstall. Ici, je choisis Xfce, mais vous êtes libre de prendre Gnome ou KDE. Je lance donc la commande portinstall xfce, qui me propose xfce ou xfce4, je choisis le plus récent, xfce4. Pour Gnome, vous utiliserez portinstall gnome2, et portinstall kde pour KDE, ou autre chose pour autre chose.
Laissez décanter, et passons à la fin de l'installation. Il faut maintenant indiquer à X ce qu'il faut qu'il lance comme gestionnaire de fenêtres. Créez un fichier .xinitrc à la racine de votre répertoire personnel (/usr/home/ ou /root pour root). Mettez-y le nom du programme de lancement de votre gestionnaire de fenêtres. Pour Xfce, c'est /usr/X11R6/bin/xfce4-session. Pour Gnome, c'est /usr/X11R6/bin/gnome-session, et pour KDE, c'est exec startkde.
Tapez startx, et hop vous avez un environnement graphique prêt à l'emploi.
Installation de FreeBSD
Je ne vais pas trop m'étendre sur ce sujet, il existe beaucoup de documents très bien faits sur le net, je vais juste donner les étapes essentielles.
Si vous cherchez un manuel détaillé et exhaustif de l'installation de FreeBSD, il vaut mieux s'adresser à la source, le FreeBSD Handbook (en français), et plus précisément le chapitre portant sur l'installation (en français).
Mais bon, je vais faire un petit topo pour ceux que la lecture d'un manuel complet rebute (honte à vous
).
On peut installer FreeBSD par divers média : par le réseau, FTP, NFS, connexion série, qu'en sais-je, et par un média physique, disquette, CD, DVD, bande magnétique, etc... Je vais partir sur la base que vous avez une machine assez récente et que vous avez accès à Internet, à un débit conséquent. Donc le plus simple est de télécharger une image ISO du CD d'installation de FreeBSD. Les sites miroirs officiels peuvent être trouvés ici. Si vous n'avez pas de connexion Internet rapide ou que vous ne pouvez pas graver de CD, vous pouvez commander des CD à ces adresses.
Vous remarquerez qu'il y a plusieurs choix dans les images ISO. Que prendre ? Il faut que je dise un mot sur le nommage des versions de FreeBSD. Les FreeBSD sont numérotés en <version majeure>.<version mineure>[.<sous-version mineure>]-<branche>. Celle que j'utilise est la 5.3-STABLE, par exemple. Il existe trois "branches" de développement pour FreeBSD ("développement" n'est pas vraiment le bon terme, mais je ne trouve pas le mot adéquat, là maintenant
) : RELEASE, STABLE et CURRENT.
RELEASE est la branche principale de production. Une édition RELEASE est testée et est assurée d'être complètement stable. Et le système de base d'un FreeBSD RELEASE sera exactement le même qu'un autre FreeBSD RELEASE de même version, s'ils ne sont pas patchés.
STABLE est la branche de développement stable de FreeBSD. Contrairement au RELEASE, la branche STABLE évolue constamment, avec des mises à jour et améliorations du système. Mais la branche STABLE produit des systèmes cohérents et stables. Il n'est pas vraiment recommandé d'utiliser la branche STABLE en production, mais c'est pas une abérration non plus.
CURRENT est la branche de développement active de FreeBSD. C'est le cutting edge de FreeBSD, et les développeurs y testent les nouvelles technologies et les nouveaux logiciels. Il n'y a à peu près aucune garantie de bon fonctionnement de la branche CURRENT, si ça plante, c'est presque normal.
Mais je crois que les images ISO ne sont faites que pour les RELEASE. Donc prenez la dernière version en RELEASE (à l'heure actuelle, c'est la 5.3-RELEASE). Téléchargez l'ISO, gravez-la (si vous ne savez pas graver une image ISO, ce document n'est pas fait pour vous
). Pareil si vous ne savez pas comment faire pour démarrer à partir d'un CD.
(j'avais dit que c'était "pour les nuls", pas "pour les cas désespérés"
)
Le programme démarre un noyau FreeBSD, et lance l'installation. Si jamais vous voyez un écran parlant de configuration du noyau (Kernel configuration), passez-le (Skip kernel configuration and continue with installation), c'est plutôt compliqué si vous débutez en FreeBSD, et pas réellement nécessaire, le noyau par défaut contient le support pour la plupart des périphériques courants.
Sur l'écran principal de Sysinstall (c'est le nom du programe d'installation et de configuration de FreeBSD), choisissez Keymap. Il y a une liste de configuration de claviers, choisissez celui qui vous convient (pour le français standard, c'est French ISO (accent)). C'est utile pour la suite, les mecs qui ont écrit le programme n'ont pas trouvé mieux que d'affecter des fonctions clés et opposés aux touches A et Q...
Une fois revenu sur l'écran principal, sélectionnez Standard, on va faire l'installation en soi. D'abord, on passe par un utilitaire qui créé les slices. Un slice, c'est comme un disque virtuel. C'est un morceau d'un disque physique qui peut contenir des partitions. Les disques sont nommés adx, si vous avez un contrôleur IDE (ce qui devrait être le cas pour la plupart des gens). Sinon les disques auront le nom du driver du contrôleur suivi d'un nombre. Ce nombre indique la position du disque sur le contrôleur. De fait, ad0 est le disque maître du premier port du contrôleur IDE, alors que ad2 est le disque maître du second port du contrôleur IDE (tout le monde suit, là ?).
Donc Sysinstall propose quel disque utiliser. Je vais supposer que vous voulez un dual-boot avec votre système d'exploitation actuel (moi j'ai des machines complètement dédiées, d'habitude). Déjà, il faut que vous ayez libéré de la place sur votre disque dur, ou que vous en ayez un autre dédié. Si vous n'avez pas un second disque vide ou si vous n'avez pas d'espace libre (non partitionné), quittez l'installation (touche échap et Exit sysinstall, répondez non aux éventuelles invites de confirmation de changement de structure de disque), libérez de la place et revenez ici.
Une fois dans fdisk (c'est pas le même que celui du DOS !), vous verrez toutes les partitions présentes sur votre disque. Si vous voulez utiliser l'espace entier pour FreeBSD, appuyez sur A (attention au clavier, Q c'est pour quitter !). Sinon, choisissez l'espace libre (unused), et appuyez sur C (Create slice). Quittez fdisk par Q.
Ensuite, Sysinstall vous propose d'installer un boot manager. Cela vous permet de démarrer soit FreeBSD, soit votre OS actuel. Si vous ne voulez que FreeBSD sur votre machine, choisissez Standard. Sinon, choisissez BootMgr. Sysinstall vous demande alors sur quel(s) disque(s) installer le boot manager. Choisissez le disque de démarrage de votre machine (maître du IDE0), et le disque contenant FreeBSD s'il est installé sur un disque différent (un disque physique différent, pas une autre partition !). Recommencez la manœuvre si vous avez d'autres disques à allouer.
Passons aux labels. Les labels, c'est des partitions. Là, sachant que notre slice est tout propre tout neuf, appuyez sur A, et le Disklabel Editor se charge de créer les partions et points de montage. Appuyez sur Q pour quitter le Disklabel Editor.
Sysinstall vous demande alors ce que vous voulez installer. Plusieurs choix s'offrent à vous, suivant l'utilisation de votre machine. Ne sachant pas à l'avance ce que vous voulez en faire, prenez tout. C'est pas très gros, une installation de FreeBSD, 2,5 - 3 Go à tout casser.
Sysinstall vous propose aussi d'installer la collection de ports. Les ports, c'est des logiciels de diverses origines de base Unix qui ont été adaptés pour FreeBSD. Souvent, la plupart des logiciels libres se compilent sans problèmes sur FreeBSD, mais les logiciels des ports ont des modifications spéciales pour reprendre l'arborescence particulière de FreeBSD, ou le nommage des périphériques, etc. Prenez les ports, ça n'installe pas tous les logiciels, seulement les fichiers décrivant le logiciel, où trouver les sources, et le Makefile pour construire le logiciel. Je vous montre plus tard comment installer les logiciels facilement grâce aux ports.
Enfin, Sysinstall vous demande où il doit chercher les fichiers dont il a besoin pour l'installation. Prenez la première option, CD ou DVD, vu qu'on a gravé un CD exprès.
Vous avez alors une dernière chance d'annuler l'installation, avant écriture de la structure disque et copie des fichiers. Si tout va bien, en moins d'une heure, généralement, vous avez un message vous disant que l'installation est terminée, et que vous avez un FreeBSD sur votre machine.
Sysinstall vous mène alors dans les tâches post-installation, où vous allez choisir un mot de passe root, définir les options réseau, ajouter des utilisateurs, et ajouter des logiciels par les ports.
Tout d'abord, le réseau. Sysinstall vous présente toutes les interfaces réseau détectées sur votre machine. Choisissez une interface réseau à configurer, et Sysinstall vous demande si vous voulez utiliser IPv6 (à priori non), si vous voulez configurer par DHCP. Si vous avez répondu oui à la configuration DHCP, l'écran suivant sera pré-rempli avec les informations du DHCP (si la requête a été fructueuse). Sinon vous devrez remplir les champs à la main. Si vous ne comprenez pas la signification de ces champs, ce document n'est pas pour vous non plus.
(bon, je suis sympa : regardez ici pour la page explicative du Handbook)
Répondez non à la question de l'activation de inetd, si vous ne savez pas ce que c'est (on verra ça aussi plus tard). Sinon, activez ce que vous voulez par l'interface de Sysinstall.
Répondez non pour le FTP anonyme, le NFS client/serveur (si vous savez ce que c'est et que vous en avez besoin, activez-le).
Répondez non pour la sélection d'un profil de sécurité (le niveau medium est suffisant pour une utilisation normale).
Le menu suivant définit le comportement de la console, type de clavier, écran de veille, etc. Pour choisir le type de clavier, choisissez Keymap, et sélectionnez le clavier qui vous convient. C'est la même chose qu'au début de l'installation. Pour l'écran de veille, choisissez un qui vous plaît (il n'y a pas d'aperçu, mais ça peut être changé plus tard, de même pour le clavier).
Bon, pareil pour le fuseau horaire, faut sélectionner le bon.
Ah, normalement, l'horloge de votre machine est à l'heure locale, donc répondez non quand Sysinstall vous demande si elle est en temps UTC (formerly known as GMT).
Bon, la souris devrait marcher tout seul, sinon les menus permettent d'arranger ça. Laissez tomber les autres services réseau (Exit), on verra ça plus tard. Passons aussi l'installation de logiciels des ports, ça peut se faire plus tard.
Après ça, vous pouvez ajouter des utilisateurs et des groupes. Là, à votre convenance. Enfin, Sysinstall vous demande le mot de passe root. C'est le super utilisateur du système, celui qui a tous les droits. Ne mettez pas un mot de passe trop simple, et ne le perdez pas.
Ouf, c'est terminé, quittez Sysinstall par X Exit install, la machine redémarre, et FreeBSD se lance.
Présentation de FreeBSD
Fort de mon année et demie d'expérience(s) avec FreeBSD, je vais mettre en ligne des how-tos, un peu à la "pour les nuls", parce que je ne suis pas un expert non plus. ;) Dans ce document, je raconte pourquoi et comment je suis venu à FreeBSD.
J'ai commencé à utiliser FreeBSD au boulot, il y a deux ans, maintenant. On en a quatre, maintenant, qu'on utilise en tant que serveurs, pour divers services réseaux et pour Apache et Zope.
On a évalué Windows, Linux (Red Hat et SuSE) et FreeBSD. Bon, on a vite écarté Windows, c'était l'époque où ils ont sorti leurs nouvelles licences en abonnement, et pour une petite structure comme la nôtre, c'était pas viable (trop cher). J'ai essayé un Linux, et je n'ai pas été très emballé. L'explorateur de fichiers de KDE me paraissait incroyablement peu réactif et lent, bien que la machine ait un système RAID5. Je ne me rappelle plus de la version de KDE, et je sais qu'évaluer un système d'exploitation sur la rapidité d'un explorateur de fichiers n'est pas une méthode rationnelle. Mais je trouvais aussi que les distributions Linux m'installaient trop ou trop peu de choses, et le fouillis de la sélection des packages me donnait mal au crâne...
Mon chef m'a proposé d'essayer FreeBSD, qu'il trouvait intéressant de part la longévité du projet, et d'autre part par l'unité de distribution. Il n'y a que le FreeBSD Project qui fabrique FreeBSD, et ils ont un mécanisme de release bien établi et efficace. Pour les différentes distributions de Linux, je trouve qu'il y a trop de disparités et certaines distributions font des releases intempestives, une tous les mois ou presque, avec des packages ajoutés ou mis à jour à la va-vite. En même temps, je ne suis pas expert dans les Linux, et sûrement que si on choisit une distribution particulière (sérieuse), le suivi sera aussi correct.
J'ai donc installé mon premier FreeBSD (un 4.4-RELEASE, si je me rappelle bien ?), et j'ai lancé mon test habituel d'explorateur de fichiers.
Et là, c'était le jour et la nuit : autant sous Linux j'avais un sablier pour afficher rien que /etc, autant sous FreeBSD, même les gros "clients" comme /usr/sbin s'affichaient instantanément ! En plus, la procédure d'installation est propre (minimale) et plutôt rapide.
Donc on a opté pour FreeBSD, et je ne le regrette pas une seule seconde. J'ai réessayé des Linux depuis, des anciens comme Red Hat (par le biais de Fedora Core) et des nouveaux comme Ubuntu, mais aucun ne m'a réellement séduit. Ubuntu est lui aussi épuré, mais il est un peu trop intégré, peut-être un peu trop simple, dans le sens que je me sens un peu contraint à installer un pack standard de logiciels dont la moitié ne m'intéresse pas, comme beaucoup d'autres Linux.
Et au final, ces pages sont servies par un FreeBSD, de chez moi.
20/08/2004
Fabriquer des thèmes pour téléphones Sony Ericsson - part 2
Description des divers éléments du thème Silver & Night du Z600.
Là, plutôt que de faire des captures d'écran de chaque onglet, je vais relier chaque élément à son nom dans l'éditeur. Je vais prendre l'exemple du Z600, vu que j'y suis plus habitué.
Les autres modèles comportent à peu près les mêmes éléments, ça devrait aller (surtout que les T610, T630 et Z600 et dérivés ont le même OS et le même format d'écran). J'ai choisi le thème Silver & Night fourni avec mon Z600 pour l'exemple.
Un point important est à noter, ici. Si vous essayez de récupérer le thème tel quel, il se produira un message d'erreur. En fait, c'est parce que le téléphone gère les caractères accentués et spéciaux en tant que code HTML, dans son système interne. "Silver & Night" est stocké en fait comme "Silver & Night". Or l'ordinateur lui ne voit que le nom renvoyé par le téléphone, et surtout sait gérer les caractères spéciaux nativement, donc à l'accès au fichier "Silver & Night.thm", il demande "Silver & Night.thm", et le téléphone ne le trouve pas ! La solution est de renommer le fichier sur le téléphone, de façon à ne plus avoir de caractères spéciaux dans le nom. A noter aussi qu'il existe un thème par défaut qui ne peut ni être renommé, ni être effacé. Pour mon Z600, c'est le thème Silver & Lime. Certaines images et sonneries aussi font partie intégrante du système et ne peuvent pas être modifiées.
Standby
Softkey disabled text correspond aux options non disponibles. La vue d'exemple ne comporte pas de telles touches. Les couleurs Background ne sont visibles que si les images sont absentes ou si l'image comporte des zones de transparence. Si vous utilisez des images opaques, la valeur peut être ignorée. Les couleurs Shadow sont les couleurs d'ombrage des éléments de menu.
Desktop
L'image Desktop Background peut avoir un meilleur rendu si on dessine les ombres des icones de menus, comme cette image de Silver & Night :
Navigation
Attention à l'image Highlight, et surtout aux décors éventuels des bords, car le texte pourrait déborder. L'image fait 123 pixels de long, et le texte peut occuper jusqu'à 110 pixels au milieu de l'image.
Les couleurs de Title et de Text influent sur les couleurs de Calendar, respectivement sur le titre, et sur les jours de la semaine et les heures. Les images de Navigation s'appliquent aussi à Calendar.
Popup
Attention, l'image Popup Highlight n'est pas la même que l'image Highlight de Navigation, elle est plus courte (113 pixels contre 123 pixels). Même mise en garde pour les décorations de l'image, le texte court jusqu'à 100 pixels.
Notes
Les paramètres de couleurs de cette section s'appliquent aussi sur les messages d'état et d'erreurs du téléphone. Ne pas donc mettre de couleurs criardes et/ou moches qu'on verrait à longueur de temps...
Calendar
Comme indiqué plus haut, les couleurs pour le titre, le nom des jours de semaine et les heures sont choisies dans l'onglet Navigation, ainsi que toutes les images.
Aperçu
A tout moment, vous pouvez visualiser l'ensemble du thème, en appuyant sur le bouton Preview all. De même, une coche Show Images permet d'afficher ou non les images sur la prévisualisation.
Transfert
Pour envoyer le thème ainsi créé, rien de plus simple, vous vous connectez au téléphone via le protocole OBEX File Transfer, comme indiqué dans l'article sur la connexion Bluetooth, et vous déposez le fichier .thm dans le dossier Thèmes.
Et voilà, la création de thèmes n'a plus de secrets pour vous (à part le format du fichier lui-même, je sais, mais qui s'en préoccupe ?
), vous pouvez désormais créer et modifier les thémes à volonté sur votre téléphone Sony Ericsson !
Fabriquer des thèmes pour téléphones Sony Ericsson - part 1
J'ai expliqué comment connecter le téléphone à un ordinateur, maintenant on va créer du contenu à y transférer.
La plupart des téléphones Sony Ericsson acceptent les thèmes, les personnalisations des couleurs et motifs de l'interface.
Sony Ericsson Theme Creator
Un fichier de thème Sony Ericsson est une espèce de tar, qui contient plusieurs fichiers concaténés en un seul fichier. Il contient notamment les fonds d'écrans par défaut du thème, ainsi que les images d'élément de menu, et les couleurs des textes affichés. Les images sont des fichiers JPEG, et les couleurs sont définies dans un fichier XML. Il est possible de construire un fichier de thème à la main, mais ce n'est pas très pratique, et les modifications sont fastidieuses.
Heureusement, Sony Ericsson propose un éditeur de thèmes complet, le Sony Ericsson Themes Creator (actuellement en version 1.40) sur son site développeur. Le programme est gratuit, et nécessite un enregistgrement sur le site, tout aussi gratuit. Themes Creator supporte les tous les téléphones de la gamme sauf T39, T65, T66, T100, T200, T600, R520, R600, Z200 et P800. Oui, Themes Creator supporte même les derniers Z1010 et S700 !
Bon, vous avez dû récupérer le programme le temps de ce petit blabla, et je ne vais pas vous expliquer l'installation, il n'y a aucune option, juste l'emplacement du programme, et suivant, suivant, ... , suivant, terminer. A la Windows, quoi.
Présentation
Au premier lancement, le programme demande quel type de téléphone vous avez. Cliquez juste sur l'image du modèle qui correspond, et on peut commencer à travailler.
Remarquez les barres verticales entre certains modèles de téléphones qui indiquent les intercompatibilités des thèmes.

Choix du modèle du téléphone
On se retrouve alors dans l'éditeur lui-même. Si jamais vous vous rendez compte que vous n'avez pas choisi le bon modèle, pas de panique : vous pouvez retourner au choix des téléphones par le menu File / Change Phone. La fenêtre montre l'aperçu du th&egravme actuel à droite, et les modifications possibles à gauche. Les onglets correspondent à un mode d'affichage disponible sur le téléphone, suivant les fonctions et les caractéristiques.

Themes Creator (onglet Standby)
Les images modifiables du contexte sont listées dans la liste déroulante en haut. Elles peuvent être remplacées par le bouton Import (ou Import All, qui a la même fonction...), ou retirées du thème par Remove. La taille des images recommandée est indiquée en haut à droite de la zone d'édition. Les images doivent être soit des GIF, soit des JPEG. Les JPEG ne doivent pas avoir d'optimisations comme le mode progressif, sans quoi les images ne seront pas affichées.
Les couleurs sont modifiables soit en entrant les valeurs RGB en héxadécimal, soit en cliquant sur la case de la couleur, qui ouvre un nuancier standard Windows.

Nuancier Windows
Pour ma part, je trouve que c'est un peu difficile de créer un thème à partir de rien. Mais je ne suis pas un designer non plus...
Ce que je fais d'habitude, c'est prendre un thème existant (soit téléchargé du net, soit directement du téléphone), et le modifier à ma convenance. Mais bon, si vous avez les capacités pour créer un thème original from scratch, n'hésitez pas !
La page suivante détaille les éléments personnalisables.
18/08/2004
Connecter un téléphone Bluetooth à un ordinateur - part 2
Jumelage, transfert de fichiers et applications avec Bluetooth.
Jumelage
Maintenant que l'ordinateur est devenu un appareil Bluetooth à part entière, on va le jumeler avec le téléphone, c'est-à-dire qu'on va établir un lien entre les deux. Parce que les appareils Bluetooth ne se "trouvent" pas tout seuls entre eux, il faut explicitement leur indiquer. C'est contraignant, et en même temps sécuritaire, vu que n'importe qui ne peut pas accéder à votre téléphone librement (c'est bien de ne pas se faire voler son carnet d'adresses dans le train en sans fils
).
L'installation du dongle Bluetooth a créé une icone "Favoris Bluetooth" sur le bureau, si vous l'avez choisi, sinon il y a une icone Bluetooth dans le system tray, à côté de l'horloge. En double-cliquant dessus, on trouve une fenétre ressemblant à celle-ci :

Favoris Bluetooth
Il faut maintenant préparer le téléphone, activer Bluetooth et le rendre visible aux autres appareils Bluetooth. Pour activer bluetooth sur le téléphone, pour un téléphone Sony Ericsson T610, T630, Z600 ou compatible, allez dans Connexions, Bluetooth, Activer. Pour le rendre visible (détectable), allez dans Connexions, Bluetooth, Options, Visibilité, Affich. téléphone. (désolé, j'ai pas de quoi faire des captures d'écran du téléphone...
)
Une fois le téléphone prêt à être connecté, cliquez sur "Rechercher les périphériques accessibles". Au bout d'un court moment, la fenêtre devrait afficher votre téléphone (et/ou tout autre appareil Bluetooth visible dans les alentours). Double-cliquez sur l'icone du téléphone, puis sur "OBEX File Transfer" et une alerte devrait vous être communiquée par l'icone du tray, pour l'authtification de la liaison. Cliquez dessus, et vous avez le dialogue suivant :

Requête de code personnel Bluetooth
"Oh non je ne sais pas quel est mon code personnel Bluetooth !" Meu non, faut pas s'affoler.
En fait, c'est un code un peu au pif qu'on choisit pour valider la liaison. Dans cette case, vous pouvez écrire ce que vous voulez, tant que ce sont des chiffes, et que vous le remettez de l'autre côté, sur le téléphone. Une fois le code tapé, appuyez sur "OK", et le téléphone va se manifester pour que vous tapiez le code personnel, qui est justement celui que vous avez inventé à l'instant. C'est magique.
Et voilà, une petite case cochée à côté de votre téléphone vous indique que le jumelage est effectif, et que tout est fin prêt pour envoyer et recevoir des images et sonneries du téléphone ! Vous pouvez aussi désactiver la visibilité du téléphone, l'ordinateur saura le retrouver sans ça : Connexions, Bluetooth, Options, Visibilité, Masq. téléphone.

Jumelage actif
Transfert de fichiers et visibilité aux programmes
Dès à présent, on peut envoyer et recevoir des données depuis et vers le téléphone. En double-cliquant sur le téléphone, on affiche la liste des services disponibles sur ce téléphone :

Liste des services du téléphone
Double-cliquez sur "OBEX File Transfer", et vous avez une vue Explorateur sur la "racine" de votre téléphone, avec les dossiers Images, Sons et Thèmes. Le dossier des jeux n'est pas visible par le transfert de fichiers, je suppose par peur du piratage (comme si on allait aller se copier ces trucs inutiles et plantatoires...
). Voilà, à partir de là, vous pouvez envoyer et recevoir des fichiers par drag and drop ! Mais n'oubliez pas que les T610 et Z600 n'ont que 2 Mo de mémoire flash (le T630 en a peut-être plus), et que dû à un codage des données un peu curieux, les images créés sur ordinateur et envoyés sur le téléphone sont plus gros dans le téléphone...

A l'intérieur de mon Z600
Je vais conclure cette introduction à la connectivité Bluetooth sur Windows avec le Sony Ericsson Mobile Phone Monitor. J'ai lu dans nombre de forums que les gens avaient du mal à faire reconnaître leur téléphone par le Mobile Phone Monitor, inclus dans Sony Ericsson Communications Suite. Mobile Phone Monitor est une interface entre les logiciels et le téléphone. Il existe beaucoup de programmes gratuits de transfert de fichiers et d'utilitaires de communication utilisant les téléphones Bluetooth Sony Ericsson, et ils passent tous ou presque par ce biais.
Or souvent, le téléphone n'est pas reconnu par Mobile Phone Monitor. Le problème, c'est que MPM essaie de communiquer avec le téléphone directement à travers l'interface Bluetooth. Ce qui serait le cas si Windows supportait nativement Bluetooth. Bon, Windows XP SP2 le fait, mais le logiciel Bluetooth du SP2 n'a pas de "Favoris Bluetooth", et du coup on ne peut pas visualiser le contenu du téléphone. Il y a juste des commandes "Envoyer un fichier" et "Recevoir un fichier", qui sont une catastrophe ergonomique...
La solution est de passer par un port série virtuel. les logiciels communiquent donc avec le téléphone comme à travers un câble de liaison, sauf que ce câble, c'est Bluetooth.
Pour créer un port série Bluetooth, faites un clic droit sur l'icone bluetooth du tray, et sélectionnez "Connexion rapide / Port série Bluetooth / Autres périphériques" (ça s'appelle autrement si vous n'avez encore aucun port série, mais vous pouvez pas vous tromper, c'est le seul élément de la liste
).

Port série Bluetooth
Suivez l'assistant (il y a juste à accepter tout ce qu'il propose), et notez le nom du port créé, chez moi c'était COM8, les autres chiffres étaient utilisés. Une fois le port défini, ouvrez "Options Phone Monitor", dans le Panneau de configuration. Passez à l'onglet "Ports COM", repérez le port correspondant au port série Bluetooth, et appuyez sur les boutons "Réserver" et "Activer". Mobile Phone Monitor essaiera maintenant de se connecter au téléphone par le port série réservé, en plus de l'infrastructure Bluetooth Windows. Et voilou, le téléphone est reconnu par les logiciels passant par Mobile Phone Monitor !

Options Phone Monitor
Mais j'ai découvert un logiciel qui rend tous les autres obsolètes et inutiles : floAt's Mobile Agent ! Il sait tout faire en ce qui concerne votre téléphone Sony Ericsson, depuis la liste des appels, jusqu'à l'envoi et la réception des SMS en passant par la température de la batterie et du téléphone !
C'est tout bonnement incroyable, surtout qu'il est open source et gratuit ! De plus, il accède lui-même au téléphone, soit par Bluetooth natif, soit par infra-rouge, soit par port série Bluetooth, il n'y a besoin de rien d'autre ! C'est de loin le meilleur logiciel de communication sous Windows pour les téléphones Sony Ericsson.
Bientôt, je vous montre comment fabriquer des thèmes et des animations.



