Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 >

lundi 17 octobre 2011

Xen - Intel VT-d sur Core 5 2400 / VGA PassThrough sur Carte NVIDIA EVGA GTX 460 SE 1024

Après mes différents articles concernant la carte MSI GT 440, voici un billet sur une carte de la série des GTX 460: Evga GTX 460 SE. Comme toujours le domU utilisé sera un Windows XP 64 bits.

Carte EVGA GTX 460 SE PCI EXPRESS 2.0 GDDR5 auquel on souhaite accéder nativement depuis une machine virtuelle sous Windows XP 32/64 bits.

Kernel 3.1.0-rc9

Profitant du support de Xen en tant que dom0 depuis la version 3.0 du kernel, j'ai donc effectué mes tests sur cette version. Voici mon fichier de configuration

Pour rappel, à partir du noyau 3.1, la gestion pour VGA PassThrough est grandement simplifié.

Concernant le support pour Intel vt-d, on aura les informations suivantes
root@mercury:~# xl dmesg | grep -E '(Intel|virtualisation )'
(XEN) Intel machine check reporting enabled
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Shared EPT tables not enabled.
(XEN) I/O virtualisation enabled
Rappel: il faut que
  • le processeur supporte Vt-d
  • que le support soit activé dans le BIOS.
Pour ce dernier point, on pourra par voir le billet concernant l'activation de VT-d dans la BIOS

Nvflash: Extraction VGA BIOS

On pourrait utiliser nvlfash installé sur une clé USB et booter dessus. Cependant il existe une autre méthode. On procède à l'extraction depuis un domU sous Windows XP avec la carte graphique rattachée au domU MAIS avec gfx_passthru=0. Ainsi la carte graphique apparaît en tant que carte graphique secondaire. Dans mon fichier de configuration, '01:00.0' correspond à ma carte graphique NVIDIA.
builder='hvm'
memory = 3072
shadow_memory = 1024
name = "mercury-xen03"
vcpus='4'
vif = [ 'bridge=eth0,mac=00:14:3e:00:8f:c2' ]
disk = [
		'phy:/dev/xenvg/mercury-xen03-disk-6,xvda,w',		
		'file:/opt/Xen/CD_DVD/WindowsDeveloperPreview-64bit-English.iso,xvdc:cdrom,r',
         ]
boot="cd"
sdl=0
vnc=1
vnclisten="0.0.0.0"
vncconsole=1
vncpasswd=''
acpi=1
apic=1
xen_extended_power_mgmt=1
pae=1
arch='x86_64'
hpet = 1
hap = 1
viridian = 1
monitor=1
serial='pty'
keymap='fr'
soundhw = "all"
audio="on"
ne2000=0
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'
xen_platform_pci=1 
gfx_passthru=0
pci  = [ '01:00.0','00:1a.0','00:1d.0' ]
pci_msitranslate = 1
pci_power_mgmt = 1
  • On installe nvlfash 5.100.0.1 sur le domU
  • On ouvre ensuite une fenêtre DOS et on tape nvlfash --save vgabios-pt.rom
On sera surpris que la carte soit reconnue comme une carte GTS 455 mais il ne faut pas en tenir compte.

Remarque: il faudra bien sûr penser à récupérer le fichier vgabios-pt.rom

Compilation

hg clone -r 23965 http://xenbits.xensource.com/hg/staging/xen-unstable.hg/ xen-test
cd xen-test/tools
make -j4
make clean
cd ..
On télécharge les patchs et on patche
root@mercury:/opt/tmp/xen-test# wget -q http://www.davidgis.fr/download/gfx_patchs_gtx-460-se-evga.tar.bz2
root@mercury:/opt/tmp/xen-test# tar xjf gfx_patchs_gtx-460-se-evga.tar.bz2 
root@mercury:/opt/tmp/xen-test# for file in $(ls gfx_patchs_gtx-460-se-evga/*.patch);do patch -p1 < $file;done
patching file tools/firmware/hvmloader/acpi/dsdt.asl
patching file tools/firmware/hvmloader/hvmloader.c
patching file tools/firmware/hvmloader/Makefile
patching file tools/ioemu-remote/hw/pass-through.c
patching file tools/firmware/hvmloader/pci.c

On copie le fichier vgabios-pt.rom (voir section "Extraction VGA BIOS") à l'endroit requis en n'oubliant pas de le renommer en vgabios-pt.bin

cp /path/to/vgabios-pt.rom tools/firmware/vgabios/vgabios-pt.bin
On compile et on installe
make -j4 xen tools stubdom 
make -j4 install-xen && make -j4 install-tools PYTHON_PREFIX_ARG= && make -j4 install-stubdom

démarrage du domU (PCI Stub)

  • On récupère l'identifiant associé à la carte graphique en utilisant lspci
    root@mercury:~# lspci |grep VGA
    01:00.0 VGA compatible controller: nVidia Corporation Device 0e23 (rev a1)
  • On récupère l'autre identifiant
    root@mercury:~# lspci -n -s 01:00.0
    01:00.0 0300: 10de:0e23 (rev a1)
  • Il ne reste plus qu'à lancer le domU
    root@mercury:~# echo "10de 0e23" > /sys/bus/pci/drivers/pci-stub/new_id
    root@mercury:~# echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
    root@mercury:~# echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/bind
    root@mercury:~#  xl   create /etc/xen/machines/mercury-xen03.cfg

Informations sur le domU

Le pilote NIVIDIA 275.33 (Windows 32/64 bits) convient parfaitement. Voici quelques screenshots en utilisant les logiciels CPU-Z et GPU-Z





jeudi 13 octobre 2011

Slony 2.1.0 RC2 is out...Slony 2.1.0 pour bientôt

