基于S3C2440构建根文件系统

    xiaoxiao2026-03-28  15

    如何构建根文件系统 2016.6.3 1.内核怎样启动第一个应用程序 a.打开了第一个设备 run_init_process(execute_command)要么是命令行里指定的 run_init_process("/sbin/init") ps查看当前正在跑的程序 init程序: a.读取配置文件 b.解析配置文件 c.执行用户程序 ls -l bin cp busybox->init_main parse_inittab(解析init表)  file = fopen(打开配置文件etc/inittab) inittab格式:     <id>:<runlevels>:<action>:<process>      runlevels : 忽略     action    :执行时机     process   :应用程序和脚本      id => /dev/id,用做终端 : stdin,stdout,stderr,printf,scanf,err   new_init_action     new_init_action(ASKFIRST, bb_default_login_shell, VC_2);    new_init_action(ASKFIRST, -/bin/sh, /dev/tty2);   static void new_init_action(int action, const char *command, const char *cons)  ①创建一个init_action结构,填充  ②把这个结构放入init_action_list  run_actions执行动作   一个根文件系统需要的项 /dev/console /dev/null /etc/inittab配置文件 配置文件里指定的应用程序 库(fopen()) init本身,即busybox 编译时遇到 /work/tools/usr/local/arm/4.3.2/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h:44: error: field 'in' has incomplete type 解决办法: 修改arm-linux交叉编译工具链 在usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h  头文件的开头添加缺少的头文件:#include<netinet/in.h> 构建最小根文件系统 mount -a挂在根文件系统 NFS挂载 手工挂接 配置网卡: ifconfig eth0 up创建网卡 直接从NFS启动 set bootargs noinitrd root=/dev/nfs nfsroot=10.1.4.27:/work/nfs_root/sec_fs ip=10.1.4.26:10.1.4.27:10.1.4.254:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 save  make install        # or make CONFIG_PREFIX=/path/from/root install安装busbox
    转载请注明原文地址: https://ju.6miu.com/read-1308273.html
    最新回复(0)