解决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. Xilinx网站资源导读
  2. Swift - 异常处理
  3. Spring boot正常启动,访问却报“找不到 localhost 的网页”错误;jpa执行没有数据...
  4. JavaScript 的 Promise  和  C# 的 waitone 一样吗?请大家讨论i两句。
  5. vue调用手机相机相册_详解Vue调用手机相机和相册以及上传
  6. ios系统python编译器_MacBook如何安装Python编译器-百度经验
  7. TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
  8. 2个js实现图片轮播效果(用)
  9. 【Kafka】ERROR Error when sending message to topic topic_lcc with key: null, value: 4 bytes with error
  10. java中继承applet类_java.applet.Applet类
  11. App installation failed (A valid provisioning profile for this executable was not found)
  12. python3小游戏源代码_python3实现弹弹球小游戏
  13. 图解设计模式(二)适配器模式
  14. 64k超高清3d程序 Warez出品的精品动画 近25万倍的压缩的精品
  15. python——xlwt
  16. 机器学习——基本原理
  17. 基于微博热搜生成词云图
  18. 能上QQ无法打开网页
  19. 刷宝短视频Auto.js挂机源码讲解
  20. Android系列之Navigation的目的地(Destination)

热门文章

  1. 设计一个程序,帮助小学生练习10以内的加法题目
  2. 1.Unity之Shader新手入门
  3. 东方博宜 #1007统计大写英文字母的个数
  4. Java基础之Java8中Map的compute的使用
  5. Springboot过滤器中注入Bean
  6. CSS中如何实现背景图片透明并且固定和文字不透明效果
  7. 使用 fitter 拟合数据分布
  8. 5G时代的网盘,直接送1000G空间!
  9. 万豪国际集团全新人才品牌“Be”将于全球超8300家酒店上线 | 美通社头条
  10. php 微信支付时 自定义的商户订单号 与 商户支付后台 查询到的不一样 的坑