Спин-блокировки используются в контексте прерывания, где сон не позволяется. Они опрашивают в жестком цикле, не делая ничего иного, пока ресурс не получен. Главным образом используемый в ISRs, и более безопасный и эффективный.
Семафоры могут использоваться в контексте процесса, где сон в порядке.
Драйвер ядра VirtualBox Linux (vboxdrv) или не загружается или существует проблема разрешения с/dev/vboxdrv. Повторно установите модуль ядра путем выполнения
'/etc/init.d/vboxdrv setup'
как корень. Пользователи Ubuntu или Fedora должны установить пакет DKMS сначала. Этот пакет отслеживает ядро Linux, изменяет и перекомпилировал vboxdrv модуль ядра при необходимости.
Вы должны иметь /dev/vboxdrv
принадлежавший группе "vboxuser" и пользователю, начинающему контейнер в той группе. Добавьте, что пользователь группе затем удостоверяется, что существуют полномочия группы (т.е. chmod 660 /dev/vboxdrv
).
На вашем хосте LXC (я предполагаю Ubuntu здесь):
Установите VirtualBox-DKMS
, Linux-Generic
, СУЩЕСТВЕННЫЕ
Пакеты и проверка модулей ядра загружаются:
MyHost $ sudo /etc/init.d/virtualbox status
Модули ядра VirtualBox загружены.
Получите номера устройств VirtualBox (10, 55/56/57 в моем случае):
MyHost $ ls -la / dev | Greep Vbox.
CRW -------- 1 корневой корня 10, 57 февраля 25 08:22 VoxDrv
CRW -------- 1 корневой корня 10, 56 февраля 25 08:22 vboxdrvu
CRW -------- 1 корневой корня 10, 55 февраля 25 08:22 vboxnetctl
Возьмите номера узлов и добавьте в ваш гостевой конфигурацию LXC ( / var / lib / lxc / myguest / config
):
## VirtualBox
lxc.cgroup.devices.are = C 10:57 RWM
lxc.cgroup.devices.allow = C 10:56 RWM
lxc.cgroup.devices.allow = C 10:55 RWM
Перезапустите гость LXC, установите пакет VirtualBox
и создайте узлы устройства:
MyGuest $ sudo mknod -m 600 / dev / vboxdrv c 10 57
myguest $ sudo mknod -m 600 / dev / vboxdrvu c 10 56
myguest $ sudo mknod -m 600 / dev / vboxnetctl C 10 55
Убедитесь, что VirtualBox на госте может видеть модули ядра:
MyGuest $ sudo /etc/init.d/virtualbox status
Модули ядра VirtualBox загружены.
Нет необходимости устанавливать виртуальный бокс на вашем хост-компьютере, если ваш контейнер компилирует модуль ядра, вы можете просто загрузить его во время предварительный сценарий на контейнере LXC. Для большей безопасности вы можете скопировать модули ядра VBox на свой хост перед загрузкой.