22/03/2010 13:16

Tips KVM

Quelques tuyaux en vrac

- pour booter sur le cdrom, c'est -boot d
- pour pouvoir se connecter avec un client vnc: -vnc :1
(c'est plus rapide que SDL)
- le driver par defaut de l'eth est sauf erreur 8139too; si l'eth n'est pas vu dans le guest, ajouter:
alias eth0 8139too
dans /etc/modprobe.conf pour la prochaine fois
et faire un
modprobe 8139too
pour tout de suite
- ne pas oublier que les partitions mis avec kvm -hda sont des hda0, hda1, etc et pas des sda0, etc

Comment comment monter une image qcow2 sous mandriva 2010 (ou autre)

La reponse est donnée ici:
http://tjworld.net/wiki/Linux/MountQemuQcowImages

Le probleme: sous mandriva 2010 x64, soit on installe kvm soit qemu mais pas les deux. Resulta si on veux faire tourner kvm, qemu-nbd manque.
Il suffit en fait d'installer qemu, de copier qemu-nbd a l'abri puis de réinstaller kvm.

Quelques complements sur la procedure:
o Creer l'image:
qemu-img create -f qcow2 monimage.img 10GB

o La rendre joignable via /dev/nbd0:
qemu-nbd --connect=/dev/nbd0 monimage.img
(attention, nbd se binde sur le port 1024 donc potentiellement quelqu'un de lexterieur peut s'y connecter)

o Faire le fdisk
fdisk /dev/nbd0

o Si on n'a pas les entrée /dev/nbd0p1, etc faire:
kpartx -a -v /dev/nbd0
cela donne un majeur et un mineur a utiliser pour les mkdod, genre:
add map nbd0p1 (252:0): 0 256977 linear /dev/nbd0 63
add map nbd0p2 (252:1): 0 8401995 linear /dev/nbd0 257040
add map nbd0p3 (252:2): 0 106671600 linear /dev/nbd0 8659035
o faire les mknod:
mknod /dev/nbd0p1 c 252 0
mknod /dev/nbd0p3 c 252 2
o On ensuite formatter les partyitions et les monter

Tres important:
Ne pas tenter d'acces concurrents sur les partitions ainsi monter: on risque le deadlock !
Penser a demonter les partitions avant de les utiliser et a deconnecter le nbd avec
qemu-nbd --disconnect /dev/nbd0




19/08/2009 16:49

L'informatique, les nombres et les arrondis

Devinette: qu'affiche le bout de code c suivant:
double v=847.665000;
printf("v=%.2f\n",v)

Vous avez dit 847.67 ? Perdu, c'est 847.66

Tout simplement parce que:
printf("v32=%.32f\n",v);
révèle qu'en fait v vaut a peu pres: 847.66499999999996362021192908287048

Plus étonnant:

printf("%.32f\n", 1.25);
donne 1.25000000000000000000000000000000

mais printf("%.1f\n", 1.25);
donne 1.2 alors que

printf("%.32f\n", 1.75);
donne 1.75000000000000000000000000000000
et printf("%.1f\n", 1.75);
donne 1.8

Je repete: 1.25 donne 1.2 mais 1.75 donne 1.8

Etrange, non ? Et bien la c'est "tout simplement" que printf utilise non pas un arrondi arithmétique mais un arrondi "au pair le plus proche" (nommé aussi "arrondi bancaire").

Détail amusant, la fonction round() n'arrondi pas pareil, il utilise un arrondi "to nearest integer, halfway away from zero", c'est a dire que
round(1.25*10)/10 donne a peu pres 1.3 (la ou printf donnerais 1.2)
et round(1.75*10)/10 donne a peu pres 1.8

Je suis tombé des nues en voyant comment printf arrondissait: en plus de 20 ans de développement, je n'avais jamais jamais suscpecté qu'il pouvait arrondir avec une méthode différente de l'arrondi arithmétique.

Et le pire c'est que round() produit un résultat different selon le language (voir la version du language): Cf Wikipedia EN: Rounding


Références:
A Question Of Rounding
Wikipedia FR: Arrondi
Wikipedia EN: Rounding

19/09/2008 12:31

Netgear GSM7248 SFP

Bonne nouvelle: le Netgear GSM7248 accepte des SFP tiers: en l'occurence j'ai testé un SFP Foundry 1000sx et le lien monte bien...

06/09/2008 00:50

Soekris BIOS update avec minicom

Si minicom n'arrete pas de mettre des erreurs quand vous essayez d'envoyer le fichier, faire:
Dans minicom:
download
Dans un autre term:
sx -X /tmp/b5501_133.bin > /dev/ttyS0 < /dev/ttyS0
Et ca roule !

Agrandir la partition principale d'un Windows sous VMWare

Simple:
- Shutdowner la machine
- faire un vmware-vdiskmanager -x XXXGb xxxx.vmdk
- downloader GParted en iso
- créer une machine virtuele avec comme cd l'iso GParted et un 2eme HD: celui a agrandir (mettre comme guest OS a tire indicatif XP plutot que other ou MS-DOC)
- booter cette machine virtuelle
- agrandir la partition en question avec GParted
- quitter
- booter la machine virtuelle d'origine
Et voila !

05/09/2008 21:48

Activation iPhone avec VMWare

J'ai telechargé la version workstation de VMWare sour linux, installé XP SP2 dessus, et installer iTunes.
Le problème est que le truc veut une configuration USB 3 et que d'autres drivers le passent en config 1 ou 2 avant... Bref erreur dans iTunes (1604).

Ma solution: mettre dans /etc/udev/rules.d/ un fichier 01-mg.rules comme celui-ci.

Cela force le peripherique en conf 3.
Les lignes sont probablement redondantes mais qui peut le plus peux le moins :-)

