当前位置:首页 >> 信息与通信 >>

嵌入式Linux下3G模块的驱动和应用


嵌入式 Linux 下 3G 模块的驱动和应用 1、 开发资源

1.1、硬件资源: ZTE-mf637u(中国联通) ZTE-mu351(中国移动)

1.2、软件资源: 1.2.1、usb-modeswitch-1.1.3 libusb-0.1.12.tar.gz usb-modeswitch-1.1.3.tar.bz2

1.2.2、ppp-2.4.4 libpcap-0.9.8.tar.gz ppp-2.4.4.tar.gz

1.2.3、wvdial 1.2.3.1、wvdial-1.54.0(arm-linux-gcc 3.4.1) zlib-1.2.5.tar.bz2 openssl-0.9.7g.tar.gz openssl-0.9.7g-fix_manpages-1.patch wvstreams-4.0.1.tar.bz2

wvstreams-4.0.1-tcl84-1.patch wvdial-1.54.0.tar.gz 1.2.3.2、wvdial_1.60.4(arm-linux-gcc 4.2.2) zlib-1.2.5.tar.bz2 openssl-0.9.8n.tar.gz openssl-0.9.8n-fix_manpages-1.patch wvstreams-4.6.1.tar.gz wvdial_1.60.4.tar.gz

2、

Linux 开发环境

2.1、主机环境 2.1.1、主机 linux 系统 Fedora Core 6

2.1.2、主机编译环境 2.1.2.1、gcc -v Using built-in specs. Target: i386-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile

--enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux Thread model: posix gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)

2.1.2.2、/usr/local/arm/3.4.1/bin/arm-linux-gcc -v Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 3.4.1

2.1.2.3、/usr/local/arm/4.2.2/usr/bin/arm-linux-gcc -v Using built-in specs. Target: arm-unknown-linux-gnueabi Configured with: /home/scsuh/workplace/coffee/buildroot-20071011/toolchain_build_arm/gcc-4.2.2/configu re --prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=arm-unknown-linux-gnueabi --enable-languages=c,c++ --with-sysroot=/usr/local/arm/4.2.2-eabi/

--with-build-time-tools=/usr/local/arm/4.2.2-eabi//usr/arm-unknown-linux-gnueabi/bin --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --enable-shared --with-gmp=/usr/local/arm/4.2.2-eabi//gmp --with-mpfr=/usr/local/arm/4.2.2-eabi//mpfr --disable-nls --enable-threads --disable-multilib --disable-largefile --with-arch=armv4t --with-float=soft --enable-cxx-flags=-msoft-float Thread model: posix gcc version 4.2.2

2.2、开发板环境 2.2.1、CES-6410 开发平台 Samsung S3C6410X, ARM1176JZF-S 128MB, Mobile DDR SDRAM USB HOST:一个 USB HOST 接口,USB2.0 全速(12Mbits/s)

3、

Linux 应用软件的编译

3.1、usb-modeswitch-1.1.3 [root@localhost cdma]# tar xzf libusb-0.1.12.tar.gz [root@localhost cdma]# cp libusb-0.1.12 libusb-0.1.12-arm [root@localhost cdma]# cd libusb-0.1.12-arm [root@localhost libusb-0.1.12-arm]#./configure --prefix=/works/cdma/install --host=arm-linux CC=arm-linux-gcc CXX=arm-linux-g++ [root@localhost libusb-0.1.12-arm]# make [root@localhost libusb-0.1.12-arm]# make install

[root@localhost libusb-0.1.12-arm]# cd ..

[root@localhost cdma]# tar xjf usb-modeswitch-1.1.3.tar.bz2 [root@localhost cdma]# cp usb-modeswitch-1.1.3 usb-modeswitch-1.1.3-arm [root@localhost cdma]# cd usb-modeswitch-1.1.3-arm [root@localhost usb-modeswitch-1.1.3-arm]# 修改 Makefile CC 改为 CC CFLAGS 改为 CFLAGS += -Wall -l usb -I/works/cdma/install/include -L/works/cdma/install/lib = arm-linux-gcc += -Wall -l usb = gcc

修改 usb_modeswitch.c // 改为 readConfigFile("/etc/usb_modeswitch.setup"); [root@localhost usb-modeswitch-1.1.3-arm]# make [root@localhost usb-modeswitch-1.1.3-arm]# make install [root@localhost usb-modeswitch-1.1.3-arm]# cd .. [root@localhost cdma]# readConfigFile("/etc/usb_modeswitch.setup");

