ubifs文件系统的制作详解(5)

2019-08-31 16:45

(4)hex (其为string的变体):取值为十六进制数据,如:CONFIG_VECTORS_BASE =0xffff0000.

(5)int (其为string的变体):取值为十进制数据,如:CONFIG_SPLIT_PTLOCK_CPUS=4096

三.Kconfig 文件的要素:source

由于内核源代码中大多数目录下都有各自的Kconfig 文件,因此需要一种手段将所有的Kconfig 文件组织为一个整体。这就是source的功能,它用于引入另一个Kconfig文件,有点类似于C语言的#include 。

(举例:在内核的fs/Kconfig 中增加一行: source \就是如此)

续篇:.config 文件说明

make menuconfig 配置完成退出时,选择保存,则用户所做的选择将保存在内核源代码顶层目录文件中.config文件中。下面.config文件的片段显示内核配置者作了如下选择:将YAFFS_FS 、YAFFS_YAFFS1功能编译进uImage;不编译BFS_FS、EFS_FS、YAFFS_9BYTE_TAG功能;

续篇:Makefile 文件说明

下面是内核drivers/net/Makefile 文件的片段: 12 obj - $ (CONFIG_ATL1) + = atl1/

13 obj - $ (CONFIG_GIANFAR) + = gianfar_driver.o 14

15 gianfar_driver - objs : = gianfar.o \\ 16 gianfar_ethtool.o \\

17 gianfar_mii.o \\ 18 gianfar_sysfs.o

26 obj - $ (CONFIG_PLIP) + = plip.o 它的含义是:

(1)第26行,如果.config文件中变量CONFIG_PLIP=y,那么将编译本目录下的plip.文件并将其功能集成进uImage ;如果.config文件中变量CONFIG_PLIP=m,那么将编译本目录下的plip.c文件生成模块plip.ko;否则,将不编译plip.c。

(2)第13~18行,如果config文件中变量CONFIG_GIANFAR=y,那么将编译本目录下的cgianfar.c、gianfar_ethtool.c、gianfar_mii.c、gianfar_sysfs.c文件并将其功能集成进uImage ;如果config文件中变量CONFIG_GIANFAR=m,那么将编译本目录下的cgianfar.c、gianfar_ethtool.c、gianfar_mii.c、gianfar_sysfs.c文件生成模块并将其功能集成进gianfar_driver.ko ;否则不编译cgianfar.c、gianfar_ethtool.c、gianfar_mii.c、gianfar_sysfs.c文件。

(3)第12行,如果.config 文件中变量CONFIG_ARL1=y,将递归进入本目录的子目录atl1,并将根据子目录下的Makefile文件内容决定改子目录如何进行编译;否则,将不进入本目录的子目录atl1进行编译。 例如:

下面是内核fs/Makefile 文件的片段:如图:

之后进入yaffs2子目录下的Makefile 看看:如图:

制作ubifs文件系统

分类: 嵌入式linux 2010-11-08 10:32 2447人阅读 评论(1) 收藏 举报

1,安装相关的软件包 apt-get install liblzo2-dev

2,获取相关的工具mkfs.ubifs和ubinize

这两个工具是制作ubifs文件系统的时候用到,它们是mtd-utils工具包中的内容,mtd-utils工具包你可以从下面的网站下载和编译出来:

官方网站:http://www.linux-mtd.infradead.org/index.html 资源下载网站:http://git.infradead.org/

3,创建一个create-ubifs.sh脚本,主要是调用mkfs.ubifs和ubinize工具和相关参数来制作ubifs文件系统,内容如下: #!/bin/bash

########################################################## # Script to generate ubifs filesystem image. #

##########################################################

##### ubinize configuration file config_file=rootfs_ubinize.cfg

##### Function to check result of the command check_result() { if [ $? -ne 0 ] then

echo \else

echo \fi }

###### Function to check whether an application exists check_program() { for cmd in \do

which ${cmd} > /dev/null 2>&1 if [ $? -ne 0 ] then echo

echo \ echo exit 1 fi done }

if [ $# -ne 5 ] then echo

echo 'Usage: create-ubifs.sh [page_size_in_bytes] [pages_per_block] [partition_size_in_bytes] [blocks_per_device] [path_to_rootfs]' echo exit fi

page_size_in_bytes=$1

echo \[$page_size_in_bytes]bytes.\pages_per_block=$2

echo \[$pages_per_block]\partition_size_in_bytes=$3

echo \[$partition_size_in_bytes]bytes.\blocks_per_device=$4

echo \[$blocks_per_device]\path_to_rootfs=$5

# wear_level_reserved_blocks is 1% of total blcoks per device wear_level_reserved_blocks=`expr $blocks_per_device / 100`

echo \[$wear_level_reserved_blocks]\

#logical_erase_block_size is physical erase block size minus 2 pages for UBI


ubifs文件系统的制作详解(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:和差倍问题专项练习题2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: