解决Windows无法NFS启动imx6ull开发板的问题

问题:有时候我们需要将Linux虚拟机里的文件复制到Windows里,并在Windows上通过haneWIN NFS server启动imx6ull开发板。这时尽管在haneWIN NFS server里设置了exec权限,但仍然无法网络启动,并报Starting init: /sbin/init exists but couldn’t execute it (error -8)
的错误,这时我们只能使用必杀技,将环境变量设置为:
setenv bootargs ‘console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw’
并在本地启动的文件系统里mount要使用的文件夹,使用如下命令即可:
ifconfig eth0 172.168.40.47 netmask 255.255.255.0
mount -o nolock 172.168.40.85:/server/rootfs /FileDir/
另外需要说明的是,我使用的是网线直通电脑Windows10,也正是因为如此,才需要这么做。如果用USB转网口,可以将USB网口直接连接到虚拟机上,不会遇到上面的问题。
下面是详细的设置过程:
一、 遇到的问题:
使用如下uboot环境变量可以通过nfs把内核和设备树拉到开发板上,但文件系统会报错。
setenv ipaddr 172.168.40.47
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 172.168.40.1
setenv netmask 255.255.255.0
setenv serverip 172.168.40.85
setenv bootcmd ‘nfs 80800000 172.168.40.85:/server/zImage;nfs 83000000 172.168.40.85:/server/imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000’
setenv bootargs ‘console=ttymxc0,115200 root=/dev/nfs nfsroot=172.168.40.85:/server/rootfs,proto=tcp rw ip=172.168.40.47:172.168.40.85:172.168.40.1:255.255.255.0::eth0:off’
saveenv
文件系统报错如下:
VFS: Mounted root (nfs filesystem) on device 0:14.
[ 7.584425] devtmpfs: mounted
[ 7.588105] Freeing unused kernel memory: 520K (80b42000 - 80bc4000)
[ 7.597801] Starting init: /sbin/init exists but couldn’t execute it (error -8)
[ 7.610921] Starting init: /bin/sh exists but couldn’t execute it (error -8)
[ 7.618173] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[ 7.631317] —[ end Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
问题似乎是文件系统里的文件无法执行,使用uboot的bootargs环境变量无法得到rootfs里面的文件的可执行权限,只能在本地启动的文件系统里使用mount命令。这样在mount上去的文件夹里的文件才具有可执行权限。详细解决过程如下:

二、 解决办法
1、
首先介绍haneWIN NFS server的设置过程,我使用的是1.2.64版本的,通过hane官网可下载。

设置都为默认值,除了exports。






HaneWIN NFS server运行时需要将360安全卫士完全关闭,Windows防火墙也要关闭,否则内核和设备树都拉不下来。

2、第二步:将uboot的环境变量设置为如下:
setenv ipaddr 172.168.40.47
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 172.168.40.1
setenv netmask 255.255.255.0
setenv serverip 172.168.40.85

setenv bootcmd ‘nfs 80800000 172.168.40.85:/server/zImage;nfs 83000000 172.168.40.85:/server/imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000’

setenv bootargs ‘console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw’

saveenv
也就是用nfs更新内核和设备树。文件系统不使用nfs,使用mount的方式将文件从虚拟机里的文件拷到Windows中,这样mount 后的文件夹中的文件才具有可执行权限。

3、第三步:mount的命令
ifconfig eth0 172.168.40.47 netmask 255.255.255.0
sleep 5
mount -o nolock 172.168.40.85:/server/rootfs /FileDir/

可以将上面三句话放到开机自启动的脚本里,开机自动mount。

可以从上图看到从Linux虚拟机里复制到Windows中的文件已经变绿了,可以执行。其中/FileDir/和Windows中的D:\linux\nfs\rootfs文件夹等价,要更新文件到开发板上执行,复制到D:\linux\nfs\rootfs文件夹中即可。在HaneWIN NFS中需要设置-exec权限才可以使mount到的文件夹中的文件具有可执行能力。如下:
D:\linux\nfs\rootfs -alldirs -public -range 172.168.40.1 172.168.40.250
D:\linux\nfs -name:server -alldirs -range -public -exec 172.168.40.1 172.168.40.250

三、 总结

这种方法适用于想要用开发板通过单根网线连接电脑的方式,当然完全可以使用USB转网口设备并将它连接到虚拟机中。对于想要只用网线插电脑的或许有些帮助,感兴趣的可以学学,挺有意思的。

解决Windows无法NFS启动imx6ull开发板的问题相关推荐

  1. 使用NFS启动Tiny4412开发板根文件系统

    1.Ubuntu14.04上搭建NFS服务 1.1.安装NFS服务 $ sudo apt-get install nfs-kernel-server    //安装NFS服务 1.2 创建共享文件夹 ...

  2. imx6ull开发板 通过usb网卡uboot ping通虚拟机和windows主机

    1遇到的问题:直接烧录 uboot+kernel 启动后,手动配置开发板IP地址可以和windows主机linux虚拟机ping通,但是只烧录uboot后无法ping通linux虚拟机和windows ...

  3. 迅为IMX6ULL开发板NFS服务器的搭建

    基于迅为IMX6ULL开发板 (1)在 ubuntu 安装 nfs 服务:在管理员的身份下运行 apt-get install nfs-kernel-server (2) 在/home 下创建一个名为 ...

  4. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动

    文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...

  5. imx6ull开发板各个功能测试

    文章目录 1.启动开发板 1.1 MINI EMMC 启动方式的选择 1.2 串口连接 1.2.1 连接串口线和电源线.配置串口工具 1.2.2 安装USB串口模块驱动 1.2.3 使用MobaXte ...

  6. Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核)

    Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核) 文章目录 Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4 ...

  7. <WIN10+Ubuntu18.04+IMX6ULL开发板------在手机热点下联网>链接过程整理

    @TOC<WIN10+Ubuntu18.04+IMX6ULL开发板>链接过程整理 Ping----开发板/windows10/Ubuntu18.04 遇到的问题 1)Windows与Ubu ...

  8. 开发环境搭建【Windows11、imx6ull开发板、ubuntu虚拟机】

    搞定了,写个笔记记录一下,开冲 目录 一.前提条件: 二.要搭建的环境: 三.搭建网络环境 根据现有情况搭建我的网络结构如下: 开发板修改IP window11有线网卡设置IP Ubuntu虚拟机IP ...

  9. [教程]北京迅为iMX6ULL开发板上配置 AP 热点

    本文转自迅为iMX6ULL开发板使用手册第九十九章,使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\99_章节使用资料. 关注公众号"迅为电子" , ...

