【每日一记9】+第9天 Linux-通过网络nfs和tftp运行linux驱动程序
  

新手629655 3681

{{ttag.title}}
一、准备工作
  1.确保使用的Ubuntu系统开启NFS和TFTP网络;
  2.确保正在使用的Linux开发板有与之匹配的uboot程序,并且复位或者上电后能进入uboot命令行模式下。
      注意:如果是EMMC启动方式,uboot程序在EMMC中;如果是SD卡启动,uboot程序在SD卡中;
  3.设置uboot的环境变量
  (1)设置使用的Linux开发板网络环境,具体命令如下:


/* 开发板的ip地址 */   setenv ipaddr 192.168.1.50
/* 开发板的MAC地址设置,如果同一个网段内有多个 设备要确保此地址不同*/ setenv ethaddr 00:04:9F:042:35
/* 网关地址 */ setenv gatewayip 192.168.1.1
/* 子网掩码 */setenv netmask 255.255.255.0
/* 服务器ip地址,这里是笔者使用的Ubuntu的ip地址 */ setenv serverip 192.168.1.110
/* 保存环境变量 */savenenv

  设置完成后可以依次输入下面命令查看设置的结果:

  同时也可以使用ping命令查看开发板是否能与Ubuntu连通,命令如下:ping 192.168.1.110
  如果显示如下信息,表示通讯正常,可以进行后面的操作,否则需要检查通不上的原因:


  (2)设置bootcmd和bootargs环境变量的值
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-fire-emmc.dtb; bootz 80800000 - 83000000'
  以上设置是通过tftp网络加载linux系统zImage和linux设备树文件imx6ull-fire-emmc.dtb;

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.110:/home/robot/linux/nfs/rootfs ip=192.168.1.50:192.168.1.110:192.168.1.1:255.255.255.0::eth0ff'
  以上设置是通过nfs网络加载根文件系统。

  设置完成后可输入“printenv”命令查看设置的bootcmd和bootargs环境变量的值,显示结果如下:



二、开始操作
  1.将在Ubuntu中编译好的.ko文件和可执行用户文件拷贝到根文件目录“/lib/modules/4.1.15”中(如果没有该目录请自行创建),命令如下:sudo cp chrdevbase.ko chrdevbaseApp
/home/robot/nfs/rootfs/lib/modules/4.1.15 -f 拷贝完成后就可以在指定的文件目录中查看到拷贝的文件,如下图所示:

  2.加载chrdevbase.ko驱动文件
depmod  /* 加载驱动文件前需要执行一次该指令 */
modprobe chrdevbase.ko    /* 加载驱动文件 */
lsmod  /* 查看加载的驱动文件信息 */
cat /proc/devices/  /* 查看所有运行的驱动设备 */

  3.创建设备节点文件
  驱动加载成功需要在/dev目录下创建一个与之对应的设备节点文件,应用程序就是通过操作这个设备节点文件来完成对具体设备的操作。进入/dev目录,输入如下命令创建chrdevbase的设备节点文件:
mknod /dev/chrdevbase c 200 0
  结果显示如下:



  4.chrdevbase设备操作测试

  输入如下命令进行读和写操作:

/* 读操作 */
./chrdevbaseApp /dev/chrdevbase 1
/* 写操作 */
./chrdevbaseApp /dev/chrdevbase 2
  显示的结果如下图所示:



  5.卸载驱动模块

rmmod chrdevbase.ko
  具体操作和显示结果如下图所示:

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

小霞米 发表于 2024-2-8 18:13
  
一起来学习一起来学习
蔺嘉宾 发表于 2024-2-8 18:13
  
一起来学习一起来学习
朱墩2 发表于 2024-2-8 18:13
  
一起来学习一起来学习
唐三平 发表于 2024-2-8 18:13
  
一起来学习一起来学习
焱燚 发表于 2024-2-8 18:20
  
一起来学习一起来学习
小小胖 发表于 2024-2-8 18:20
  
一起来学习一起来学习
梦境人生 发表于 2024-2-8 18:21
  
一起来学习一起来学习
德德 发表于 2024-2-8 18:25
  
一起来学习一起来学习
飞飞侠 发表于 2024-2-8 18:25
  
一起来学习一起来学习
发表新帖
热门标签
全部标签>
每日一问
新版本体验
产品连连看
安全效果
功能体验
标准化排查
GIF动图学习
【 社区to talk】
纪元平台
信服课堂视频
社区新周刊
安装部署配置
流量管理
畅聊IT
技术笔记
上网策略
每周精选
高手请过招
全能先锋系列
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
测试报告
日志审计
问题分析处理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
平台使用
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
西北区每日一问
升级&主动服务
高频问题集锦
POC测试案例
云化安全能力
专家说
热门活动
产品动态
行业实践
产品解析
关键解决方案

本版版主

127
322
359

发帖

粉丝

关注

本版达人

你咋不高兴

本周建议达人

壹加壹网络

本周分享达人