环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > 開發(fā)板,套件,編程器 > 開發(fā)板

類型分類:
科普知識
數(shù)據(jù)分類:
開發(fā)板

Porting ART Driver to OpenWRT

發(fā)布日期:2022-10-14 點(diǎn)擊率:38

OpenWRT is a popular wireless router OS, and ART (Atheros Radio Test) is a radio test tool provided by Qualcomm Atheros. If anyone want to test radio performance in OpenWRT OS, one thing has to to be done is that porting ART driver to OpenWRT. A friend of mine was looking for OpenWRT ART driver and I spent a lot of time on porting it. Fortunately, I finally succeeded and I like to share it with the readers of my blog in this post.

By the way, my English is not very good, if there is any mistake, please correct me.

Step 1, modify makefile.artmod to match with the specified kernel path and toolchain path.

KDIR := /home/tom/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.7  
PWD := $(shell pwd)   
ROOTDIR := $(PWD)/modules  
# Default architecture is MIPS  
ARC :=mips  CROSS_CC :=/home/tom/openwrt/trunk/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-

Step 2, by not making any code changes, starting compile and I got the error below.

error: unknown field ‘ioctl’ specified in initialize

I have encountered similar problem during porting ART driver for Freescale i.MX6 processor. Change ioctl into compat_ioctl of dk_fops structure located in modules/dk_func.c, compile again and there are no errors about ioctl.

Step 3, a new error as below.

error: ‘SPIN_LOCK_UNLOCKED’ undeclared here (not in a function)

Modify related code from

spinlock_t driver_lock = SPIN_LOCK_UNLOCKED;

to

DEFINE_SPINLOCK(driver_lock);

Step 4, compile the source code once again and art.ko kernel module is avilable in modules directory.

Step 5, upload art.ko to a web server and download it into DUT by wget command.

Step 6, load DUT by artgui, error is reported in console window as below.

deviceInit devIndex=0 device_fn=0 pdkInfo=0  
Opening device /dev/dk0  
Error: get version ioctl failed !  
< 6006 ERROR Anwi driver load error.  
< 7502 CONTROL OFF  
< 7504 INFO |set|devid||  
< 7504 INFO |set|mac||  
< 7504 INFO |set|customer||  
< 7506 CONTROL DONE load devid=-1; caldata=auto;

the screenshot is attached below

Step 7, dk_fop structure is defined as below in higher ART version.

#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,31) 
static long dk_ioctl_new(struct file *file, unsigned int cmd, unsigned long arg) 
{ struct inode *inode = file->f_path.dentry->d_inode; 
long ret; 
ret = dk_ioctl(inode, file, cmd, arg); return ret; } 
#endif

A new ioctl is defined and it takes effect when kernel version is above 2.6.31.

Step 8, modify dk_fops structure defined in lower ART version as below.

static long dk_ioctl_new(struct file *file, unsigned int cmd, unsigned long arg) { 
struct inode *inode = file->f_path.dentry->d_inode; 
long ret; 
ret = dk_ioctl(inode, file, cmd, arg); return ret; 
}  

static struct file_operations dk_fops = { 
owner: THIS_MODULE, 
open: dk_open, 
release: dk_release, 
mmap: dk_mmap, 
unlocked_ioctl: dk_ioctl_new };

Step 9, compile again and download art.ko into DUT, using artgui to load DUT and thers is no error in console window as below.

下一篇: PLC、DCS、FCS三大控

上一篇: 修改OpenWRT的發(fā)射功

推薦產(chǎn)品

更多
主站蜘蛛池模板: PC阳光板-PC耐力板-阳光板雨棚-耐力板雨棚,厂家定制[优尼科板材] | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 广州昊至泉水上乐园设备有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | POS机官网 - 拉卡拉POS机免费办理|官网在线申请入口 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 硅胶制品-硅橡胶制品-东莞硅胶制品厂家-广东帝博科技有限公司 | 慢回弹测试仪-落球回弹测试仪-北京冠测精电仪器设备有限公司 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 步入式高低温测试箱|海向仪器 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 |