Сборка VirtualBox с интерфейсом Qt 3
Не любитель KDE4. Поэтому во всех популярных дистрибутивах, которые я установил на свой жёсткий диск, у меня графический рабочий стол KDE 3. Никаких проблем нет: ни с новым компилятором GCC 4.4, ни с ядром 2.6.34, ни с X-Server 1.8 - всё работает отлично! Программа Opera и менеджер печати у драйвера hplip тоже имеют Qt3-интерфейс, который прекрасно работает!
Захотел я сделать себе VirtulBox с Qt3, за компанию. Поискал, в какой версии этот интерфейс исключили из программы - выяснилось, что из 2.2. Но я могу и ошибаться: это нигде не указано явно. Какая версия последняя перед 2.2? 2.1.4. Компилируем её!
Я разочаровался в интерфейсе Qt3: лучше бы использовал тот, что на Qt4, он красИвее. Интерфейс с Qt4 не требует установленного KDE4. Но больше всего разочаровывает сам процесс компиляции! Проблемы две: новое ядро, новый компилятор. Хотя в итоге всё скомпилировалось и работало (в том числе и 64-битные гостевые системы), я исправил и исходном коде VirtualBox 9 ошибок! Первые легко искались Google-ом, а последние не искались почти совсем. Видимо, я - единственный «джедай», дошедший до конца. Спасибо удаче и официальному руководству по портированию старых программ на GCC 4.4 размером в одну страницу.

Я решил составить патч, включающий в себя все эти исправления. Итак, ядро Linux 2.6.34, компилятор GCC 4.4, VirtualBox 2.1.4:
Ссылка на исходный код программы: http://dlc.sun.com.edgesuite.net/virtualbox/2.1.4/VirtualBox-2.1.4-3-OSE.tar.bz2
Ссылка на патч: http://bugs.gentoo.org/attachment.cgi?id=240771
Кроме наложения патча, перед компиляцией вам необходимо выполнить эти команды:
# ln -s /usr/src/linux/include/generated/autoconf.h /usr/src/linux/include/linux/autoconf.h # mv /usr/include/linux/swab.h /usr/include/linux/swab2.h # cd VirtualBox-2.1.4_OSE/src/VBox/Devices/Storage # cp swab.h /usr/include/linux/swab.h
Первая команда вам не нужна, если у вас не Gentoo, или Gentoo и не сгенерированное автоматически ядро системы. Ещё после компиляции выполните вот эти команды:
# rm /usr/include/linux/swab.h # mv /usr/include/linux/swab2.h /usr/include/linux/swab.h
Руководство по скорке программы из исходного кода:
http://www.virtualbox.org/wiki/Linux%20build%20instruction. Как собирать, вкратце. Необходимо распаковать исходный код, наложить мой патч, потому что без даже скрипт configure завершится ошибкой. Первым действием нас просят выполнить ./configure --disable-hardening, но нам нужно Qt3! И команда завершится ошибкой: "не найден Qt4!". Поэтому изменим команду, для моего компьютера она выглядит так:
$ ./configure --disable-hardening --disable-qt4 --disable-pulseПоследний параметр означает, что программа будет компилироваться без поддержки PulseAudio - я не устанавливаю его себе и не хочу.
Затем команды:
$ source ./env.sh $ kmk all
Если вы хотите видеть подробные сообщения об ошибках работы виртуальной машины, последняя команда должна выглядеть так: kmk BUILD_TYPE=debug
Готово! Теперь заходим в каталог с скомпилировавшейся командой (out/linux.*, и там дальше), а в нём в src. Командуем make, затем от имени суперпользователя make install. Это установит модули ядра (драйверы).
Запустить программу можно, например, выполнив команду, зайдя в директорию ниже (cd ..):
$ LD_LIBRARY_PATH=. ./VirtualBox3Если программа не запускается не от имени суперпользователя, значит, пользователя необходимо добавить в группу пользователей виртуалбокса. Если и от имени суперпользователя не получается, может помочь команда:
# modprobe vboxdrvОт имени суперпользователя. Ну что же, я научился писать скрипты! Это был мой первый скрипт. Теперь нужно научиться писать ebuild, чтобы любой пользователь KDE3 мог запустить VirtualBox с Qt3 в режиме автоматической установки.
| Вложение | Размер |
|---|---|
| erwer7.png | 230.84 кб |
- 1329 просмотров
Страница для печати

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