3.2、ppp-2.4.4 [root@localhost cdma]# tar xzf libpcap-0.9.8.tar.gz [root@localhost cdma]# cp libpcap-0.9.8 libpcap-0.9.8-arm [root@localhost libpcap-0.9.8-arm]# ./configure --prefix=/works/cdma/install --host=arm-linux --with-pcap make: *** No rule to make target `pcap-yes.o', needed by `libpcap.a'. Stop. 修改 Makefile PSRC = pcap-yes.c 改为 PSRC = pcap-linux.c [root@localhost libpcap-0.9.8-arm]# make [root@localhost libpcap-0.9.8-arm]# make install [root@localhost libpcap-0.9.8-arm]# cd ..

[root@localhost cdma]# tar xzvf ppp-2.4.4.tar.gz [root@localhost cdma]# cd ppp-2.4.4 [root@localhost ppp-2.4.4]# ./configure --host=arm-linux vi pppd/Makefile

LIBS

+= -lpcap

CFLAGS += -DPPP_FILTER 改为 LIBS += -lpcap -L../../libpcap-0.9.8

CFLAGS += -DPPP_FILTER -I../../libpcap-0.9.8

[root@localhost ppp-2.4.4]# make CC=arm-linux-gcc

3.3、wvdial 3.3.1、wvdial-1.54.0 [root@localhost wvdial-1.54.0]# export PATH=/usr/local/arm/3.4.1/bin:$PATH [root@localhost wvdial-1.54.0]# tar xjf zlib-1.2.5.tar.bz2 [root@localhost wvdial-1.54.0]# cd zlib-1.2.5 [root@localhost zlib-1.2.5]#./configure --prefix=/works/wvdial-1.54.0/install 修改 Makefile CC = arm-linux-gcc CPP=arm-linux-gcc -E AR=arm-linux-ar rc RANLIB=arm-linux-ranlib [root@localhost zlib-1.2.5]# make [root@localhost zlib-1.2.5]# make install

[root@localhost wvdial-1.54.0]# tar xzf openssl-0.9.7g.tar.gz [root@localhost wvdial-1.54.0]# cd openssl-0.9.7g [root@localhost openssl-0.9.7g]# patch -Np1 -i ../openssl-0.9.7g-fix_manpages-1.patch [root@localhost openssl-0.9.7g]#./Configure --prefix=/works/wvdial-1.54.0/install os/compiler:arm-linux-gcc [root@localhost openssl-0.9.7g]# make [root@localhost openssl-0.9.7g]# make install [root@localhost openssl-0.9.7g]# cd ..

[root@localhost wvdial-1.54.0]# tar xjf wvstreams-4.0.1.tar.bz2 [root@localhost wvdial-1.54.0]# cd wvstreams-4.0.1 [root@localhost wvstreams-4.0.1]# patch -Np1 -i ../wvstreams-4.0.1-tcl84-1.patch 修改 configure with_openssl=no 改为 with_openssl=yes (有两处) [root@localhost wvstreams-4.0.1]# ./configure --prefix=/works/wvdial-1.54.0/install --host=arm-linux CFLAGS=-I/works/cdma/install/include LDFLAGS=-L/works/cdma/install/lib/ --with-zlib=/works/cdma/zlib-1.2.5 --with-openssl=/works/cdma/openssl-0.9.8n --without-dbus --with-pam=no --with-tcl=no --with-qt=no

[root@localhost wvstreams-4.0.1]# make linking libwvutils.so... /usr/lib/libz.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status make: *** [libwvutils.so] Error 1 [root@localhost wvstreams-4.0.1]# arm-linux-gcc -L./xplc -L/works/cdma/install/lib/ -L./xplc -L. -g -Wl,-soname,libwvutils.so.4.0 -shared -o libwvutils.so utils/strcrypt.o utils/verstring.o utils/wvaudioencoder.o utils/wvbase64.o utils/wvbdbhash.o utils/wvcrash.o utils/wvdiriter.o utils/wvgzip.o utils/wvhashtable.o utils/wvhex.o utils/wvmagiccircle.o utils/wvmatrix.o utils/wvqdbmhash.o utils/wvrateadjust.o utils/wvserialize.o utils/wvshmzone.o utils/wvstringtable.o utils/wvsubproc.o utils/wvtest.o utils/wvwordwrap.o libwvbase.so -lsupc++ -lgcc_eh

