1.virtualbox版本:virtualbox-5.1_5.1.4-110228-Ubuntu-xenial_amd64.deb
2.virtualbox官方安装文档地址:https://www.virtualbox.org/manual/UserManual.html
3.安装
4.报错:vboxdrv 构建失败
vboxdrv介绍:为了在主操作系统旁边的虚拟机中运行其他操作系统,VirtualBox需要非常紧密地集成到系统中。要做到这一点,它会安装一个名为“驱动程序”的模块vboxdrv,该模块在系统内核中进行大量工作,这是控制处理器和物理硬件的操作系统的一部分。没有这个内核模块,你仍然可以使用VirtualBox管理器来配置虚拟机,但是它们不会启动。它还安装了调用的网络驱动程序 vboxnetflt, vboxnetadp哪些虚拟机可以更好地利用计算机的网络功能,而且超出基本“NAT”模式的虚拟机网络需要。
在执行 sudo dpkg -i virtualbox-5.1_5.1.4-110228-Ubuntu-xenial_amd64.deb
这条命令时,安装程序将尝试构建适合当前运行的内核的内核模块。如果构建过程不成功,您将看到一个警告,该包将被取消配置
5.解决步骤:(建议阅读全文后再考虑如何执行)
1.查看有没有安装正确的头文件
查看内核版本:
对于Debian和基于Ubuntu的发行版,您必须安装 linux-headers,通常是 linux-headers-generic ,linux-headers-amd64 ,linux-headers-i686 或linux-headers-i686-pae 这些头文件的正确版本,版本名最好与内核版本名称相匹配;
头文件一般放在/usr/src 目录下
如图,该头文件已正确安装(我是自动安装的),如果相应的头文件没安装,可参考下面的教程:
https://linux.cn/article-4625-1.html#3_1245
2.查看/var/log/vbox-install.log
通过Google和百度,网上大部分资料都指向“内核没编译”,但是因为对内核不熟,所以没敢尝试,也建议不要随便编译内核,以下是我查找的资料
报错的原因:
http://hanjiangduqiao.blog.163.com/blog/static/613105442012320558430/
http://blog.csdn.net/chenbang110/article/details/7795011
http://www.linuxdiyf.com/viewarticle.php?id=314763 (这个教程说要进入 /usr/src/kernels/linux-3.6.2 目录,但是我发现我电脑并没有kernels这个目录,所以没尝试)
内核编译的文章:
https://kernelnewbies.org/FAQ/KernelCompilation
http://www.linuxprobe.com/linux-kernel-compilation.html
http://www.cnblogs.com/super119/archive/2011/01/03/1924408.html
看起来比较有用的
http://forum.ubuntu.org.cn/viewtopic.php?t=42690
3.安装Qt 5.3.2以上(推荐Qt 5.6.2以上)和 SDL 1.2.7或更高版本(此图形库通常称为 libsdl或类似)
前面第一步检查头文件,我的电脑没问题,第二部要编译内核,我觉得比较冒险,没试。再次看官方教程时,发现要安装这两个包,但是之前我并没有安装,这个对系统影响较小,所以先试试安装这两个包。
查看qt版本:qmake -v
但有时候安装完成执行此命令还是报错
解决办法:http://blog.csdn.net/zhuquan945/article/details/52818786
qt5.7安装教程
https://qtguide.ustclug.org/ch01-04.htm
http://blog.csdn.net/u012235003/article/details/71195046 (我用这个安装)
(做个记录,怕教程没了)
下载包:wget http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run
下载后给执行权限: chmod +x qtxxxx.run
安装 : ./qtxxxx.run
安装g++: sudo apt-get install build-essential
安装依赖库: sudo apt-get install libfontconfig1
安装OpenGL: sudo apt-get install mesa-common-dev
以及依赖: sudo apt-get install libglu1-mesa-dev -y
配置: 打开qt creator 工具->选项->构建&运行->编译,选择编译器
SDL安装
SDL1.0安装:http://www.linuxidc.com/Linux/2010-07/26965.htm
SDL2.0安装:http://wiki.libsdl.org/Installation
痛心:安装qt5和SDL后还是报错
4.重新Google报错原因
http://blog.csdn.net/jingtiangao/article/details/51811638
https://askubuntu.com/questions/762254/why-do-i-get-required-key-not-available-when-install-3rd-party-kernel-modules (参考此教程)
根本原因:从内核版本4.4.0-20开始,如果启用了UEFI Secure Boot,强制执行未启用安全启动的未签名内核模块将不允许运行
解决办法:在BIOS里面关闭安全启动再执行 sudo rcvboxdrv setup 重新编译
编译成功!