Linux驱动开发之路(准备)内核和根文件系统超详细笔记

本文是Linux驱动开发的详细笔记,包括内核打补丁、编译过程,以及根文件系统的创建。从下载内核、解压、打补丁到编译内核映像文件,再到根文件系统的制作,如使用busybox构建最小根文件系统,并将其转换为单板可接受的yaffs2和jffs2格式。同时介绍了如何创建和挂载网络文件系统NFS。
摘要由CSDN通过智能技术生成

本系列文章由江山(csdn名:补不补布)(github:jianggogogo)自己写成,当中用到引用时都已经标记出来,如果出现版权问题,请直接联系我修改。当然,技术在于分享,欢迎大家转载,不过请注明出处。最后,如果出现有错误的地方欢迎大家指正。

前言:

在学习韦东山教程时,直接从裸板开发直接跳到了驱动开发的课程当中,发现中间缺少了很大一部分。现在重新学习了课后的知识之后,来重新写这样一篇笔记。

一、目的

笔记,记录

  1. linux内核打补丁,编译。
  2. 创建一个根文件系统。
  3. nfs网络文件系统创建。

二、Linux内核打补丁,编译:

2.1、下载一个内核和补丁文件:

这三个是对应的内核和补丁的安装包。
在这里插入图片描述

2.2、解压缩内核文件

流程为:
1、解压缩内核文件。

2.3、打补丁

2、打补丁,命令如下:

patch <p1 < ../linux-2.6.22.6_jz2440.patch

2.4、生成配置目录

注意,由于linux可以适用于不同的开发板,那么对于不同的开发板自然要使用不同的配置,这里使用的是s3c2440那么自然也需要找到s3c2440的配置模式,当然,这些文件已经在linux里面集成了,我们只需要找出来然后编译就可以实现。

  • 这个文件名为:>s3c2440_deconfig
  • 文件目录为:>arch/arm/configs

在linux目录下编译板子的配置文件

make s3c2440_deconfig

这一步会生成一个文件:config_ok。
然后我们将这个生成的配置文件,设置为系统需要的配置文件:

cp config_ok .config

然后,生成目录和打开目录,命令如下:

//这一步用来打开配置菜单
make menuconfig

菜单如下:
在这里插入图片描述

2.4、编译和下载内核映像文件

注意,我们的Linux内核文件下载下来能够直接用于开发板上面吗?答案当然是否定的,毕竟这只是一个内核文件,开发板却是很多的。我们需要使用相同的规则来编译内核,让所有的的开发板都能识别这一个规则,从而实现在开发板上面运行linux。

这个按照固定规则生成的文件叫做:uImage。
在内核目录:
执行:

make uImage

这时候会生成一个文件,uImage。这时候,我们在uboot中选择下载uimage就可以将linux 内核映像文件烧入了,如下面所示哦,选择k
在这里插入图片描述

2.5、结果

经过,上面的操作,那么我们的开发板就可以说拥有了自己的linux系统文件。

三、根文件系统创建:

我也一直想不同这东西到底是个啥。可是后来自己的一想,原始人估计也没有办法给衣服下一个定义,只不过是突然觉得冷了,就拿了一些东西该盖在自己的身上。
所以,初学linux的人来说,我们也无法给根文件系统下一个或者说看别人的解释就明白这是啥。我们只有自己去用,去犯错误。才能体会,当初设计者为啥要给出这样一个东西。

3.1、为啥需要根文件系统。

我是这样想的,Linux一启动,总该知道内核外面究竟是有点啥东西吧。但是问题来了,就像古代的朱元璋一登基,总得问问丞相同志,我这个皇帝有多少土地啊,多少臣民啊,多少妃子啊(当然,这个他自己知道)。不知道这些,皇帝就没有办法开展工作啊。
所以,就像上面一样,linux一加载,也该知道自己现在运行的环境有点啥东西。所以,linux内核第一个加载的记录文件的东西就叫做根文件系统。

3.2、最小的根文件系统:

当然,网上有很多做好的根文件系统,但是这些做好的各有各的功能,从基础做一个简单的也能提高自己的能力。

3.2.1、busybox

第一步,我们的根文件系统,起码得支持我们的命令吧。如果,ls这种基础命令都不支持,那么太难了。
busybox就是集成命令得一个库。

  • 首先这是文件目录得配置文件。<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值