Tout schuss!!

Hop, départ au ski pour une semaine \o/

Retour le 11 au soir ;)

Du coup, j’ai procédé au switch serenity => selene, vu que j’ai moyennement envie qu’elle tombe alors que j’suis pas la…

C’est donc un peu fait à l’arrache, et je ne pourrais corriger les éventuels problèmes qu’en rentrant… Maiiis bon ^ ^

A pluch’ ;)

Posted by NiLuJe Sun, 04 Feb 2007 02:13:00 GMT


The ship is still sailing towards the full moon...

Eh bien voilà, la petite Selene est presque quasiment prête, il ne reste plus qu’à réinstaller les maps custom, et faire le switch des CNAME pointant sur serenity vers selene ;)

Mais si vous avez suivi le titre, vous aurez compris que Serenity tourne toujours… Donc, bon, le switch sera fait quand elle sera finalement tombée ;)

En exclusivité, dans la suite de ce billet, les aventures du setup de Selene! \o/

Du côté de Selene, les choses s’annoncent plutôt pas mal, même si je me suis re-mangé le bug HLDS que je redoutait tant…À savoir, HLDS qui bouffe entre 1 et 5 % CPU à vide, dispatché sur 2 threads… Entamant donc légèrement au passage les FPS serveurs, qui ne dépassent pas les ~81 FPS en tick 100, et les ~968 FPS en Tick 1k/pb 3…

J’aurais dû vérifier plus dans le détail, mais il me semble que ça ne le faisait pas à la réception de la machine (donc Gentoo 2006.0 fraîche, sur un kernel 2.4.32 GRS OVH), ni juste après le passage à un gentoo-sources 2.6.19.2 (-r4) sur cette même Gentoo 2006.0 fraîche. Ça à donc l’air de venir d’une partie autre du système, modifiée lors de la mise à jour… (Passage en 2006.1, sync & rebuild full, TC stable). Bref, le mystère reste entier…

Le fait est qu’on a testé malgrès cela, et que ça n’a pas l’air d’avoir un énorme impact, même serveur plein… J’ai pourtant souvenir d’une merde noire lorsqu’on avait passé les 2 HLDS de Serenity en 32bits, mais bon…

Par contre, je confirme, les Core2Duo, ça déchire grave ^ ^ Cf. les graphs ici :) D’ailleurs faudrait que j’essaye de caler pourquoi les graphs CPU ne sont pas sur échelle de 100% pile, mais juste un peu moins… – _ - Et, en passant, rebuild le noyau avec le bon split VM, histoire d’avoir les 1Go de RAM dispos ^ ^

Comme ça me chiffonne quand même gravement, je vais continuer d’enquêter la dessus… Aux dernières nouvelles, les LiveDVD Sabayon x86 & x86_64 engendrent les mêmes symptômes, alors que sous les LiveCD Gentoo 2006.1, HLDS réagit de manière classique (0 load à vide). Dhara (Ma box perso, amd64 installée depuis une 2006.1), Serenity, Kahlan et Selene exhibent toutes ce problème, alors que sur MidLands, ma box de test (x86, XP 2600, installée spécifiquement pour tester ça, depuis une 2006.1), HLDS réagit de manière classique… (A vide, je n’ai fait de test full que sur Selene). o_O

Bref, ça ne m’aide franchement pas à isoler le problème…

J’ai pensé à plusieurs `solutions`, mais elles sont toutes plus ou moins longues et pénibles à tester / prouver / mettre en oeuvre sur une machine distante…

  • Caler HLDS dans un chroot, basé sur la glibc 2.3.2, et Gcc 3.4.1 (TC à priori utilisé par Alfred pour les derniers builds HLDS).
  • Réinstaller la box depuis le mode rescue, à partir d’une base plus récente. (C’est long, chiant car raz de la machine, et je n’ai aucune certitude que ça résolve le problème…)
  • Essayer de trouver l’élément qui pose problème, et le corriger, en se basant sur des tests faits sur MidLands.
  • Essayer les kernels OVH 2.6 (2.6.18.1-grs-32 / 2.6.18.1-std-32-1k)
  • Rebuild la glibc & le TC en nptl -nptlonly (Mais me semble que le profil 2006.1 force le nptlonly, vu que l’ancienne lib de threading n’est plus supportée/ne build plus dans la glibc stable de ce profil…).
  • 4K Stacks? J’y crois pas trop, vu que ça me le fait avec des noyaux 4K & 8K, et sur des noyaux x86_64 avec ému x86.
  • COMPAT_VDSO ? (Again, shot in the dark, et faudrait en plus que la box boot sans cette option… – _ -)

J’ai souvenir d’avoir fait de rapides tests niveau Kernel, et, à priori, le niveau de préemption et la fréquence du timer n’ont aucun impact sur le problème. Le timesource non plus, à priori, même si j’aimerais bien avoir une machine avec un timer HPET sous la main pour vérifier… (J’ai pour l’instant rencontré le problème avec le timer pm (Dhara), tsc (Selene), et je sais plus quels autres sur MidLands et Kahlan).

