Désolé, je n'ai pas de recette magique, j'ai bien essayé Wine et Crossover, mais j'ai eu quelques problèmes avec glu32.dll et opengl32.dll ... J'ai donc du me tourner vers la vitualisation et ma machine Windows dans Qemu. It is great, it works! Je ne lance que ça, et j'ai supprimer les mises à jour automatique de Windows, ben oui, je peux regénérer ma machine virtuelle, donc au pire le virus ou le trojan ne restera là qu'une heure ou deux :-) pas de chance les pirates. D'ailleurs je suis en train de chercher comment accélérer ma machine virtuelle: là ça pourrait devenir vraiment une recette magique, d'ailleurs si vous en avez déjà: je suis preneur: comme d'habitude laissez moin un message
Je classe ce petit howto dans ma catégorie Linux, parce que c'est le seul véritable envirronnement pour développer du code. Quand Windows n'est fourni par défaut qu'avec Wordpad ou Notepad, Linux vient déjà avec des éditeurs de textes puissant en ligne de commande pour développer (Vim par exemple). Donc revenons à nos moutons: Je développe en ce moment un petit programme où il me faut comparer deux listes et trouver et identifier les éléments en commun (c'est le genre de trucs qu'on fait tous les jours en bioinformatiques :-) . Comme je manipule des chaines de caractères, j'ai fini par me tourner vers Perl. Perl est LE LANGAGE de script pour gérer les lignes de caractère. Une implémentation naïve de ce problème est quadratique. Mais si vous utilisez une table de hachage... alors ça devient linéaire YOUPI YOUPI YA: votre liste de 100000 éléments va pouvoir enfin être analysé. Voici la commande à utiliser:
my %seen; my @common = grep {$seen{$_}++} @list_1 , @list_2;
Par contre cela nécessite que les listes une et deux ne comporte pas de doublé. Voyons un peu comment ça marche. J'utilise la fonction grep pour créer un filtre et je lis à la suite les deux listes. J'initialise d'abord ma petite table de hash en une table nulle. Lorsque je parcours les listes avec $_, lorsque je rencontre pour la première fois je rencontre un élément je le mets dans la table, mais comme la table est initialisée à faux à 0 au début, l'élément est filtré! Mais par post incrémentation je garde une trace de l'élément (le fameux ++). Lorsque l'élément apparait pour la seconde fois: $seen{$_} est non nul et donc le filtre est passif. Vous récupérer enfin ce beau résultat dans votre table @common. Si je ne me trompe pas cette comparaison des deux tables est bien linéaire.
Ca faitlongtempsquejen'ai pas parlé de virtualisation... Pourtant c'est un sujet qui va être de plus en plus d'actualité. D'ailleurs la société RedHat vient d'annoncer la mise en place prochaine de la technologie XEN au seinde sa version eponyme pour les entreprises. Contrairement aux autres technologies de virtualisation tels VMWare ou Qemuqui simule le materiel et le Bios, les machines virtuelles sous XEN ont accès au materiel grace au noyauXEN. Le resultat de cettedifference de paradigme est une machine virtuelle quasiment aussirapide que la machine hote. So enjoy the virtualization!!! La seule contrainte est que l'architecture des machines virtuelles doit leur permettre d'utiliser la technologie XEN... contrairement à VMWare et Qemu qui nedemande pas de modification de l'OS "invité". Ca ne pose evidement pas de problème avec les OS libres tels Linux, dont le code a déjà été modifié pour pouvoir tourner avec XEN, parcontre cela pose problème pour Windows... Et c'est là que se posele réelprobleme: beaucoup d'utilisateur deLinux utiliseune machine virtuelle pour faire tourner Windows,même si l'équipe de XEN aditavoirmodifié un Windowspour permettre de la faire tournersous XEN, de sombres licences empêchent l'équipe de publier... Espérons que l'accord entre Microsoft et XENchange la donne. Par ailleurs l'arrivée des dual core et des technologies de virtualisation directement au sein desprocesseursdevraitd'un coté parmettre de s'affranchir de problèmes de licence évoqués ci-avant et d'un autre côté d'améliorerencore la qualité de virtualisation... Les bootloader pourraient donc très bientôt appartenir aupassé et les histoires de je suissous tel OS, je dois rebooter... seront bientôt fini.
Je viens d'acheter une clé USB pour regarder la télévision sur mon ordinateur portable: j'ai donc pris l'une ayant le meilleur qualité prix: Freecom DVB-T
je l'ai acheté chez Amazon pour quelques 45 euros. Elle fonctionne plutôt bien sous Windows: même si l'installeur est un peu mal foutu... ça finit toujours pas fonctionner. Le bon point est que l'antenne vient avec un logiciel MediaCenter: très intéressant quand comme moi vous n'avez qu'un Windows XP pro sans le media center. Mais vous vous doutez bien que j'ai du l'installer sous Linux ;-) et ben oui! Elle fonctionne encore mieux pas de saut d'image pas d'arret: un plaisir et tout ça avec seulement la petite antenne fournie! Pour installer la DVB-T key, n'essayez pas de modifiez votre noyau et d'y ajouter des modules; le mieux est d'utiliser
apt-get mercurial build-essential (et les header de votre kernel si vous avez un kernel standard)
mkdir /usr/src/modules
cd /usr/src/modules
hg clone http://linuxtv.org/hg/v4l-dvb
cd v4l-dvb
make-config
Faites comme suit: # # using defaults found in .config # * * Linux Kernel Configuration * * * Multimedia devices * Video For Linux (VIDEO_DEV) [N/m/y/?] n * * Digital Video Broadcasting Devices * DVB For Linux (DVB) [Y/n/?] y DVB Core Support (DVB_CORE) [N/m/y/?] m * * Supported SAA7146 based PCI Adapters * * * Supported USB Adapters * Support for various USB DVB devices (DVB_USB) [N/m/?] (NEW) m Enable extended debug support for all DVB-USB devices (DVB_USB_DEBUG) [N/y/?] (NEW) n AVerMedia AverTV DVB-T USB 2.0 (A800) (DVB_USB_A800) [N/m/?] (NEW) n DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list) (DVB_USB_DIBUSB_MB) [N/m/?] (NEW) n DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list) (DVB_USB_DIBUSB_MC) [N/m/?] (NEW) n HanfTek UMT-010 DVB-T USB2.0 support (DVB_USB_UMT_010) [N/m/?] (NEW) n Conexant USB2.0 hybrid reference design support (DVB_USB_CXUSB) [N/m/?] (NEW) n Nebula Electronics uDigiTV DVB-T USB2.0 support (DVB_USB_DIGITV) [N/m/?] (NEW) n TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support (DVB_USB_VP7045) [N/m/?] (NEW) n TwinhanDTV StarBox and clones DVB-S USB2.0 support (DVB_USB_VP702X) [N/m/?] (NEW) n GENPIX 8PSK->USB module support (DVB_USB_GP8PSK) [N/m/?] (NEW) n Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support (DVB_USB_NOVA_T_USB2) [N/m/?] (NEW) n WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan) (DVB_USB_DTT200U) [N/m/?] (NEW) m Technotrend/Hauppauge Nova-USB devices (DVB_TTUSB_BUDGET) [N/m/?] (NEW) n Technotrend/Hauppauge USB DEC devices (DVB_TTUSB_DEC) [N/m/?] (NEW) n Terratec CinergyT2/qanu USB2 DVB-T receiver (DVB_CINERGYT2) [N/m/?] (NEW) n * * Supported FlexCopII (B2C2) Adapters * Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters (DVB_B2C2_FLEXCOP) [N/m/?] (NEW) n * * Supported BT878 Adapters * * * Supported Pluto2 Adapters * Pluto2 cards (DVB_PLUTO2) [N/m/?] (NEW) n * * Supported DVB Frontends * * * Customise DVB Frontends * * * DVB-S (satellite) frontends * ST STV0299 based (DVB_STV0299) [N/m/?] (NEW) n Conexant CX24110 based (DVB_CX24110) [N/m/?] (NEW) n Conexant CX24123 based (DVB_CX24123) [N/m/?] (NEW) n Philips TDA8083 based (DVB_TDA8083) [N/m/?] (NEW) n Zarlink VP310/MT312 based (DVB_MT312) [N/m/?] (NEW) n VLSI VES1893 or VES1993 based (DVB_VES1X93) [N/m/?] (NEW) n Samsung S5H1420 based (DVB_S5H1420) [N/m/?] (NEW) n * * DVB-T (terrestrial) frontends * Spase sp8870 based (DVB_SP8870) [N/m/?] (NEW) n Spase sp887x based (DVB_SP887X) [N/m/?] (NEW) n Conexant CX22700 based (DVB_CX22700) [N/m/?] (NEW) n Conexant cx22702 demodulator (OFDM) (DVB_CX22702) [N/m/?] (NEW) n LSI L64781 (DVB_L64781) [N/m/?] (NEW) n Philips TDA10045H/TDA10046H based (DVB_TDA1004X) [N/m/?] (NEW) n NxtWave Communications NXT6000 based (DVB_NXT6000) [M/?] (NEW) n Zarlink MT352 based (DVB_MT352) [M/?] (NEW) m Zarlink ZL10353 based (DVB_ZL10353) [N/m/?] (NEW) m DiBcom 3000M-B (DVB_DIB3000MB) [N/m/?] (NEW) n DiBcom 3000P/M-C (DVB_DIB3000MC) [N/m/?] (NEW) n * * DVB-C (cable) frontends * VLSI VES1820 based (DVB_VES1820) [N/m/?] (NEW) n Philips TDA10021 based (DVB_TDA10021) [N/m/?] (NEW) n ST STV0297 based (DVB_STV0297) [N/m/?] (NEW) n * * ATSC (North American/Korean Terrestrial/Cable DTV) frontends * NxtWave Communications NXT2002/NXT2004 based (DVB_NXT200X) [N/m/?] (NEW) n Oren OR51211 based (DVB_OR51211) [N/m/?] (NEW) n Oren OR51132 based (DVB_OR51132) [N/m/?] (NEW) n Broadcom BCM3510 (DVB_BCM3510) [N/m/?] (NEW) n LG Electronics LGDT3302/LGDT3303 based (DVB_LGDT330X) [N/m/?] (NEW) n * * Miscellaneous devices * LNBP21 SEC controller (DVB_LNBP21) [N/m/?] (NEW) n ISL6421 SEC controller (DVB_ISL6421) [N/m/?] (NEW) n DABUSB driver (USB_DABUSB) [N/m/?] n
make
make install
vous n'avez plus qu'à redémarrer votre ordi et voilà: le petit voyant orange s'allume... Maintenant allez dans Kaffeine: jouez un peu avec les réglages et hop la télé sur l'ordinateur: la classe non? Bien sûr avant d'en arriver là j'ai un peu galérer mais si vous avez des problèmes laissez un post et j'essaierai de vous aider
Si comme moi vous avez un probleme avec la souris lorsque vous lancez Qemu, du genre le curseur bloqué en bas à droite et pas moyen de l'en déloger... Ne vous énervez pas: arretez la machine virtuelle, puis dans le terminal tapez:
export SDL_VIDEO_X11_DGAMOUSE=0
cela devrez regler vos problèmes.
-- Posted by Wolverine to Tricks and Thinks at 8/20/2006 03:05:00 PM
Connaissez-vous Yakuake? C'est le logiciel qui vous facilite la vie sous Linux. Dès que vous y aurez gouté vous ne pourrez plus faire sans. Yakuake est un émulateur de Terminal, donc bye bye Konsole, vous n'avez qu'à presser F12 et voilà votre console qui apparait, rappuyer sur F12 la voilà rangée, encore une dernière fois et voilà votre console qui réapparait:
et bien sur la taille de l'émulateur de terminal est configurable. Un must: parfaitement indispensable !
-- Posted by Wolverine to Tricks and Thinks at 8/20/2006 01:49:00 PM
J'ai eu un probleme avec ma debian et me voilà a réinstaller Qemu, mais comme je l'ai souligné dans un précédent poste, Qemu requiert les librairies de developpement de libsdl. Or sur la SID, il y a actuellement un probleme: ce paquet depend d'un autre paquet qui lui meme (je vous passe les details....) Finalement vous devez recuperer manuellement le paquet: zlib1g, par exemple avec la requete Google: zlib1g debian. Ensuite c'est comme d'habitude:
dpkg -i zlib1g_1.2.3-13_i386.deb
apres ça vous n'avez plus qu'à faire un apt-get install libsdl1.2-dev
-- Posted by Wolverine to Tricks and Thinks at 8/20/2006 10:42:00 AM
That 'is the question, je viens de decouvrir Flex2... Ajax j'ai deja vu surtout chez Google, ça fonctionne super bien, mais il semblerait que Flex ça fonctionne encore mieux: plus rapide donc plus fluide. En plus chez Adobe, on vous propose de telecharger tout ce qu'il faut pour developper et il y a l'air d'y avoir une bonne doc... Pour ce qui est d'Ajax, je n'ai guere vu de doc bien faite ou interessante quand à un environnement de developpement... Pas vu. Le seul Hic est que je me demande si Flex est vraiment utilisé et repandu...A creuser
-- Posted by Wolverine to Tricks and Thinks at 8/18/2006 10:38:00 PM
La meilleure solution reste encore à lire les documentations ci-dessous. J'ai rassemblé ces différents liens au cours de mes recherches, interrogations problèmes... J'espère qu'ils seront pour vous d'une aussi grande aide que pour moi. Voici donc la liste:
QEMU est un « émulateur de système » : c'est à dire un logiciel qui permet de faire tourner un ou plusieurs systèmes d'exploitation (ou seulement des processus) sur un système d'exploitation déjà installé sur la machine. Pour ceux qui connaissent, c'est exactement comme VmWare, mais en un peu plus spartiate (Notez qu'il y a quelques interfaces disponibles). Dans le monde de la virtualistation libre vous avez aussi Bochs qui commence à se faire vieux et Xen qui part d'un tout autre concept puisque cette fois c'est l'OS qui est pensé pour la virtualisatio et les machines virtuelles dès le début... J'ai dit libre, mais en ce qui est de la gratuité, il est possible d'utiliser gratuitement VmWare pendant 30 jours... C'est trop court me direz vous, ça dépend, en effet VmWare propose aussi un émulateur gratuit que ne permet que de lancer une machine virtuelle déjà existante... L'équation est alors fort simple: vous optez pour une version d'essai pendant 30 jours, vous créez toutes les machines virtuelles que vous voulez, puis après ce délai vous utiliser le lecteur de machine virtuelle de chez VmWare.
Mais à quoi bon utiliser des machines virtuelles me direz vous. Il y a plein de bonnes raisons: sous Linux, il peut être intéressant de pouvoir lancer un Windows dans une machine virtuelle pour utiliser l'application qui ne tourne que sous Windows, une machine virtuelle est aussi un allier précieux pour le débogage du noyau ou de tout autre programme qui a toutes les chances de faire plantr votre ordi. Finalement vous pouvez casser votre machine virtuelle sans vergogne et la faire renaitre à partir d'une de vos sauvegarde en quelques instant... qui n'a jamais voulu essayer de modifier le registre de Windows ou un rm -rf / .
Vous voilà convaincu, donc allez sur le site de QEMU et téléchargez qemu et kqemu. Le programme kqemu permet d'accélérer l'émulation directement au niveau du noyau sous Linux, donc vous avez tout à gagner à l'utilser. Maintenant en voiture: $ tar -xvzf qemu-votreversion.tar.gz $ cd qemu $ ./configure cependant qemu ne supporte pas la version 4 de gcc, vous aurez alors le message d'erreur suivant: ERROR: "gcc" looks like gcc 4.x QEMU is known to have problems when compiled with gcc 4.x It is recommended that you use gcc 3.x to build QEMU To use this compiler anyway, configure with --disable-gcc-check zsh: exit 1 ./configure il vous faut donc forcer l'utilisation de gcc-3.4 (que vous avez déjà sur votre système ou que vous devrez installer) $ ./configure --cc=gcc-3.4 voilà ce que vous retourne cette dernière commande Install prefix /usr/local BIOS directory /usr/local/share/qemu binary directory /usr/local/bin Manual directory /usr/local/share/man ELF interp prefix /usr/gnemul/qemu-%M Source path /home/logan/Download/qemu-0.8.2 C compiler gcc-3.4 Host C compiler gcc make make install install host CPU i386 host big endian no target list i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu gprof enabled no profiler no static build no SDL support no mingw32 support no Adlib support no CoreAudio support no ALSA support no DSound support no FMOD support no kqemu support yes Documentation no ERROR: QEMU requires SDL or Cocoa for graphical output To build QEMU without graphical output configure with --disable-gfx-check Note that this will disable all output from the virtual graphics card.
Qemu utilise SDL pour pouvoir afficher les machines virtuelles, il vous faut donc installer cette librairie # apt-get install libsdl1.2-dev il faut ensuite forcer l'utilisation d'alsa $ ./configure--cc=gcc-3.4 --enable-alsa puis # make et # make install Voilà qemu est installé, il vous faut encore installer kqemu, cela requiert que vous ayez les sources du noyau ainsi que ses entêtes donc comme d'habitude: $ ./configure $ make # make install
voilà nromalement vous avez maintenant un qemu fonctionnel sur votre machine ;-)
-- Posted by Wolverine to Tricks and Thinks at 8/05/2006 10:59:00 PM
Je viens de découvrir (ce matin même) que Google vient de sortir Google Earth pour Linux (en natif ;-) ), bon bien sûr c'est encore en beta, mais rien que pour le portage sous Linux, je l'ai installé. Cependant, vu que je ne suis pas très joueur, je n'ai jamais pensé à installé les drivers ATI pour avoir l'OpenGL sous Linux avec ma carte RADEON. Or Google Earth fonctionne franchement mieux avec!!!
Donc il suffit dans un premier temps d'avoir un noyau, avec les sources (/usr/src/linux) je vous renvoie à Google pour savoir comment faire. Vous pouvez a priori vous contenter d'installer les entêtes du noyau (header). Si votre kernel est de la famille 2.6.17 (vous pouvez le savoir avec la commande $ uname -r)
# apt-get install linux-headers-2.6.17
une fois que tout est en ordre allez sur la page d'ATI il faut que vous sachiez si vous utilisez Xorg Xfree, a priori, il y a fort à parier que vous utilisez Xorg... Verifiez quand même. Lancer le .run en tant que root. Pour ce qui est de l'autre package, si vous êtes sous une distribution utilisant les rpm no problème. Si comme moi vous utilisez une Debian, qui gère les .deb, il vous faut d'abord installer le package alien (je trouve ça assez marrant comme nom). Ce programme vous permet de transformer un .rpm en .deb
$ alien ****.rpm
puis installer votre package .deb fraichement créé avec la commande:
# dpkg -i fglrx***.deb
redemarrez votre serveur graphique avec la combinaison de touche ctrl alt backspace,normalement le serveur devrait redémarrer, si ce n'est pas la cas, relancez le manuellement.
And now play with the new Google Earth
-- Posted by Wolverine to Tricks and Thinks at 8/05/2006 10:19:00 PM
J'utilise déjà depuis un certain temps GPG pour chiffrer mes fichiers, dossiers, mails... Comme vous le savez peut-être, ce programme repose en partie sur une clé privée RSA qui est chiffrée grace à une passphrase. On vous dit alors que comme c'est une longue phrase, il n'y a aucun problème... Choisissez une ligne de votre livre préféré et tout ira bien... Pourtant la théorie de Shanon a montré qu'un texte dans n'importe quelle langue du monde a une entropie telle que 1 à 2 bits suffisent à coder chaque lettre. Ainsi la phrase:
"Quand on n'a pas de volonté, il faut bien se donner une méthode"
ne fait qu'entre 63 et 126 bits...ce qui est bien sûr amplement suffisant pour lutter contre une attaque brute-force mais c'est déjà une très longue phrase par rapport à certaines phrases que vous pourriez choisir... Une bonne mémoire est donc le meilleur moyen pour protéger son secret.
-- Posted by Wolverine to Tricks and Thinks at 8/04/2006 10:45:00 PM
En ce moment je réecris quelques scripts au bureau, je dois parser un énorme fichier dans lequel on a copier tout et n'importe quoi... J'ai donc du re-sortir la panoplie grep, sed, awk. Donc d'ici quelque temps je vous ferai un petit howto sur ces trois fabuleux outils de Linux. Comme une bonne partie de notre environnement fonctionne sous Windows (notamment mon protable du bureau), il est impossible d'ouvrir ces fichier avec Word: vous savez un petit fichier texte de 6000 pages ça commence à être lourd surtout pour un windows... Contrairement à son cousin très éloigné, Linux peut ouvrir assez aisement de tel fichier: pour ma part j'utilise vi... Donc une fois tout cela en place, hue cocotte on code
-- Posted by Wolverine to Tricks and Thinks at 8/04/2006 10:37:00 PM
Formation Debian GNU/Linux Mon ordinateur vient de planter entièrement, en fait je pense que ce n'est que la mise à jour de kdm, qui m'a empêché de lance xserver-xorg pour rentrer dans les détails... m'enfin, ce sont des choses qui arrivent quand on met les mains dans le cambui (je suis trop fainéant pour en vérifier l'orthographe ;-). Donc me voilà à remettre de l'ordre et patatra, je nique la partition /, me voilà donc obliger de tout réinstaller... Alors je vous conseille très fortement d'utiliser cette doc, c'est une excellente doc écrite par des gars de Centrale Paris, sur comment installer un système Debian, c'est clair et ça contitue une parfaite introduction... A la fin vous avez même des notes pour installer des truc un tout petit peu plus exotiques. Quoiqu'on puisse en dire, la Debian est vraiment une distribution hyper simple à installer et extrêment robuste ;-)
-- Posted by Wolverine to Tricks and Thinks at 6/23/2006 03:39:18 PM
En ce moment, je viens de redécouvrir les joies des machines virtuelles et j'en ai profiter pour ressortir de mes cartons une image iso de ReactOS pour la faire tourner dans Qemu La dernière version de cet excellent émulateur est suffisamment rapide pour faire tourner un WindowsXP. Ce qui est extrêmement utile lorsqu'on travaille sous linux et qu'on a besoin d'une application tournant seulement chez le cousin Windows. Si vous êtes sages j'essaierais de vous faire quelques screenshot pour vous en convaincre. Pour ma part, pour certaines applications je préfère utiliser WineHQ ou CrossOver (version payante de WineHQ) pour faire tourner certaines applications telles Word et Excel sur mon petit penguin.
Afin de profiter de toute la puissance de Qemu, il est préférable d'utiliser le module kqemu, que l'on peut trouver sur le site de Qemu. Mais avant de pouvoir en tirer parti, il est nécessaire de modifier la fréquence de rtc (avec la famille de kernel 2.6, je n'ai pas testé avec la famille 2.4). Une fois le module chargé, il faut encore créer un périphérique spécial et ne pas oublier de donner à l'utilisateur normal le droit d'écrire dans ce fichier, tout du moins si vous voulez pouvoir utiliser qemu en tant qu'utilisateur normal. Donc voilà le petit script:
#!/bin/bash # # Startup script pour kqemu #
echo 1024 > /proc/sys/dev/rtc/max-user-freq
case "$1" in start) printf "Loading kqemu module: \n" /sbin/modprobe kqemu RETVAL=$? echo [ $RETVAL -eq 0 ] # Create the kqemu device by using udev if [ ! -e /dev/kqemu ] ; then printf "Creating /dev/kqemu \n" mknod /dev/kqemu c 250 0 chmod 666 /dev/kqemu fi ;; stop) printf "Unloading kqemu module: \n" /sbin/modprobe -r kqemu RETVAL=$? echo [ $RETVAL -eq 0 ] ;; *) printf "Usage: %s {start|stop}\n" "$0" exit 1 esac exit 0
copiez le avec les autres script
# cp kqemu /etc/init.d/
pour pouvoir le lancer
# chmod 755 /etc/init.d/kqemu
si tout fonctionne bien, vous devriez être capable de lancer sans trop de ralentissement Windows XP ;-)