veket官方网站论坛

自由飞翔 发表于 2022-2-2 09:20

v22.a系统编译virtualbox虚拟机方法

virtualbox虚拟机官网:https://www.virtualbox.org/
官网发布debina11的virtualbox-6.1_6.1.32-149290~Debian~bullseye_amd64.deb下载链接:
https://download.virtualbox.org/virtualbox/6.1.32/virtualbox-6.1_6.1.32-149290~Debian~bullseye_amd64.deb
以v22.a系统为例,安装该deb包后应用能启动,但并不能使用,究其原因,虚拟机缺少与系统内核适配的内核模块。因此,源码编译virtualbox虚拟机,获得其内核模块。
官网提供的virtualbox虚拟机编译方法:
https://www.virtualbox.org/wiki/Linux%20build%20instructions
一、准备工作
1.在基于debian的系统上,以下命令应该安装所需的软件包:
apt-get install acpica-tools chrpath doxygen g++-multilib libasound2-dev libcap-dev \
      libcurl4-openssl-dev libdevmapper-dev libidl-dev libopus-dev libpam0g-dev \
      libpulse-dev libqt5opengl5-dev libqt5x11extras5-dev qttools5-dev libsdl1.2-dev libsdl-ttf2.0-dev \
      libssl-dev libvpx-dev libxcursor-dev libxinerama-dev libxml2-dev libxml2-utils \
      libxmu-dev libxrandr-dev make nasm python3-dev python-dev qttools5-dev-tools \
      texlive texlive-fonts-extra texlive-latex-extra unzip xsltproc \
      \
      default-jdk libstdc++5 libxslt1-dev linux-kernel-headers makeself \
      mesa-common-dev subversion yasm zlib1g-dev
打包制作的VirtualBox-devx.sfs下载链接:
https://cloud.189.cn/web/share?code=AzmIVjqU3iAf
2.在基于debian的64位系统上,以下命令应该安装所需的附加包:
apt-get install ia32-libs libc6-dev-i386 lib32gcc1 lib32stdc++6
打包制作的ia32-libs_2020.05.27_amd64.pet下载链接:
https://cloud.189.cn/web/share?code=J73iMzuym2qm
3.系统内核源码,以K-5.16.0为例。
K-5.16.0_22.a.sfs下载链接:
https://cloud.189.cn/web/share?code=Iv2qY3UbEZRr
注意:编译virtualbox虚拟机时,v22.a系统内核也应为K-5.16.0
K-5.16.0内核下载链接:
https://cloud.189.cn/web/share?code=qqyqM3Qbea2u
4.virtualbox源码网址:http://download.virtualbox.org/virtualbox/
VirtualBox-6.1.32.tar.bz2下载链接:
http://download.virtualbox.org/virtualbox/6.1.32/VirtualBox-6.1.32.tar.bz2
二、编译VirtualBox
加载VirtualBox-devx.sfs、K-5.16.0_22.a.sfs,安装ia32-libs_2020.05.27_amd64.pet,解压缩VirtualBox-6.1.32.tar.bz2
1.切换到源文件的根目录并执行configure脚本(这里解压至/root/veket/VirtualBox-6.1.32)
$ cd veket/VirtualBox-6.1.32/
$./configure --disable-hardening
如果它找到了所需的一切,它将创建一个名为“AutoConfig”的文件。Kmk '包含到系统上各种工具的路径。此外,它还将创建一个名为env.sh的环境设置脚本。这个步骤只需要执行一次(如果构建工具设置发生了变化,可能需要重复执行,但请记住,两个输出文件都将被覆盖)。
2.当你想要构建VirtualBox时,你必须打开一个shell并获取生成的环境设置脚本'env.sh'
$source ./env.sh
3.要构建一个发布包,请键入
$kmk all
在/root/veket/VirtualBox-6.1.32/out/linux.amd64/release/bin/中生成所需的二进制文件
4.安装内核模块
如果构建没有加固,你可以直接从构建目标目录(cd veket/VirtualBox-6.1.32/out/linux.amd64/release/bin/src/)运行VirtualBox。但首先,您必须构建并安装VirtualBox内核模块,该模块的源代码将被复制到构建目标目录)。
所以,再次启动终端,输入以下内容:
$cd veket/VirtualBox-6.1.32/out/linux.amd64/release/bin/src
$make
$make install
至此,在/lib/modules/5.16.0/misc/生成vboxdrv.ko、vboxnetadp.ko、vboxnetflt.ko三个内核模块。
三、制作K-5.16.0内核的virtualbox虚拟机软件
1.提取virtualbox-6.1_6.1.32-149290~Debian~bullseye_amd64.deb后,在该包内新添加/lib/modules/5.16.0/misc/生成vboxdrv.ko、vboxnetadp.ko、vboxnetflt.ko。
2.修改启动菜单,应用启动命令改为kernel.sh,在virtualbox-6.1_6.1.32-149290~Debian~bullseye_amd64包的/usr/bin/路径添加kernel.sh
kernel.sh内容如下:(注意:脚本一定要赋权)
#!/bin/sh
VirtualBox
3.成果分享(sfs包)
VirtualBox _6.1.32-5.16.0.sfs下载链接:
https://cloud.189.cn/web/share?code=7vq2EfRV36Z3

愿望之翼 发表于 2022-2-3 20:17

看晕了,之前下载v22是直接下载pet安装上就能用的。

这里的下载deb,然后还要做这些?
建议还是内核和pet一起分享比较好,不会出错的嘛。
页: [1]
查看完整版本: v22.a系统编译virtualbox虚拟机方法