вторник, 4 сентября 2012 г.

Применение патча 0029-Integrating-Dynamips-and-GNS3-UDP-tunnels-Patches.patch для QEMU 1.0 в Ubuntu 12.04

Без данного патча подключить в GNS3 (в моем случае это версия GNS3-0.8.2-BETA) такие полезняшки как Cisco ASA и JunOS (Olive) router можно, но сложно. На просторах Интернета куча статей и HowTo по данному вопросу, однако коротко и ясно все решение было изложено у коллеги: http://kaktyc.wordpress.com/2012/05/18/запуск-qemu-хоста-в-gns3/.
В процессе использования приведенных инструкций проявилась и парочка граблей. В целом, порядок действий такой:
- выделяем каталог под сборку пакета - mkdir gns3-qemu
- проверяем версию QEMU на нашей машине (грабли №1 - нужна версия 1.0)
стоит обратить внимание, что просто команды qemu (как было раньше) уже нет, варианты:
qemu [Tab]
qemu-ga             qemu-ifup           qemulator           qemu-system-i386   
qemu-i386           qemu-img            qemu-launcher       qemu-system-x86_64 
qemu-ifdown         qemu-io             qemu-nbd            qemu-x86_64
$ qemu-i386 -version
qemu-i386 version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
$ qemu-system-i386 -version
QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
Если версия ниже - необходимо проапгрейдиться до 1.0, для "правильной" версии устанавливаем девелоперские инструменты и сорцы,
- sudo apt-get build-dep qemu-kvm ,
- apt-get source qemu-kvm ,
- благодаря ссылке коллеги kaktyc'а о том, что Gentoo'шный патч подходит, качаем его:
wget -c http://dev.gentoo.org/~lu_zero/distfiles/qemu-1.0-patches.tar.xz
там также есть патчи qemu-1.1.0-patches.tar.xz и qemu-1.1.0-r1-patches.tar.xz - более поздние, но они нам не подходят,
- распаковываем и применяем нужный патч на сорцы:
tar xvJf qemu-1.0-patches.tar.xz
 cd qemu-kvm-1.0+noroms/
 patch -p1 < ../patches/0029-Integrating-Dynamips-and-GNS3-UDP-tunnels-Patches.patch
- теперь создаем deb пакет с примененным патчем:
dpkg-buildpackage -b -uc -nc -j4
- в результате будут созданы два! deb пакета (в моем случае, архитектуры i386, у коллеги amd64):
qemu_1.0+noroms-0ubuntu14.1_i386.deb и qemu-kvm_1.0+noroms-0ubuntu14.1_i386.deb
Первый содержит:
dpkg --contents qemu_1.0+noroms-0ubuntu14.1_i386.deb
drwxr-xr-x root/root         0 2012-09-02 00:55 ./
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/share/
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/share/doc/
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/share/doc/qemu/
-rw-r--r-- root/root     19020 2012-09-02 00:48 ./usr/share/doc/qemu/changelog.Debian.gz
-rw-r--r-- root/root      4079 2012-09-02 00:48 ./usr/share/doc/qemu/copyright
то есть только раздел doc, а вот второй:
dpkg --contents qemu-kvm_1.0+noroms-0ubuntu14.1_i386.deb
...
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/bin/
-rwxr-xr-x root/root     13720 2011-12-04 14:38 ./usr/bin/kvm_stat
-rwxr-xr-x root/root    987712 2012-09-02 00:55 ./usr/bin/qemu-i386
-rwxr-xr-x root/root    416616 2012-09-02 00:55 ./usr/bin/qemu-io
-rwxr-xr-x root/root   1164148 2012-09-02 00:55 ./usr/bin/qemu-x86_64
-rwxr-xr-x root/root   3734788 2012-09-02 00:55 ./usr/bin/qemu-system-x86_64
-rwxr-xr-x root/root   3566468 2012-09-02 00:55 ./usr/bin/qemu-system-i386
-rwxr-xr-x root/root    124552 2012-09-02 00:55 ./usr/bin/qemu-ga
...
Его-то нам и нужно установить:
- sudo dpkg -i qemu-kvm_1.0+noroms-0ubuntu14.1_i386.deb
В результате патч применится.
Непосредственно в самом GNS3 для запуска QEMU в разделе Edit / Preferences / Qemu / General Settings / Path to Qemu указываем не просто qemu, а qemu-system-i386 (Грабли №2).
Теперь тест - Test Settings пройдет успешно.

Комментариев нет:

Отправить комментарий