调用的资源,  这些文件可以被用来写用户层

2019-07-18 作者:小鱼儿玄机30码   |   浏览(52)

目的:

运行环境:

Linux下生成自己的静态库文件
(1) 编写库文件testlib.c
#include
void a()
{
printf("zyxn");
}
小鱼儿玄机30码,(2)编写一个头文件用于声明我们使用的函数testlib.h
void a();
(3) 编译testlib.c
gcc -c testlib.c
(4) 用ar创建一个归档文件
ar crv libfirst.a testlib.o
生成libfirst.a
(5)在某些系统中还要为静态库生成一个内容表
ranlib libfirst.a
(6)然后就可以使用该静态库了

Steven Yang
Email: defeattroy at gmail.com
Date: 2011-04-20

  远端(php)控制网络设置(命令行shell)。

内核版本:2.6.23.1-42.fc8
OS:Fedora8、RedHat9
平台:PC
实现步骤:

小鱼儿玄机30码 1

系统的USB设备信息通过usbfs挂载在/proc/bus/usb下面,此目录下面有两种文件/proc/bus/usb/devices和/proc/bus/usb/BBB/DDD。

  而Network Manager会影响wpa_supplicant,所以需要卸载。

1、安装libusb(版本0.1.12)。默认生成在/usr/local/lib目录下。

/proc/bus/usb/BBB/DDD文件

 

2、安装pcsc-lite,它是独立于设备的API,基于pc/sc规范,可以通过这些接口访问智能卡。在此用的版本为pcsc-lite-1.4.99,安装步骤

  每一个连接的USB设备都有一个文件,BBB指示bus number,DDD指示设备在这个总线上的地址。这些文件可以当作二进制数据读取,内容包括设备描述和设备配置描述。这些信息在/proc/bus/usb/devices里面也有。

使用平台

./configure(配置编译环境)
Make(编译生成libpcsclite.a和libpcsclite.so)
Make install
Make生成的.a和.so文件默认在/usr/local/lib下, 运行file *,可以看到:

  这些文件可以被用来写用户层的USB设备驱动,可以打开/proc/bus/usb/BBB/DDD进行读写,读到其相关描述确定是不是你期望的设备,如果是,使用ioctl函数把它bind到一个(或几个)接口上。

Ubuntu 10.04 LTS

小鱼儿玄机30码 2

  注意只有root才能访问BBB/DDD文件,所以也只有root能写这些用户层的驱动。当然可以利用chmod改变权限或者在mount usbfs的时候利用devmode选项,例如"devmode=0666"

GNU/Linux i686 2.6.32-24-generic

3、检查/usr/lib/pcsc/目录下是否有读卡器驱动,若没有,安装驱动ccid(此版本为1.3.6)。默认生成在/usr/local/pcsc目录下

/proc/bus/usb/devices文件

 

4、安装完成后,可以运行src/目录下的testpcsc程序测试PC-linux平台下与智能卡是否可以通讯。注意要先启动pcscd 程序,然后再运行./testpcsc。

  该文件中每个设备的输出占多行,每行的含义如下:

调用的资源

编译测试程序如果出错,则须将/usr/locate/lib 加入到/etc/ld.so.conf文件中,别忘了ldconfig.

T = Topology (etc.)
B = Bandwidth (applies only to USB host controllers, which are
    virtualized as root hubs)
D = Device descriptor info.
P = Product ID info. (from Device descriptor, but they won't fit
    together on one line)
S = String descriptors.
C = Configuration descriptor info. (* = active configuration)
I = Interface descriptor info.
E = Endpoint descriptor info.

a)       显示网络状态

测试程序运行正确如图:

/proc/bus/usb/devices文件的格式如下

/sbin/ifconfig

小鱼儿玄机30码 3

=======================================================================

Cat /etc/resolv.conf

5、将该测试程序移植到arm-linux平台下,需用交叉编译工具重新编译:

/proc/bus/usb/devices output format:

/sbin/route –n

CC=arm-linux-gcc /configure –host=arm-linux –disable-libusb(配置编译环境)
Make(编译生成libpcsclite.a和libpcsclite.so)
Make install
CC是定义编译工具,默认为gcc, 在此要保证你的系统中装有arm-linux-gcc交叉编译环境;--host定义编译程序的运行平台,默认为PC-linux,在此我们要在arm下运行,所以改为arm-linux;由于系统中没有libusb故用disable.若有此库可不写。

Legend:
  d = decimal number (may have leading spaces or 0's)
  x = hexadecimal number (may have leading spaces or 0's)
  s = string

 

编译生成pcsclite的动态库(.so)和静态库(.a)同样在/usr/local/lib下可以找到,此时运行命令file *,可以看到:

Topology info:

b)       显示无线信号

附:
PCSC卡在linux下的驱动(PCSC-Lite, CCID driver):
libusb库下载地址:

T:  Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd
|   |      |      |       |       |      |        |       |__MaxChildren
|   |      |      |       |       |      |        |__Device Speed in Mbps
|   |      |      |       |       |      |__DeviceNumber
|   |      |      |       |       |__Count of devices at this level
|   |      |      |       |__Connector/Port on Parent for this device
|   |      |      |__Parent DeviceNumber
|   |      |__Level in topology for this bus
|   |__Bus number
|__Topology info tag

/sbin/iwlist wlan0 scan

小鱼儿玄机30码 4

    Speed may be:
        1.5    Mbit/s for low speed USB
    12    Mbit/s for full speed USB
    480    Mbit/s for high speed USB (added for USB 2.0)

 

Bandwidth info:
B:  Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd
|   |                       |         |__Number of isochronous requests
|   |                       |__Number of interrupt requests
|   |__Total Bandwidth allocated to this bus
|__Bandwidth info tag

c)       写入地址信息

    Bandwidth allocation is an approximation of how much of one frame
    (millisecond) is in use.  It reflects only periodic transfers, which
    are the only transfers that reserve bandwidth.  Control and bulk
    transfers use all other bandwidth, including reserved bandwidth that
    is not used for transfers (such as for short packets).

ifconfig eth0 192.168.1.101 netmask 255.255.255.0

    The percentage is how much of the "reserved" bandwidth is scheduled by
    those transfers.  For a low or full speed bus (loosely, "USB 1.1"),
    90% of the bus bandwidth is reserved.  For a high speed bus (loosely,
    "USB 2.0") 80% is reserved.

route add default gw 192.168.1.1

Device descriptor info & Product ID info:

本文由小鱼儿玄机30码发布于小鱼儿玄机30码,转载请注明出处:调用的资源,  这些文件可以被用来写用户层

关键词: 小鱼儿玄机30码