31/03/2010

Eclipse et openSUSE

En bon développeur Java (ça va quand même arriver à toute vitesse, là...) j'utilise un EDI qui va bien. Eclipse, en l'occurence. Et, petit rappel pour ceux au fond qui ne suivent pas, j'utilise aussi openSUSE. Et comme je suis sous KDE, qu'Eclipse se sert de GTk, et qu'en plus les conf GTk sont faites pour windows, y a eu des petits problèmes...

En fait, certains boutons deviennent inaccessibles. Certaines parties des fenêtres sont soudainement insensibles aux clics de souris. Restent la touche tabulation et les raccourcis clavier... Ou alors, on fouine un peu, et on passe par les manip's que je décris ici. Ça marche pas torp mal...
Deux choses sont à régler. La première (en fait y a pas d'ordre, mais mettons que ce soit la première), choisir un thème gtk pour KDE. Dans certaines versions de KDE4, aucun choix n'est fait par défaut, c'est un peu gênant... donc, dans la "Configuration du système" de KDE4, allez dans apparence, styles et polices gtk, et choisissez un thème GTk, par exemple Clearlooks (qui marche très bien)... On a réglé le problème de l'absence de configuration GTk.

Passons au problème de compatibilité avec les options GTk pour Windows. C'est un peu plus compliqué. Il va falloir ouvrir un terminal, se logguer en root, et aller modifier le fichier /usr/bin/eclipse . Comme pour la plupart des logiciels, il s'agit d'un script de lancement pour passer les bons paramètres au binaire.
On va ajouter des choses au début du fichier, histoire d'assurer que tous les boutons sont accessibles. On a besoin de ces trois lignes :
export GDK_NATIVE_WINDOWS=1
ECLIPSE_OPTS=""
VM_OPTS=""


Surtout de la première, en fait, les autres devraient déjà être présentes. C'est un appel pour préciser le comportement des éléments GTk.

A priori, ça devrait marcher mieux ;)

Amusez vous!

24/03/2010

Installation de la carte BCM4312 sous openSUSE 11.2

Avoir une carte wifi, c'est bien, pouvoir la faire marcher, c'est encore mieux... de préférence sur le système qui nous intéresse. Dans mon cas, je suis censé travailler avec une carte de chez Broadcomm, et comme très souvent avec ces cartes, c'est un peu compliqué... mais bon, vous allez voir, on va s'en sortir avec openSUSE, bon gré mal gré.

Installation sur le noyau de base

Première approche : Broadcomm, contre toute attente, fournit un pilote pour le noyau par défaut de SUSE. Bonne nouvelle, donc, qui s'accompagne de deux mauvaises nouvelles : le pilote est fermé (pouah pouah pouah) et nécessite de changer de noyau. Donc on perd les optimisations desktop du noyau par défaut.

Attention ça va aller très vite :
Ajoutez le dépôt Packman, présent dans les dépôts communautaires.
Cherchez le paquet broadcomm-wl, ou installez le directement avec
zypper in broadcomm-wl

Le solveur de dépendances va vous proposer d'installer d'autres paquets, notamment un kernel-debug, dans la bonne architecture. Faites, redémarrez sur le noyau débug qui s'est automatiquement ajouté dans le grub, et c'est à peu près tout...

Vous aurez peut-être à blacklister deux pilotes : ssb et b43. Pas de chance si vous avez besoin de ssb pour votre carte ethernet, donc, ce sera soit l'une, soit l'autre...

Vous aurez peut être besoin de blacklister des choses... a priori ça se fait tout seul, sinon, ça se passe dans

50-broadcom-wl-blacklist.conf

dans le mien on trouvera des choses genre :

# modules blacklisted for broadcom-wl
blacklist bcm43xx
blacklist ssb
blacklist b43
blacklist ndiswrapper


Installation avec un nouveau noyau

Ça vous a plu? Ben c'est pas fini... Comme dit plus haut, wl, c'est pas libre, bouh! et surtout, le pilote ne permet pas de passer la carte en mode Moniteur, indsipensable notamment pour fiare un peu d'audit wifi. Qu'à cela ne tienne, on va changer de noyau, pour avoir un pilote qui va bien. C'est aussi possible de patcher celui qu'on utilise actuellement, mais c'est moins intéressant, moins formateur, et beaucoup trop rapide.

Changement de noyau, donc... permière chose, récupérer des sources. Pour ça, il nous faut un dépôt qui va bien, en l'occurence, le dépôt

http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.2/

Ca peut bien entendu se faire par yast, ou par zypper avec

zypper ar http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.2/

Après, il faut récupérer les sources du kernel qui nous intéresse, genre un 2.6.33 (ou une rc d'un 2.6.34, mais c'est un peu plus risqué, c'est une rc ;) ) en l'installant par yast (par zypper c'est un peu plus long, faut être précis et attentif ;) )

Compilation, donc, je vais passer très vite...
cd /usr/src/linux2.6.****/
make clean
make mrproper
make menuconfig


Là vous êtes dans la partie chiante de la manipulation. Vous allez devoir sélectionner les bouts du kernel que vous voulez intégrer ... ça comprend des pilotes, mais aussi des bouts indispensables, genre les couches réseau... prenez bien le temps de lire les docs, l'utilisation de l'interface ncurses est assez simple. Comptez une bonne heure de lecture, et peut être une ou deux tentatives pour que le kernel tourne ;)

avant de pouvoir l'utiliser, après avoir sauvé le fichier .config ;) il reste à compiler et installer la chose. Donc
make
make modules_install
make install


De ce que j'ai pu voir, pas besoin de modifier de fichier pour le grub, un reboot et ça repart... choisissez le bon kernel, si ça passe c'est bon. J'espère que vous n'avez pas oublié ssb et b43 dans la config sinon faudra recommencer...

Reste donc à récupérer un firmware qui va bien :
install_bcm43xx_firmware
s'occupe de ça pour vous.

Ensuite, un petit
rmmod b43
rmmod ssb
modprobe b43


suivi d'un
iwlist scan devrait vous donner de bonnes nouvelles.

Amusez vous!