历史上的今天
返回首页

历史上的今天

今天是:2025年02月14日(星期五)

正在发生

2020年02月14日 | Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统

2020-02-14 来源:eefocus

经过上一篇《Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核》,已经实现了通过u-boot加载Kernel启动开发板,并且挂载根文件系统,本文讲述通过NFS网络挂载根文件系统。


通过NFS网络根文件系统,可以实现开发板在通过u-boot启动内核后,通过NFS网络在别的PC主机上挂载根文件系统。对于开发调试阶段的工作学习提供了很大的便利,可以直接在Linux主机上开发、编译驱动或者APP,并将目标文件拷贝到NFS服务目录中进行使用(此时文件相当于被拷贝到了开发板的根文件系统中)。也可以在主机端直接修改rootfs文件系统中别的文件,等效于在开发板上直接修改。


本文来介绍NFS挂载网络根文件系统的操作步骤,本方法不仅仅适用于Qemu搭建的ARM vexpress开发板环境,也适用于所有其他的开发板实体。


由于各个开发板的NFS网络文件系统制作方法是相同的,也可以参考Exynos4412和NanopiNEO开发板环境搭建中的NFS网络文件系统制作方法部分内容。


1. 环境配置

Linux主机支持NFS服务

修改bootargs启动参数

设置NFS为根文件系统

设置主机NFS文件系统地址

内核支持NFS挂载文件系统


2. 安装并配置NFS服务

2.1 Linux主机开启NFS服务

安装:


# sudo apt install nfs-kernel-server

配置NFS:


# vim /etc/exports

// 添加NFS共享目录

/home/mcy/qemu/rootfs    *(rw, sync, no_root_squash, no_subtree_check)

    rw    可读可写操作

    sync    内存和磁盘上的内容保持同步

    no_root_squash    Linux主机不再将开发板设置为匿名用户,可以操作文件读写

    no_subtree_check    不检查根文件系统子目录文件

重启NFS服务:


sudo /etc/init.d/rpcbind restart

sudo /etc/init.d/nfs-kernel-server restart

或者:


# systemctl restart nfs-kernel-server

检查NFS共享目录是否创建:


# sudo showmount -e

Export list for mcy-VirtualBox:

/home/mcy/qemu/rootfs *

注:

使用NFS网络文件系统时,需要Linux主机关闭系统防火墙,否则,系统在运行时会出现异常。


2.2 开发板配置支持NFS网络

修改u-boot中的启动参数:


# vim include/configs/

CONFIG_BOOTCOMMAND

    setenv bootargs 'root=/dev/nfs rw   

    nfsroot=192.168.0.105:/home/mcy/qemu/rootfs init=/linuxrc   

    ip=192.168.0.110 console=ttyAMA0';   

配置内核支持NFS挂载文件系统


完善NFS文件系统

重启reboot命令


3. 制作根文件系统

编译busybox


nfs

Linux System Utilities  --->

    [*] mount (30 kb)

        [*]   Support mounting NFS file systems on Linux < 2.6.23

创建rootfs目录,并在rootfs目录下创建文件:


# mkdir etc

# cd etc

# vim inittab

::sysinit:/etc/init.d/rcS        // 执行rcS脚本

#::respawn:-/bin/sh

#tty2::askfirst:-/bin/sh

#::ctrlaltdel:/bin/umount -a -r


console::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

# vim init.d/rcS

#! /bin/sh

PATH=/sbin:/bin:/user/sbin:/usr/bin

LD_LIBRARY_PATH=/lib

export PATH LD_LIBRARY_PATH


mount -a        // 挂载根文件系统 fstab

mkdir -p /dev/pts

mount -t devpts devpts dev/pts

mdev -s

mkdir -p /var/lock


echo "......"

# vim fstab

proc    /proc    proc    defaults    0    0

tmpfs    /tmp    tmpfs    default    0    0

sysfs    /sys    sysfs    default    0    0

tmpfs    /dev    tmpfs    default    0    0

var    /dev    tmpfs    default    0    0

ramfs    /dev    ramfs    default    0    0

# vim profile

PS1='xiami@vexpress:w #'

export PS1

也可以在~/.bashrc中修改或设置PS1


启动流程:

Linux内核启动之后,挂载根文件系统

