网站首页 > 开源技术 正文
16.应用程序软件包测试
本实验目标
掌握应用程序软件包的编译方法
掌握应用程序的安装使用
14.1 准备工作
跟上一个实验差不多,这里我们提供一个应用程序的软件包模板,存放在目录:“附件: 应用程序软件包模板 “当中 ,名称为: ”mydrv_app” ,我们要将该应用程序软件包放在 OpenWrt 的一个特定的目录下面: openwrt/trunk/package/
14.2 配置 OpenWrt 支持软件包的编译
回到目录: openwrt/trunk/
输入命令: make menuconfig
配置过程如下:
1 ) 选择 Utilities
2)选择我们的应用程序 mydrv_app,按 y 选中
14.3 应用程序软件包源码介绍
我们找到应用程序软件包,发现它的结构组成跟驱动程序软件包是一样的, Makefile 大体相同,直接找到源码:
$cd mydrv_app
$cd src
$vi mydrv_app.c
源码如下:
#include <stdio.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h>
int main(int argc , char** argv)
{
int fd;
int num = 1;
//打开驱动模块
fd = open("dev/mydrv" , O_RDWR|O_NONBLOCK);
if(fd < 0)
{
printf("can't open /dev/mydrv\n");
return -1;
}
//函数测试 write(fd,&num,1);
read(fd,&num,1);
ioctl(fd,1,1);
close(fd);
return 0;
}
相信写过 C 程序的都看得懂这些代码了,非常简单,首先打开驱动模块,然后从应用 层调用函数即可!
14.4 编译应用程序软件包
好的,回到 openwrt/trunk/ 目录下,依次输入下列命令进行编译:
make package/mydrv_app/compile V=99
make package/mydrv_app/install V=99
make package/index V=99
编译没有出现 Error 即表示完成,编译后的固件存放在目录:
openwrt/trunk/bin/ramips/packages/base
14.5 应用程序的安装和使用
我们把编译得到的固件下载到开发板中(SSH 网络服务进行下载) ,下载完成后如图:
好的,现在就可以进行应用程序的安装了:
安装完成之后,在确定上一个实验的驱动加载完成后,运行应用程序:
说明: 如果需要自己的驱动程序软件包和应用程序软件包,只需要修改 Makefile 和 源码中的名字即可,直接替换名称!
本实验可能遇到的问题:
opkg install xxx.ipk 时提示:
satisfy_dependencies_for: Cannot satisfy the following dependencies for xxx 问题原因: openwrt 分为两个版本,一个是 trunk 版本,一个是 backfire 版本,我们
用的是 trunk 版本,即测试版本,这个版本每天都在更新;这个错误是因为 openwrt 版本 和 ipk 模块版本不相同导致的!
解决方法:
方法一
版本。
方法二
把驱动程序软件包或者应用程序软件包(即 ipk 模块)编译到 openwrt 中形成相同
尝试强制安装: opkg install xxx.ipk --force-depends
猜你喜欢
- 2025-09-19 彩色MACD看盘更直观一些(源码)_macd彩色柱指标编码
- 2025-09-19 成品短视频App源码推荐,助力你的创业梦想
- 2025-09-19 成品短视频app源码搭建教程,带你一步步实现开发
- 2025-09-19 软著必备_软著的含金量如何
- 2025-09-19 2句话,3分钟,我用AI撸出一款“拍照识中药”神器!附源码
- 2025-09-19 十款优质源代码加密软件推荐:十大源代码加密软件分享
- 2025-09-19 揭开源代码安全审计的神秘面纱_源代码审计支持的语言
- 2025-09-19 七款源代码加密软件全面评测,守护你的数字核心资产
欢迎 你 发表评论:
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)

本文暂时没有评论,来添加一个吧(●'◡'●)