J’suis donc pour le moment dans le flou total… Si quelqu’un à déjà rencontré ce problème, et qu’il a trouvé une solution, je suis tout ouïe… (À priori je ne suis pas seul, j’ai déjà aperçu des allusions aux derniers builds 32bits engendrant du load abusif à vide, sur la ML et sur le net, mais rien de bien précis, et aucune solution… À part passer en 64Bits, et se traîner HLDS64 pas à jour, en VAC1, où les clients se bouffent un Server Verification Failed trois connexions sur cinq….)

Posted by NiLuJe Sun, 28 Jan 2007 02:12:00 GMT


Fading of a ship, rising of the moon...

Et paf!

Je viens enfin de recevoir notre nouvelle machine, un jouli Core2Duo E6300 (2 * 1.8GHz / 2MB cache L2) + 1Go RAM, Sur 2 * 80Go de HDD en RAID 0 \o/

Et ben c’est youppiiiiiiiii ^ ^ (Et, oui, vous aurez reconnu le SP 2k7 de chez OVH)

Pour plus de détails, et essayer de piger mon titre à la noix, je vous invite à lire la suite de ce billet…

Bref, depuis notre dernière machine chez OVH, quelques nouveautés qui font plaisir on fait leur apparition: DES GENTOOOOOOOOOOOOOO !!!

Errm. Oui, oui, la RH custom OVH n’est plus la distrib par défaut, elle est remplacée par une Gentoo 2006.0 custom OVH (Vu les gars paumés croisés sur le forum Gentoo, elle est légèrement custom avec les pieds, mais bon…); mais surtout, d’autres distribs ont fait leur apparition, dont, heureusement, une Gentoo nue, 32 ou 64b!

Cette box étant destinée à faire tourner les serveurs CS AK, en lieu et place de Serenity, l’a64 3200+ de chez biiip, et Valve ayant arrêté en fourbe de supporter HLDS 64, j’ai opté pour une Gentoo 32B. Comme ça, on sera certain de ne pas se manger de Server Verification Failed dû au VAC1 à moitié mort…

Donc, un peu plus de 36H après la commande (Y’en avait plus dispo en 1H :/), je reçois la bestiole, installée sur une Gentoo 32Bit… (Ça change de chez biiip qui m’avaient juste booté la box sur le CD d’install, et démerde toi coco… – _ – “)

Et c’est la que ça devient un chouilla moins rigolo… ^ ^

C’est une 2006.0, donc ça date un peu de l’âge de pierre, mais à la limite, c’est pas bien grave, mais surtout, un coup de df -h plus tard, on découvre que la partoche /, montée en RAID 1 logiciel, ne fait que 3Go… Sigh. Super pratique pour une Gentoo, vu que le reste du dur est dédié à /home.

Bref, au lieu d’avoir recours à d’horribles workaround à coups de symlinks ou de bind mounts, j’ai pris le taureau par les cornes, direction le Manager V3 OVH, section Dédié, Réinstallation!

Et ouaip, une interface de réinstallation automatique, et gratuite, à fait son apparition!

Bref, je re-choisis ma distrib, toujours une Gentoo 32B, et la, joie, je sélectionne l’option ‘Partitionnement personnalisé’ \o/

D’ici, on a donc la possibilité de partitionner notre futur disque, via la création de partoches primaires/logicielles, et le choix entre 2 FS: ext3 ou reiserfs; ainsi que le choix entre le RAID 0 ou le RAID 1 pour chaque partition.

Bref, histoire d’avoir du RAID 0, il faut évidemment commencer par créer un /boot en RAID 1, 150Mo, parceque j’suis un bourrin, suivi d’un / de 15Go, d’un /home de 45Go, et en partoches logiques, d’un /usr/portage de 7Go en reiserfs, d’un /var/tmp de 6.5Go, d’un /tmp de 1Go, et on fini avec ce qui reste (500Mo) en Swap. Tout ça en ext3, sauf pour portage, et en RAID 0, sauf pour /boot; ce qui fait qu’au final, RAID 0 oblige, ces tailles sont doublées. De même pour le swap, qu’on monte en stripping.

17 minutes plus tard, on à un système enfin exploitable ;)

Et la, autre surprise, même si j’étais déjà au courant, le kernel par défaut est un 2.4… Qu’à cela ne tienne, on suit le guide de migration 2.6 Gentoo ;)

Je remplis donc mon make.conf tout bien comme il faut, vu que celui par défaut, direct depuis catalyst, est pas franchement jojo sur un Core2, et je fais un emerge—sync… Et la, c’est le drame! Arrivé à la mise à jour du cache portage, il se chie joyeusement dessus avec une erreur de cache corrompu… Un p’tit coup de recherche sur le fofo gentoo, et on découvre que cette petite ligne de commande corrige le problème! Ouf!