开启init进程,bootargs init=/linuxrc,启动第一个用户进程

在用户进程中读取inittab脚本,


构建其他目录

其他的目录可以是空目录


# cd rootfs

# mkdir proc mnt tmp sys root


推荐阅读

史海拾趣

Cortina Systems Inc公司的发展小趣事

由于Cortina Systems Inc公司的具体发展历程和相关故事的详细资料可能涉及公司内部的敏感信息,且具体的故事可能随着时间和市场环境的变化而有所不同,因此,我无法直接为您提供5个关于Cortina Systems Inc公司在电子行业里发展起来的具体故事。不过,我可以基于公开资料为您概述Cortina Systems Inc公司在电子行业的一些重要发展节点和事件,您可以根据这些信息进行进一步的了解和研究。

  1. 并购集通科技,拓宽业务领域

在某一时期,Cortina Systems Inc.通过并购集通科技,实现了业务领域的拓宽。集通科技是一家专注于为中小型企业和家庭网络用户提供嵌入式网络处理器、三合一整合服务(Triple Play)和网络存储解决方案的私人公司。通过这次并购,Cortina成功地将集通在中小型企业和家庭网络技术方面的优势与其通信网络基础设施环境相结合,为下一代网络使用者社群网络、多媒体传输和数字家庭连接能力的发展奠定了坚实基础。

  1. 与思科紧密合作,推动技术标准发展

在技术标准制定方面,Cortina Systems Inc.与思科展开了紧密的合作。双方共同推出了Interlaken技术规范,这一规范被视为网络处理论坛(NPF)可升级的SPI规范的竞争对手。尽管NPF与光联网论坛(OIF)合并后,Cortina与思科并未将Interlaken提交至OIF,但这一合作仍然为行业内的技术标准发展注入了新的活力。

  1. 推出双模ONU网关解决方案,满足中国市场独特需求

随着全球通信市场的不断发展,Cortina Systems Inc.针对中国市场推出了双模ONU网关解决方案。这一解决方案的推出,旨在满足中国市场对于混合式接入方式的特殊需求。在中国,三大运营商引导的接入方式既包括EPON也包括GPON,这使得双模ONU成为市场趋势。Cortina通过这一解决方案,成功地为中国市场提供了独特的、适应本土需求的通信解决方案。

  1. 技术创新能力突出,不断推出新产品

作为电子行业的领导者之一,Cortina Systems Inc.一直以其突出的技术创新能力而著称。公司不断投入研发,推出了一系列具有创新性和竞争力的新产品。这些产品不仅提升了公司的市场竞争力,也为整个电子行业的发展带来了新的机遇和挑战。

  1. 拓展全球市场,提升品牌影响力

随着业务的发展和产品线的完善,Cortina Systems Inc.逐渐将目光投向了全球市场。公司通过参加各种国际展览和会议,积极与全球合作伙伴建立联系,拓展业务领域。同时,公司还加强了品牌建设和市场推广力度,提升了在全球市场的知名度和影响力。

这些事件和节点只是Cortina Systems Inc.在电子行业发展历程中的一部分。要了解更多关于该公司的具体故事和详细发展历程,建议您查阅相关新闻报道、行业分析报告或公司官方发布的信息。通过这些资料,您可以更深入地了解Cortina Systems Inc.在电子行业中的崛起和发展。

CDIL[Continental Device India Pvt. Ltd.]公司的发展小趣事

随着市场竞争的加剧和技术的不断进步,CDIL在15年前作出了重要决策——退出晶圆制造,转而专注于IC封装和电子制造服务。这一转型不仅使CDIL能够更好地适应市场需求,也为其带来了更广阔的发展空间。如今,CDIL的IC封装技术已达到国际先进水平,为全球众多知名电子企业提供优质服务。

ADL [ADL Embedded Solutions Inc]公司的发展小趣事

近年来,CDIL积极响应政府政策,利用生产挂钩激励计划(PLI)和电子元件和半导体制造促进计划(SPECS),计划将其产能从目前的5亿片基础上提高1亿片。同时,公司还计划在未来几年内建立两条新的ATMP生产线,以进一步提升产能和技术水平。此外,CDIL还在碳化硅(SiC)等新技术领域进行了深入研发,以满足电动汽车、电源管理设备等新兴市场的需求。

