请教如何把rootfs从挂载在flash上改成挂载到ram上

2025-03-20 07:05:43
推荐回答(1个)
回答1:

用NFS式挂载根文件系统

由于原内核用ATBOOT式载知道传递参数(像能网查nfs式都用U-boot式挂载)决定用u-boot重新载内核

1.载u-boot内核

1.1编译内核

1.1.1由于板光盘自带内核触摸屏驱配套要修改驱宏定义

LCD driver info */
//#define TFT3
#define TFT_NEW3 //板配套触摸屏参数
//#define vga800480 //默认参数需要注释掉
//#define vga1024
//#define vga800600

1.1.2修改参数

arch/arm/mach-s3c2410/common-smdk.c

static struct s3c2410_platform_nand smdk_nand_info = {
.tacls = 10,
.twrph0 = 30,
.twrph1 = 10,
...

原20,60,20,参数找nand flash需要修改面几否则uImage 文件载运行

1.1.3修改交叉编译器

vi Makefile

CROSS_COMPILE ?= arm-linux

行arm-linux-修改交叉编译器路径(Linux系统交叉编译工具路径)

/usr/local/arm/3.4.1/bin/arm-linux-

输入:wq 保存并退

1.1.4编译

make clean

make uImage

(执行命令前要执行make menuconfig,进行配置内核:

networking options-》IP:kernel level autoconfiguralion项
选file systems-》network file systems-》root file system on nfsnfs file system support

由于我解压板自带内核发现些都已经选直接编译即执行make uImage提示错误说能创建某文件我发现uImage已经没理错误直接拿用)

1.2载u-boot内核

1.2.1载u-boot

1.2.1.1 SJF2440 环境设置(见前面部图文介绍)

载u-boot用板自带工具SJF2440.exe安装其驱具体见说明文档

1.2.1.2 烧写u-boot.bin Nand flash

新建D:\atbootsjf2440.exe u-boot.bin复制文件夹内

(sjf2440.exe u-boot.bin 必须同目录)

具体见说明文档

1.2.1.3 利用u-boot载uImage文件系统arm板

由于板自带用autoflash.img自载uImage文件系统arm板现我太明白具体址自文件系统载文件系统用面用nfs挂载linux主机文件系统rootfs文件

具体见说明文档

2. 用nfs挂载根文件系统

2.1 虚拟机Linux建立文件夹

/home/water/rootfs

板自带系统直接拷进rootfs文件夹内

2.2linux主机 配置nfs 文件系统

修改/etc/exports 文件格式共享目录发板ip 址(权限设置):cat
/home/water/rootfs *(rw,sync,insecure,no_root_squash)

重启nfs 服务器:

/etc/init.d/nfs restart

2.3 IP设置

XP:192.168.1.100

linux:192.168.1.128

arm:192.168.1.7(用U-boot给内核传递)

2.4 给u-boot传递参数

启u-boot倒计结束前按空格键进入输入参数界面

输入:

AVANTECH# set bootargs root=/dev/nfs
nfsroot=192.168.1.128:/home/water/rootfs rw noinitrd
init=/linuxrc ip=192.168.1.7:192.168.1.128:192.168.1.128:255.255.255.0:avantech:eth0:off console=ttySAC0,115200

(注:面行代码能自换行缘故输入部部复制)

AVANTECH# saveenv

AVANTECH# reset

2.5ok
B