среда, 24 октября 2007 г.

Kubuntu 7.10, VirtualBox, usbfs.

Если я правильно помню, виртуалные машины типа Vmware и VirtualBox работают с usb-устройствами через /proc/bus/usb, а все последние дистрибутивы Linux используют библиотеку libusb. Поэтому VirtualBox, поставленная на свежую инсталляцию kubuntu 7.10, отказалась видеть не только usb-устройства, но и вообще подсистему usb.
Но, как говорится: что один человек сломал, другой завсегда починить сможет. Или наоборот :)

Начинаем чинить.

Правим файл /etc/init.d/mountdevsubfs.sh
Находим закоментированный блок:

#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb
И раскоментируем нужные строки:

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

После перезагрузки у нас появится информация о usb подсистеме в /proc/bus/usb.
Теперь VirtualBox видит наши usb-устройства, но не может их подключить - прав мало, мы же не под рутом работаем.
За подключение всяких устройств отвечает udev, он же определяет и права доступа к ним.
Правим файл пермишенов /etc/udev/rule.d/40-permissions.rules. Находим строку, отвечающую за монтирование usb devices:

# USB devices (usbfs replacement)
SUBSYSTEM=="usb_device", MODE="0664"
И меняем с mode="0664" на mode="0666".
Перегружаем udev
sudo /etc/init.d/udev restart

После этих манипуляций VirtualBox видит все usb-устройства и может с ними работать.

9 комментариев:

Анонимный комментирует...

А в убунте 7.10 также будет?

klek комментирует...

Да. Эти настройки не зависят от оконного менеджера.

Анонимный комментирует...

ult dtcnb

Анонимный комментирует...

У меня всё равно ничего не видет :(
ни устройства, ни подсистему USB.
В качестве гостевой ОС - WinXP SP2 Может в ней надо что настроить?

Анонимный комментирует...

хм, у меня тоже никаких изменений ((

Анонимный комментирует...

никаких изменений ((
юзб видедся в машине, до запуска гостевой. потом неактивно (

Миша комментирует...

большое спасибо! все заработало!
правда в файлике не было закоментированных строк, поэтому их пришлось вручную вбивать(ubuntu 9.04)

elka комментирует...

У меня тоже в этом файле /etc/init.d/mountdevsubfs.sh нет закомментированных сторк. Я вписала их сама. Но файл не сохраняется.
Пишет: "Недостаточно прав для сохранения файла.Убедитесь в правильности введенного адреса и попробуйте еще раз."
У меня Убунту 9.04. Виртуал Бох 2.1.0
В свойствах машины ставлю галочку фильтра своей флешки.Но ,когда запускаю ,внизу пишет(когда навожу на значок)ЮСБи устройство не подключено.

elka комментирует...

Захожу под своей учеткой. Под рутом не могу зайти. Пишет убедитесь в правильности регистра. Но я по всякому меняла и с заглавной буквы и все заглавными и все маленькими. И пароль на рута не знаю...Помогите кто чем может.