Passer au contenu principal

code. grind. sleep.

Catégorie: NetBSD

modular-xorg, radeon et pas de KMS

Il y avait un moment que je n’avais pas touché à NetBSD et donc mis à jour mon lappy avec du pkg frais. Entre temps, la version de X.org modular, donc issue de pkgsrc, est revenue en 2012, avec son lot de drivers mis à jour. Le drivers xf86-video-ati, est passé en version 7.1.0, sauf qu’il fonctionne uniquement en KMS (Kernel Mode Setting), chose qu’on n’a pas encore dans notre kernel.

Compiler dans l'arbre des sources

Je m’occupe actuellement de préparer ma box pour le FOSDEM, et il s’avère qu’il manque le support du DRM (Direct Rendering Manager, le truc pour avoir de l’accélération graphique dans le kernel pour X.org) pour ma carte vidéo. Il s’agit de NetBSD 5.1.1, la version 6 n’aura pas ce manque.

X11 forwarding request failed on channel 0

Quand j’essaye de me logguer sur ma box NetBSD fraichement passé en X.org modular, j’ai ça : orgrim@serfouette ~ $ ssh rateau X11 forwarding request failed on channel 0 Last login: Fri Oct 21 12:20:24 2011 from serfouette.home.orgrim.net WTF? ça tombe en marche SSH normalement. Et bien le souci vient de l’échange des magic cookies pour l’authentification entre serveurs X à travers SSH, c’est utilisé par le X11 forwarding et on a besoin de plusieurs choses pour ça :

Passer de X.org natif à modular

X.org est fourni dans le basesys et dans pkgsrc, on appelle le premier « native » et le second « modular » selon la valeur de la variable X11_TYPE que l’on positionne dans son /etc/mk.conf pour signifier à pkgsrc sur lequel linker.

Bulk build partiel de pkgsrc

En suivant l'excellent tip de Mr GuiGui2, j’ai pu monter ma petite archi de bulk build personnelle pour fournir du package tout frais à pkgin. J’ai donc ajouté le bloc magique suivant à mon /etc/mk.conf, qui permet de gérer la présence de commentaires dans pkgchk.conf : # bulk build config DEPENDS_TARGET= bulk-install BATCH= yes BULK_PREREQ+= pkgtools/lintpkgsrc .if defined(SPECIFIC_PKGS) PKGLIST!= awk '$$1 !~ /^\\#/ {print $$1}' ${PKGCHK_CONF} . for _pkg_ in ${PKGLIST} HOST_SPECIFIC_PKGS+= ${_pkg_} .

Montrer les dépendances avec make dans pkgsrc

Généralement, on peut savoir quelles sont les dépendances d’un package en utilisant make show-depends, mais cela ne montre que les dépendances pour l’installation, les dépendances pour la compilation ne sont pas montrées. $ cd /usr/pkgsrc/databases/postgresql90-server/ $ make show-depends postgresql90-client>=9.0.4:../../databases/postgresql90-client Pour connaître les dépendances selon leur type (installation ou compilation), on peut utiliser la cible show-depends-pkgpaths alliée à la variable DEPENDS_TYPE. Pour avoir seulement les dépendances de compilation : $ make DEPENDS_TYPE=build show-depends-pkgpaths devel/bison devel/gmake pkgtools/digest Pour avoir seulement celles d’installation :