Slony 2.1.0 RC2 est sorti ce mardi 2011/10/12. Rien de bien notable à signaler par rapport à cette release. La grande nouvelle semble être que si d'ici une semaine (je tablerai moi au pire sur deux semaines), aucun problème sérieux n'est remonté, Singer pense rendre officiel la publication de Slony 2.1.0.

Cet été sur son blog, il avait fait mention des nouveautés attendus par la version 2.1.

Je pense que celà devrait faciliter grandement l'administration avec Slony. Il faudra au passage tester tout celà avec au moins PostgreSQL 8.4

vendredi 7 octobre 2011

FFmpeg/Dialog:: Barre de progression de conversion vidéo sous Shell grâce à Dialog

Pour les habitués de FFmpeg, avoir une petit barre de progression vidéo, c'est toujours plus intéressant et plus ergonomique que les informations de conversion renvoyées par FFmpeg. J'ai donc tenté de voir s'il existait des solutions à ce sujet.

J'avais voulu le faire en testant le projet http://ffmpegprogress.sourceforge.net.. Manque de bol ca n'a pas marché sur mon serveur.

Finalement je me suis résigné à pouvoir le faire depuis dialog. Comme mon but est d'avoir une petite barre de progression pour la conversion, j'ai finalement trouvé une petite astuce à http://ftp.traduc.org/doc-vf/gazette-linux/html/2004/101/lg101-P.html. En effet, sur cette page une astuce est proposée pour simuler une bar de progression.

Du coup, je me suis fait un petit script shell en recourant donc à dialog et à l'astuce proposée .

1. Pré-requis

  • Il faut installer dialog
    apt-get install dialog
  • avoir Ffmpeg déjà installé

2. Exemple





3. Le script shell utilisé

Voici le script
FFMPEG_PATH="/opt/multimedia-testing-4/bin/ffmpeg";
FFMPEG_INPUT="/www/test/0.1-Beta/janadefi-daywith03.wmv";
FFMPEG_OUTPUT="/www/test/0.1-Beta/janadefi-daywith03.mp4";
FFMPEG_ARGUMENTS="-acodec libaacplus -ac 2 -ar 44100 -ab 64k -vcodec libx264 -crf 22  -threads 0 -b 550k -qmin 10 -qmax 30 -threads 0 -y";


FFMPEG_LOG="/tmp/ffmpeg_$$.log";
TIME_LOG="/tmp/ffmpeg_times_$$.log";

${FFMPEG_PATH} -i ${FFMPEG_INPUT} ${FFMPEG_ARGUMENTS} ${FFMPEG_OUTPUT} > ${FFMPEG_LOG} 2>&1 &

sleep 4;

Duration=$(grep Duration ${FFMPEG_LOG} | awk '{print$2}'|awk -F ":" '{printf("%d",$1*60+$2*60+$3);}')

Pourcentage=0;

(
while [ ${Pourcentage} -lt 100 ]
do
	grep 'time=' ${FFMPEG_LOG} > ${TIME_LOG}; 

	sed -i "s:.*time=::g;s: .*::g" ${TIME_LOG};

	OnTime=$(awk -F ":" '{printf("%d",$1*60+$2*60+$3);}' ${TIME_LOG});

	Pourcentage=$(awk -v OnTime=${OnTime} -v Duration=${Duration} '{printf("%d\n",OnTime/Duration*100);}' ${TIME_LOG});

	echo "${Pourcentage}"
	echo "XXX"
	echo "Informations\n\n* Input [${FFMPEG_INPUT}]\n  Duration = ${Duration} secondes\n  Size = $(du -hs ${FFMPEG_INPUT} | awk '{print$1}')\n\n* Output [${FFMPEG_OUTPUT}]\n  Duration = ${OnTime} secondes\n  Size = $(du -hs ${FFMPEG_OUTPUT} | awk '{print$1}')"
	echo "XXX"

	sleep 1;
done
) |
/usr/bin/dialog --title "FFMPEG Conversion" --gauge "Progress Bar FFmpeg" 20 90 0
Remarques concernant une éventuelle adaptation du script
  1. La variable FFMPEG_PATH est à adapter à votre path vers votre FFmpeg;
  2. sleep 4 a été mis afin de marquer une courte pause le temps que FFmpeg se lance pour effectuer les premières secondes de conversion;
  3. Pour gtkdialog, les valeurs 20 90 0 sont à adapter aux dimensions de votre fenêtre de terminal.

lundi 3 octobre 2011

Mug personalisé d'un DBA PostgreSQL

1. Photos du mug

Un mug pour attaquer comme il faut la journée quand on sirote le premier café du matin au boulot (le premier d'une longue série), notamment quand on a des bases à reloader ou des réplications à faire. Au lieu de me contenter d'un simple mug avec les logos de PostgreSQL et de Slony donnant l'allure d'un mug corporate et hyper-classique, deux photos supplémentaires de Jana Defi renforcent la pertinence de la personnalisation.

Mug: Côté gauche

Mug: Vu du mileu

Mug: Côté droit

2. Choix des photos?

  1. PostgreSQL au centre car c'est ce qui m'a permis de perser professionnellement depuis 2003! Slony car c'est sur quoi je travaille aujourd'hui.
  2. Les deux photos de Jana Defi:
    • Cliché artistique prise par un photgraphe professionnel, dénotant une petite touche artistique pour me rappeler que même au niveau professionnel, je peux suis très rigoureux dans mon travail et tentent de livrer un travail de qualité. Expérience accumulée au cours de plusieurs années (...)
    • Photos sombres qui ne dévoilent pas tout car comme tout bon DBA qui se respecte, j'ai aussi mes recettes de cuisine (tuning etc...) que je ne dévoile pas forcément.
That's all.