[root@localhost wvstreams-4.0.1]# make [root@localhost wvstreams-4.0.1]# vi wvrules.mk XX_LIBS := $(XX_LIBS) $(shell $(CC) -lsupc++ -lgcc_eh 2>&1 | grep -q "undefined reference" && echo " -lsupc++ -lgcc_eh") 改为 XX_LIBS := $(XX_LIBS) $(shell $(CC) -lsupc++ -lgcc_eh 2>&1 | grep -q "undefined reference" && echo " -lz -lcrypt -lsupc++ -lgcc_eh") [root@localhost wvstreams-4.0.1]# make compiling crypto/wvtripledes.o... crypto/wvtripledes.cc: In member function `virtual bool WvTripleDESEncoder::_encode(WvBuf&, WvBuf&, bool)': crypto/wvtripledes.cc:108: error: cannot convert `const unsigned char*' to `

unsigned char (*)[8]' for argument `1' to `void DES_ecb3_encrypt(unsigned char (*)[8], unsigned char (*)[8], DES_key_schedule*, DES_key_schedule*, DES_key_schedule*, int)' make: *** [crypto/wvtripledes.o] Error 1 解决方法: crypto/wvtripledes.cc 修改 #if OPENSSL_VERSION_NUMBER >= 0x0090705FL 改为 #if 0

compiling crypto/wvx509.o... crypto/wvx509.cc: In member function `WvString WvX509Mgr::get_extension(int)': crypto/wvx509.cc:1168: error: invalid conversion from `unsigned char**' to ` const unsigned char**' crypto/wvx509.cc:1171: error: invalid conversion from `unsigned char**' to ` const unsigned char**' make: *** [crypto/wvx509.o] Error 1 解决方法: crypto/wvx509.cc if (method->it)

ext_data = ASN1_item_d2i(NULL, &ext->value->data, ext->value->length, ASN1_ITEM_ptr(method->it)); else ext_data = method->d2i(NULL, &ext->value->data, ext->value->length); 改为 if (method->it) ext_data = ASN1_item_d2i(NULL, (const unsigned char **)&ext->value->data, ext->value->length, ASN1_ITEM_ptr(method->it)); else ext_data = method->d2i(NULL, (const unsigned char **)&ext->value->data, ext->value->length);

compiling streams/wvpam.o... streams/wvpam.cc: In member function `bool WvPam::authenticate(const WvFastString&, const WvFastString&, const WvFastString&)': streams/wvpam.cc:71: error: `fail' undeclared (first use this function) streams/wvpam.cc:71: error: (Each undeclared identifier is reported only once

for each function it appears in.) make: *** [streams/wvpam.o] Error 1 解决方法: return fail; 改为 return false;

[root@localhost wvstreams-4.0.1]# make install [root@localhost wvstreams-4.0.1]# cp libwvutils.so ../install/lib/libwvutils.so.4.0 -a [root@localhost wvstreams-4.0.1]# cd ..

[root@localhost wvdial-1.54.0]# tar xzf wvdial-1.54.0.tar.gz [root@localhost wvdial-1.54.0]# cd wvdial-1.54.0 [root@localhost wvdial-1.54.0]# cp /works/wvdial-1.54.0/install/include/wvstreams/*.h . [root@localhost wvdial-1.54.0]# vi Makefile PREFIX=/usr/local 改为 PREFIX=/works/wvdial-1.54.0/install

PPPDIR=/etc/ppp/peers

改为 PPPDIR=${PREFIX}/etc/ppp/peers

XPATH=.. ../wvstreams/include $(PKGINC) 改为 XPATH=/works/wvdial-1.54.0/install/include/wvstreams

LIBS += -L../wvstreams -lwvutils -lwvstreams 改为 LIBS += -L/works/wvdial-1.54.0/install/lib -lwvutils -lwvstreams -lwvbase -lz

[root@localhost wvdial-1.54.0]# vi wvrules.mk 增加 CC = arm-linux-g++ CXX = arm-linux-g++ [root@localhost wvdial-1.54.0]# make [root@localhost wvdial-1.54.0]# make install

