精华内容
下载资源
问答
  • Arm-Linux根文件系统网络配置小结    本文分三点来记录嵌入式Linux根文件的一些网络配置技巧:   1、对开发板配置静态IP:    将根文件系统/etc/network/interface文件中   auto eth0 ...
    Arm-Linux根文件系统网络配置小结
     
      本文分三点来记录嵌入式Linux根文件的一些网络配置技巧:
     
    1、对开发板配置静态IP:
     
      将根文件系统/etc/network/interface文件中
     
    auto eth0
    iface eth0 inet dhcp
            pre-up /bin/grep -v -e "ip=[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" /proc/cmdline > /dev/null
     
    将eth0的DHCP配置修改为static ip方式:
     
    auto eth0
    iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        network 192.168.1.0
        gateway 192.168.1.1 
     
    即可以静态方式IP启动。
     
    2、复制文件系统网卡名eth0变化的解决方法:(同样适合虚拟机文件拷贝)
     
       根文件系统每复制一次,网卡名字后缀就要加1,比如复制两次根文件系统eth0就会变成eth2。其原因是Linux为防止网络内有相同的MAC地址而采用一种自动探测机制,同时也会改为网卡名字。其解决方法:
     
    修改/etc/udev/rules.d/70-persisten-net.rules文件
     
    #PCI device 0x1022:0x2000 (pcnet32)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="……", ……, KERNEL=="eth*", NAME="eth0"
    #PCI device 0x1022:0x2000 (vmxnet)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="……", ……, KERNEL=="eth*", NAME="eth1"
    #PCI device 0x1022:0x2000 (vmxnet)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="……", ……, KERNEL=="eth*", NAME="eth2"
     
    将SUBSYSTEM开头的所有3行都注释掉即可。
     
    #PCI device 0x1022:0x2000 (pcnet32)
    #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="……", ……, KERNEL=="eth*", NAME="eth0"
    #PCI device 0x1022:0x2000 (vmxnet)
    #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="……", ……, KERNEL=="eth*", NAME="eth1"
    #PCI device 0x1022:0x2000 (vmxnet)
    #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="……", ……, KERNEL=="eth*", NAME="eth2"
    重新启动系统网卡名又会变成eth0了。
     
    3、为根文件系统设置DNS服务器:
    只需要在/etc/resolv.conf文件中加入一行(原来默认为空)
    nameserver DNS服务器地址
    举例:
     
    nameserver 202.106.196.115
     
    启动/重启/停止网络命令:
    /net/init.d/networking start | restart | stop
    重启网络即可从开发板通过telnet或浏览器上网了。
    展开全文
  • 博客:Samsung Cortex-A9 Exynos4412开发板平台搭建,所需要的工具 四、通过网络加载内核和文件系统:rootfs.tar.gz
  • 使用NFS挂载网络根文件系统 宿主机Linux: 1、拷贝并解压root_qtopia.tgz至/opt/mini2440目录下; tar xvzf root_qtopia-20100108.tar.gz - C /opt/mini2440/ 2、设置共享目录,运行命令:#gedit/etc/exports,编辑...

    使用NFS挂载网络根文件系统
    宿主机Linux:
    1、拷贝并解压root_qtopia.tgz至/opt/mini2440目录下;
    tar xvzf root_qtopia-20100108.tar.gz - C /opt/mini2440/

    2、设置共享目录,运行命令:#gedit/etc/exports,编辑nfs配置文件,打开后文件是空的,在文件中加入:/opt/mini2440/root_qtopia *(rw,sync,no_root_squash),保存退出。
       设置生效并查看:
       exportfs -ra
       exportfs -v
       其中,/opt/mini2440/root_qtopia是共享目录,*表示所有客户机都可以挂载此目录,rw表示挂载此目录的客户机对此文件可读写的权力,no_root_qtopia表示允许挂载此目录的客户机拥有root身份。

    3、启动nfs服务,有两种方法,一种是输入命令:#/etc/init.d/nfs start,这将启动nfs服务,输入命令:#/etc/init.d/nfs stop,关闭nfs服务。要想在每次开机都自动启动nfs服务,需输入命令:#serviceconf,此时会弹出linux的服务配置窗口,找到nfs这一项,选中它并启动,然后保存退出即可。

    4、此时,主机的nfs服务已经配置完毕,可以输入命令:#mount –t nfs localhost: /opt/mini2440/rootfs_qtopia_qt4 /mnt/,输入后如果不提示任何消息,说明nfs已经挂载成功,进入/mnt目录下看看是否有/opt/mini2440/rootfs_qtopia_qt4文件夹下的内容。如有,则主机搞定!
    (注意:宿主机和虚拟机的ip地址保持在同一个网段)


    开发板设置:(在NAND FLASH下面)
    1、打开超级终端,连接好开发板,选择NAND FLASH启动开发板,启动时迅速按下空格键,进入vivi模式

    2、在Supervivi模式下面输入以下命令行,修改引导参数:
    setenv bootargs console=ttySAC0 root=/dev/nfsnfsroot=172.16.3.201:/opt/mini2440/rootfs_qtopia_qt4ip=172.16.3.202:172.16.3.201:172.16.3.201:255.255.255.0:mini2440.arm9.net:eth0:off

    其中 ,setenv bootargs 是设置启动开发板时的命令参数。其各参数的含义
    如下:
    nfsroot 是自己开发主机的IP 地址。
    “ip=”后面:
    第一项(172.16.3.202)是目标板的临时IP(注意不要和局域网内其他IP 冲突);
    第二项(172.16.3.201)是开发主机的IP;
    第三项(172.16.1.1)是目标板上网关(GW)的设置;
    第四项(255.255.255.0)是子网掩码;
    第五项是开发主机的名字(一般无关紧要,可随便填写)
    eth0 是网卡设备的名称。

    回车,然后:
    saveenv
    回车再重新启动开发板Linux系统: boot

    4、启动YAFFS:
    setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
    回车再输入saveenv

    5、要想每次启动都通过nfs启动系统,输入命令:Supervivi>menu,按下s,然后再按下w,将启动命令写入flash,成功!以后每次都可以以NFS方式启动。如不进行此操作,以后要想通过nfs启动系统都要对开发板进行上面环境变量的设置。
    (注意:注:用ifconfig eth0 172.16.3.201可以设置linux开发板的ip地址,但重启后又变成默认,要想保存改变的ip地址,需要改掉/etc/eth0-setting里面的IP就可以永久保存了)


    按开发板的任何键,然后开电源,注意跳线在NOR,进入VIVI的菜单,按q,到COMMAND下,复制下面这个语句
    param set linux_cmd_line "console=ttySAC0 root=/dev/nfsnfsroot=172.16.3.201:/root/tmp/root_qtopiaip=172.16.3.202:172.16.3.201:172.168.3.201:255.255.0.0:sbc2440.arm9.net:eth0:off"
    然后param save
    还原:param set linux_cmd_line "noinitrdroot=/dev/mtdblock3 init=/linuxrc console=ttySAC0"
    然后param save

    小技巧: 通过word来复制setenvbootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0, 可以消除换行符错误。

    -----2013/3/10

     

    展开全文
  • 这个程序存在于文件系统当中,文件系统存在于设备上,但不知道init存在哪个设备上,于是有了内核命令列选项root=,用来指定root文件系统存在于哪个设备上。 然后由于后来的设备类型越来越来多,比如可能在scsi,...

    initramfs

    当linux内核启动后,会找到并执行第一个用户程序,一般是init。这个程序存在于文件系统当中,文件系统存在于设备上,但不知道init存在哪个设备上,于是有了内核命令列选项root=,用来指定root文件系统存在于哪个设备上。

    然后由于后来的设备类型越来越来多,比如可能在scsi,sata,flash这些设备,还有的存在于网络设备上,不可能把这些设备的驱动编译进内核,这样内核就会越来越来大。为了解决这些问题,出现了基于ram的文件系统,initramfs,这个文件系统可以包含多个目录和程序init,然后通过这个程序,内核再用这个程序去挂载真正的要文件系统。如果没有这个程序,内核可以来寻找和挂载一个根分区,接着执行一些/sbin/init的变种。

    ramfs

    ramf是一个小型的基于内存的文件系统,由于linux中页的数据被缓存在内存中,然后标识为可用,为防止别用,ramfs就是基于这种机制产生的。只是放在ramfs中的目录和页的缓存,不在写回。

    rootfs

    rootfs是一种特定的ramfs的实例,它一直存在于系统中,不能卸载。大部分其他的文件系统安装于rootfs之上。

    initramfs和rootfs之间的关系

    当内核启动的时候,会先注册和挂载一个虚拟的根文件系统,也就是rootfs,然后会把做好的initramfs(这个可以自己制作)中的文件解压到rootfs中。然后系统会挂载真的根文件系统,rootfs隐藏之后。


    我的开发板上的u-boot传送的参数为noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 mem=64M。

    noinitrd的含义

    (仅当内核配置了选项 CONFIG_BLK_DEV_RAM和CONFIG_BLK_DEV_INITRD)现在的内核都可以支持initrd了,引导进程首先装载内核和一个初始化的ramdisk,然后内核将initrd转换成普通的ramdisk,也就是读写模式的根文件系统设备。然后linuxrc执行,然后装载真正的根文件系统,之后ramdisk被卸载,最后执行启动序列,比如/sbin/init。

    选项noinitrd告诉内核不执行上面的步骤,即使内核编译了initrd,而是把initrd的数据写到 /dev/initrd,只是这是一个一次性的设备。

    总结

    ramfs、rootfs、initramfs

    1、ramfs即基于内存的文件系统,rootfs是ramfs的实例;

    2、其它文件系统安装于rootfs之上,内核启动后首先注册和挂载该虚拟根文件系统,然后解压initramfs至rootfs中,继续通过init程序挂载真正的文件系统。

    内核------>initramfs(init)----->真正文件系统

    1、基于ram的文件系统的意义在于提供init程序挂载真正的文件系统,使得无需把scsi,sata,flash或网络设备的驱动编译进内核造成内核过大;

    2、基于ram的文件系统initramfs包含多个目录和程序init;

    3、需挂载的真正文件系统,通过在内核引导中配置如root=;

    引导进程

    -------->装载内核和一个初始化的ramdisk

    -------->将initrd转换成普通的ramdisk(读写模式的根文件系统设备)

    -------->执行linuxrc(装载真正的根文件系统)

    -------->ramdisk被卸载

    -------->执行启动序列/sbin/init。

    内核启动后,第一个用户程序为init

    如果initramfs中没有init,内核会寻找和挂载一个根分区,接着执行一些/sbin/init的变种



    展开全文
  • 最近自己移植根文件系统,发觉开发板老是无法挂载网络根文件系统,后来竟然发现是网络根文件系统其实能够正常被挂载,只是网络根文件系统里面竟有脚本来配置开发板的IP地址,查找了2个小时的蛋疼问题竟然是因为当初...
    最近自己移植根文件系统,发觉开发板老是无法挂载网络根文件系统,后来竟然发现是网络根文件系统其实能够正常被挂载,只是网络根文件系统里面竟有脚本来配置开发板的IP地址,查找了2个小时的蛋疼问题竟然是因为当初的手贱~~~为哈要添加改IP的脚本呢??委屈
    展开全文
  • 在前面的文章中介绍《Linux操作系统启动过程》,而Linux系统的根文件系统(root file system)的挂载过程则是其中一个重要环节,下面这部分内容来自于网络,经整理分享如下,希望能给这部份知识点比较迷茫的朋友一点...
  • uboot编译平台环境:64位win8.1的虚拟机...交叉编译工具链为:arm-linux-gcc-4.6.3 uboot压缩包:uboot_tiny4412-20130729.tgz 一、Build uboot 配置并且编译出uboot.bin 解压: book@book-virtual-machine:/work/t
  • 网络启动,是用 TFTP 在服务器下载内核、dtb 文件到目标机的内存中,同时可以用 NFS 挂载网络根文件系统到目标机上,实现目标机的无盘启动。 准备工作: Firefly-RK3399 板子; 路由器、网线; 安装有...
  • 《建立根文件系统目录和文件》 <创建目录> 1)在linux系统中使用命令mkdir rootfs 创建一个文件夹 2)进入该文件夹依次批量的创建文件夹 bin dev etc lib proc sbin sys usr mnt temp var 3)创建u...
  • 嵌入式Linux开发包含uboot(启动程序类似与windows中的BIOS)、kernel(内核)、根文件系统、各种应用程序几个部分,这几个部分的关系是开机上电后uboot初始化网络、串口、FLASH等驱动,加载系统参数或设备树文件到...
  • Linux根文件之SysV系统启动方式总结

    千次阅读 2017-05-14 12:48:32
    1. Linux根文件系统演变 在内核初始化完成后,嵌入式Linux文件系统的启动过程主要包含以下几个步骤: l 执行/sbin/init文件 l 执行/etc/inittab文件 l 执行/etc/rcS文件 l 执行挂载虚拟文件系统脚本 l ...
  • 一、linux内核 1、内核的作用 ... 支持的文件系统,cat /proc/filesystems 设备的管理,聚焦到linux驱动:字符设备、块设备、网络设备、中断、内核时钟等。 网络协议:TCP/IP 2、Linux内核的官网:https:...
  • 根文件系统file命令及其用法根文件系统命名规则路径绝对路径相对路径管理文件管理目录管理文件的创建和删除删除文件运行程序设备管理软件管理进程管理网络管理功能快捷键合理的创建标题,有助于目录的生成如何改变...
  • 嵌入式Linux 的Cramfs 根文件系统配置成可读可写   1、概述  从软件角度上看,构建基于ARM技术的linux系统要涉及到引导加载程序、Linux内核、文件系统、用户应用程序几部分的设计。文件系统是...
  • 要把这两部分都放到一个1.44MB的软盘上去,通常要对内核和根文件系统进行压缩,压缩核心的最好方法是进行重新编译内核,将一些不必要的支持去掉,如对网络和其它周边设备的支持,重要的一点是记住内核必须支持...
  • uboot与现在ubuntu18上搭建的nfs默认使用的版本不兼容 RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog" ...在/etc/default/nfs-kernel-server配置文件中添加该配置行,使nfs服务兼容v2版本,以支持uboot ...
  • 在介绍根文件系统挂载之前先介绍一些基础知识 initramfs 当linux内核启动后,会找到并执行第一个用户程序,一般是init。这个程序存在于文件系统当中,文件系统存在于设备上,但不知道init存在哪个设备上,于是有了...
  • NFS配置以实现开发板挂载虚拟机里的linux根文件系统  花了两天时间进行NFS配置以实现开发板挂载虚拟机里的linux根文件系统,一直卡在虚拟机没法与开发板进行通信,ping不上的问题。  解决该问题,有以下...
  • ARM Linux根文件系统(Root Filesystem)的制作关于根文件系统的制作,网络上有很多文章,大多数都只讲到建几个目录,然后用Busybox做个Shell,有很多关键的东西没有说。经过很长时间的摸爬滚打,我终于能够白手起家...
  • 这几天参考国嵌的实验手册和网上的资料完成了u-boot定制、内核定制、ramdisk根文件系统的制作,并成功。趁热打铁,总结一下。本文引用了很多网络上的文章,就不一一注明了。感谢各大侠的帮助,如有雷同,望见谅。 ...
  • 嵌入式linux的开发中,内核移植及根文件系统的建立过程中,为了验证内核移植是否成功,根文件系统的建立是否可行,需要将它们的映像文件烧写到Flash中反复试验。如此频繁地烧写Flash,既浪费时间,减低了开发效率,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 700
精华内容 280
关键字:

linux网络根文件系统

linux 订阅