DBM Optix公司的发展小趣事

在竞争激烈的电子行业中,DBM Optix深知只有不断创新才能保持领先地位。因此,公司始终将研发作为核心竞争力之一,持续投入大量资金用于新技术、新产品的开发。通过与高校、研究机构等合作,DBM Optix不断引入新技术、新材料,并将其应用于产品中,从而不断提升产品的性能和品质。这些创新举措使得DBM Optix在光学通信领域始终保持领先地位。

Echelon_Corporation公司的发展小趣事

为了更好地服务全球客户,Echelon实施了全球化战略。公司不仅在美国加州设立了总部,还在欧洲和亚洲的多个国家和地区设立了办事处,包括中国、法国、德国、意大利、香港、日本、韩国、荷兰及英国等。这些办事处的建立,使得Echelon能够更好地了解当地市场需求和客户需求,并提供更加及时和专业的服务。

Diodes公司的发展小趣事

在半导体行业中,产品质量是企业生存和发展的基石。Diodes公司深知这一点,始终将产品质量放在首位。公司建立了完善的质量管理体系,从原材料采购、生产制造到产品检验,每一个环节都严格把控。同时,Diodes还不断引进先进的生产技术和设备,提高生产效率和产品品质。这些努力使得Diodes的产品在市场上赢得了良好的口碑,赢得了众多客户的信赖。

问答坊 | AI 解惑

影响平行缝焊成品率的因素

影响平行缝焊成品率的因素 【来源:SMT信息网】【作者:toptouch】【时间: 2004-12-30 14:31:47】【点击: 4490】 摘要:对于一些在特殊环境下使用的光电器件,需要进行密封,以防止器件中的电路模块因潮气、大气中的离子、腐蚀气 ...…

查看全部问答>

碁于uclinux的网络部分启动分析

碁于uclinux的网络部分启动分析…

查看全部问答>

工业自动化仪表与控制系统未来发展的关注 指针式仪表控制系统

1、自动化仪表与企业的信息化   自动化仪表技术包括信息采集、处理和应用。“企业信息化”实际上是企业信息的集成和整合。为此,必须用自动化和系统的信息模型“简化”、“规则”和“抽象”信息,以便最有效地利用信息。这是自动化仪表领域的一 ...…

查看全部问答>

关于cpu温度的读取,请高手指点

我想用WinIO.sys获取cpu的当前温度,为什么程序老是失败,temp_dwPortVal=0xffffffff 在头文件中导入: #include \"WinIO.h\" #pragma comment(lib,\"WinIo.lib\") 在实现中:         DWORD temp_dwPortVal=0;    ...…

查看全部问答>

s3c2440 camera 疑惑(基于7113的视频采集)

各位大侠,小弟现在正在搞2440 的视频开发,初次涉及,想用7113来做视频采集,烦请各位给提供个简单的思路,或者是大致的方向,不胜感激…

查看全部问答>

求一个AD口暴多的mcu,推荐一下

求一个AD口暴多的mcu,推荐一下…

查看全部问答>

关于8、16、32位单片机的区别

自学开始学习单片机,差不多学会了几种,包括8位的51系列和16位的msp430系列,以及32位的arm系列。 听一些人说一般要学会8位的51单片机后学习16位和32位才会比较容易,但是我实在对于他们的区别没有明显的感觉。特别是8位和16位单片机的区别,使用 ...…

查看全部问答>

verilog中多个模块的引用

verilog中多个模块的引用先在顶层模块中引用一个数码管动态显示的模块:led_disp        led(               .clk(clk),         ...…

查看全部问答>

PSMN1R8-40YLC N-channel 40 V 1.8 mΩ

这款芯片是sot669封装,但是我不清楚是几脚的,关于mb ,到底是画成第五个引脚还是,就只是四个引脚,四个引脚的话,那个Drain是第几引脚?为啥1,2,3引脚都是source引脚?此芯片是用的AltiumDesigner 画的封装,跪求指导。。。…

查看全部问答>

lpx54102 官方例程太坑

今儿看了nxp的官方例程,官方库感觉乱了。各种乱入的感觉。如果能有st那般就好了。…

查看全部问答>