3.3.2、wvdial-1.60.4 export PATH=/usr/local/arm/4.2.2-eabi/usr/bin:$PATH tar xjf zlib-1.2.5.tar.bz2

cd zlib-1.2.5 ./configure --prefix=/works/cdma/install-4.2.2 修改 Makefile CC = arm-linux-gcc CPP=arm-linux-gcc -E AR=arm-linux-ar rc

LDSHARED=

arm-linux-gcc ....

RANLIB=arm-linux-ranlib make make install

openssl-0.9.8n

patch -N -p 1 -i ../openssl-0.9.8n-fix_manpages-1.patch
./Configure --prefix=/works/cdma/install-4.2.2 make make install os/compiler:arm-linux-gcc

wvstreams-4.6.1 修改 configure

with_zlib=no 改为 with_zlib=yes (有两处)

with_openssl=no 改为 with_openssl=yes (有两处) ./configure --prefix=/works/cdma/install-4.2.2 --host=arm-linux CPPFLAGS=-I/works/cdma/install-4.2.2/include LDFLAGS=-L/works/cdma/zlib-1.2.5-4.2.2 CFLAGS=-I/works/cdma/zlib-1.2.5-4.2.2 --with-zlib=/works/cdma/zlib-1.2.5-4.2.2/ --with-openssl=/works/cdma/openssl-0.9.8n-4.2.2 --without-dbus --with-pam=no --with-tcl=no --with-qt=no --without-valgrind

make

