fatal error: linux/compiler-gcc5.h: No such file or directory

compilation terminated.

解决方法:https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/include/linux/compiler-gcc5.h?id=2c07053b8e1e0c22bb54dfbdf8e86a70f8bf00fc

复制内容保存为compiler-gcc5.h,放在要编译内核模块的内核代码的include/linux下。

以下编译步骤摘自https://github.com/mengning/mykernel

Welcome to the mykernel!

It is a platform to write your own OS kernel,its based on Linux Kernel 3.9.4 source code.

Set up this platform

sudo apt-get install qemu # install QEMU

sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.4.tar.xz # download Linux Kernel 3.9.4 source code

wget https://raw.github.com/mengning/mykernel/master/mykernel_for_linux3.9.4sc.patch # download mykernel_for_linux3.9.4sc.patch

xz -d linux-3.9.4.tar.xz

tar -xvf linux-3.9.4.tar

cd linux-3.9.4

patch -p1 < ../mykernel_for_linux3.9.4sc.patch

make allnoconfig

make

qemu -kernel arch/x86/boot/bzImage

从qemu窗口中您可以看到my_start_kernel在执行,同时my_timer_handler时钟中断处理程序周期性执行。

cd mykernel 您可以看到qemu窗口输出的内容的代码mymain.c和myinterrupt.c

当前有一个CPU执行C代码的上下文环境,同时具有中断处理程序的上下文环境,我们初始化好了系统环境。

您只要在mymain.c基础上继续写进程描述PCB和进程链表管理等代码,在myinterrupt.c的基础上完成进程切换代码,一个可运行的小OS kernel就完成了。

start to write your own OS kernel,enjoy it!

mykernel patch generated by this command:

diff -Naur linux-3.9.4 linux-3.9.4.new/ > mykernel_for_linux3.9.4sc.patch

转载于:https://blog.51cto.com/ggxxjj123/1747930

mykernel编译过程中问题解决相关推荐

  1. Qt编译过程中出现的问题

    1.解压源码zip包的时候,要使用参数-a,否则编译会有问题. 2.编译过程中出现错误:QT /usr/include/X11/extensions/XIproto.h:1825: 错误:expect ...

  2. vc2005编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决

    vc2005编译过程中"没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题"? 的彻底解决 收藏 快毕业了,为了工作的需要,需要使用庞大的VS2 ...

  3. 编译过程中,termcap.h 文件找不到路径 licli.a终于生成

    编译过程中,termcap.h      文件找不到路径   查看是linux  源码下找不到termcap.h文件 安装了所有关于*cap*的源码包也不起作用 今天终于解决了这个问题,搜termca ...

  4. 在以阶段划分的编译过程中,判断程序语句的形式是否正确属于()阶段的工作。

    在以阶段划分的编译过程中,判断程序语句的形式是否正确属于()阶段的工作. A.词法分析 B.语法分析 C.语义分析 D.代码生成 答案:B 答案解析: 选项A这个阶段的任务是对源程序从前到后(从左到右 ...

  5. 编译html成qch,在应用程序编译过程中运行qcollectiongenerator

    我一直在研究一个名为RoboJournal的程序很长一段时间.下一版本包含完整的文档;每当用户按F1或单击RoboJournal程序中的帮助项目时,帮助文件将显示在Qt助手中(比简单地打开浏览器窗口以 ...

  6. C++编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决...

    今天本人用vs2005 sp1中文版,学习C++程序的过程中,在执行MFC程序时,在编译过程中出现如下问题: 相关问题:这里编译时可能出现以下问题 /************************* ...

  7. 实验检测编译过程中的链接作用

    /* 名称:实验检测编译过程中的链接作用 说明:以前一直不太了解编译过程中链接是到底干嘛的(其具体的作用是什么),只浅浅的了解到这个阶段就是将各个目标文件连接在一起,至于为什么要连接,怎么连接,不是很 ...

  8. Apache Atlas 2.0.0编译过程中遇到的问题及解决方案

    Atlas安装依赖: 1.Maven 3.5+,下载安装包解压后配置环境变量即可,详细步骤请自行百度,下载地址:http://maven.apache.org/download.cgi 2.Apach ...

  9. python包编译过程中出现: /usr/local/cuda-9.0/nvcc: No such file or directory问题的简单解决办法

    在安装torch.sparse包的过程中,出现/usr/local/cuda-9.0/nvcc: No such file or directory的错误,而检查nvcc是否已经安装的时候,这些在安装 ...

最新文章

  1. php写一个shell脚本文件格式,一篇文章学会——shell脚本编写
  2. P2955 [USACO09OCT]奇数偶数Even? Odd?
  3. java 平滑升级_服务器spring boot版本,平滑升级
  4. Python零碎知识(6):split 和 join
  5. NLP之TEA:自然语言处理之文本情感分析的简介、算法、应用、实现流程方法、案例应用之详细攻略
  6. quilleditor 字体大小设置_vue-quill-editor如何设置字体默认大小?
  7. 用python实现:找出1到101 之间的质数
  8. 安全左移理念,鹅厂 DevSecOps 如何实践?
  9. 深入浅出Fetch API
  10. 国产自主可控的MBSE建模与仿真平台SkyEye
  11. zabbix数据库历史数据清除
  12. 2021年青海省大学生首届网络安全知识与技能大赛——赛题回顾及基本讲解
  13. C#实现邮件发送的功能
  14. 利用WebUtil删除Cookies
  15. Visio 2019 专业版安装教程
  16. fastboot刷系统的步骤
  17. 图书馆系统软件测试计划,图书馆管理系统软件测试计划
  18. 应用计算机测线性电阻伏安特性曲线,测绘线性电阻和非线性电阻的伏安特性曲线.pdf...
  19. Anaconda3+Tensorflow2.0(gpu)安装教程-小新Pro13英特尔独显版win10系统
  20. WEB自动化-(RFS)RobotFramework+Selenium框架介绍测试流程详解

热门文章

  1. listView 多布局
  2. JMeter测试组件
  3. Android事件总线
  4. Delphi面向对象学习随笔七:COM
  5. 以嵌入式系统设计师考试成绩,开始嵌入式博客之旅
  6. spad 探测器_大面阵SPAD阵列集成微透镜阵列,填充因子改善明显
  7. Linux 中断实验
  8. Linux LED驱动开发实验(直接操作寄存器 -- 实际开发很少这样做)
  9. 过期时间_2020年最新航空里程过期时间及避免过期方法总结
  10. bind php,PHP – bind_result到数组