分类
数据库

保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新

作者:root

 

 老师布置的完成内核编译作业,兴致勃勃的我看了几个博主写的文章,兴奋的以为没有问题,没想到,这才是历练的开始。
Ubuntu19.10里会出现许许多多奇怪的问题,在看了50多篇博文以及不断的百度之后,我终于搞定了,希望能给后来的朋友一点经验,不至于向我一样啥都查不到。简单的下载不说,我是从阿里镜像源下载的Ubuntun 19.10注意: 第一个坑出来了,安装部分,由于将要进行的内核编译非常占用系统资源而且花费时间,个人建议,先在windows电脑内,打开任务管理器——性能(有些需要先点一下详细信息)查看你的电脑cpu逻辑处理器数量。
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
这个逻辑处理器对后面虚拟机配置很有用,记好,我的电脑是四逻辑处理器的
虚拟机配置页面:
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
建议40G,楼主20G不够用。
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
内存当然能大则大,最小4GB,不然后面会报错
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
楼主选择的是2核2核心,刚好可以榨干物理机的cpu。也就是说,要让你的逻辑处理器数量=处理器内核总数
另外:一定记得先把网络适配器删除,Ubuntu安装的时候比较坑,会自动联网更新,你不删除,安装会比较慢,当然断网也可以配置虚拟机的坑大概就是这些,接下来开始使用。在使用中,vm tools是个很好的工具,但是Ubuntu里不像CentOS里直接就装好,所以需要手动安装一下
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
在左上角我们可以发现,安装VM Tools是灰色的,怎么办呢?到虚拟机——设置 (一定要在虚拟机关机状态) 将CD/DVD、CD/DVD 2、软盘全部修改为自动
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
如图所示确定——再开机,你会发现可以安装了。保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
开始安装
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
把文件拷贝到桌面上,然后提取
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
鼠标右键,提取到此处
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
打开提取后的文件夹
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
进入这个页面,然后在里面打开终端
输入命令保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
执行,只有第一个输入输入y,其余一路Enter就好
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
出现Enjoy 就是好了
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
重启虚拟机,就可以用了因为Ubuntu系统里面的vi比较坑,会无法退格(就是按Backspace)且上下左右键会出来ABCD,网上普遍的解决方法是删除vi再安装vim,但是由于我们的更新源还没有切换,下载速度会比较慢,所以楼主推荐另外一种方法进行操作:
先在桌面打开终端进入root用户编辑/etc/vim/vimrc.tiny文件在这个地方一定要注意,先用上下左右移到楼主光标位置 (千万不要按i进入文本编辑模式!!!)
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
然后再按 i 进入文本编辑模式。加入 no ,变成nocompatible。然后立马按esc,再使用方向键移动到这一行的末尾,再按 i 进入文本编辑模式,回车一下另起一行,加入使其变为保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
退出esc+:wq保存,这样就好了不用退出,继续输入可以看到有一个sources.list文件
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
我们先备份文件然后,我们就将原来的文件删除新建一个文件打开文件按 i 开始编辑文本
将阿里源文件复制粘贴进去退出保存,完成
此时,记得要将网络适配器添加回来,就是在虚拟机选项卡——设置——添加——网络适配器
虚拟机会自动进行配置,之后再执行命令保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
这样就成功了vim是个好用的编译器,更换源成功后,我们就开始使用好用的编译器
执行命令保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
只需要输入一次== y ==就静待安装成功。这一个命令就ok了,如果有安装不成功的现象,就把它拆开,一个一个安装。两种方法,一种用vm tools也就是直接拖进去,但是楼主的电脑不知道为啥就是不行,所以楼主采用第二种
在虚拟机——设置——选项——共享文件夹——总是启用——添加
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
跟着提示步骤一步步的将文件添加进来
共享文件在Ubuntu中的这个位置
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
Computer——mnt——hgfs——共享——内核文件
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
同样,我们将这个文件拷贝到桌面
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
楼主发现不能直接复制,然后去真正的桌面粘贴,只能在文件夹目录里粘贴,小白注意。
准备工作就绪先将压缩文件解压到内核根目录下
在桌面用鼠标右键打开终端
输入命令进入root 用户,再ls一下看一下压缩包在不在这里
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
可以看见压缩包就在这里,我的是linux-5.5.13,所以输入命令这样就可以解压到 /usr/src目录之下了
接下来,我们进入 这个目录之下同样 ls一下,看一下解压后的文件在不在保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
打开解压的文件夹,也就是到达刚刚解压好的内核的根目录下保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
这样,就可以愉快的开始下面的添加系统调用三部曲了。输入命令保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
这里注意,一定要在那个x32上方添加你自己的东西,千万不要在第一个绿色那个上面添加
楼主添加好以后是这样的
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
楼主添加的是436 64 helloworld __x64_sys_helloworld,我看别的博主写的说第二位只能添加64common楼主添加的就是64,后面那个保持格式就好,有的版本是sys_ 反正,你只要知道,保持队列整齐和一致就问题不大。退出,保存输入命令之后按键盘上 Pg Dn,在大概1244行的地方,一定注意,要添加的位置,位置错了,很难编译正确
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记在这个下面添加变成这样
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
最好放大看一下退出,保存输入命令这个添加位置就在最下面就可以
添加内容注意是return 1,一会儿可以检测是否调用成功
退出,保存在此位置
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
先输入命令进行文件清理
再输入进行配置,其实对于这个来说,配不配置无所谓
但是可以加入你想要的内核名
一定要把你的虚拟机全屏或者放大,不然会报错!!!保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
进入General setup
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
local version,输入你想要的名字
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
然后ok,用键盘左右方向键,先save再ok,之后不断exit直到出去,即回到终端先输入命令不断enter即可(有些电脑可能不用,会出现No change to .config,这样就不用管了,直接开始下一步
之后输入楼主是4,是因为楼主的虚拟机内核为4,这个你看自己,如果你是6核,就输入 -j6 8核就是 -j8 以此类推。
接下来就是等待,你可以看到你的cpu占用状态可以达到130%,听着电脑的风扇声音,静静的等待。楼主4核一小时才可以完成,之前用单线程,足足用了三个小时,裂开。
当你出现如下图一样的情况,且没有报错(undefined之类的)
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记输入命令这个不太长,具体时间大概半个小时左右吧。
结果如下图所示
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记输入命令这里会卡一下,不用担心,等着就好
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
等出现这个done的时候就是好了,也就是五分钟左右。
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
接着,我们要将这个内核更新到启动列表里
执行命令执行命令vm可能会出现未响应,先别着急,等着。
系统重启后一般来说会进入你新创建的内核,如果没有,则在启动的时候狂按esc,然后进入高级选项,选择你的内核
选择你的内核后,大概率会出现如下情况:
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
这也是我看许多其他博主没有碰到的情况,即出现A start job is running for…
这个问题其实是swap分区交换出的问题,我们需要先重启虚拟机,进入原来内核,即在开机界面狂按esc
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
重启虚拟机
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
进入选项
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
选择原来内核,回车,等待系统启动。
进入系统后,我们直接进入终端,进入root用户
输入命令保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
可以得到我们真实的swap分区的UUID,就是图片里的eeef561f-0f28-4ad3-bf19-6448c0cf9ad6复制下来。
再输入命令进入这个页面,进行替换,将页面内的UUID替换成我们刚才得到的(替换完一定要检查,是否对其,可以看那个ext4和swap哪里,上下是否对齐!
保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
保存,退出。(楼主是按两下ESC然后再加上shift + x,再Y+enter离开的)
直接重启,不用选择,这个设置自动就是进入新的内核。进入桌面后直接进入终端
输入命令保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
可以看到,楼主这里已经成功进入自己编译的新内核,接下来看系统调用是否成功,先进入root用户,再创建一个测试文件
输入命令编辑测试代码接着使用gcc编译你的代码,如果没有安装gcc,则用apt-get install安装一下
输入命令他会生成一个a.out文件,我们执行就好,输入代码保姆级教程:在Ubuntu19.10下如何编译内核添加系统调用以及问题汇总(a start job问题)前情摘要VM中安装Ubuntun19.10使用前配置内核编译前准备工作内核编译开始内核编译工作编译(都要在root用户下进行)重启查看新内核是否成功进入后记
可以看到return值是1,成功!这是楼主经过三天的摸索和学习后得到的结果,仅供大家参考吧,楼主也欢迎各位和楼主讨论,如果有写的有问题的地方,还请大佬指出,毕竟楼主还只是个菜鸟,只不过碰巧喜欢计算机,喜欢探索,感谢各位的阅读。

你的分享是我前进的动力

发表评论

电子邮件地址不会被公开。 必填项已用*标注