如果出现 undefined reference to "EVP_MD_size"错误 将出现错误的语句 return EVP_MD_size((evp_md_st *)evpmd;改成 return ((evp_md_st *)evpmd)->md_size;即可

make install

wvdial-1.60.4 修改 Makefile prefix=/usr/local 改为 prefix=/works/cdma/install-4.2.2

PPPDIR=/etc/ppp/peers 改为 PPPDIR=${prefix}/etc/ppp/peers

PC_CFLAGS=$(shell pkg-config --cflags libwvstreams) 改为 PC_CFLAGS=-I/works/cdma/install-4.2.2/include/wvstreams

PC_LIBS=$(shell pkg-config --libs libwvstreams) PC_LIBS=-L/works/cdma/install-4.2.2/lib -lwvstreams -lwvutils -lwvbase

修改 wvrules.mk WVLINK_CC = gcc

改为 WVLINK_CC = arm-linux-g++ CC = arm-linux-g++ CXX = arm-linux-g++

make make install

4、

Linux 内核的配置与修改

4.1、linux 内核配置 make menuconfig Device Drivers ---> [*] Network device support ---> <M> [*] [*] <M> <M> <M> <M> <M> PPP (point-to-point protocol) support PPP multilink support (EXPERIMENTAL) PPP filtering PPP support for async serial ports PPP support for sync tty ports PPP Deflate compression PPP MPPE compression (encryption) (EXPERIMENTAL) PPP over Ethernet (EXPERIMENTAL)

[*] USB support ---> <M> USB Modem (CDC ACM) support

USB Serial Converter support ---> <M> USB driver for GSM and CDMA modems

4.2、linux 内核修改 drivers/usb/serial/option.c static struct usb_device_id option_ids[] = { … }; 在这个数组中添加两项 { USB_DEVICE(0x19d2, 0x0031) }, { USB_DEVICE(0x19d2, 0x0034) }, 4.3、linux 内核编译 make zImage make modules

5、

3G 模块的使用

5.1、加载内核模块 insmod option.ko insmod cdc-acm.ko

insmod slhc.ko insmod ppp_generic.ko insmod pppox.ko insmod pppoe.ko insmod ppp_synctty.ko insmod ppp_deflate.ko insmod crc-ccitt.ko insmod ppp_async.ko insmod sha1_generic.ko insmod ppp_mppe.ko

5.2、加载 USB 文件系统 mount -t usbfs usbfs /proc/bus/usb

5.3、ZTE-mf637u(中国联通)的使用 5.3.1、配置文件/etc/usb_modeswitch.setup # Configuration for the usb-modeswitch package, a mode switching tool for # USB devices providing multiple states or modes # # This file is evaluated by the wrapper script "usb_modeswitch" in /lib/udev # To enable an option, set it to "1", "yes" or "true" (case doesn't matter)

# Everything else counts as "disable"

# Disable automatic mode switching globally (e.g. to access the original # install storage)

DisableSwitching=0

# Enable logging (results in a extensive report file in /var/log, named # "usb_modeswitch_<interface-name>"

EnableLogging=0

######################################################## # ZTE MF622 (aka "Onda MDC502HS") # ZTE MF626 # ZTE MF628+ (tested version from Telia / Sweden) # ZTE MF633 # ZTE MF636 (aka "Telstra / BigPond 7.2 Mobile Card") # ZTE MF637

# # Contributor: Joakim Wennergren and others

DefaultVendor= 0x19d2 DefaultProduct= 0x2000

TargetVendor=

0x19d2

TargetProduct= 0x0031

MessageContent="5553424312345678000000000000061b0000000200000000000 00000000000" MessageContent2="5553424312345678000000000000061b000000030000000000 000000000000"

NeedResponse=1

5.3.2、配置文件/etc/wvdial.conf [Dialer Defaults]

Modem = /dev/ttyUSB2

Init1 = ATZ

Init3 = ATE0V1

Init5 = ATS0=0

Init6 = AT+CGDCONT=1,"IP","uninet"

Init7 = AT+CFUN=1

Modem Type = USB Modem

Baud = 460800

New PPPD = yes

ISDN = 0

Phone = *99***1#

Password = any

Username = any

Stupid Mode = 1

5.3.3 ZTE-mf637u(中国联通)的操作步骤 5.3.3.1、设置环境变量 export PATH= /works/wvdial-1.54.0/install/bin: /works/cdma/install/bin :$PATH export LD_LIBRARY_PATH= /works/wvdial-1.54.0/install/lib: /works/cdma/install/lib:$LD_LIBRARY_PATH 5.3.3.2、插入 ZTE-mf637u(中国联通)无线网卡 5.3.3.3、等待 5 秒钟左右、运行 usb-modeswitch -W 5.3.3.4、运行 wvdial --> WvDial: Internet dialer version 1.54.0 --> Cannot open /dev/ttyUSB2: Cannot get information for serial port. --> Cannot open /dev/ttyUSB2: Cannot get information for serial port. --> Cannot open /dev/ttyUSB2: Cannot get information for serial port.

解决:(两种方法) 5.3.3.4.1 将 wvstreams-4.0.1/streams/wvmodem.cc #if HAVE_LINUX_SERIAL_H 改为

#if 0

5.3.3.4.2. wvstreams-4.0.1 的配置命令增加 ac_cv_header_linux_serial_h=no 即./configure --prefix=/works/wvdial-1.54.0/install --host=arm-linux CFLAGS=-I/works/cdma/install/include LDFLAGS=-L/works/cdma/install/lib/ --with-zlib=/works/cdma/zlib-1.2.5 --with-openssl=/works/cdma/openssl-0.9.8n --without-dbus --with-pam=no --with-tcl=no --with-qt=no ac_cv_header_linux_serial_h=no 重新编译。

5.4、ZTE-mu351(中国移动)的使用 5.4.1、配置文件/etc/wvdial.conf Modem = /dev/ttyACM2 Init1 = ATZ Init3 = ATE0V1 Init5 = ATS0=0 Init6 = AT+CGDCONT=1,"IP","cmnet" Init7 = AT+CFUN=1 Modem Type = USB Modem Baud = 460800 New PPPD = yes ISDN = 0 Phone = *99***1#

Password = any Username = any Stupid Mode = 1 5.4.2、ZTE-mu351(中国移动)的操作步骤 5.4.2.1、设置环境变量 export PATH=/root/cdma:$PATH export LD_LIBRARY_PATH=/root/cdma:$LD_LIBRARY_PATH 5.4.2.2、插入 ZTE-mu351(中国移动)无线网卡 5.4.2.3、等待 5 秒钟左右、运行 eject /dev/sr0。(5.3.3.3 也可以使用此方法) 5.4.2.4、运行 wvdial --> WvDial: Internet dialer version 1.54.0 --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATE0V1 ATE0V1 OK --> Sending: ATS0=0 OK --> Sending: AT+CGDCONT=1,"IP","cmnet"

OK --> Sending: AT+CFUN=1 OK --> Modem initialized. --> Sending: ATDT*99***1# --> Waiting for carrier. NO CARRIER --> No Carrier! Trying again. --> Sending: ATDT*99***1# --> Waiting for carrier. NO CARRIER --> No Carrier! Trying again. --> Sending: ATDT*99***1# --> Waiting for carrier. NO CARRIER --> No Carrier! Trying again. --> Sending: ATDT*99***1# --> Waiting for carrier. NO CARRIER --> No Carrier! Trying again. --> Sending: ATDT*99***1#

--> Waiting for carrier. ^MODE: 15 CONNECT 2800000 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Mon Aug 16 16:17:15 2010 --> pid of pppd: 1364 --> Using interface ppp0 --> local IP address 10.67.54.108 --> remote IP address 192.200.1.21 --> primary DNS address 211.136.20.203

--> secondary DNS address 211.136.17.107

6、

参考资料

http://sourceforge.net/projects/libusb/files/libusb-1.0/ http://www.draisberghof.de/usb_modeswitch/ http://www.filewatcher.com/m/usb_modeswitch-1.0.2.tar.bz2.32162.0.0.html

http://www.linuxfromscratch.org/blfs/view/6.1/basicnet/libpcap.html http://www.linuxfromscratch.org/blfs/view/6.1/connect/dialup.html#ppp

http://code.google.com/p/wvstreams/downloads/detail?name=wvstreams-4.6.1.tar.g z&can=2&q= http://code.google.com/p/wvstreams/downloads/list

http://ftp.debian.org/debian/pool/main/w/wvdial/ http://code.google.com/p/wvstreams/downloads/list


赞助商链接
相关文章:
嵌入式Linux底层驱动综合开发实验
嵌入式Linux底层驱动综合开发实验_计算机软件及应用_IT/计算机_专业资料。嵌入式...实验内容 本实验分四个小项目进行,分别是: a) 内核模块编程基本实验 b) 字符...
嵌入式Linux网络驱动程序的体系结构和实现原理
因此,在嵌入式系统开 发调试时,网络接口几乎成为不可或缺的模块。 1 嵌入式 Linux 网络驱动程序介绍 Linux 网络驱动程序作为 Linux 网络子系统的一部分, 位于 ...
Linux内核驱动之网络驱动(一)3G驱动移植
Linux内核驱动之网络驱动(一)3G驱动移植_计算机软件及应用_IT/计算机_专业资料。...一 开发环境简介内容 3G 模块 3G SIM 卡 嵌入式 linux 版本 主机开发环境 ...
嵌入式Linux驱动
嵌入式Linux驱动_计算机软件及应用_IT/计算机_专业资料。嵌入式系统设计,Linux驱动...2 一个简单的 Linux2.6 内核驱动模块(hello world) /* hello.c */ #...
Linux下3G卡片在开发板上的详细解决方法(适用于大多数3...
嵌入式Linux下3G模块的驱动... 28页 免费 imx53的Linux下3G模块调试... 6页...现在就可以使用 usb_modeswitch –W –c ~/usb_modeswitch.conf 切换 3G 卡片...
基于嵌入式Linux系统的3G4G路由器设计
硬件平台模块的功能主要有两个方面,一方面要支持无线网卡和无线数 据卡的驱动,另一方面要通过嵌入式 Linux 系统中的 iptables 数据包过滤系统将无线局域网和 3G/4G...
Linux下3G网卡在开发板上使用(模式转换)
编译内核:详见《基于嵌入式 Linux 的 3G 技术的应用和研究》 驱动对应的选项“USB 2. 编译 3G 模块的驱动 option.ko :配置内核时 3G 驱动对应的选项“USB ...
嵌入式Linux 网络驱动程序 开发及实现原理
几十兆字节的存储器芯片或单片机中,成为应用于特 定场合的嵌入式 Linux 系统....在嵌入式系统驱动开发时,常常将驱动程序编写为内核模块,方便开发调试.调试完毕后...
实验三 嵌入式Linux驱动(1)
实验三 嵌入式Linux驱动(1)_计算机软件及应用_IT/计算机_专业资料。七段数码管...二、 【实验内容】 1) 学习 Linux 驱动源代码,分析代码各个函数模块的功能...
基于嵌入式Linux设备驱动程序的开发_肖杰
基于嵌入式 Linux 设备驱动程序的开发 肖杰 李仁发 ...其优势成为很多厂家开发嵌 入式应用的操 作系统。...但标准 Linux 支持模块化,设备 驱动都写成模块的...
更多相关标签: