romfs

编程入门 行业动态 更新时间:2024-10-11 19:16:41

romfs

romfs

uClinux一般都会建立一个 ROMFS 文件系统,而把其它文件向该文件系统添加一般都通过$(ROMFSINST)命令,而ROMFSINST变量值就是 romfs - inst.sh (这文件一般在和 linux-2.6.x同级的tools目录下 ),执行$(ROMFSINST)就是执行 romfs - inst.sh 。

用法:

        romfs-inst.sh [options] [src] dst

        -v:输出执行时过程时信息
        -e env-var:如果env-var中含有y或Y字符,就执行,否则不做任何动作
        -o option:功能和-e很像,只是它不用变量而是用字符串。如果当中含有y或Y字符,就执行,否则不做任何动作
        -p perms:设置目标文件的权限                       setperm()
        -a text:把text内容添加到目标文件                    file_copy()
        -A patten:只在目标文件不存在patten,text内容才添加目标文件  file_append()
        -l link:不是复制文件,而是执行硬链接                 hard_link()
        -s sym-link:不是复制文件,而是执行符号链接             sym_link()

       如果参数没给出src,那romfs-inst.sh用basename函数从dst中得到基本文件名,这基本文件名加上当前目录成为src的全文件名。
       多个-e和-o选项会被执行逻辑与运算,如果不想执行逻辑与而是执行逻辑或,在条件中使用1或更多的y/n/字符的单个的-e/-o
       如果src是一个目录,那当中的所有文件都会被复制过去(除了CVS目录)

       注:汉字部分是在源码上添加的注释。


1.                 $(ROMFSINST)-e -a 用法:  将 -a 后的内容追加写入 目标文件中

/sdk/user/inetd/Makefile 文件:

    
  1. romfs:
  2. $(ROMFSINST) /bin/$(EXEC)
  3. :
  4. : inetd.conf
  5. :
  6. $(ROMFSINST) -e CONFIG_USER_DISCARD_DISCARD \
  7. -a "discard dgram udp wait root /bin/discard" /etc/inetd.conf
  8. $(ROMFSINST) -e CONFIG_USER_DISCARD_DISCARD \
  9. -a "discard stream tcp nowait root /bin/discard" /etc/inetd.conf
  10. $(ROMFSINST) -e CONFIG_USER_MARADNS_MARADNS \
  11. -a "domain stream tcp nowait root /bin/zoneserver" /etc/inetd.conf
  12. $(ROMFSINST) -e CONFIG_USER_TFTPD_TFTPD \
  13. -a "tftp dgram udp wait root /bin/tftpd" /etc/inetd.conf
  14. $(ROMFSINST) -e CONFIG_USER_SSH_SSHD \
  15. -a "ssh stream tcp nowait root /bin/sshd -i" /etc/inetd.conf
  16. $(ROMFSINST) -e CONFIG_USER_TELNETD_TELNETD \ //如果该宏定义了,则执行对应的语句
  17. -a "telnet stream tcp nowait root /bin/telnetd -i -l /bin/sh" /etc/inetd.conf
  18. $(ROMFSINST) -a "telnet stream tcp nowait root /bin/telnetd -i -l /sbin/login" /etc/inetd.conf
  19. // 将 -a 后的内容追加写入 目标文件中

/smbshare/F600C/sdk/user2/proc_var/Makefile
     
  1. RC_LEVEL_PROC=/etc/init.d/rc10
  2. $(ROMFSINST) -a "echo 200 > /proc/sys/net/core/netdev_max_backlog" $(RC_LEVEL_PROC)
  3. ifndef CONFIG_ARCH_LUNA_SLAVE
  4. $(ROMFSINST) -a "echo 600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established" $(RC_LEVEL_PROC)
  5. $(ROMFSINST) -a "echo 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl" $(RC_LEVEL_PROC)
  6. $(ROMFSINST) -a "echo 3 > /proc/sys/net/ipv4/tcp_keepalive_probes" $(RC_LEVEL_PROC)
  7. $(ROMFSINST) -a "echo 10 > /proc/sys/net/ipv4/tcp_keepalive_time" $(RC_LEVEL_PROC)
  8. $(ROMFSINST) -a "echo 60 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait" $(RC_LEVEL_PROC)

对应的文件:
     
  1. # cat /etc/init.d/rc10
  2. echo 200 > /proc/sys/net/core/netdev_max_backlog
  3. echo 600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
  4. echo 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl
  5. echo 3 > /proc/sys/net/ipv4/tcp_keepalive_probes
  6. echo 10 > /proc/sys/net/ipv4/tcp_keepalive_time
  7. echo 60 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait


2.                                           $(ROMFSINST)-s 用法:   创建软链接                                                                           /smbshare/F600C/sdk/vendors/Realtek/luna/Makefile

     
  1.    $(ROMFSINST) -s /bin /sbin
  2.    $(ROMFSINST) -s /var/ppp /etc/ppp
  3.    $(ROMFSINST) -s /var/config /etc/config
  4.    $(ROMFSINST) -s /var/passwd /etc/passwd




3.                                                                    $(ROMFSINST ) /bin/ 将编译的应用安装到 /bin 目录下 /smbshare/F600C/sdk/user/routed/Makefile
     
  1. all: routed
  2. routed: $(OBJS)
  3. $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) -L../boa/src/LINUX $(LIBMIB) $(LIBVOIP)
  4. romfs:
  5. $(ROMFSINST) /bin/routed
  6. clean:
  7. rm -f *.elf *.gdb *.o routed










更多推荐

romfs

本文发布于:2024-02-12 05:55:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686464.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:romfs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!