ObjectifsCe document inclus l'ensemble des étapes réalisées pour obtenir FreeBSD 9.1 installé pour une utilisation optimisée «poste de travail» (Gnome, LibreOffice, multimedia, etc..) sur un PC portable.Il est beaucoup plus simple d'utiliser une version déjà prête pour une utilisation «poste de travail» en utilisant PC-BSD, mais je préfère avoir un «vrai» FreeBSD, entièrement recompilé et installé à la main :-) Pour ceux qui souhaitent découvrir FreeBSD sans rien toucher à leur système, il existe aussi VirtualBSD sous forme d'image VMware player. Recensement de mes besoins
Utilisateur de Linux Ubuntu, je souhaiterai faire exactement la même chose sous FreeBSD, c'est à dire avoir le support matériel complet de mon PC portable (Dell Latitude E5420): LAN, Wifi, Bluetooth et une gestion de l'énergie minimale. |
| Nom du module | Description |
| acpi_asus.ko | Asus Laptop Extras |
| acpi_dock.ko | Laptop Docking Station device driver |
| acpi_fujitsu.ko | Fujitsu Laptop Extras |
| acpi_hp.ko | ACPI extras driver for HP laptops |
| acpi_ibm.ko | ACPI extras driver for IBM laptops |
| acpi_panasonic.ko | ACPI hotkey driver for Panasonic laptops |
| acpi_sony.ko | ACPI notebook controller driver for Sony laptops |
| acpi_toshiba.ko | Toshiba HCI interface |
| acpi_video.ko | ACPI Video Extensions driver |
| acpi_wmi.ko | ACPI to WMI mapping driver (auto-chargé par les autres si nécessaire) |
Par exemple pour mon laptop HP j'ai: acpi_hp et acpi_video.
Webcam
L'installation du support de webcam demande plusieurs étapes.Commencer par installer les logiciels nécessaires:
Puis modifier votre /etc/rc.conf pour ajouter cette ligne:
Une fois terminé, ajoutez votre utilisateur au groupe webcamd:
Puis re-démarrer votre machine.
Pour tester votre webcam, pwcview est très simple
Usage de label à la place de nom de disque
Comme à l'installation vous avez bien mis des labels gpt à vos partitions, autant utiliser ces labels dans votre fstab pour avoir les avantages suivants:- Si vous déplacez vos disques, cela n'impactera pas le fstab
- C'est plus lisible
=> 34 490234685 ada0 GPT (233G)
34 128 1 (null) (64k)
162 480247680 2 ROOT (229G)
480247842 8388608 3 (null) (4.0G)
488636450 1598269 - free - (780M)
Commencer par leur en poser un:
gpart modify -i 3 -l SWAP ada0
=> 34 490234685 ada0 GPT (233G)
34 128 1 BOOTLOADER (64k)
162 480247680 2 ROOT (229G)
480247842 8388608 3 SWAP (4.0G)
488636450 1598269 - free - (780M)
Inutile d'aller vérifier dans le /dev/gpt la présence de ces labels: Ils n’apparaisseront qu'après un reboot une fois votre fstab modifié.
Modifier ensuite le fstab existant qui a cette forme:
/dev/ada0p2 / ufs rw 1 1
/dev/ada0p3 none swap sw 0 0
Par:
/dev/gpt/ROOT / ufs rw 1 1
/dev/gpt/SWAP none swap sw 0 0
Puis re-démarrer pour vérifier que vous n'avez pas fait d'erreur… Si ça ne fonctionne pas vous êtes bon pour éditer votre fstab dans le shell de secours ;-)
Configuration du système en français
french|French Users Accounts:\
:charset=UTF-8:\
:lang=fr_FR.UTF-8:\
:tc=default:
Et exécuter la commande suivante :
# cap_mkdb /etc/login.conf
Puis éditer le fichier de mot de passe par la commande vipw. , Et rechercher votre login :
# vipw
olivier:$1$00edYNK2$heBNRz65txD0j7bGtB40r.:1001:1001::0:0:Olivier Cochard-Labbe:/home/olivier:/bin/tcsh
Il faut ajouter «french» entre les ::, ce qui va donner :
olivier:$1$00edYNK2$heBNRz65txD0j7bGtB40r.:1001:1001:french:0:0:Olivier Cochard-Labbe:/home/olivier:/bin/tcsh
Puis, pour que les futurs utilisateurs utilise cette langue par défaut, on ajoute dans /etc/adduser.conf :
defaultclass = french
Configuration du clavier Bépo
tar zxvf fr-dvorak-bepo-kbdmap-1.0rc2.tgz
cp fr-dvorak-bepo-kbdmap-1.0rc2/fr-dvorak-bepo.kbd /usr/share/syscons/keymaps/
echo 'keymap="fr-dvorak-bepo"' >> /etc/rc.conf
Il faut entrer cette commande:
echo "vfs.usermount=1" >> /etc/sysctl.conf
Et si vous n'avez pas mis votre utilisateur dans le groupe «operator» et «dialer» (accès aux ports séries) il faut le faire maintenant:
pw group mod operator -m <username>
pw group mod dialer -m <username>
Maintenant, il faut donner les droits en écriture pour les périphériques USB au groupe operator en créant le fichier /etc/devfs.rules:
[localrules=5]
add path 'da*' mode 0660 group operator
add path 'cd*' mode 0660 group operator
add path 'uscanner*' mode 0660 group operator
add path 'xpt*' mode 660 group operator
add path 'pass*' mode 660 group operator
add path 'md*' mode 0660 group operator
add path 'msdosfs/*' mode 0660 group operator
add path 'ext2fs/*' mode 0660 group operator
add path 'ntfs/*' mode 0660 group operator
add path 'usb/*' mode 0660 group operator
Puis ajouter cette ligne dans le fichier /etc/rc.conf :
devfs_system_ruleset="localrules"Puis activer les nouvelles règles:
Et vérifier leur applications:
Optimisations
Configurer le scheduler pour un usage «desktop»
echo "#Enhance desktop responsiveness under high CPU use (200/224)" >> /etc/sysctl.confecho "kern.sched.preempt_thresh=224" >> /etc/sysctl.conf
Réparation fsck automatique et background fsck
Pour activer la réponse «yes» au question de fsck au démarrage, il faut ajouter la lignedans le fichier /etc/rc.confbackground_fsck="YES" # Attempt to run fsck in the background where possible.
Désactivation de l'access time sur votre partition /
Par défaut, l'heure d'accès aux fichiers est noté, ce qui peux consommer du temps (et ca ne sert pas à grand chose).Éditer le fichier /etc/fstab est ajouter l'option noatime:
#Device Mountpoint FSType Options Dump Pass
/dev/gpt/ROOT / ufs rw,noatime 1 1
Pourcentage réservé du disque
Par défaut, FreeBSD reserve 8% du disque pour ses opérations système (défragmentation), si cela est trop pour vous, vous pouvez modifier cette valeur avec «tunefs -m X».Éviter la création de fichier .core
Pour les fichiers core générés par les applications, ajouter au fichier /etc/csh.login:
Pour les fichiers core générés par le noyau, ajouter dans le /etc/sysctl.conf :
kern.coredump=0Installation des Mise à jour de FreeBSD
Cela ce fait simplement par la commande suivante:
Installation des logiciels
9.0 ou inférieur
Il faut installer le nouveau gestionnaire de package manuellement.
Commencer par:
- Télécharger et installer le tout nouveau gestionnaire de package, cela demande quelques ligne, mais très simple (il sera intégré à partir de la 9.1)
- Déclarer le dépôt de package
fetch http://pkgbeta.freebsd.org/freebsd:9:x86:64/latest/Latest/pkg.txz
tar xf ./pkg.txz -s ",/.*/,,g" "*/pkg-static"
./pkg-static add ./pkg.txz
pkg2ng
9.1 ou supérieur
Il suffit de lancer la commande "pkg" pour qu'il s'auto-installe.
Utilisation de pkg
Une fois installé (<=9.0) ou bootstapé (>=9.1), on déclare le dépôt de package souhaité.
Voici quelques dépôts non officiels:
pour 8.X, 9.X et 10.X:
echo 'PACKAGESITE: http://mirror.exonetric.net/pub/pkgng/${ABI}/latest/' >> /usr/local/etc/pkg.conf
Pour 9.1, amd64:
echo 'PACKAGESITE: http://mirrors.isc.org/pub/pcbsd/packages/9.1-RELEASE/amd64/' >> /usr/local/etc/pkg.conf
Pour 9.1, i386:
echo 'PACKAGESITE: http://mirrors.isc.org/pub/pcbsd/packages/9.1-RELEASE/i386/' >> /usr/local/etc/pkg.conf
Puis commencer par mettre à jour la liste des paquets présents sur le dépots:
pkg update
Et pour installer des nouveaux, il suffira de faire:
pkg install truc bidule machin chouette
Et pour les mettres à jour:
pkg upgrade
HAL
Xorg est compilé avec le support de HAL (qui ne sert qu'à permettre le montage automatique des clés USB sous les environnements gnome/KDE), on configure le lancement automatique de celui-ci par l'édition du fichier /etc/rc.conf
dbus_enable="YES"
hald_enable="YES"
Et on les lance:
service dbus start
service hald start
Par défaut, FreeBSD n'utilise pas le procfs. Mais nous allons installer HAL pour gnome qui lui demandera la présence de procfs , on va donc directement éditer le fichier /etc/fstab et lui ajouter cette ligne:
Puis lancer cette commande:
Configuration de la langue du clavier sans HAL
Pour préciser le type de clavier, créer ce fichier: /etc/X11/xorg.conf
Que l'on remplis par le contenus suivant:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbLayout" "fr
EndSection
Pour du bepo, il suffit d'ajouter une clé dans la section:
Option "XkbVariant" "bepo"
Configuration de la langue du clavier avec HAL
Inutile sous Gnome/KDE.
HAL possède 1 gros problème: Il n'est pas capable d'utiliser la webcam pour analyser la peinture sur les touches de votre clavier pour deviner la configuration de celui-ci.
Pour préciser le type de clavier, créer ce fichier: /usr/local/etc/hal/fdi/policy/x11-input.fdi
Que l'on remplis par le contenus suivant:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.xkb.Layout" type="string">fr</merge>
<merge key="input.xkb.Variant" type="string">latin9</merge>
<merge key="input.xkb.Option" type="string">compose:rwin</merge>
</match>
</device>
</deviceinfo>
Pour du bepo, il suffit de remplacer "latin9" par "bepo" pour la clé input.xkb.Variant.
Vitesse de la souris
Sous Xorg, la commande "xset mouse 5 1" permet d'améliorer l'accélération, il suffit d'ajouter cette ligne à votre ~/.xinitrcPermettre à l'utilisateur d'éteindre/redémarrer/monter des disques avec HAL
Étape Inutile sous GnomeVotre utilisateur doit être dans le group «operator».
Éditer le fichier /usr/local/etc/PolicyKit/PolicyKit.conf comme ceci:
<match user="root">
<return result="yes"/>
</match>
<define_admin_auth group="wheel|operator" />
<match action="org.freedesktop.hal.storage.mount-removable">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.storage.mount-fixed">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.storage.eject">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.storage.unmount-others">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.power-management.reboot">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.power-management.shutdown">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.power-management.hibernate">
<return result="yes" />
</match>
<match action="org.freedesktop.hal.power-management.suspend">
<return result="yes" />
</match>
</config>
SLIM
Ceux qui n'utiliseront ni gnome ni KDE peuvent utiliser slim comme gestionnaire de session.
Installation
Voici comment le faire fonctionner correctement:
[root@laptop]/usr/ports/x11/slim#make install clean
Puis créer un fichier .xinitrc de ce style:
DEFAULT_SESSION=startlxde
#Slim ne prend pas en compte les locales de la consoles, il faut les re-forcer ici:
export LANG="fr_FR.UTF-8"
case $1 in
lxde)
exec startlxde
;;
xfce4)
exec startxfce4
;;
icewm)
icewmbg &
icewmtray &
exec icewm
;;
wmaker)
exec wmaker
;;
blackbox)
exec blackbox
;;
*)
exec $DEFAULT_SESSION
;;
esac
Activez sont lancement automatique:
echo 'slim_enable="YES"' >> /etc/rc.conf
Thème FreeBSD
Voici comment y installer un jolis thème FreeBSD:
pkg install slim-themes
Et éditer le fichier /usr/local/etc/slim.conf pour remplacer la ligne:
current_theme default
Par
Gnome
Les habitués de cet environnement ultra complet l'installeront par les commandes suivantes:
pkg install gdm
On configure le démarrage de gnome automatiquement en ajoutant ces lignes dans le /etc/rc.conf:
gnome_enable="YES"
Le fichier /boot/loader.conf
Le process gamin de gnome conseil d'augmenter le kern.maxfiles:
kern.maxfiles="25000"
Comportement de Nautilus (le navigateur de fichier)
Depuis Gnome 2.8, Nautilus fonctionne en «spatial» mode, ce qui fait qu'il ouvre une nouvelle fenêtre à chaque fois.
Pour garder la même fenêtre, aller dans le menu:
Système->Preferences->Gestion des fichiers->Comportement, et cocher la case «Toujours ouvrir dans des fenêtres de navigation».
Montage de GROS disque amovible fat32 avec support des accents
Par défaut, le montage de clef USB n'utilise pas les bonnes options, ce qui fait que les acccents ne sont pas supporté, on corrige donc le problème avec gconf-editor (Outils Système => Éditeur de configuration) ou en ligne de commande:
Puis on se déplace dans la branche: system/storage/default-options/vfat,
Et dans le mount_options, on ajoute ces 2 options:
-L=fr_FR.UTF-8
-D=CP850
Permettre la gravure de CD par Nautilus
Nautilus nécessite la présence de graveur SCSI, il faut donc charger le module ATAPI => SCSI:<HL-DT-ST CDRW/DVD GCCT10N A100> at scbus0 target 0 lun 0 (pass0,cd0)
Puis ajouter le chargement de ce module automatiquement en l'ajoutant dans la liste kld_list du fichier /etc/rc.conf.
Police de caractères
Puis on installe de jolies polices de caractères:
On vérifie ensuite quelles sont bien prises en compte dans xorg par la commande:
Si vous rencontrez un problème d'anti-aliasing avec la police Helvetica (j'ai ce problème sous Firefox), cf les conseils du handbook concernant cette police pour le corriger:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>
</fontconfig>
EOF
Les applications
Firefox
On l'install en français par ces deux commandes:
Puis charger automatiquement le module "sem" en l'ajoutant à la liste kld_list:
Plugin Flash
Vous etes sur de vouloir cette merde d'Adobe flash contraire aux principes d'utilisation de standard ouvert sur Internet ?Bon ben si oui tant pis pour vous, voila comment faire:
/etc/rc.d/abi start
pkg install nspluginwrapper linux-f10-flashplugin
ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so /usr/local/lib/browser_plugins/
Puis monter le linprocfs avec le compte root:
mount -t linprocfs linprocfs /compat/linux/proc
Puis lancer avec votre compte utilisateur:
a ajouter dans le /etc/fstab:
Lecteur multimédia Totem
Ce lecteur à été installé avec l'installation du meta packet gnome2, par contre l'installation n'a pas modifié un fichier système, ce qui fait que totem risque de planter à chaque lecture de gros fichier vidéo.En effet, il y a une remarque très importante dans le fichier /ports/multimedia/totem/files/pkg-message.in
********************************************************
* Make sure you've enough shared memory, the xine FAQ *
* advises to have the following sysctl settings: *
* kern.ipc.shmmax=67108864 *
* kern.ipc.shmall=32768 *
********************************************************
Il faut donc ajouter dans le fichier /etc/sysctl.conf les lignes suivantes:
kern.ipc.shmall=32768
Java
L'installer avec la commande suivante:
pkg install openjdk6
pkg install icedtea-web
Vérifier que les deux lignes soient présentes dans vorte /etc/fstab:
fdesc /dev/fd fdescfs rw 0 0
proc /proc procfs rw 0 0
J'ai du déclarer manuellement le plugins sous firefox par ces commandes:
ln -s /usr/local/lib/IcedTeaPlugin.so $HOME/.mozilla/plugins/
(Edit:preferences:applications)
LibreOffice
Comme pour les autres:
pkg installl fr-libreoffice
Il vous restera à installer l'extension «dictionnaire français» et l'extension de «correction grammaticale».
Montage automatique des disques amovibles (sans HAL)
pkg install automount fusefs-ntfs fusefs-exfat fusefs-ext4
Puis le lancer le service fusefs:
Maintenant il reste à configure automount pour qu'il monte avec les droits de votre utilisateur les disques amovibles et qu'il vous permette de les démonter.
Voici le fichier /usr/local/etc/automount.conf que j'utilise:
FM="thunar"
USER=olivier
ENCODING=en_US.ISO8859-15
CODEPAGE=cp852
ATIME="NO"
REMOVEDIRS="YES"
Puis on relance le service devd pour qu'il charge la configuration d'automount:
VirtualBox-OSE
Voici pour son installation:echo 'vboxnet_enable="YES"' >> /etc/rc.conf
kldload vboxdrv
/usr/local/etc/rc.d/vboxnet start
pw groupmod vboxusers -m votre-utilisateur
Puis on lance Virtualbox avec son utilisateur classique.
Plus d'info sur Virtualbox sur le wiki FreeBSD.
Qemu
Suivre simplement les conseils donné pour l'installation et l'utilisation de qemu sur le wiki FreeBSD.
GNS3
L'état actuel de ce portage sur FreeBSD: Il s'installe, ce lance et on peut simuler un routeur Cisco, lancer des VM qemu et Virtualbox.
À installer comme ceci:
Sous GNS3 vous pouvez remplacer le lancement de l'affreux x-term par le plus jolis gnome-terminal à chaque connexion console à vos routeur en allant dans le menu:
Editer/préférences... /Général et en utilisant cette commande pour le terminal:
CUPS
pkg install cups
add path 'unlpt*' mode 0660 group cups[localrules=10]
add path 'ulpt*' mode 0660 group cups
add path 'lpt*' mode 0660 group cups
add path 'usb/X.Y.Z' mode 0660 group cups
devfs_system_ruleset="localrules"cupsd_enable="YES"
Ne reste plus qu'a lancer le navigateur sur http://localhost:631service devfs restart
service cupsd restart
Trucs & astuces
L'écran de démarrage (splash screen)
Il est possible d'afficher une image à la place du défilement du dmesg au démarrage.Pour cela, récupérer une image bmp (256 couleurs et résolution de 1024x768 max) à mettre dans le dossier /boot sous le nom splash.bmp par exemple:
fetch http://gugus69.free.fr/images/splash.bmp
Puis ajouter ces commandes aux fichiers /boot/loader.conf:
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
Configurations particulières
Gérer la présence d'un proxy HTTP/HTTPS
Pour l'utilisateur sous gnome: Système -> Préférence -> Serveur Mandataire
Pour une session sous l'utilisateur root (qui ne prend pas en compte le paramètrage de gnome), entrer ces deux commandes (la deuxième ne sert que pour l'authentification d'un proxy):
setenv HTTP_PROXY_AUTH "basic:*:login:password"
setenv http_proxy 'http://login:password@10.0.0.10:8080/
Pour utiliser le proxy pour la compilation des ports:
echo "FETCH_ENV=http_proxy='http://login:password@10.0.0.10:8080/'" >> /etc/make.conf
Pour utiliser subversion, editer le fichier ~/.subversion/servers et y ajouter les lignes suivantes:
http-proxy-port = proxy-port
http-proxy-username = username
http-proxy-password = password
Pour faire des sessions SSH, installer l'utilitaire /usr/ports/net/corkscrew.
Pour utiliser les outils qui ne gère pas les proxy nativement (csup par exemple) il faut utiliser des tunnels SSH ou /usr/ports/net/prtunnel puis lancer le tunnel:
1) Regarder dans le /etc/standard-supfile à l'entrée default host= pour connaitre le nom du serveur cvsup utilisé
2) prtunnel -t http -H proxy.de.entreprise -P 3128 -D 5999 cvsup2.FreeBSD.org 5999
3)Editer le /etc/standard-supfile (ou celui que vous utilisez) et modifier l'entrée default host par:
...
*default host=127.0.0.1
4)lancer le csup /etc/standard-supfile
5)Puis tuer le tunnel: killall -9 prtunnel
Serveur TFTP
La configuration d'un serveur TFTP est très simple:
- Créer le dossier /tftpboot
- Mettre vos fichier à partager dans le dossier /tftpboot
- Editer le fichier /etc/inetd.conf et décommenter la ligne tftp
- Ajouter dans le fichier /etc/rc.conf la ligne:
- inetd_enable="YES"
- Puis lancer inetd:
- service inetd start
Attention, le noyaux de FreeBSD refuse les requêtes des clients TFTP utilisant le port source 0 !
Et comme aucune RFC n'interdit au client TFTP d'utiliser le port 0 comme source, ben il existe des équipements qui le font et ne fonctionneront donc pas avec un serveur TFTPD sous FreeBSD.
C'est le cas par exemples des clients TFTP du boot-loader des firewalls Juniper Netscreen ISG-1000 et ISG-2000 qui vont générer ce type de message dans votre /var/log/messages:
tftpd[4894]: DATA block 1, attempt 0 failed (Error 49: Can't assign requested address)
Si vous voulez modifier ce comportement, il faut commenter les 2 lignes suivantes de la fonction in_pcbconnect_setup() du fichier /usr/src/sys/netinet/in_pcb.c :
return (EADDRNOTAVAIL);
Émulateur de terminal série (équivalent de l'hyperterminal ou teraterm)
Il existe 2 outils inclus dans FreeBSD pour cela: cu et tip
Par contre, attention car il existe deux représentations de vos ports séries (man uart):
- cuauX, pour les appels sortant
- ttyuX, pour les appels entrant
cu s'utilise avec des options en ligne de commande, par exemple:
cu -l /dev/cuau0 -s 115200
J'ai un problème à résoudre: le comportement de la touche DEL à corriger.
tip lui utilise le fichier de configuration /etc/remote.
Vous trouverez plus d'information dans l'article: FreeBSD Basic - Accessing a Cisco Router.
Collecte d'information
Inventaire matériel
La liste des équipements PCI detecté s'affiche par la commande:Liste des équpements detecté par HAL:
Charge système par des graphiques: systat
est possible d'avoir un aperçus de la charge système par la commande:Mais cette commande permet aussi de connaitre la charge réseau actuelle avec la commande:
Charge système en mode compact: vmstat
Pratique pour connaitre ou le goulot d'étranglement:procs memory page disk faults cpu
r b w avm fre flt re pi po fr sr ad4 in sy cs us sy id
1 0 0 4831M 209M 14907 1 1 0 14725 34 0 663 13745 3511 23 7 70
Et pour un rafraichissement toute les 2 secondes:
Et pour connaitre qui consomme les interruptions matériels (la colonne rate est importante):
interrupt total rate
irq1: atkbd0 6483 3
irq9: acpi0 3236 1
irq12: psm0 347988 167
irq14: ata0 16431 7
irq16: cbb0 uhci2+ 13624982 6556
irq20: uhci0 14 0
irq22: ehci0 2 0
cpu0: timer 4154687 1999
irq256: em0 53736 25
irq257: hdac0 5797 2
cpu1: timer 4153683 1998
irq258: vgapci0 235585 113
Total 22602624 10877
Sur cet exemple, on remarque une tempête d'interruption au nivea du ccb (cardbus), mais c'est en fait un bug lié à la carte graphique.
Usage de ntfs-3g dans le fstab
Voici un exemple de lign du fstab pour le montage d'un disque NTFS une fois installé fuse ntfs-3g:
/dev/ntfs/System /media/windows ntfs rw,mountprog=/usr/local/bin/ntfs-3g,late 0 0
Résolution de problème
Problème de bibliothèque manquante
Suite à une mise à jour majeur: Passage de FreeBSD 7.1 Release à 8.0 Current, j'ai un programme qui ne se lance plus:/libexec/ld-elf.so.1: Shared object "libkrb5.so.9" not found, required by "wireshark"
Ceci est très fortement lié à un gros changement de la librairie libkrb5 entre ces deux versions de FreeBSD.
Je vérifie la présence de la librarie libkrb5.so:
99:-lkrb5.10 => /usr/lib/libkrb5.so.10
Bingo: elle est passée de version .9 à .10, voila pourquoi wireshark, compilé avec la version .9 n'arrive plus à ce lancer.
Une recompilation et reinstallation de wireshark suffit à résoudre ce problème… Mais quid des autres applications ??
Il existe une solution toute simple pour résoudre ce problème: Regarder quelles sont les bibliothèques utilisées par l'ensemble des binaires, et recompiler les ports liés à des bibliothèques inexistante.
Pour cela, référez vous à cet article: Réparation de bibliothèques manquantes.
umount failed: Device busy
Je rencontre assez souvent le problème suivant: Impossible de démonter certain volume, alors que je ne les utilise plus:
[root@laptop]~#umount /usr/obj/nanobsd.full/_.mnt/
umount: unmount of /usr/obj/nanobsd.full/_.mnt failed: Device busy
Regarder quel est le process qui nous empèche de démonter ce dossier:
[root@laptop]~#fstat /usr/obj/nanobsd.full/_.mnt/
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W NAME
olivier gam_server 4264 36 /usr/obj/nanobsd.full/_.mnt 2 drwxr-xr-x 512 r /usr/obj/nanobsd.full/_.mnt/
Il s'agit de gam_server, mais qu'est ce que c'est que ce truc ???
/usr/local/libexec/gam_server
/usr/ports/devel/gamin/files/patch-server_gam_server.c
[root@laptop]~#pkg wich /usr/local/libexec/gam_server
/usr/local/libexec/gam_server was installed by package gamin-0.1.10_3
[root@laptop]~#pkg info -D gamin
Information for gamin-0.1.10_3:
Description:
Gamin is a file and directory monitoring system defined to be a subset of the
FAM (File Alteration Monitor) system. This is a service provided by a library
which allows to detect when a file or a directory has been modified.
Whereas the FreeBSD port of FAM polls files every few seconds, this port
includes a kqueue(2) backend for immediate notification of most alterations.
WWW: http://www.gnome.org/~veillard/gamin/index.html
Il s'agit d'un process qui surveille les fichiers et dossier.... Peux-être qu'il ne sert à rien ?
On demande la liste des packages dépendant de ce truc:
pkg info -r gamin-0.1.10_3
Bon, vu la taille de la réponse ca à l'air utile... Avant d'utiliser une méthode de bourrin (tuer le process), on va vérifier qu'il n'y a pas de notes particulière concernant ce programe:
Information for gamin-0.1.10_3:
Install notice:
===============================================================================
Gamin will only provide realtime notification of changes for at most n files,
where n is the minimum value between (kern.maxfiles * 0.7) and
(kern.maxfilesperproc - 200). Beyond that limit, files will be polled.
If you often open several large folders with Nautilus, you might want to
increase the kern.maxfiles tunable (you do not need to set
kern.maxfilesperproc, since it is computed at boot time from kern.maxfiles).
For a typical desktop, add the following line to /boot/loader.conf, then
reboot the system:
kern.maxfiles="25000"
The behavior of gamin can be controlled via the various gaminrc files.
See http://www.gnome.org/~veillard/gamin/config.html on how to create
these files. In particular, if you find gam_server is taking up too much
CPU time polling for changes, something like the following may help
in one of the gaminrc files:
# reduce polling frequency to once per 10 seconds
# for UFS file systems in order to lower CPU load
fsset ufs poll 10
===============================================================================
Ok, les informations donnée sur l'URL sont très interressante, je vais donc essayer de configurer finement le gamin pour qu'il arrête de m'embêter:
mkdir /usr/local/etc/gamin
echo "fsset ufs poll 10" > /usr/local/etc/gamin/gaminrc
killall -9 gam_server

