[Comm] Доступ к USB в контейнере:
Kostarev Alexey
=?iso-8859-1?q?kaf_=CE=C1_nevod=2Eru?=
Пт Дек 21 15:15:34 MSK 2007
Vitaly Lipatov wrote:
>On 19 декабря 2007, Kostarev Alexey wrote:
>
>
>>Slava Dubrovskiy wrote:
>>
>>
>>>Kostarev Alexey пишет:
>>>
>>>
>>>>Можно ли стартовать haspd в контейнере и обеспечить ему
>>>>доступ к USB-портам или это в принципе невозможно?
>>>>
>>>>
>>>Ну передаете в контейнер устройство USB и думаю должно
>>>заработать. Диск же передается и нормально работает.
>>>
>>>
>>Мне в контейнере необходим доступ к /proc/bus/usb/devices
>>
>>
>Всё же напишите на support на etersoft.ru
>И контейнер сделают, и проверят вашу ситуацию, и посоветуют как
>быть.
>Ну или мы от вас научимся, если сами решите ;)
>
>
Проблему решил, правда не скажу, что корректно...
Итак основная проблема для демона aksusbd в контейнере была в пробросе в
контейнер каталога /proc/bus/usb/
Сами устройства /dev/... ей не нужны, окромя tty и null которые в
контейнере есть.
mount --rbind мне в руки НО Я НИКАК НЕ СМОГ СМОНТИРОВАТЬ /proc/bus
основной системы в /proc/bus контейнера
Команда
mount --rbind /proc/bus /var/lib/vz/root/xxx/proc/bus
заканчивались ничем по одной постой причене - файловая система proc не
позволяет создавать ни каталоги ни файлы.
НИКТО НЕ ПОМОЖЕТ МНЕ ОБОЙТИ ЭТО ОГРАНИЧЕНИЕ?
Для пробы я попытался монтировать каталог /proc/bus основной системы на
каталог /root/bus контейнера.
mount --rbind /proc/bus /var/lib/vz/root/xxx/root/bus
Монтирование прошло успешно, файл
bus/usb/devices успешно читается, каталоги bus/usb/001, .... существуют
и доступны в контейнере.
Теперь появилась проблнма N2 - как заставить aksusbd читать файлы из
каталога /root/bus/usb/ а не /proc/bus/usb/
Я отписал письмо в поддержку etersoft с просьбой добавить в демон
aksusbd флаг, позволяющий указывать расположение данного каталога
Насколько я знаю у команды aksusbd исходники открыты, закрыты лишь
alladin-библиотека (хотя может я ошибаюсь)
Тем не менее не дождавшись в течении суток ответа я решил действовать
хакерским способом -:)
подправил в бинарном коде строки /proc/usb/ на /root/usb/
После этого демон aksusbd задышал
Все остальные сервисы (hasplm, ...) запустились, правда я их не проверял.
Команда eterkeytest сообщила, что все alladin-ключи видны, правда
сообщает с небольшой задержкой.
Причем у меня сложилась забавная ситуация - с одними и те ми же ключами
работают сразу два менеджера aksusbd - основной и в контейнере. Но на
запросы о сетевых ключах, отвечает похоже один из них.
Мне важно было, чтобы в контейнере был виден локальный ключ.
На текущий момент у меня остались следующие вопросы:
1. Можно ли таки примонтировать каталог в /proc/
2. В каком месте при запуске контейнера вставить скрипт, монтирующий
необходимый мне каталог из основной системы
до запуска /etc/init.d/-скриптов контейнера
3. Как отмонтировать примонтированный ресурс
Попытка отмонтировать его при работающем контейнере не проходит, хотя с
этом каталогом уже никакой процесс не работает
(проверял через fuser -v). После останова контейнера каталога
/var/lib/vz/root/xxx / уже не существует.
Каталог /var/lib/vz/privzte/... в данной ситуации не помогает - в него
не монтируется /proc/
Такое ощещение, что отмонтирование надо производить в момент оставнова
после всех сервисов контейнеров но до окончательного удаления контейнера.
Где бы об этом почитать?
--
С Уважением
Директор ООО НЕВОД
Костарев А.Ф.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : kaf.vcf
Тип : text/x-vcard
Размер : 202 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/community/attachments/20071221/8a40a5a4/attachment-0002.vcf>
Подробная информация о списке рассылки community