rm -rf /var/cache/edb/* && emerge --metadata

Bref, on continue le guide, on config son noyal, on oublie pas de config & relancer lilo (oué, lilo, pas de grub chez OVH), reboot, et, paf, shiny 2.6 kernel!

Bref, pour le moment, j’ai donc fait le switch en 2.6, le switch DNS, et j’en suis actuellement au rebuild du toolchain.

Vu que Serenity est censé tomber ce soir, il risque fortement d’y avoir une période de blackout pour les services hébergés dessus (CS, site AK), mais ça ne devrait pas durer plus de 24 ou 48H… ;)

Voilà voilà, il ne me reste plus qu’à expliquer mon mystérieux titre, qui a rapport aux noms de ces deux machines…

L’ancienne, vous le savez peut-être déjà, s’appelle Serenity, du nom du vaisseau du film du même nom, et de la série Firefly…

Voilà pour la première partie du titre, et pour la suite…

La nouvelle machine s’appelle Selene, et là, mon inspiration vient de diverses sources…

Tout d’abord, c’est un pseudonyme utilisé par Lanfear, dans le cycle Wheel Of Time… Les joueurs NWN savent peut-être que j’utilise déjà un autre pseudonyme de Lanfear pour un des mes PJs, ma rôdeuse Elfe Mieirin (Le vrai prénom de Lanfear, avant qu’elle ne fasse partie des Chosen), et les joueurs de CS savent aussi que j’utilise en général le pseudo Lanfear quand je suis en gath/mix, ou que je joue à moitié en FFA (mp3 & cie).

Ensuite, c’est aussi le prénom de la jolie Vampire héroïne des films Underworld \o/

Et enfin, la source qui a dicté ce nom pour ces deux personnages, c’est le prénom d’une ancienne déesse Grecque de la Lune, plus tard `remplacée` par la déesse Luna dans cet office. Pour ceux qui connaissent Wheel Of Time et Underworld, on comprend bien d’où vient l’inspiration, vu le lien de chacun de ces personnages avec la nuit et la beauté, domaines de cettes désse… (Et du coup le surnom `Daughter Of The Night` de Lanfear dans WoT prend tout son sens… ^ ^)

Hop, voilà pour la section mythologique de ce billet ^ ^.

Je posterais évidemment petit à petit l’avancement de l’installation de cette joulie machine ;)

Posted by NiLuJe Fri, 26 Jan 2007 20:36:00 GMT


Bug des catégories?

Gni, j’avais pas fait gaffe, mais effectivement l’affichage des posts relatifs à une catégorie fait méchamment crasher typo… (Erreur 500).

Après 32s de recherches, il paraîtrait que c’est un bug dans ruby x86_64, donc j’peux pas faire grand chose pour le moment… :’(

J’vais quand même tenter avec ruby 1.9.0 (CVS), comme j’suis un fou, et que c’est pas méchant à installer sous G ;)

EDIT: Ouin, RoR à pas l’air d’aimer ruby 1.9.0 ;/ Ouiiiiin.

Posted by NiLuJe Wed, 17 May 2006 13:59:00 GMT


Migration... :)

J’ai le plaisir de vous annoncer la fin de la migration vers la nouvelle machine… :)

(Enfin, plutôt vers le nouvel hébergement ^ ^)

A l’heure d’aujourd’hui, tous les services ont été réinstallés & relancés correctement :) (CS / TM:N / WEB / SVN / TS / ICE / Whatever ^ ^)

Récapitulatif des évènements dans la suite :)

L’`ancienne` machine était hébergée chez Ikoula, et c’était un joli AMD Athlon 64 3000+ avec 512Mo de RAM, le tout sous Debian.

Bref, à première vue, pas de problèmes majeurs, si ce n’est Debian ( ^ ^ ). Eh ben si, l’adresse IP: 213.x.x.x. Qu’est ce qu’elle a donc qui ne va pas cette IP me direz vous?

Hé ben la machine étant à la base utilisée pour faire tourner des serveurs CS 1.6 (cs.ak-team.com:21337 & cs.ak-team.com:1337), Steam, (qu’on apprécie tous au passage…), classe sa liste de serveurs d’une manière peu banale… Et surtout très pénalisante pour ces IP…

Explication: Steam trie les serveurs qu’il reçoit des masters dans un ordre très précis, dicté par le premier chiffre de l’IP du client (dans le cas français, en général 82), en alternant de bas en haut à partir de ce chiffre, ce qui fait que les serveurs aux IP en 82 apparaissent en premier, suivis de ceux en 80, puis ceux en 87, etc. Jusqu’au 213, qui arrive évidemment tout à la fin xD

Bref, cela explique le mal fou que l’on avait pour remplir les serveurs…

Arrive notre ‘sauveur’, le nouvel hébergement, chez C-Dedie.

Au programme, strictement la même machine, et, en bonus track, une Gentoo amd64 installée par mes soins \o/. (Oué, je demande une Gentoo, ils boot le livecd xD Heureusement que j’suis un ouf du string niveau install Gentoo [ ^ ^ ]). Et, en option, une carte réseau non bridée en 1/10 Half-Duplex, comme c’était le cas chez Ikoula… Dommage que ce soit une forcedeth par contre ;/ (Chip nvidia intégré). Et donc, évidemment, une IP qu’elle le fait bien, en 80.x :)

Bref, tout ça pour dire que moi == happy ^ ^

Posted by NiLuJe Fri, 12 May 2006 13:42:00 GMT


Bored?

Err, j’avais un poil la flemme de finir mon script de backup aujourd’hui, alors j’ai finalement réinstallé une interface ViewVC au dessus de mon dépôt SVN… J’aurais pas la flemme, ni en plus déjà un WebSVN, et surtout mon Trac d’installé, jm’amuserais à charcuter le thème…

Pour le moment il n’a subit que l’affichage de mon horrible logo… (Oui, tiens, note pour plus tard: faire/faire faire un vrai logo, un peu moins gerbant que celui-ci ... ^ ^)

Bref, sinon côté CS, Fusion AK/EpaV, ça fait tout pleins de moches en plus, et une section TM:N, bref, c’est la fête ^ ^ (A part le magnifique 22 – 2 qu’on s’est bouffé ce soir sur d2, mais vu la line-up, c’était prévisible (Olive & Bahoum ftw! :D)).

Quoi d’autre… Ah, oui, j’replonge un peu dans le monde AMX Mod X, donc un peu plus actif sur le Forum, ainsi que sur irc (#amxmodx sur GS), bêta testeur qui poutre oblige (/me est dans la release note AMX Mod X 1.70, la classe, s’tout ^ ^) :) Bref, ça devrait dire que je vais peut-être finir par re-sync mes plugins de base avec ceux de la 1.70, et re-commencer à ajouter despluginenbwa sur le serveur! ;P

Côté Trac, mise à jour, re-build tout bien comme il faut pour Python 2.4, le tuto va peut-être finir par arriver du coup :D

Niveau builds customs, j’attends plus que MetaMod 1.19 pour mettre à jour ce biniou, et refaire mes jolis benchmarks :P

Wala wala… Annif (18 piges) dans une semaine aussi, youpikikoolol ! (Penser à orga un truc… [Ou à jouer à CS jusqu’à 8H du mat’, au choix ^ ^])

Penser aussi à faire un isketch demain, fait longtemps que j’ai pas joué à s’te connerie, ça manque ^ ^ (Miiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisss! :D)

Posted by NiLuJe Tue, 14 Mar 2006 03:05:00 GMT


CS sous Linux avec Wine, le retour ^^

Et wai, je suis pas mort, et je vais vous saouler une 2e fois avec un ch’tit tuto CS sous Wine, mais cette fois sans passer par Sidenet…

(Pour des raisons de propreté, et aussi parceque j’avais envie, et à la base parcequ’il foutait la merde dans ma config de fonts, même si j’ai compris comment régler ça plus tard…)

Note

Ce document est aussi disponible sur Mon Wiki

Les prerequis: Wine 0.9 ou plus, corefonts et OpenGL accelere

Vous aurez avant tout besoin d’une carte graphique proprement configurée et installée, avec les drivers propriétaires adaptés, afin d’avoir une accélération matérielle fonctionnelle. Je ne m’étendrais pas sur les détails dans ce guide, ce n’est pas son but, sachez juste que les cartes nvidia sont fichtrement mieux supportées… (Drivers stables, et performants, ça n’est pas encore le cas chez ATi…). Bref, pour l’installation & la configuration de ces drivers, si ce n’est pas déjà fait, reportez vous à la documentation de votre distribution. (Sous Gentoo, un emerge nvidia-glx nvidia-kernel suffit à installer les modules nvidia en eux-même, il ne restera plus qu’a configurer XOrg pour charger ces nouveaux modules)

Pour éviter les problèmes, vous aurez besoin d’une version de wine relativement récente, évidemment de préférence la dernière (0.9.8 à l’heure où j’écris ces lignes [Mais attention, cf. note sur wine >= 0.9.7 en bas de page]). Sous Debian, cela implique apparemment d’utiliser la branche sid et le repo Wine (deb http://wine.sourceforge.net/apt/ binary/) (Pas de Debian sous la main pour vérifier).

Sous Gentoo, un

emerge -av wine

devrait donc suffire ;)

Niveau polices d’écriture, vous aurez besoin des polices Microsoft®, communément appelées corefonts.

Sous Debian:

apt-get install msttcorefonts

Sous Gentoo:

emerge corefonts

Vous aurez en prime sous certaines distributions (Gentoo par exemple), besoin des polices Tahoma & Marlett, qui ne font plus partie des derniers paquets corefonts (Problème de license? Vous risquez peut-être d’avoir besoin de posséder une license Windows pour les utiliser légalement).

Pour des raisons pratiques, j’ai compressé mon répertoire corefonts personnel, vous pouvez chopper ça ici: http://svn.ak-team.com/Configs/trunk/Wine/wine_cs_fonts.tar.gz

Ces fontes décompressées sont ensuite à placer dans votre répertoire de fontes TrueType, en général /usr/X11/lib/X11/fonts/truetype [/usr/share/fonts/corefonts sous Gentoo avec un X modulaire]).

On va aussi régénérer le cache des fonts, histoire de faire bonne mesure ;) [Modifier les variables FONT_DIR & FPNT_BASEDIR, évidemment ^ ^]

FONT_BASEDIR=”/usr/share/fonts”
FONT_DIR=”${FONT_BASEDIR}/corefonts”
rm -rf ${FONT_DIR}/font.cache*
rm -rf ${FONT_DIR}/font.dir
rm -rf ${FONT_DIR}/font.scale
rm -rf ${FONT_DIR}/encodings.dir
mkfontscale -e ${FONT_BASEDIR}/encodings $FONT_DIR
mkfontdir $FONT_DIR
fc-cache -fv

Configuration de Wine

Hop, on attaque la config de wine :) On lance donc pour cela le superbe outil winecfg, et on modifie:
  • Dans l’onglet Applications: La version de Windows en Windows 98
  • Dans l’onglet Afichage: éventuellement cocher la première case (Permettre aux applis DirectX blahblah…), et cocher la dernière case (Permettre le Pixel Shader) si votre carte graphique gère ;)
  • Dans l’onglet Audio: Le réglage par défaut en OSS devrait fonctionner au mieux.

Ensuite, on attaque la partie ‘tweaks’ pour faire plaisir à Steam ;)

On va utiliser 2 dlls natives pour le rendu HTML (toujours le même qui pose problème ^ ^), qui sont je crois fournies normalement avec IE, mais bon, pour aller plus vite, et comme je n’ai pas besoin d’IE, j’ai compressé juste les 2 dlls qui nous intéressent, à chopper ici: http://svn.ak-team.com/Configs/trunk/Wine/wine_cs_dlls.tar.gz.

On va donc télécharger, décompresser et ‘installer’ ces dlls (Répertoire wine par défaut):

wget http://svn.ak-team.com/Configs/trunk/Wine/wine_cs_dlls.tar.gz
tar -xvvzf wine_cs_dlls.tar.gz
mv SHDOCVW.DLL ~/.wine/drive_c/windows/system32/
mv SHLWAPI.DLL ~/.wine/drive_c/windows/system32/
rm -rf wine_cs_dlls.tar.gz

Et ensuite, sous winecfg, dans l’onglet Bibliothèques, on fait un ‘Ajout de surclassage’ pour ‘shdocvw’ et ‘shlwapi’.

Hopla, on devrait être okay à présent! ;)

Pour régler mes problèmes de fonts (rencontrés uniquement avec un snapshot cvs de fontconfig ultra-patché, donc si vous n’avez pas de problème spécifique aux fontes, ce n’est peut-être pas la peine de procéder à ces modifications ;), je fait pointer le dossier windows/fonts vers mon $FONT_DIR (qui contient les polices corefonts, tahoma & marlett) :

rm -rf ~/.wine/drive_c/windows/fonts
ln -s $FONT_DIR ~/.wine/drive_c/windows/fonts

Installation de Steam

On télécharge l’installateur Steam Steam, et on le lance avec wine, tout ce qu’il y a de plus classique ;)

wine SteamInstall.exe

S’il crash (ça a été reporté plusieurs fois, vers les 26 ou 27% en particulier), relancez le, ça devrait passer.

Si le problème des 26% persiste, une fois avoir cd dans le répertoire Steam tout frais, faites un:

wine SteamTmp.exe SelfUpdate “C:\Program Files\Steam\Steam.exe” 14

(En corrigeant le path, et éventuellement après avoir tué tous les process wine).

Lancement de Steam

On cd dans le répertoire où on vient de l’installer, et on le lance via wine, classique ;) Dans mon cas:

cd ~/.wine/drive_c/Steam
wine Steam.exe

Voilà, ça n’était pas plus compliqué ;)

Annexe: Problèmes éventuellement rencontrés

Message d’erreur ‘Désactiver le mode compatibilité’

Si vous rencontrez un message de ce genre à la fin de l’installation, ou au lancement de Steam, passez en mode Windows 2000 via l’outil winecfg, relancez steam, laissez le se mettre à jour, fermez le est remettez vous en Windows 98, ça devrait fonctionner correctement avec Steam à jour ;)

Problème de focus clavier sur la page de login

Il peut arriver que le focus clavier ne soit pas bien fixé du premier coup sur la page de login, cela se traduit par l’apparition des caractères tapés non pas dans la fenêtre Steam, mais dans la dernière fenêtre ayant eu le focus clavier… ?a s’arrange en général après 2 ou 3 clics dans les 2 cases différentes, et éventuellement un clic droit > copier ;) En ultime recours, vous pouvez aussi passer en mode Desktop via l’utilitaire winecfg.

Problème avec les rendus HTML

Personnellement, avec le surclassage des 2 dlss effectués plus haut, les pages HTML ne s’affichent pas du tout, mais ne crashent pas wine, donc ça me va ^ ^ Reportez vous à l’ancien guide en cas de problèmes ;)

Freeze de Steam peu apres le login, avec une erreur Windows

Je n’ai plus le message exact en tête, mais cela m’est déjà arrivé, en général il suffit de tuer tous les processus wine et de relancer Steam ;)

Crash de wine lors du lancement d’HL

Vérifiez bien que vous êtes en mode ‘Windows 98’ via l’utilitaire winecfg, normalement avec un wine récent il ne devrait pas y avoir de probl?mes.

Utiliser les pilotes wine ALSA peut aussi poser problème, en tout cas chez moi ;) Testez en ALSA, et si vous rencontrez des problèmes, repassez en OSS. (Toujours via l’utilitaire winecfg).

Toujours au niveau son, vérifiez bien que vous activez l’accélération matérielle ‘Full’ dans l’onglet ‘Audio’ de winecfg, ça peut jouer sur les perfs. De même que la case ‘émulation Pilote’, chez moi ça marche bien sans, mais pour vous cela peut-être différent ;)

En dernier recours, vérifiez que vous n’utilisez pas un noyau ultra-patché (pax, execshield…), wine n’apprécie pas forcément, je pense notamment aux noyaux Fedora, distribution connue pour son ToolChain disons, huum, exotique par certains aspects, pour rester poli ^ ^. Bref, un bon p’tit -ck ou vanilla ;)

Note sur Wine 0.9.7 et plus

J’ai pas vraiment cherché à comprendre pour le moment, mais j’ai l’impression d’avoir perdu pas mal de FPS depuis mon passage à wine 0.9.7 et plus… J’vais essayer d’approfondir la chose ;) Je ne sais pas si ça vient de la glibc 2.3.90, de mon passage à gcc 4.1b, ou de mes changements de Cflags, mais j’vais essayer de décortiquer la chose…

Posted by NiLuJe Thu, 16 Feb 2006 23:11:00 GMT


Compilations CVS MetaMod/P et AmxMod/X

Et vi, ça faisait longtemps, mais j’ai enfin mis à jour mes builds cvs, avec l’arrivée prochaîne de MetaMod 1.19 & d’AmxModX 1.65, j’me suis senti inspiré :)

Je ne vais pas me répéter, toutes les infos sont sur le wiki, mais sachez qu’en gros, y’à eu:
  • MaJ d’a peu près tout (MM 1.18.1, AmxModX 1.65, ...)
  • Ajout de WebMod & AXN
  • Ajout du module SuperHeroes AMXX
  • Passage à GCC 3.4 pour les builds cs-amx
  • Et sûrement un paquet de trucs que j’ai oublié :D

Pfiou, voilà, /me content ^^

Posted by NiLuJe Tue, 24 Jan 2006 04:14:00 GMT


Ruby On Rails et Typo sous Lighttpd

Hé ben vi, faut bien que ça tourne grâce à quelquechose ce joli blog… ;o)

Comme c’est un peu long, je cache le reste dans la suite ;)

Note sur les extraits de code

NB: Attention aux retours à la ligne, j’ai du charcuter un peu pour que ça rentre dans les blocs de code, mais le caractère \ indique que la ligne suivante fait partie intégrante de cette ligne, attention donc, notamment pour les extraits de fichier de config! (Je vous conseille de passer le thème en full-width, via les icônes en haut de l’écran)

Ce document est aussi disponible sur Mon Wiki, les blocs de code sont corrects sur le wiki ;)

Installation des Paquets nécessaires

Alors, en résumé, sous Gentoo, c’est facile:

emerge ruby rails

Les dépendances viendront toutes seules (gem, mysql-ruby & co).

Sous Debian, c’est moins rigolo, déjà, il faut installer Gem à la main, et passer au maximum par gem pour chopper les dépendances…

En tas, ça donnerait un truc du genre:

apt-get install ruby libtest-unit-ruby ruby libyaml-ruby ri irb ruby-dev libcfgi-ruby libfcgi0 libfcgi-dev libxml-ruby libxml-parser-ruby libzlib-ruby

Et éventuellement rails après, voir s’il ne manquerait pas des dépendances…

Pour l’installation manuelle de gem:

wget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
tar -xvvzf rubygems-0.8.11.tgz
cd rubygems-0.8.11
ruby setup.rb

Serveur de Base De Données

Il nous faut aussi un serveur de Base de Données fonctionnel (dans mon cas, MySQL 4.1, installé dans un path tordu, ce qui posera un tout petit problème plus tard, on verra comment le régler), et les libs ruby qui vont avec (gem powah!).

Si vous ne souhaitez pas installer MySQL, vous devrez utiliser SQLite, comme expliqué plus bas, lors de la configuration de typo. (Et vous n’aurez pas besoin de la gem mysql).

Installation de RoR via RubyGems

Donc, on installe tout ce qui nous manque via gem (Sous Debian j’entends, sous Gentoo, les dépendances devraient déjà être installées correctement, viva Portage ^ ^ ) :)

gem install -y rails mysql fcgi

Et on patiente… Mais dans le cas d’un serveur MySQL dont les libs ne sont pas dans un path classique (ce qui risque d’être le cas si vous l’avez installé manuellement depuis les sources), et non spécifié dans la variable d’environnement LD_LIBRARY_PATH, le configure de mysql-ruby va se chier dessus… Pas de panique! ;) Un petit

gem install -y mysql -- --with-mysql-config=/blah/bin/mysql_config


Et c’est parti ;) (NB: Changer le path, évidemment hein ^ ^ )

Donc, on devrait avoir un setup fonctionnel niveau ruby / rails maintenant, on peut s’attaquer à Typo!

Installation de Typo

J’ai choisi d’utiliser la version de développement (trunk), c’est à vous de choisir si vous préferrez utiliser la version stable (Sachez que de petits changements peuvent empêcher certains thèmes de fonctionner correctement en trunk, et vice-versa, certains thèmes ne fonctionnent par défaut qu’en trunk).

Bref, pour la version trunk, on aura besoin de subversion (emerge/apt-get install subversion si ce n’est pas déjà fait).

On choisit un répertoire d’installation, qui ne sera PAS le répertoire accessible par votre serveur web (en dehors du docroot donc, ou sur un autre sous-domaine à la limite), on s’occupera de la publication via un lien symbolique plus tard. (J’ai choisis ~/typo dans mon exemple)

svn co svn://leetsoft.com/typo/trunk ~/typo

Il suffira d’un

svn up ~/typo

pour vérifier les mises à jour…

Configuration de Typo

Ensuite, on attaque la config BDD pour typo, dans mon cas, j’ai crée 3 bases (En production, seule une de ces bases sera utilisée): typo, typo_test et typo_dev, ainsi qu’un utilisateur typo n’ayant des droits spécifiques qu’à ces 3 bases, tout cela via PhpMyAdmin, ou en shell MySQL si vous préférrez ;)

Ensuite, on peuple ces bases avec le schéma de base mysql de typo, personnellement, je fait ce type d’opérations en shell, j’ai des mauvais souvenirs de PmA foutant le bordel dans les charsets, et c’est de toutes façons plus rapide via le shell MySQL.

cd ~/typo
mysql -utypo -p
use typo
source db/schema.mysql.sql
use typo_dev
source db/schema.mysql.sql
use typo_tests
source db/schema.mysql.sql

Hop! On configure ensuite l’accès MySQL pour typo, la syntaxe devrait parler d’elle même, si vous avez gardé les mêmes noms de table que dans l’exemple, vous n’aurez plus qu’à modifier l’utilisateur et le mot de passe:

cp config/database.yml.example config/database.yml.example
vim config/database.yml

Si vous préférez utiliser une BDD SQLite

Il suffit pour cela d’installer sqlite (emerge/apt-get install sqlite), de créer la bdd, et de configurer Typo:

cd ~/typo
sqlite db/typo.sqlite.db < db/schema.sqlite.sql
vim config/database.yml

Config qui devrait ressembler à ça:

login: &login
  adapter: sqlite
  dbfile:  db/typo.sqlite.db

development:
  <<: *login

test:
  <<: *login

production:
  <<: *login

Test préliminaire

Courage, on y est presque!

On peut dors-et-déjà lancer un mini-test avec le script serveur RoR:

ruby script/server

Vous devriez pouvoir accéder à votre blog via l’url http://votredomaine.tld:3000

En cas de problème, vérifiez bien tous les fichiers logs :) (~/typo/log, ainsi qu’en sortie console, vous pouvez aussi éventuellement lancer directement le script ~/typo/public/dispatch.fcgi en console).

(NB: ^C (CTRL+C) pour tuer le script serveur ;)

Problèmes relatifs à la présence d’un serveur MySQL installé dans un répertoire non “traditionnel”

En parlant de problème, notre serveur MySQL installé dans un path tordu va refaire des siennes, vous risquez de rencontrer une erreur Mysql, du fait de l’incapacité de l’extension ruby-mysql de trouver une bibliothèque dynamique mysqlclient sur votre système…

Deux solutions: Le symlink barbare, ou modifier la variable d’environnement LD_LIBRARY_PATH (au niveau du système, ou au niveau de la configuration FastCGI dans la config du serveur Web)... J’ai opté pour le symlink barbare ^ ^

ln -s /blah/lib/mysql/libmysqlclient.so.14 /usr/lib/libmysqlclient.so.14

Configuration du serveur Web (Lighttpd)

Hop! :) On attaque maintenant la configuration Lighttpd.. (Vous ne trouverez ici aucune info concernant une utilisation avec Apache, je vous redirige pour cela vers les sites officiels rails & typo, ainsi que ce guide ^ ^).

Il faut déjà une installation de lighttpd fonctionnelle (emerge lighttpd sous gentoo), il ne me semble pas qu’il y ait de paquets lighttpd Debian, j’utilise personnellement mon script de build, évidemment :) (NB: Je prévois un article plus détaillé sur l’utilisation de ce script)

On va donc s’attaquer à un extrait de config Lighttpd, ça ne devrait pas être très compliqué, la syntaxe des configs lighttpd est on ne peut plus claire :)

## Typo ;o)
server.modules += ("mod_rewrite")
server.modules += ("mod_redirect")
server.modules += ("mod_fastcgi")
$HTTP["host"] == "blog.ak-team.com" {
server.follow-symlink = "enable"
server.indexfiles = ( "dispatch.fcgi" )
server.error-handler-404 = "/dispatch.fcgi"
url.rewrite-once = (
"^/$" => "index.html"
#Break le cache si on acc?de un post en .html _AVANT_ qu'il ait été correctement caché (=> sans extension)
#"^([^.]+)$" => "$1.html"
)

## Redirection sur les .html, sauf pour l'index \
Cf le rewrite plus haut
url.redirect = (
"^/index\.html.*" => "http://blog.ak-team.com/",
"^/([^.]+)\.html$" => "http://blog.ak-team.com/$1"
)

fastcgi.server =  (
".fcgi" => (
"typo" => (
"min-procs" => 1,
"max-procs" => 4,
"check-local" => "disable",
"socket" => "/var/run/fastcgi/typo.socket",
"bin-path" => "/home/niluje/typo/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production" ),
"idle-timeout" => 120
)
)
)
}


On voit que j’utilise une configration cantonnée à un sous-domaine et que je charge les modules nécessaires.

Si vous préférez utiliser Typo via SCGI

Lighttpd supporte par défaut le scgi, et il existe un launcher scgi pour RoR, nous avons donc la possibilité d’utiliser typo via scgi :)

Pour cela, vous aurez besoin d’installer quelques gems:

gem install -y cmdparse highline
wget http://www.zedshaw.com/downloads/scgi_rails/scgi_rails-0.4.3.gem
gem -y install scgi_rails-0.4.3.gem
scgi_ctrl config
scgi_ctrl start

Paf, notre launcher scgi a lancé un daemon scgi, sur le port 9999 par défaut (scgi_ctrl help config pour plus d’infos).

On peut donc attaquer la config lighttpd:

server.modules += ("mod_scgi")
server.modules += ("mod_rewrite")
server.modules += ("mod_redirect")
$HTTP["host"] == "blog.ak-team.com" {
server.indexfiles = ( "dispatch.scgi" )
server.error-handler-404 = "/dispatch.scgi"
server.follow-symlink = "enable"
## SCGI
url.rewrite-once = (
"^/$" => "index.html"
#"^([^.]+)$" => "$1.html"
)
url.redirect = (
"^/index\.html.*" => "http://blog.ak-team.com/",
"^/([^.]+)\.html$" => "http://blog.ak-team.com/$1"
)

scgi.server = (
"dispatch.scgi" => (( 
"host" => "127.0.0.1",
"port" => 9999,
"check-local" => "disable" 
)) )


:) Le launcher SRR poss?de aussi un mode cluster, pour lancer plusieurs daemons:

scgi_cluster config -c 3
scgi_cluster start

Et la config lighttpd (seulement la partie scgi.server)

scgi.server = (
"dispatch.scgi" => 
( 
"server1" => 
( "host" => "127.0.0.1",
"port" => 9999,
"check-local" => "disable"),

"server2" =>
( "host" => "127.0.0.1",
"port" => 10000,
"check-local" => "disable"),

"server3" =>
( "host" => "127.0.0.1",
"port" => 10001,
"check-local" => "disable")
)
)

Dernières vérifications et publication…

Pensez à vérifier les paths et les permissions du répertoire où sera stocké le socket (l’utilisateur lighttpd doit avoir les droits d’écriture dessus, de même que les dossiers ~/typo/public et ~/typo/log [chmod 777 de bourrin, ou chown vers l’utilisateur de lighttpd et chmod 666], et j’insiste la dessus, sinon le syst?me de cache & de log ne fonctionnera pas correctement, entraînant une baisse de performance tr?s significative)

Et on oublie pas le symlink qui va bien, vers le répertoire où pointe notre sous-domaine:

ln -s ~/typo/public /var/www/blog.ak-team.com

Et voilààà! :).

Ça fait un gros paté comme premier post, je sais ^ ^.

Et je vais enchainer sur l’utilisation d’un client de Blogging sous Linux! ;) (blogtk/drivel)

Posted by NiLuJe Sun, 15 Jan 2006 04:23:00 GMT


Trac-Hacks :)

Waaai, je viens de découvrir (honte sur moi!) le site Trac-Hacks, site fourré de plugins, macros & patchs en tous genres pour Trac, et à ma grande surprise, un projet de traduction française!!

Eh ben ça marche du feu de dieu! :) J’ai donc installé pleins de nouvelles conneries sur mon Trac, et il est dorénavant en français! ;)

Youpi!

Posted by NiLuJe Sun, 15 Jan 2006 04:19:00 GMT


Older posts: 1 2