ubuntuにVirtualBoxをインストール

自宅のWindows10マシンが昇天したので、Ubuntuマシンとして人生を再スタート。
Dockerがあればたいていは困らないのだが、あえて VirtualBox を導入。

最新がダウンロードできるvirtualbox.org へ飛んで、「​Ubuntu 22.04」を選択してダウンロード。

$ sudo dpkg -i virtualbox-7.0_7.0.14-161095~Ubuntu~jammy_amd64.deb

残念ながら下記のようなエラーで正常に導入できなかったので、

dpkg: 依存関係の問題により virtualbox-7.0 の設定ができません:
 virtualbox-7.0 は以下に依存 (depends) します: libqt5help5 (>= 5.15.1) ...しかし:
  パッケージ libqt5help5 はまだインストールされていません。
 virtualbox-7.0 は以下に依存 (depends) します: libqt5opengl5 (>= 5.0.2) ...しかし:
  パッケージ libqt5opengl5 はまだインストールされていません。
 virtualbox-7.0 は以下に依存 (depends) します: libqt5printsupport5 (>= 5.0.2) ...しかし:
  パッケージ libqt5printsupport5 はまだインストールされていません。
 virtualbox-7.0 は以下に依存 (depends) します: libqt5x11extras5 (>= 5.6.0) ...しかし:
  パッケージ libqt5x11extras5 はまだインストールされていません。
 virtualbox-7.0 は以下に依存 (depends) します: libqt5xml5 (>= 5.0.2) ...しかし:
  パッケージ libqt5xml5 はまだインストールされていません。

エラーの内容から依存関係で必要なものをまとめて導入。

$ sudo apt-get install -y libqt5help5 libqt5opengl5 libqt5printsupport5 libqt5x11extras5 libqt5xml5 libqt5sql5

最終的に

virtualbox-7.0 (7.0.14-161095~Ubuntu~jammy) を設定しています ...
グループ `vboxusers' (GID 137) を追加しています...
完了。
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.
libc-bin (2.35-0ubuntu3.6) のトリガを処理しています ...

ということで、/var/log/vbox-setup.log の内容を確認。

$ cat /var/log/vbox-setup.log
Building the main VirtualBox module.
Error building the module:
make V=1 CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/6.5.0-25-generic/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j8 m odules
make[1]: 警告: 副次 make で -j8 を強制指定しました: jobserver モードをリセットします.
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using:
make -f ./scripts/Makefile.build obj=/tmp/vbox.0 need-builtin=1 need-modorder=1
# cmd_mod /tmp/vbox.0/vboxdrv.mod
  printf '%s
'   linux/SUPDrv-linux.o SUPDrv.o SUPDrvGip.o SUPDrvSem.o SUPDrvTracer.o SUPLibAll.o common/string/strformatrt.o combined-agnostic1.o combined-agnostic2.o combined-os-specific.o | awk '!x[$0]++ { print("/tmp/vbox.0/"$0) }' > /tmp/vbox.0/vboxdrv.mod
# CC [M]  /tmp/vbox.0/linux/SUPDrv-linux.o
  gcc-12 -Wp,-MMD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d -nostdinc -I./arch/x86/include -I./arch/x86/include/generated  -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -I./ubuntu/include -include ./include/linux/compiler_types.h -D__KERNEL__ -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -Wall -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -mno-80387 -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-main -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fzero-call-used-regs=used-gpr -pg -mrecord-mcount -falign-functions=16 -Wvla -Wno-pointer-sign -Wno-maybe-uninitialized -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -g -gdwarf-5 -include /tmp/vbox.0/include/VBox/SUPDrvMangling.h -fno-omit-frame-pointer -fno-pie -Wno-declaration-after-statement -I./include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -D__KERNEL__ -DMODULE -DRT_WITHOUT_PRAGMA_ONCE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX_WITHOUT_EFLAGS_AC_SET_IN_VBOXDRV -DIPRT_WITHOUT_EFLAGS_AC_PRESERVING -DVBOX_WITH_64_BITS_GUESTS -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_AMD64  -fsanitize=bounds-strict -fsanitize=shift -fsanitize=bool -fsanitize=enum  -DMODULE  -DKBUILD_BASENAME='"SUPDrv_linux"' -DKBUILD_MODNAME='"vboxdrv"' -D__KBUILD_MODNAME=kmod_vboxdrv -c -o /tmp/vbox.0/linux/SUPDrv-linux.o /tmp/vbox.0/linux/SUPDrv-linux.c   ; ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --sls --stackval --static-call --uaccess --prefix=16   --module /tmp/vbox.0/linux/SUPDrv-linux.o
/bin/sh: 1: gcc-12: not found
make[2]: *** [scripts/Makefile.build:251: /tmp/vbox.0/linux/SUPDrv-linux.o] エラー 127
make[1]: *** [Makefile:2039: /tmp/vbox.0] エラー 2
make: *** [/tmp/vbox.0/Makefile-footer.gmk:133: vboxdrv] エラー 2

エラーの内容は「gcc-12: not found」ということなので、 gcc-12 を導入。

$ sudo apt install gcc-12

vbxconfig を再度実行。

$ sudo /sbin/vboxconfig

無事にインストールが完了したようです。
VirtualBox を起動してみると...

USBデバイスのエニュメレーションに失敗しました。
VirtualBox is not currently allowed to access USB devices. You can change this by adding your user to the 'vboxusers' group. Plea se see the user manual for a more detailed explanation.

というメッセージが出たのでユーザーのアクセス権を追加

$ sudo usermod -a -G vboxusers $USER

この後は、再起動が必要。 再起動後で、USBデバイスのエニュメレーションは無事に解決。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-04-21 (日) 10:18:43