最新文章

  1. python时间序列分析航空旅人_时间序列分析-ARIMA模型(python)
  2. linux nmcli源码,Linux上利用nmcli命令创建网络组(示例代码)
  3. SpringBoot实现过滤器、拦截器与切片源码分析
  4. sqlserver-事务处理
  5. JAVA SSM框架+Redis 实现单点登录
  6. CSS 块格式化上下文 BFC
  7. Android 4.4环境搭建——Android SDK下载与安装
  8. 阿里旺旺2012自动登录
  9. Linux 命令收集
  10. 如何将dwt模板移到php,ECSHOP模板文件(dwt)在线编辑器 | Jacklee的博客
  11. Android 打开URL
  12. Windows命令之tracert命令
  13. 牛客 打气球的最大分数
  14. SDCC 2017·深圳站八大不容错过的理由
  15. GNU Bison 2.1 中文手册
  16. CWRU(凯斯西储大学轴承数据中心)数据集获取
  17. 学生成绩计算的c语言,学生成绩标准管理系统C语言.doc
  18. isolatedModules‘ because it is considered a global script file. Add an import, export, or an empty
  19. 咱们程序要预防腰椎间盘突出
  20. TortioseGit使用

热门文章

  1. 【报告分享】2021小红书品牌投放产品介绍-小红书(附下载)
  2. QuestaSim 仿真常用命令
  3. 抖音直播伴侣显示服务器问题,抖音直播伴侣窗口怎么设置?调整窗口的方法了解一下...
  4. JRebel LS client not configured解决方案
  5. 先学c 还是先学java_小白学编程语言一开始先学c还是java?
  6. UVA11540 Sultan's Chandelier
  7. java实现打字母小游戏
  8. 设计模式之工厂模式(附代码示例)
  9. 复杂大脑网络的结构和功能
  10. 运营商数据可以应用到哪些行业?看完这篇文章你就知道了