Установка VirtualBox+usb под Opensuse 11.3

Установка VirtualBox на OpenSuSe 11.3

Привет возникла необходимость установить на линукс вирталбокс =))), что б работал USB и так приступим.

Оговорюсь сразу, речь пойдет об установке проприетарной версии VirtualBox, а не бесплатной. Бесплатная, она же "OSE" (Open Source Edition) содержит в себе ряд ограничений: нет поддержки USB, отсутствует встроенный RDP-сервер. Но зато установить ее проще простого: она по умолчанию входит в комплект всех современных популярных дистрибутивов. С другой стороны, проприетарная версия (она называется просто "VirtualBox", без "OSE") бесплатна только для личного использования и ознакомительных целей. Выпускается под лицензией PUEL.

Собственно, установка "небесплатной" версии мало чем отличается от установки открытой (OSE), поскольку на офсайте всегда можно скачать RPM-ку с последней версией приложения. Но есть два маленьких затыка:

  • добрый дядя-мэнтейнер не собрал заранее модуль поддержки виртуализации для вашей версии ядра, и компилировать вам его придется самостоятельно;
  • Из-за того, что VirtualBox использует usbfs для доступа к USB-устройствам, а запускается он (VirtualBox), как правило, от имени непривилегированного пользователя, то часто ему тупо не хватает прав и USB-устройства внутри виртуальных машин недоступны. С этим можно бороться, немного подправив fstab.

Итак, чтобы конкретно в OpenSuSe 11.3 установка "коммерческого" VirtualBox-а прошла без сучка и задоринки, необходимо проделать следующее.

  1. До установки VirtualBox-а убедиться в том, что в системе установлены пакеты "make", "gcc" и "kernel-devel" вместе со всеми их зависимостями. Если таковые отсутсвтуют, то нужно установить их. Они понадобятся для сборки модуля ядра.
  2. Собственно, скачать с офсайта RPM-ку, соответсвтующую архитектуре системы (i386 или amd64) и установить (к примеру, "rpm -Uvh VirtualBox-4.1-4.1.6_74713_openSUSE113-1.i586.rpm"). Во время установки init-скрипты автоматически попытаются осуществить сборку и загрузку модуля.
  3. Убедиться, что модуль "vboxdrv" успешно собрался и загрузился. Так, вывод "lsmod | grep vboxdrv" должен показывать что-то вроде
    ~> lsmod | grep vboxdrv
    vboxdrv 1806531 2 vboxnetadp,vboxnetflt
  4. Дальше VirtualBox по сценарию должен был создать системную группу "vboxusers". Смотрим, какой gid присвоен этой группе. Например, так:
    fol@beast:/> getent group vboxusers
    vboxusers:!:123:

    У меня он равен 123, у вас может быть другим.

  5. Идем в fstab (/etc/fstab) и если видим там строку вида
    usbfs /proc/bus/usb usbfs noauto 0 0

    то редактируем ее. Если нет, то добавляем так, это одна длинная строка:

    none /proc/bus/usb usbfs auto,busgid=123,busmode=0775,devgid=123,devmode=664 0 0

    где вместо числа "123" нужно подставить тот gid, который мы выяснили на шаге номер 4.

  6. Потом добавляем себя-любимого в группу "vboxusers". Иначе не сможем воспользоваться чудо-технологиями виртуализации.
    usermod -A vboxusers fol

    (Вместо "fol", разумеется, нужно подставить имя своей учетной записи.)

  7. Дальше придется либо полностью перезагрузить "реальный" компьютер (что проще), либо выйти-войти в систему (чтобы обновились привилегии для пользователя) плюс перемонтировать файловую систему usbfs (чтобы обновились права доступа). Все, можно пользоваться.
  8. Ура РАБОТАЕТ!!! =)))