嵌入式Linux环境变量分区制作
制作嵌入式环境变量分区
在做嵌入式linux系统开发的时候,为了方便bootloader的管理,有时需要将bootloader本身和环境变量分开来保存,这样更方便管理。那么如何来制作一个环境变量的镜像呢?之前有在网上搜索,但是没有找到完整切详细的制作环境变量镜像的文章或者教程,因此我这边打算详细的写一个制作环境变量的教程(以uboot为例)。
准备一个存放环境变量的文本文件
准备一个文本文件,一般用txt格式的就行,里面的内容格式如下:
ipaddr=192.168.1.1 serverip=192.168.1.20 ethaddr=00:30:1b:ba:02:db
前面是环境变量的名称,后边是环境变量具体的值,将你需要的环境变量按照上面的格式都写到文本文件里面即可。
制作环境变量的工具
打开uboot的源码包,在tools目录下面有一个mkenvimage.c的文件,在你编译uboot的时候会自动生成一个mkenvimage的二进制可执行程序,环境变量的制作就是通过这个来制作的。
制作环境变量分区镜像
通过以下命令来制作环境变量分区镜像:
dos2unix uboot_env.txt ./mkenvimage -p 0x00 -s 0x10000 -o uboot_env.bin uboot_env.txt
其中uboot_env.txt就是前面说的存放环境的文本文件。 dos2unix的作用是将文本文间的格式从dos转为unix,只有unix格式的文本文件制作的环境变量才能被uboot、kernel等正确识别和使用。 mkenvimage对应的命令行就是环境变量分区镜像制作的命令,其中uboot_env.bin就是制作的环境变量分区镜像。参数含义如下: -s 0x10000 : 表示环境变量分区镜像的大小,我这里选择的是64kb,这个要根据你使用的实际大小来决定。 -p 0x00 :这个是用来填充分区镜像中未保存环境变量的部分。正常来说分区中环境变量所占的大小实际上是小于分区镜像的大小的,那么分区镜像中没有存放环境变量的地方就需要来填充,默认填充的数据是0xff,加上-p选项可以按照自己的需求来填充数据,我这里填充的是0x00,具体需要填充什么,这个根据你的实际需求来确定。
至此,环境变量分区镜像已经制作完毕,简单吧!!!
