设为首页 收藏本站
查看: 575|回复: 0

[经验分享] ubuntu10.10编译内核3.0.1

[复制链接]

尚未签到

发表于 2018-5-9 07:50:22 | 显示全部楼层 |阅读模式
  学习linux也有一段时间了,感觉是渐渐上手了。最开始是想看看驱动的自动加载(参考网上的内核代码树编译之类的文章,都是insmod手动加载驱动),然后我就很想知道类似wince的驱动是如何加载到系统中去的呢?
  所以决定深入的了解一下内核的编译以及更新。当然这些也被前辈们做烂了,但是对于自己还是一个新东西。简单的列一下具体步骤,原则是你按照我的文章基本上就可以重复我的工作。
  前提条件:windows系统安装vmware虚拟机,在安装ubuntu10.10,安装vmware-tools vim fictx。sudoapt-get install build-esstial防止编译出问题。
  1.下载内核代码:linux-3.0.1.tar.bz2
  2.解压到任何目录,这里是/opt/linux_kernel.
  3.cp /usr/src/linux-headers-2.6.35.-22-generic/.config /opt/linux_kernel/linux-3.0.1
  4.cd /opt/linux_kernel/linux-3.0.1
  5.我们添加了hello.c文件到/opt/linux_kernel/linux-3.0.1/drivers/char下面,修改Kconfig Makefile.内容如下:
  //hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(&quot;Dual BSD/GPL&quot;);
  static int hello_init(void)
{
printk(KERN_ALERT &quot;Hello, world/n&quot;);
return 0;
}
  static void hello_exit(void)
{
printk(KERN_ALERT&quot;Goodbye, cruel world/n&quot;);
}
  module_init(hello_init);
module_exit(hello_exit);
  Kconfig中添加
  config TE_HELLO
  bool &quot;this is a test for virtual device support&quot;
  default y
  help
  say Y there if you want to support the test.
  Makefile中添加:
  obj -$(CONFIG_TE_HELLO)   +=hello.o
  6.make menuconfig直接load在save即可。注意看看添加的hello是选中了。
  7.make大概3小时在源代码处生成相应的.o文件
  make bzImage 在/arch/x86/boot生成bzimage
  make modules 编译modules
  make modules_install 将上面编译好的模块都拷贝到/lib/modules/3.0.1下面
  make install拷贝System-wap-3.0.1 vmlinuz-3.0.1到/boot/目录下
  8.生成initrd.img这里注意网上有使用sudo mkinitramfs -o /boot/initrd.img-3.0.1,它会引起 could not load .../modules.dep的问题。
  使用sudo update-initramfs -c -k 3.0.1才正确。
  sudo update-grub出现下列信息表示正确了。
  Found linux image: /boot/vmlinuz-3.0.1
  Found linux image: /boot/initrd.img-3.0.1
  9.reboot系统,是否有hello的信息出现,有的话那就说明正确了。
  这里我们实现了linux驱动添加到linux内核,linux内核的更新。当然对于每一步为什么这么做我们还没有深究。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-457351-1-1.html 上篇帖子: linux ubuntu 下安装openmeetings 下篇帖子: ubuntu图形化控制开机启动程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表