Openwrt Udev Configure(3)
1 Scope of Document
This document describes how to write udev script, when enum usb device maybe produces several interfaces(/dev/ttyUSB*),
if we want to compatible serveral usb modules, udev script is very useful.when module insert or remove, spec udev script will
be called.example: this module have four port, we can enumerated to specific devices(/dev/ttyfdti1,/dev/ttyftdi1,/dev/ttyftdi2,/dev/ttyftdi3).
#add for ftdi usb-serial
ACTION=="add",KERNELS=="1-1.4:1.0",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi0"
ACTION=="add",KERNELS=="1-1.4:1.1",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi1"
ACTION=="add",KERNELS=="1-1.4:1.2",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi2"
ACTION=="add",KERNELS=="1-1.4:1.3",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi3"
#remove for ftdi usb-serial
ACTION=="remove",KERNELS=="1-1.4:1.0",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi0"
ACTION=="remove",KERNELS=="1-1.4:1.1",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi1"
ACTION=="remove",KERNELS=="1-1.4:1.2",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi2"
ACTION=="remove",KERNELS=="1-1.4:1.3",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi3"
2 Requiremen
2.1 Function Requirement
Custom private udev rules,compatible different hardware module.
2.2 Performance Requirement
NA
3 Hardware Overview
NA
4 Functional Description
4.1 Functional Block Diagram
NA
5 Porting
5.1 System configure
Reference: https://wiki.archlinux.org/index.php/Udev_(简体中文)
https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html
example1:
when ec20 module be enumed, it can emum five device interfaces, /dev/tty20ec0,
/dev/tty20ec1,/dev/tty4g,/dev/tty20ec3,/dev/tty20ec4.attention to when enum /dev/tty4g interface, it will run /bin/ifup mobile script to diag-up.
If all internet access modules, its diag port was enumed to /dev/tty4g, we can compible all internet access modules in openwrt rootfs.
# add for ec20
ACTION=="add", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFiscFFipFFin00", ATTRS{bInterfaceNumber}=="00", SYMLINK="tty20ec0"
ACTION=="add", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFisc00ip00in01", ATTRS{bInterfaceNumber}=="01", SYMLINK="tty20ec1"
ACTION=="add", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFisc00ip00in02", ATTRS{bInterfaceNumber}=="02", SYMLINK="tty4g",RUN="/sbin/ifup mobile"
ACTION=="add", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFisc00ip00in03", ATTRS{bInterfaceNumber}=="03", SYMLINK="tty20ec3"
ACTION=="add", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFiscFFipFFin04", ATTRS{bInterfaceNumber}=="04", SYMLINK="tty20ec4"
# remove for ec20
ACTION=="remove", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFiscFFipFFin00", ATTRS{bInterfaceNumber}=="00", SYMLINK="tty20ec0"
ACTION=="remove", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFisc00ip00in01", ATTRS{bInterfaceNumber}=="01", SYMLINK="tty20ec1"
ACTION=="remove", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFisc00ip00in02", ATTRS{bInterfaceNumber}=="02", SYMLINK="tty4g",RUN="/sbin/ifdown mobile"
ACTION=="remove", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFisc00ip00in03", ATTRS{bInterfaceNumber}=="03", SYMLINK="tty20ec3"
ACTION=="remove", ATTRS{modalias}=="usb:v2C7Cp0125d0318dcEFdsc02dp01icFFiscFFipFFin04", ATTRS{bInterfaceNumber}=="04", SYMLINK="tty20ec4"
Example2:
if you have two usb-serial modules, and you
want to distinguish between them, you can reference follow udev script methon:
#add
for ftdi usb-serial
ACTION=="add",KERNELS=="1-1.4:1.0",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi0"
ACTION=="add",KERNELS=="1-1.4:1.1",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi1"
ACTION=="add",KERNELS=="1-1.4:1.2",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi2"
ACTION=="add",KERNELS=="1-1.4:1.3",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi3"
#remove for ftdi usb-serial
ACTION=="remove",KERNELS=="1-1.4:1.0",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi0"
ACTION=="remove",KERNELS=="1-1.4:1.1",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi1"
ACTION=="remove",KERNELS=="1-1.4:1.2",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi2"
ACTION=="remove",KERNELS=="1-1.4:1.3",SUBSYSTEMS=="usb",DRIVERS=="ftdi_sio",SYMLINK+="ttyftdi3"
Openwrt Udev Configure(3)的更多相关文章
- Openwrt WiFi Configure(1)
1 Scope of Document This document describes how to custom wifi option 2 Requiremen 2.1 ...
- Openwrt VLAN Configure(2)
1 Scope of Document This document describes vlan design on nodewrt2p 2 Requiremen 2.1 ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)补遗
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 昨晚上熬夜写了[Openwrt项目开发笔记]:O ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- openwrt 添加 应用(luci-application)
openwrt 添加应用的几个步骤如下: (1)在目录 ./feeds/luci/applications 下添加要增加的应用,譬如 "luci-test" (2)里面应该包含以下 ...
- [Openwrt 项目开发笔记]:Openwrt必要设置(二)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 前面的两篇blog中,我将如何搭建Openwrt ...
- ASP.NET Core 选项模式源码学习Options Configure(一)
前言 ASP.NET Core 后我们的配置变得更加轻量级了,在ASP.NET Core中,配置模型得到了显著的扩展和增强,应用程序配置可以存储在多环境变量配置中,appsettings.json用户 ...
- udev规则(转)
Writing udev rules by Daniel Drake (dsd)Version 0.74 The most recent version of this document can al ...
- 搭建OpenWrt开发环境(包括编译过程)
OpenWrt是一个高度模块化.高度自动化的嵌入式linux发行版,其编译和安装过程比普通的linux发行版而言,要简单太多了.如果您是新手,您那恐惧的心大可放到肚子里,呵呵.对于新手来说最麻烦的恐怕 ...
随机推荐
- logistic回归和softmax回归
logistic回归 在 logistic 回归中,我们的训练集由 个已标记的样本构成:.由于 logistic 回归是针对二分类问题的,因此类标记 . 假设函数(hypothesis functi ...
- 关于即来即停app的功能
Asmallpark软件接口文档说明 编码均采用UTF-8格式传输全部为http,POST请求状态码:200 操作成功 100 服务器异常,稍后再试 404 请求非法 402 数据库 ...
- 如何将一个Winform嵌入到一个Control当中
/// <summary> /// 将一个winform窗体嵌入control中 /// </summary> /// <param name="f" ...
- BZOJ1398: Vijos1382寻找主人 Necklace 字符串最小表示法
Description 给定两个项链的表示,判断他们是否可能是一条项链. Input 输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的). Output 如果 ...
- BZOJ3297: [USACO2011 Open]forgot DP+字符串
Description 发生了这么多,贝茜已经忘记了她cowtube密码.然而,她记得一些有用的信息.首先,她记得她的密码(记为变 量P)长度为L(1 <= L<=1,000)字符串,并可 ...
- Tex: The top-level auxiliary file: *.aux I couldn't open style file IEEEtran.bst 解决方法
参考: Bibliography is not printed using Kile on Ubuntu Tex: The top-level auxiliary file: *.aux I coul ...
- js渐隐渐现透明度变化淡入淡出轮播图
js渐隐渐现透明度变化淡入淡出轮播图.焦点图 一些广告banner展示常见. (附件) <!DOCTYPE html> <html> <head> <meta ...
- 使用caffe训练自己的图像数据(未完)
参考博客:blog.csdn.net/drrlalala/article/details/47274549 1,首先在网上下载图片,猫和狗.直接保存下载该网页,会生成一个有图片的文件夹.caffe-m ...
- ubuntu 14.04 (desktop amd 64) 下载
http://cdimage.ubuntu.com/ubuntukylin/releases/14.04/release/
- 【Golang】解决Go test执行单个测试文件提示未定义问题
背景 很多人记录过怎么执行Go test单个文件或者单个函数,但是要么对执行单文件用例存在函数或变量引用的场景避而不谈,要么提示调用了其它文件中的模块会报错.其实了解了go test命令的机制之后,这 ...