Avec ca j'ai pu restaurer le firmware de l'iPhone (attention le mettre d'abord en conf 1 s'il est bloqué en mode restauration puis 3 quand iTunes l'a fait rebooter pour poursuivre la restauration). Regarder dans syslog les modes proposés et celui voulut par VMWare/iTunes.


05/08/2008 11:40

VirtualBox: Faire tourner Windows sous Linux et vice-versa

Depuis quelques temps on ne parle que de virtualisation: faire tourner un ou plusieurs systèmes d'exploitation dans un autre.
Par exemple: Windows XP sous Linux.

Je viens de tester VirtualBox, un système de ce genre orienté utilisateur final.

Et c'est remarquable: j'ai pu me débarasser de mon vieux XP qui me servait de temps en temps pour vérifier des sites avec Internet Explorer.

J'attends avec impatience une virtualisation de Mac OS X !

16/03/2008 20:25

Asus eee pc et Mandriva

Comment installer la Mandriva 2008 sur un asus eee sans (trop) galerer ?
Sous linux, sans faire appel a un lecteur de CD externe mais avec 2 clefs USB (une < 100 Mo et une d'1Go ou plus):
- récuperer une image de boot:
wget "ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/official/2008.0/i586/install/images/all.img"
- la copier sur la 1ere clef (moins de 100Mo suffisent)
dd if=all.img of=/dev/sdX
(sdX etant le device correspondant a votre clef)
- récuperer le 1er cd:
ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/official/iso/2008.0/mandriva-linux-2008.0-free-cd1-i586.iso
(si vous avez une clef de plus de 4.3 Go, essayez le dvd...)
- préparez votre clef 4Go:
cfdisk /dev/sdX
et créer une partition
- formater avec:
mke2fs /dev/sdX1
- montez la:
mount /dev/sdX1 /mnt/usb/
- montez l'image iso du cd:
mount -t iso9660 -o ro,loop=/dev/loop0 mandriva-linux-2008.0-free-cd1-i586.iso /mnt/disk/
- copier le contenu sur la clef:
cp /mnt/disk/i586/* /mnt/usb/ -a
- démonter:
umount /mnt/usb/
umount /mnt/disk/
- inserer les 2 clefs sur l'eee
- au demarrage: F2 pour le bios
choisir comme boot la 1ere clef
- booter
- sélectionner l'install a partir Hard Drive et selectionner la 2eme clef
- suivre les étapes habituelles...

Ensuite, telecharger le kernel cooker, madwifi & co:
wget "ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/devel/cooker/i586/media/main/release/kernel-laptop-2.6.24.3*rpm"
wget "ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/devel/cooker/i586/media/main/release/*dkms*"
wget "ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/devel/cooker/i586/media/main/release/*madwifi*"
wget "ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/official/2008.0/i586/media/non-free/release/dkms-*rpm"
wget "ftp://ftp.lip6.fr/pub/linux/distributions/Mandrivalinux/official/2008.0/i586/media/non-free/release/madw*rpm" -m

- installer le kernel, dkms, dmks-minimal et dkms-madwifi
- rebooter sur le nouveau kernel
- le module pour l'ethernet filaire est atl2 et le module pour le wifi: ath_pci

04/07/2007 12:57

Cyrus Imap: deleteaclmailbox: group:a Invalid identifier

The solution: temporarily add the group in /etc/groups