麒麟系统安装VirtualBox增强功能报错

报错信息如下:

In file included from /tmp/vbox.0/combined-os-specific.c:44:0:

/tmp/vbox.0/r0drv/linux/memuserkernel-r0drv-linux.c: 在函数‘VBoxGuest_RTR0MemUserIsValidAddr’中:

/tmp/vbox.0/r0drv/linux/memuserkernel-r0drv-linux.c:82:55: 错误:宏“access_ok”传递了 3 个参数,但只需要 2 个

     bool fRc = access_ok(VERIFY_READ, (void *)R3Ptr, 1);

                                                       ^

/tmp/vbox.0/r0drv/linux/memuserkernel-r0drv-linux.c:82:16: 错误:‘access_ok’未声明(在此函数内第一次使用)

     bool fRc = access_ok(VERIFY_READ, (void *)R3Ptr, 1);

                ^~~~~~~~~

/tmp/vbox.0/r0drv/linux/memuserkernel-r0drv-linux.c:82:16: 附注:每个未声明的标识符在其出现的函数内只报告一次

make[2]: *** [scripts/Makefile.build:303:/tmp/vbox.0/combined-os-specific.o] 错误 1

make[2]: *** 正在等待未完成的任务....

make[1]: *** [Makefile:1667: _module_/tmp/vbox.0] Error 2

make: *** [/tmp/vbox.0/Makefile-footer.gmk:133: vboxguest] Error 2

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

cannot verify if kernel modules and services were reloaded

参考文章:https://blog.youkuaiyun.com/qq_18572023/article/details/118719918

上面文章介绍的是欧拉,麒麟和文章中几乎一摸一样,报错的原因是:

access_ok函数在Linux内核5版本之后由传三个参数被改为了传两个参数,VBoxAdditions根据Linux版本号是4.x.x还是5.x.x来进行判断传三个还是两个参数,而麒麟使用的内核版本号为4,却已经合并了Linux内核5.x.x版本之后的补丁,也就是access_ok函数只要两个参数,因而我们只需要更改VBoxAdditions源代码,让它在4.x.x时也使用两个参数调用access_ok就行啦!

备份解决方案:

#修改VBoxAdditions源代码(注意根据VBoxAdditions版本号更改对应路径)

cd /opt/VBoxGuestAdditions-7.0.8/src/vboxguest-7.0.8/vboxguest/r0drv/linux

vi memuserkernel-r0drv-linux.c

#使用i进行编辑,将以下两处RTLNX_VER_MIN(5,0,0)改为RTLNX_VER_MIN(4,0,0)即可啦

#可以直接搜索RTLNX_VER_MIN(5

修改后,保存退出

#随后还有一个文件中需要更改该函数问题,继续执行命令:

cd …/…/…/vboxsf

vi regops.c

#同样,也是执行上面搜索,然后保存退出,这个文件只有一个地方需要修改

改了以上文件以后,一定要执行下面这个路径的安装命令,不能直接打开目录中的sh文件,否则,修改就无效了

/sbin/rcvboxadd setup

这样就可以顺利装上了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值