Linux内核编译--PC版和ARM版

来源:互联网 发布:知乎 赚钱逻辑 编辑:程序博客网 时间:2024/05/22 12:05

首先请区别一下Linux内核的编译和内核模块的编译。

顶层Makefile文件(在源代码根目录下的Makefile文件)负责产生内核映像vmlinuz和模块。顶层Makefile根据内核配置,递归编译内核代码下所有子目录里的文件,最终建立内核文件映像。每个子目录下有个Makefile文件,根据上级目录的makefile配置编译指定的代码文件。这些Makefile使用.config文件配置的数据构建各种文件列表,最终生成目标文件或者内嵌模块。

编译配置好之后,进入Linux源文件所在的文件夹

使用make bzImage命令完成内核编译,此时会生成vmlinuz文件

make modules编译内核需要的模块

make modules_install安装模块到/lib/modules目录

make install安装内核文件到/boot目录

安装过程会自动修改GRUB启动菜单


PC更换Linux内核版本

1.www.kernel.org上下载linux-2.6.37.tar.bz2。解压。

2.建立符号链接

#ln -s/home/orisun/Download/linux-2.6.37 /usr/src/linux-2.6.37

3.内核编译配置

#cd/usr/src/linux-2.6.37

#makemrproper <--删除以前的.o文件,第一次运行其实这步可以省略

#makemenuconfig

#makedep <--建立依赖关系,第一次运行其实这步可以省略

#makeclean <--删除没用的文件

4.编译

#makebzImage<--编译内核

#makemodules<--编译模块

#makemodules_install<--安装模块

#makeinstall<--建立initrd(加载LKM用的程序)

5.更改GRUB

#new-kernel-pkg–install –mkinitrd –depmod 2.6.37 <--写入grub.conf

6.重启,选择运行新的内核

#shutdown-r now

 

编译开发板的Linux内核

1.首先获取交叉编译工具链arm-linux-gcc
2.下载解压linux-2.6.30.4.tar.bz2
3.参见《Linux移植.pdf》,step3和step4中所说的修改源文件不需要做了,在天嵌提供的linux-2.6.30.4中这些文件已经改过来了
4.在linux源文件下执行make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig,按照附录5配置linux2.6.30.4编译选项,“Device Drivers"下的选项参照step8.2配置就可以了。配置完毕后注意保存,参见5.5
5.make zImage编译内核
如果没有事先安装交叉编译工具链本步会提示找不到命令arm-linux-gcc
编译内核文件后会生成vmlinuz等文件
6.把镜像文件存到指定位置
step7.2中所述的arch/arm/boot/Makefile文件不用改了,已经改过来了,只改内核源文件根目录下的Makefile文件就可以了

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 把耳朵掏出血了怎么办 掏耳朵戳出血了怎么办 耳朵戳伤流血了怎么办 耳朵挖破出血了怎么办 耳朵让耳屎堵了怎么办 手被牙齿划破了怎么办 耳朵掏伤了很痛怎么办 掏伤耳朵发炎了怎么办 耳朵被掏发炎了怎么办 打的耳洞化脓了怎么办 打了耳洞流脓了怎么办 打了耳洞发炎怎么办 打了耳洞化脓了怎么办 3岁宝宝耳朵流脓怎么办 耳朵里面是湿的怎么办 耳朵里天天很痒怎么办 身上长湿疹很痒怎么办 嗓子干疼耳朵痒怎么办 上火了耳朵嗡嗡响怎么办 太阳凹颧骨外扩怎么办 4岁儿童脊柱侧弯怎么办 瘦的人得多囊怎么办 智齿刚长出来该怎么办 宝宝耳朵睡尖了怎么办 睡觉压的耳朵疼怎么办 月子里奶水越来越少怎么办 月子里生气回奶了怎么办 儿童疫苗本丢了怎么办 跖骨2-5骨折了怎么办 耳朵被水堵住了怎么办 耳朵一直流黄水怎么办 两个月宝宝脐疝怎么办 拔牙后一直渗血怎么办 耳朵滴药水堵了怎么办 刚打的耳洞化脓怎么办 耳朵进水了一直嗡嗡响怎么办 婴儿游泳呛水了怎么办 孩子游泳呛水了怎么办 婴儿洗澡呛水了怎么办 小孩脸上长湿疹老是不好怎么办 油耳堵住了耳朵怎么办