linux内核移植x86平台
来源:互联网 发布:ise软件安装包 编辑:程序博客网 时间:2024/05/17 22:38
前面一段时间弄RTOS弄的比较多了,这段时间主要是计划移植linux,编写相关驱动,以前也各个linux版本都用过,但是久了没用了,因此,大多数都搞忘了,所以说啊,好记性不如烂笔头!下面我们开始移植linux到x86平台上
1、解压下载的linux内核,此处用的是3.2.12版本,如下所示
tar -jxf [内核名字]
2、清除相关内容
此处,顺便提示下make clean和make distclean 的区别
make clean:用于清除之前编译的可执行文件及配置文件(*.o文件)
make distclean:用于清除所有生成的文件
3、配置.config文件
3.2.16版本比起2.6.X的版本看起来更加简洁了,默认的配置文件也是根据arch进行放置的,不再是放在include/configs下面了,X86默认配置文件放在arch/x8/configs下面,如下所示
注意:如果只是按照拷贝i386_defconfig配置文件进行整个工程配置,那么会出现以下错误
出现此个错误的原因,可能是由于i386_deconfig配置文件里面只是包括了关于x86 CPU的相关配置,而没有包括譬如文件系统、以及主板上除了CPU其他外设的一些模块,因此,会出现vfs_write错误,解决此问题办法如下:
将运行的linux,如本文用的centos的/boot/下面的配置文件拷贝到编译功能里面,命令如下 cp /boot/configure .config即可
4、编译内核
配置完成以后,我们就可以编译内核了,命令如下 make -j2,注意:后面-j2是因为我在虚拟机下面分配了一个核心但是里面有2个线程,即是采用两个线程进行编译,等一段时间,出现以下界面就代表编译成功了,如下所示
5、安装内核
从以上编译信息中可以看出,编译出来的内核放在了arch/x86/boot/bzImage下面,此时,运行make modules_install即安装内核
完成安装后,编译好的内核模块会从内核源代码目录拷贝到/lib/modules(虚拟机的目录,不是编译内核的目录!)下,如下图所示
从上图可以看出,完成安装以后再/lib/modules下面多了一个3.2.12目录,即是我们编译安装的内核版本
6、制作initramdisk文件
initramdisk的作用是提供一种让内核可以简单实用的ramdisk的能力。这些能力包括:格式化一个ramdisk;加载文件系统内容到ramdisk;将ramdisk作为跟文件系统
制作方法如下:
进去boot/x86目录下,运行mkinitrd initrd-3.2.12 3.2.12,完成操作以后,会在当前目录下生成initrd-3.2.12。如下所示
7、准备系统启动文件
由于linux系统启动时,会从/boot目录下面寻找内核文件和init ramdist,所以需要将内核和init ramdisk拷贝到/boot目录下面,操作方法如下所示
注意:vmlinuz-3.2.12名字是可以随便取名,一般取名为:vmlinuz-[版本号]
8、配置grub选项
为了让grub在启动的时候能提供一项我们自己制作的linux内核的选项,需要改grub的配置文件,在原有内容的基础上,添加以下代码。
命令:vim /etc/grub.conf
添加以前如下所示:
添加后如下所示
添加启动选项只需要修改3个地方,第一:修改title;第二、修改内核名字,如vmlinuz-3.2.12;第三:修改ramdisk名字,如initrd-3.2.12
从上面可以看出,前面说的名字可以任意取,是因为只要名字对应起来就ok了
修改完成以后,保存重新启动系统就能够进入我们刚刚修改的内核,如下图所示
- linux内核移植x86平台
- linux内核移植X86平台的例子
- linux内核配置编译移植(基于x86的)
- Linux内核在s3c2410平台的移植
- 移植linux内核平台相关之 中断
- Linux内核在S3C2410平台上移植
- x86平台Linux内核配置编译和安装
- Linux内核的配置与编译(X86平台)
- Linux内核的编译(x86平台上)
- X86平台Linux内核配置编译与启动
- Linux内核的配置与编译(x86平台)
- 深入理解Linux内核(4)---中断和异常(x86平台)
- 【学习笔记】编译Linux内核(上)--编译基于x86平台的Linux内核的过程
- 基于S3C2410平台移植Linux 2.6内核指南
- linux 2.6.22.1内核在s3c2410平台的移植
- 基于S3C2410平台移植Linux 2.6.14内核&驱动指南
- 基于S3C2410平台移植Linux 2.6.14内核指南
- linux 2.6.22.1内核在s3c2410平台的移植
- 算法导论 2.2-2
- web项目中路径的获取
- 【Java设计模式】之组合模式
- 求阶乘的几种方法
- 根据状态个数来决定总设备的状态(主要是循环loop)
- linux内核移植x86平台
- The MSI Driver Guide HOWTO
- 地区选择JS 三级联动
- 字节对齐
- app开发接单--app开发项目案例
- for aix oracle 11gr2 RAC 安装总结
- recorder code time
- MySQL同时执行多条SQL语句解决办法
- Android Map 开发之高德地图