关于如何编译内核,开发驱动的问题
答案:2 悬赏:50 手机版
解决时间 2021-01-26 20:52
- 提问者网友:浮克旳回音
- 2021-01-25 23:55
最近再看linux设备驱动程序这本书,书上的例子都是以linux2.6.10内核为基准,但是我的内核不是,我的是3.0的了ubuntu11.10我在网上下了个linux2.6.10.tar.bz2该怎么装,用虚拟机吗?我不想破坏我现在的系统
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-01-26 00:16
最近我也在研究linux,不过ubuntu不适合编译内核来研究,虚拟机是个不错的选择,我的推荐是用virtualbox,为什么呢?小巧但够用,多个平台的都有(linux下面也有),要做的话,不建议在ubuntu下面研究,发行版的linux或多或少都有自己的保护机制,有些东西不会让你去触碰的,虽然都能编译内核。linux是可以有多个内核共存的,你在现在的系统上再编译一个,没问题。
推荐使用gentoo,需要有点基础,不过不难。我才从LFS走过一遍,再到gentoo,那些操作都很熟悉,其实gentoo也可以直接在ubuntu下面编译的,不过还是用它的live光盘比较好。gentoo最开始部分(和LFS很像)会涉及硬盘分区操作,硬盘挂载,然后就下载了一个gentoo的内核,其实就是linux内核,然后就编译,设置启动grub,信息等,完了就重启进入自己的内核了。你弄过LFS的话就知道了,内核编译也是需要一定的环境的,包括gcc和一些必要的工具,这就有一个先有鸡还是先有蛋的问题了,编译环境需要linux内核才能运行,linux内核需要编译环境才能编译,咱不讨论这个,gentoo基础环境包括了gcc这些,你只要从编译内核开始,后面的驱动程序这些都是由你弄的,而LFS的编译环境都是要自己搭建的。
不想弄坏ubuntu(其实根本就不会弄坏,linux系统,我的感觉,没那么脆弱)就用virtualbox,不过你得有心理准备,编译linux内核倒不怎么,要是编译个xorg,kde的,你就知道了现在的电脑技术还是多么的不够用,很慢的(而且多核的cpu都是满载运行)。说了这么多,总结下:
内核编译很简单,但是配置很复杂。简单的说下步骤:
1:解压内核(就是你下载的这个),可以用图形或者命令解压,推荐命令。tar xvf liuux2.6.10.tar.bz2
2:配置内核,进入解压目录(cd linux2.6.10),运行./configure ---参数。这个跟一般程序安装过程一样的,内核还提供了其他几种配置工具,比如xconfig等,推荐用图形的那几个。
3:编译。
4:安装(其实就是拷贝)。
5:链接(可以通过grub分几个选项,链接到不同的内核)。
为什么要基础环境(鸡),通俗点就是为了能运行tar、cd、ls、cp这些命令和能编译内核的,编译安装好后,内核是先启动的,然后就是硬件驱动,这些工具倒是不需要(没运行它们之前)。linux内核编译配置后就是一个不可以动的基础,硬件驱动模块和bash,xorg,kde,gnom这些都是它的“软件”,你可以要,也可以一个都不要(那么内核就什么都干不了),而内核可以编译得什么都支持,也可以精简到很小(几百B),怎么配置,怎么驱动这才是linux的核心,至于其他的,都是软件层的东西。其实LFS是最好的linux入门手段,弄过LFS,不看书你都能对linux结构说出个1 2 3来,不过很是考验人,很是痛苦的。gentoo有自动化的脚本和包管理器,要好一点。
最后补充点:virtualbox(windows下面的)有个功能叫做备份,备份完了可以用快速修复恢复到你设置的任意点,不要忘记了用(它包含了虚拟机的内存、硬盘、cpu所有东西,不是我啰嗦,开始我还真不知道有这个功能,一步错了,哪怕是输错了个符号,从头再来)。linux命令有个补全功能(tab键),不记得了或者不确定命令的对错tab下看看,能出来就没错(可以一个命令留最后一个字母补全),好多编程软件就从linux这里偷学来的(说实话,编linux那个人它也记不全那么多命令的,记得也会输错的),我开始还真不知道,傻傻的连文件名都一个字母一个字母的输(看不见或者太长了还拿笔记下来了),就算这样还经常打错。
最后我想说的是,我也是新鸟,老鸟不要打击我啊,新鸟也要有新鸟的空间,有什么不对的希望大家多多指教。
推荐使用gentoo,需要有点基础,不过不难。我才从LFS走过一遍,再到gentoo,那些操作都很熟悉,其实gentoo也可以直接在ubuntu下面编译的,不过还是用它的live光盘比较好。gentoo最开始部分(和LFS很像)会涉及硬盘分区操作,硬盘挂载,然后就下载了一个gentoo的内核,其实就是linux内核,然后就编译,设置启动grub,信息等,完了就重启进入自己的内核了。你弄过LFS的话就知道了,内核编译也是需要一定的环境的,包括gcc和一些必要的工具,这就有一个先有鸡还是先有蛋的问题了,编译环境需要linux内核才能运行,linux内核需要编译环境才能编译,咱不讨论这个,gentoo基础环境包括了gcc这些,你只要从编译内核开始,后面的驱动程序这些都是由你弄的,而LFS的编译环境都是要自己搭建的。
不想弄坏ubuntu(其实根本就不会弄坏,linux系统,我的感觉,没那么脆弱)就用virtualbox,不过你得有心理准备,编译linux内核倒不怎么,要是编译个xorg,kde的,你就知道了现在的电脑技术还是多么的不够用,很慢的(而且多核的cpu都是满载运行)。说了这么多,总结下:
内核编译很简单,但是配置很复杂。简单的说下步骤:
1:解压内核(就是你下载的这个),可以用图形或者命令解压,推荐命令。tar xvf liuux2.6.10.tar.bz2
2:配置内核,进入解压目录(cd linux2.6.10),运行./configure ---参数。这个跟一般程序安装过程一样的,内核还提供了其他几种配置工具,比如xconfig等,推荐用图形的那几个。
3:编译。
4:安装(其实就是拷贝)。
5:链接(可以通过grub分几个选项,链接到不同的内核)。
为什么要基础环境(鸡),通俗点就是为了能运行tar、cd、ls、cp这些命令和能编译内核的,编译安装好后,内核是先启动的,然后就是硬件驱动,这些工具倒是不需要(没运行它们之前)。linux内核编译配置后就是一个不可以动的基础,硬件驱动模块和bash,xorg,kde,gnom这些都是它的“软件”,你可以要,也可以一个都不要(那么内核就什么都干不了),而内核可以编译得什么都支持,也可以精简到很小(几百B),怎么配置,怎么驱动这才是linux的核心,至于其他的,都是软件层的东西。其实LFS是最好的linux入门手段,弄过LFS,不看书你都能对linux结构说出个1 2 3来,不过很是考验人,很是痛苦的。gentoo有自动化的脚本和包管理器,要好一点。
最后补充点:virtualbox(windows下面的)有个功能叫做备份,备份完了可以用快速修复恢复到你设置的任意点,不要忘记了用(它包含了虚拟机的内存、硬盘、cpu所有东西,不是我啰嗦,开始我还真不知道有这个功能,一步错了,哪怕是输错了个符号,从头再来)。linux命令有个补全功能(tab键),不记得了或者不确定命令的对错tab下看看,能出来就没错(可以一个命令留最后一个字母补全),好多编程软件就从linux这里偷学来的(说实话,编linux那个人它也记不全那么多命令的,记得也会输错的),我开始还真不知道,傻傻的连文件名都一个字母一个字母的输(看不见或者太长了还拿笔记下来了),就算这样还经常打错。
最后我想说的是,我也是新鸟,老鸟不要打击我啊,新鸟也要有新鸟的空间,有什么不对的希望大家多多指教。
全部回答
- 1楼网友:天凉才是好个秋
- 2021-01-26 01:18
楼主 你没有高明白书本上得东西哦 。。书上例子以linux2.6.10。是指你开发板的内核。再有ubuntu 11.10 3.0版本的 只是指 ubuntu 的发布版 3.0 并不是内核的3.0版本(今天查了一下 原来ubuntu 11.10 的核真的上3.0的 了我的一直没更新啊。看来自己out啦)。你不用装虚拟机。就把 linux2.6.10 随便解压到一个文件就可以了。 然后你再进行内核驱动模块开发的时候只要在Makefile 中把内核目录指向你这个内核文件就行了。 如果你要查看内核源码的话就在解压的那个文件夹下面去建个tag吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