自建站,wordpress修改用户资料,企业手机网站 案例,flex 做网站一、模块介绍
用的是华为 ME909s-821 Mini PCIe。
模块介绍#xff0c;参看#xff1a; ME909s-821 Mini PCIe 规格参数
其他模块#xff0c;参看#xff1a;华为全系列模块 产品介绍 ME909s-821 Mini PCIe是ME909s-821的变形版本#xff0c;标准Mini PCIe封装#x…一、模块介绍
用的是华为 ME909s-821 Mini PCIe。
模块介绍参看 ME909s-821 Mini PCIe 规格参数
其他模块参看华为全系列模块 产品介绍 ME909s-821 Mini PCIe是ME909s-821的变形版本标准Mini PCIe封装支持下行150Mbps上行50Mbps的传输速率提供高质量的语音、短信功能丰富的扩展功能FOTA、USSD、IPV6/IPV4…内置TCP/IP协议栈华为扩展AT指令集… 是车载、跟踪、工业路由器、安防监控、工业平板等行业应用的理想产品。 尺寸 高 30.4mm 宽 51mm 厚 3.57mm 重量 12g 封装 Mini-PCIe 频段 ME909s-821 Mini PCIe: LTE (FDD): B1,B3,B8 LTE (TDD): B38, B39,B40,B41 DC-HSPA/HSPA/HSPA/UMTS : B1, B5, B8,B9 TD-SCDMA: B34, B39 EDGE/GPRS/GSM : 900/1800 MHz 速率 DC-HSPA : 下行:42 Mbps, 上行: 5.76 Mbps LTE TDD : 下行: 112Mbps , 上行: 10Mbps (CAT4) LTE FDD: 下行:150 Mbps, 上行: 50 Mbps Bandwidth 20M (CAT4) 接口 Mini PCIe interface Antenna interface USB 2.0 High speed PCM Voice SIM Card LED Power supply Reset 电压 3.2 V to 4.2V (typical: 3.8V) 语音 PCM语音 DTMF 温度范围 -40℃ to 85℃ 特殊功能 CDC-ECM FOTA Firmware Update via USB Embedded UDP/TCP/FTP(s)/HTTP(s) stack High-speed UART CMUX Sleep mode 操作系统 Linux, Android, WinCE, Windows 8/10 认证 CCC NAL SRRC 其中选择模块的时候一定要注意是否支持中国市场
ME909s-120, 支持欧洲, 亚太, 拉美等海外市场.ME909s-821, 支持中国市场ME909u-521(B1/B2/B3/B5/B7/B8/B20)欧洲市场ME909u-523(B2/B4/B5/B13/B17/B25/B26)北美市场ME909u-XXX(TBD)日本市场
再有查看支持的频段选择相应的联通或移动3G/4G上网卡。
中国移动 GSM900 上行/下行890-909MHz/935-954MHz EGSM900 上行/下行885-890MHz/930-935MHz (中国铁通GSM-R885-889/930-934) GSM1800M 上行/下行1710-1720MHz/1805-1815MHz 3G TDD 1880-1900MHz 、2010-2025MHz 4G TD-LTE 1880 -1900 MHz、2320-2370 MHz、2575-2635 MHz中国联通 GSM900 上行/下行909-915MHz/954-960MHzGSM1800 上行/下行1740-1755MHz/18351850MHz 3G FDD 上行/下行1940-1955MHz/2130-2145MHz TD-LTE 2300-2320 MHz、2555-2575 MHzFDD-LTE 1755-1765MHz 1850-1860MHzFDD-LTE实际使用 1745-1765MHz 1840-1860MHz中国电信 CDMA800 上行/下行825-835MHz/870880MHz3G FDD 上行/下行1920-1935MHz/2110-2125MHz TD-LTE 2370-2390 MHz、2635-2655 MHzFDD-LTE 1765-1780MHz 1860-1875MHz
二、相关文档
下载3G/4D 相关文档 三、华为模块Linux 内核驱动集成指导
上述的文档根据名称都可以自行百度出来。根据指导手册一步一步的来配置内核驱动。
这里只是说的是一些出现的问题
1首先要注意它所支持的范围 我们用的是 linux-2.6.32 因为内核版本不同没有usb_wwan.c usb_wwan.h usb_wwan_write 。所以将添加到上述文件里的内容合并到option.c中去。 2无法加载cmemk.ko irqk.ko edmak.ko等设备模块
是因为版本不同造成的需要重新编译 下面只操作cmemk.ko 同理irqk.ko edmak.ko find . -name cmemk.ko 重新编译cmemk.ko
有下图可知将新编译好的 cmemk.ko 拷贝到 /home/zslf/dm368/rootfs/zslf/rootfs-php/lib/modules/2.6.32.17-davinci1/kernel/drivers/dsp/然后重新烧写内核根文件系统uboot 3大小屏不兼容问题 4davinci_interrupt 368: VBUS error workaround (delay coming) 与 只有4个ttyUSB 问题
模块使用不当造成的。就是上面所说的使用了欧洲版的模块。
5AT 拨号
AT 拨号指令可参看相关手册
先贴出两个OK的3G PPP拨号AT指令
《1》3G OK版ppp-on脚本 #!/bin/shUSERvpdnchaoyang-uvpdn
PASSWORDvpdn
DIALwcdma-connect-chat
TELEPHONE*99# 为什么可以拨通移动的3G但是不能拨通联通的3G呢
APN3gnet 而且3gnet*99#应该是联通的APN,和拨号号码啊icat /proc/bus/usb/devices | grep ProdID1573if [ -z $i ];then
CONTRAL/dev/ttyUSB0
else
CONTRAL/dev/ttyUSB2
fiexport TELEPHONE APNpppd \$CONTRAL \115200 \nocrtscts \modem \debug \noauth \nodetach \noipdefault \usepeerdns \defaultroute \persist \maxfail 1 \holdoff 5 \user $USER \password $PASSWORD \0.0.0.0:0.0.0.0 \connect /bin/chat -E -s -v -f /etc/ppp/$DIAL \#connect /bin/chat -s -v -f /etc/ppp/wcdma-connect-chat \#disconnect /bin/chat -s -v -f /etc/ppp/wcdma-disconnect-chat \
《2》wcdma-connect-chat脚本 #/etc/ppp/wcdma-connect-chatTIMEOUT 5
ABORT DELAYED
ABORT BUSY
ABORT ERROR
ABORT NO DIALTONE
ABORT NO CARRIER
#AT
#OK-\c-OK ATHO
TIMEOUT 5 AT
OK ATCGDCONT1,IP,$APN,,0,0
OK ATDT$TELEPHONE
CONNECT
《3》大神PPP脚本 移动3G ok #cd /etc/ppp/peers//dev/ttyUSB0
9600
crtscts
modem
debug
nodetach
defaultroute
user cmnet
usepeerdns
connect /bin/chat -s -v -f /etc/ppp/peers/LTE-connect-chat
disconnect /bin/chat -s -v -f /etc/ppp/peers/LTE-disconnect-chat TIMEOUT 15
ABORT ERROR
ABORT NODIALTONE
ABORT BUSY
ABORT NOANSWER AT
OK ATCGDCONT1,\IP\,\cmnet\
OK ATDT*99***1#
CONNECT ABORT OK
ABORT BUSY
ABORT DELAYED
ABORT NOANSWER
ABORT NOCARRIER
ABORT NODIALTONE
ABORT VOICE
ABORT ERROR
ABORT RINGING
TIMEOUT 12 \K \K \K ATH ATH ATH ATZ
SAY \nGoodbay\n
先要明白4G模块有网卡我们上面整个内核移植过程EMC移植的网卡驱动。3G用可PPP拨号但是4G的话使用网卡。所以接下来是我们经过好几轮实现得出的OK版AT指令。 int main(int argc,const char* argv[])
{
int ret 0;printf(### Serial_ttyUSB0_Init ###\n);ret Serial_ttyUSB0_Init();if(-1 ret){printf(### Failed to Serial_ttyUSB0_Init ###\n);return -1;}printf(### Serial_ttyUSB0_Init End ###\n);int CFUNFlag 0;while(!CFUNFlag){printf(### MU909_SetCFUN ###\n);ret MU909_SetCFUN(fd_serial,1);if(-1 ret){CFUNFlag 0;}else{CFUNFlag 1;}}//当发生错误时显示错误信息 unsigned char * strCGACTCommand1 ATCMEE2\r; int CGACTFlag1 0;while(!CGACTFlag1){ret ME3760_CGACT(fd_serial,strCGACTCommand1);if(-1 ret){CGACTFlag1 0;}else{CGACTFlag1 1;}}//检查SIM是否存在unsigned char * strCGACTCommand2 ATCPIN?\r; int CGACTFlag2 0;while(!CGACTFlag2){ret ME3760_CGACT(fd_serial,strCGACTCommand2);if(-1 ret){CGACTFlag2 0;}else{CGACTFlag2 1;}}//PS域注册状态unsigned char * strCGACTCommand3 ATCEREG2\r; int CGACTFlag3 0;while(!CGACTFlag3){ret ME3760_CGACT(fd_serial,strCGACTCommand3);if(-1 ret){CGACTFlag3 0;}else{CGACTFlag3 1;}}//查询和报告信号强度unsigned char * strCGACTCommand4 AT^HCSQ?\r; int CGACTFlag4 0;while(!CGACTFlag4){ret ME3760_CGACT(fd_serial,strCGACTCommand4);if(-1 ret){CGACTFlag4 0;}else{CGACTFlag4 1;}}//查询当前运营商信息unsigned char * strCGACTCommand5 ATCOPS?\r; int CGACTFlag5 0;while(!CGACTFlag5){ret ME3760_CGACT(fd_serial,strCGACTCommand5);if(-1 ret){CGACTFlag5 0;}else{CGACTFlag5 1;}}//配置扩展系统选择联通CDMA还是移动LTE是否支持漫游unsigned char * strSysConfigArguments6
AT^SYSCFGEX\03\,3fffffff,1,2,7fffffffffffffff,,\r; int SysConfigFlag6 0;while(!SysConfigFlag6){ret MU909_SysConfig(fd_serial,strSysConfigArguments6);if(-1 ret){SysConfigFlag6 0;}else{SysConfigFlag6 1;}}//NDIS拨号unsigned char * strCGACTCommand7 AT^NDISDUP1,1,\cmnet\\r; int CGACTFlag7 0;while(!CGACTFlag7){ret ME3760_CGACT(fd_serial,strCGACTCommand7);if(-1 ret){CGACTFlag7 0;}else{CGACTFlag7 1;}}system(udhcpc -i usb0);Serial_ttyUSB0_Release();
return 0;
} 四、内核启动信息 U-Boot 2010.12-rc2 (May 27 2014 - 16:50:48)Cores: ARM 297 MHz
DDR: 243 MHz
DRAM: 128 MiB
NAND: 512 MiB
Bad block table found at page 262080, version 0x01
Bad block table found at page 262016, version 0x01
Net: Ethernet PHY: LXT972 0x01
DaVinci-EMAC
Hit any key to stop autoboot: 2 1 0 NAND read: device 0 offset 0x400000, size 0x4000004194304 bytes read: OK
## Booting kernel from Legacy Image at 80700000 ...Image Name: Linux-2.6.32.17-davinci1Created: 2015-11-23 9:14:53 UTCImage Type: ARM Linux Kernel Image (uncompressed)Data Size: 2243956 Bytes 2.1 MiBLoad Address: 80008000Entry Point: 80008000Verifying Checksum ... OKLoading Kernel Image ... OK
OKStarting kernel ...Uncompressing Linux.................................................................................................................................................. done, booting the kernel.
Linux version 2.6.32.17-davinci1 (rootzslf-desktop) (gcc version 4.3.3 (Sourcery G Lite 2009q1-203) ) #117 PREEMPT Mon Nov 23 17:14:48 CST 2015
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DM36x EVM
Memory policy: ECC disabled, Data cache writeback
DaVinci dm36x_rev1.2 variant 0x8
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 12192
Kernel command line: dm365_imp.oper_mode0 mem48M consolettyS0,115200n8 noinitrd rw ubi.mtd3 rootubi0:rootfs rootfstypeubifs videodavincifb:osd0720x480x16,4050K
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 48MB 48MB total
Memory: 43900KB available (4216K code, 393K data, 148K init, 0K highmem)
SLUB: Genslabs11, HWalign32, Order0-3, MinObjects0, CPUs1, Nodes1
Hierarchical RCU implementation.
NR_IRQS:245
Calibrating delay loop... 147.86 BogoMIPS (lpj739328)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 8 gpio irqs
NET: Registered protocol family 16
davinci_serial_init:97: failed to get UART2 clock
EVM: HD imager video input
bio: create slab bio-0 at 0
DM365 IPIPE initialized in Continuous mode
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pca9543a_probe
vpss vpss: dm365_vpss vpss probed
vpss vpss: dm365_vpss vpss probe success
dm365_afew_hw_init
lconfig-line_length is 0.
ch0 default output COMPOSITE, mode NTSC
###### vpbe_encoder_init ######
###### vid_enc_register_encoder ######
###### mgr-num_encoders is 0 ######
###### **ch_id is 0 ######
###### mode_info.name is NTSC ######
###### vpbe_encoder_initialize ######
###### output is COMPOSITE,outindex is 0 ######
###### vpbe_encoder_setoutput ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is NTSC ######
###### 22VPBE Encoder initialized ######
###### vpbe_encoder_setoutput ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is NTSC ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is NTSC ######
###### 33encoder-mode_ops-setmode: error is 0 ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
VPBE Encoder Initialized
###### 11VPBE Encoder Initialized ######
Switching to clocksource timer0_1
musb_hdrc: version 6.0, cppi-dma, host, debug0
musb_hdrc: USB Host mode controller at fec64000 using DMA, IRQ 12
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
usb usb1: New USB device found, idVendor1d6b, idProduct0002
usb usb1: New USB device strings: Mfr3, Product2, SerialNumber1
usb usb1: Product: MUSB HDRC host driver
usb usb1: Manufacturer: Linux 2.6.32.17-davinci1 musb-hcd
usb usb1: SerialNumber: musb_hdrc
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Installing knfsd (copyright (C) 1996 okirmonad.swb.de).
msgmni has been set to 85
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
davincifb davincifb.0: dm_osd0_fb: 720x480x160,0 with framebuffer size 4050KB
davincifb davincifb.0: dm_vid0_fb: 0x0x160,0 with framebuffer size 1020KB
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
davincifb davincifb.0: dm_osd1_fb: 720x480x40,0 with framebuffer size 675KB
davincifb davincifb.0: dm_vid1_fb: 0x0x160,0 with framebuffer size 1020KB
DM365 IPIPEIF probed
imp serializer initialized
davinci_previewer initialized
davinci_resizer initialized
davinci gpio led module init .......
register davinci gpio module is ok .......
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c20000 (irq 40) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x1d06000 (irq 41) is a 16550A
brd: module loaded
NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung NAND 512MiB 3,3V 8-bit)
nand_bbt: ECC error while reading bad block table
Creating 5 MTD partitions on davinci_nand.0:
0x000000000000-0x0000003c0000 : bootloader
0x0000003c0000-0x000000400000 : params
0x000000400000-0x000000820000 : kernel
0x000000820000-0x000008820000 : filesystem
0x000008820000-0x000020000000 : zslf
davinci_nand davinci_nand.0: controller rev. 2.3
UBI: attaching mtd3 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 126976 bytes
UBI: smallest flash I/O unit: 2048
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
usb 1-1: new high speed USB device using musb_hdrc and address 2
usb 1-1: New USB device found, idVendor12d1, idProduct15c1
usb 1-1: New USB device strings: Mfr1, Product2, SerialNumber3
usb 1-1: Product: HUAWEI Mobile V7R11
usb 1-1: Manufacturer: Huawei Technologies Co., Ltd.
usb 1-1: SerialNumber: 0123456789ABCDEF
usb 1-1: configuration #2 chosen from 3 choices
UBI: attached mtd3 to ubi0
UBI: MTD device name: filesystem
UBI: MTD device size: 128 MiB
UBI: number of good PEBs: 1024
UBI: number of bad PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 5
UBI: total number of reserved PEBs: 1019
UBI: number of PEBs reserved for bad PEB handling: 10
UBI: max/mean erase counter: 2/1
UBI: image sequence number: 0
UBI: background thread ubi_bgt0d started, PID 354
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky maxkqualcomm.comcdc_bind,[546]
usb0: register cdc_ether at usb-musb_hdrc-1, CDC Ethernet Device, 02:1e:10:1f:00:00
usbcore: registered new interface driver cdc_ether
console [netcon0] enabled
netconsole: network logging started
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
option 1-1:2.2: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
option 1-1:2.3: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
option 1-1:2.4: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
option 1-1:2.5: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
option 1-1:2.6: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB4
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
usbcore: registered new interface driver usbtest
rtc-ds1307 1-0068: rtc core: registered ds1339 as rtc0
i2c /dev entries driver
Linux video capture interface: v2.00
ths7303 1-002c: chip found 0x58 (DaVinci I2C adapter)
ths7303 1-002c: ths7303 write failed
ths7303: probe of 1-002c failed with error -121
vpfe_init
vpfe-capture: vpss clock vpss_master enabled
vpfe-capture vpfe-capture: v4l2 device registered
vpfe-capture vpfe-capture: video device registered
EVM: switch to tvp5150 SD video input
tvp5150 1-005d: chip found 0x5d (DaVinci I2C adapter)
vpfe-capture vpfe-capture: v4l2 sub device tvp5150 registered
EVM: switch to tvp7002 HD video input
vpfe-capture vpfe-capture: v4l2 sub device ths7353 register fails
vpfe_register_ccdc_device: DM365 ISIF
DM365 ISIF is registered with vpfe.
af major#: 250, minor# 0
AF Driver initialized
aew major#: 249, minor# 0
AEW Driver initialized
###### osd_init ######
### VPBE OSD DRIVER INIT ###
Trying to register davinci display video device.
layerc10b1400,layer-video_devc10b1570
Trying to register davinci display video device.
layerc10b1800,layer-video_devc10b1970
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
watchdog watchdog: heartbeat 60 sec
davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
Advanced Linux Sound Architecture Driver Version 1.0.21.
No device for DAI tlv320aic3x
No device for DAI davinci-i2s
asoc: tlv320aic3x - davinci-i2s mapping ok
ALSA device list:#0: DaVinci EVM (tlv320aic3x)
TCP cubic registered
NET: Registered protocol family 17
Clocks: disable unused mmcsd1
Clocks: disable unused spi0
Clocks: disable unused spi1
Clocks: disable unused spi2
Clocks: disable unused spi3
Clocks: disable unused spi4
Clocks: disable unused pwm0
Clocks: disable unused pwm1
Clocks: disable unused pwm2
Clocks: disable unused pwm3
Clocks: disable unused timer1
Clocks: disable unused timer3
Clocks: disable unused emac
Clocks: disable unused voice_codec
Clocks: disable unused rto
Clocks: disable unused mjcp
davinci_emac_probe: using random MAC addr: b2:55:85:e9:2b:0e
emac-mii: probed
mmc0: new high speed SDHC card at address e624
rtc-ds1307 1-0068: setting system clock to 2015-11-24 11:00:54 UTC (1448362854)
mmcblk0: mmc0:e624 SU64G 59.4 GiB mmcblk0: p1
UBIFS: mounted UBI device 0, volume 0, name rootfs
UBIFS: file system size: 126341120 bytes (123380 KiB, 120 MiB, 995 LEBs)
UBIFS: journal size: 6348800 bytes (6200 KiB, 6 MiB, 50 LEBs)
UBIFS: media format: w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 4952683 bytes (4836 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:14.
Freeing init memory: 148K
INIT: version 2.86 booting
Please wait: booting...
Error Cannot open /dev/tty0: No such device or address
Starting udev
udev: starting version 141
Root filesystem already rw, not remounting
Caching udev devnodes
Populating dev cacheFAT: bogus number of reserved sectors
VFS: Cant find a valid FAT filesystem on dev mmcblk0.
mv: cannot rename /tmp/devices: No such file or directory
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
kjournald starting. Commit interval 5 seconds
EXT3 FS on mmcblk0p1, internal journal
EXT3-fs: mounted filesystem with writeback data mode.
ALSA: Restoring mixer settings...
Configuring network interfaces... eth0: attached PHY driver [LXT971] (mii_bus:phy_addr1:01, id1378e2)
done.
Setting up IP spoofing protection: rp_filter.
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting telnet daemon.
Starting syslogd/klogd: done
CMEMK module: built on Oct 26 2015 at 22:19:29Reference Linux version 2.6.32File /home/zslf/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02_bak/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc7000000 of size 0x4400000
heap fallback enabled - will try heap if pool buffer is not available
CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0x1000) overlaps kernel (0x80000000 - 0x83000000)
cmemk initialized
IRQK module: built on Oct 26 2015 at 22:17:36Reference Linux version 2.6.32File /home/zslf/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02_bak/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
irqk initialized
EDMAK module: built on Oct 26 2015 at 22:16:49Reference Linux version 2.6.32File /home/zslf/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02_bak/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
/zslf/appZSLF.sh: line 9: ppp_config_copy: not found
start copy th config file from zslf/config to /etc/ppp/peers.
cp: cannot stat /zslf/config/ppp-off: No such file or directory
cp: cannot stat /zslf/config/ppp0_on_state.txt: No such file or directory
############## ZSLF ##################
start copy the config file from zslf to thttpd/www.
/zslf/appZSLF.sh: line 17: ppp_config_copy: not found
Create a shared memory segment 32769.
24 Nov 11:01:09 ntpdate[993]: no servers can be used, exiting
mkdir: cannot create directory /media/mmcblk0p1/bak: File exists
## davinci_pio_led:ioctl:out: GPIO-811 now.ret 0 ##
setrlimit ok
FD_SETSIZE 1024
### Serial_ttyUSB0_Init ###
### Complete serial_open ###
### Complete serial_config ###
### Complete fcntl ###
### Serial_ttyUSB0_Init End ###
### MU909_SetCFUN ###
start MU909_SetCFUN
##strATCommand is ATCFUN1
.
ATCFUN1OK##strATCommand is ATCMEE2
.
ATCMEE2OK##strATCommand is ATCPIN?
.
ATCPIN?CPIN: READYOK##strATCommand is ATCEREG2
.
ATCEREG2OK##strATCommand is AT^HCSQ?
.
AT^HCSQ?^HCSQ: LTE,52,49,166,34OK##strATCommand is ATCOPS?
.
ATCOPS?COPS: 0,0,CMCC,7OK##strATCommand is AT^SYSCFGEX03,3fffffff,1,2,7fffffffffffffff,,
.
AT^SYSCFGEX03,3fffffff,1,2,7fffffffffffffff,,OK##strATCommand is AT^NDISDUP1,1,cmnet
.
AT^NDISDUP1,1,cmnetOK^NDISSTAT: 1,,,IPV4^NDISSTAT: 1,,,IPV6udhcpc (v1.13.2) started
Sending discover...
Sending select for 10.67.239.228...
Lease of 10.67.239.228 obtained, lease time 518400
adding dns 221.130.33.60
adding dns 221.130.33.52
######## encode #########
### timenow-tm_year 115 ###_____ _____ _ _
| _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
| | _| .| . | . | | __| _| . | | | -_| _| _|
|__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project http://arago-project.org dm368-evm ttyS0Arago 2011.02 dm368-evm ttyS0dm368-evm login: 24 Nov 11:01:32 ntpdate[1189]: no server suitable for synchronization found
zslf module ok...
dlsym load ok!
***after***
#### parseStreamingArgs - streaming to [124.65.158.106:22616] ####
#### parseStreamingArgs - streaming to [192.168.2.91:22616] ####
#### parseVideoArgs - (0) 720x480 ####
#### parseVideoArgs - (1) 720x480 ####
#### parseAudioArgs - 44100,2,32000,1 ####
### parseArgs - config/devInfo.txt, Name:[联通小单?##### output_store ######
?56001],ID:[YS-###### davinci_get_cur_encoder ######
56001] ###
Encode streaming star###### vpbe_encoder_initialize ######
ting...
1
2
3
4
###### output is COMPOSITE,outindex is 0 ######
###### vpbe_encoder_setoutput ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is NTSC ######
###### 22VPBE Encoder initialized ######
###### vpbe_encoder_setoutput ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is NTSC ######
###### davinci_enc_set_output : next davinci_enc_set_mode_platform ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
###### output_show ######
###### davinci_enc_get_output ######
###### davinci_get_cur_encoder ######
###### mode_store ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_set_mode ######
###### davinci_get_cur_encoder ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is PAL ######
###### davinci_enc_set_mode : next davinci_enc_set_mode ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
###### mode_show ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
Found width720 height480, yres_virtual480,xres_virtual720, l###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_set_mode ######
###### davinci_get_cur_encoder ######
###### dm365 1 ######
###### mode_info-std is 1 ######
###### mode is PAL ######
###### davinci_enc_set_mode : next davinci_enc_set_mode ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
ine_length384
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
5
6
7
sd write module ok...
____Mp4Recover module ok!
/media/mmcblk0p1/video/temp/YS-56001_11-24_10h59m49s.mp4 Need to recover!
~~~~~~~~~~~~~~now! is ready to recover!
now! is get_data!
get data all!
now! is make mp4!
### sps.pic_width_in_mbs_minus1 : 0sps.pic_height_in_map_units_minus1 : 0sps.vui_parameters.time_scale : 139596691sps.vui_parameters.num_units_in_tick : 376021250 ###
now! is follow handle!
__cgy in main all!
sd write init ok## davinci_pio_led:ioctl:out: GPIO-470 now.ret 0 ## func_sd_input_data ok###READY TO PM###18
there is a sd need to be mounted 0000
### name:[mpeg4enc] ###
### name:[h264enc] ###
#davinci_resizer davinci_resizer.2: RSZ_G_CONFIG:0:1:124
## name:[mpeg2enc] ###
### name:[jpegenc] ###
### name:[g711enc] ###
### name:[aacenc] ###
###Ready to open encoder###
davinci_previewer davinci_previewer.2: ipipe_set_preview_config
############
v4l2_device_call_until_err sdinfo-grp_id : 5.
vpfe-capture vpfe-capture: error in getting g_fmt from sub device
############
v4l2_device_call_until_err sdinfo-grp_id : 5.
###succeed to open encoder###
setrlimit ok
FD_SETSIZE 1024
udp port multiplexing : 1
#### InitUdpSocket - SO_RCVBUF : 217088, SO_SNDBUF : 217088 ####
mount: /dev/mmcblk0p1 already mounted or /media/mmcblk0p1/ busy
###### len 26 #########
mount: according to mtab, /dev/mmcblk0p1 is already mounted on /media/mmcblk0p1
add sd card
############# PUID:83
bjwLgn.strModel:bjw-2013
PUID83
### do_login: sockfd 32
Login response status : dACK
vpfe-capture vpfe-capture: IPIPE Chained
vpfe-capture vpfe-capture: Resizer present
*****input0****EVM: switch to tvp5150 SD video input
***
############
v4l2_device_call_until_err sdinfo-grp_id : 5.
###j1###
*** Video ASK Rep ***
startdata ok!
*****queryInput0*******
############
v4l2_device_call_until_err sdinfo-grp_id : 5.
setsockopt ok!
vpfe-capture vpfe-capture: width 736, height 480, bpp 1
vpfe-capture vpfe-capture: adjusted width 736, height 480, bpp 1, bytesperline 736, sizeimage 529920
vpfe-capture vpfe-capture: width 736, height 480, bpp 1
vpfe-capture vpfe-capture: adjusted width 736, height 480, bpp 1, bytesperline 736, sizeimage 529920
### BJW_DealMsg - VIDEO: FORCE IDR ###
BJW_DealMsg - CONNECTED 42
### videoThrFxn - video0 construct IDR ###
***succeed to get capture***
### sps.pic_width_in_mbs_minus1 : 0sps.pic_height_in_map_units_minus1 : 0sps.vui_parameters.time_scale : 139596691sps.vui_parameters.num_units_in_tick : 376021250 ###
.
dm368-evm login: _____ _____ _ _
| _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
| | _| .| . | . | | __| _| . | | | -_| _| _|
|__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project http://arago-project.org dm368-evm ttyS0Arago 2011.02 dm368-evm ttyS0dm368-evm login: rootrootdm368-evm:~#
五、相关博客 ARM平台嵌入式Linux下使用3G/4G 模块 原博客已删除就怕这种事情发生哦所以我自己写博客从来不会只给一个链接必须还有标题。 简介 随着工业发展嵌入式设备接入网络的需求日益增多在没有有线或者无线以太网的环境下直接通过3G/4G Modem连接运营商网络来接入互联网不失为一个好方法本文就着重介绍基于ARM平台的嵌入式设备在Embedded Linux下使用3G/4G Modem的方法。 目前市面上的3G/4G modem和主机的连接方式主要有串口、USB和mini-PCIE串口模块比较传统且使用比较简单而mini-PCIE在工业设备中目前应用还不广泛因此本文使用USB 3G/4G modem来进行演示。 硬件准备 嵌入式平台基于Toradex Colibri i.MX6工业产品级ARM核心板搭配Colibri开发载板Embedded linux采用Toradex官方发布兼容Yocto Project 的Linux V2.5版本。 3G Modem使用华为 E303s WCDMA Modem支持中国联通的3G网络 Linux Kernel准备 关于Linux kernel源代码下载及基本编译更新操作请参考这里本文不再赘述只简单列出操作如下 a). 下载Linux kernel源代码 b). 下载安装Toolchain并link到 “ ~/gcc-linaro “ 目录 $ wget http://releases.linaro.org/14.11/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz $ tar xvf gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz $ ln -s gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf gcc-linaro c). 设置环境变量 $ export ARCHarm $ export PATH~/gcc-linaro/bin/:$PATH $ export CROSS_COMPILEarm-linux-gnueabihf- d). 配置 $ make colibri_imx6_defconfig $ make menuconfig //添加下面列出功能 -------------------- [*] Network device support --- * PPP (point-to-point protocol) support * PPP BSD-Compress compression * PPP Deflate compression [*] PPP filtering * PPP MPPE compression (encryption) [*] PPP multilink support * PPP over Ethernet * PPP support for async serial ports * PPP support for sync tty ports [*] USB support --- * USB Modem (CDC ACM) support [*] USB support --- * USB Serial Converter support --- * USB driver for GSM and CDMA modems -------------------- e). 重新编译kernel image $ make -j3 uImage LOADADDR10008000 21 | tee build.log f). 升级目标板 根据本章节开始提供的参考升级目标板到新的kernel image 相关软件准备 1). PPP Toradex image默认已经安装如果其他ARM平台image也是基于Yocto/OpenEmbedded环境编译可以在local.conf文件中添加如下选项后编译 ----------------- IMAGE_INSTALL_append ppp ----------------- 2). usb-modesiwtch-2.3.0 a). 需要libusb-1.0.x先从这里下载源文件并解压 b). 使用上一章节配置的ToolChain如下设置交叉编译libusb $ sudo CC/home/xxx/gcc-linaro/bin/arm-linux-gnueabihf-gcc CXX/home/xxx/gcc-linaro/bin/arm-linux-gnueabihf-g ./configure --hostarm-linux-gnueabihf --prefix/home/xxx/gcc-linaro --disable-udev $ make $ make install c). 从这里下载usb-modesiwtch并解压 d). 如下修改usb-modesiwtch 目录下Makefile ---------------- CC ~/gcc-linaro/bin/arm-linux-gnueabihf-gcc CFLAGS -Wall -I/home/xxx/gcc-linaro/include -L/home/xxx/gcc-linaro/lib ---------------- e).交叉编译usb-modesiwtch $ make f). 从这里下载usb-modeswitch-data和上面步骤编译出的usb-modesiwtch可执行文件一起上传到目标板 配置Modem连接网络 目前比较新的3G/4G都支持Ethernet模式和Fallback模式而老一些的模块只支持Fallback模式请根据所需模块情况自行参考下面操作。 1). Ethernet模式 a). 将E303s 3G Modem连接目标板由于Modem上包含为了给Windows系统提供驱动而部署的存储分区Linux默认将设备识别成USB Mass Storage设备 rootcolibri-imx6:/home# lsusb Bus 001 Device 004: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode) …… b). 如下修改usb-modeswitch-data-20160112/usb_modeswitch.d目录下的12d1:1f01文件 ----------------------- # Huawei E303s Ethernet Mode DefaultVendor0x12d1 DefaultProduct0x1f01 TargetVendor0x12d1 TargetProduct0x14db MessageEndPoint 0x01 MessageContent55534243123456780000000000000a11062000000000000100000000000000 ------------------------ c). 使用usb-modeswitch工具将modem设置为Ethernet mode rootcolibri-imx6:/home# ./usb_modeswitch -c 12d1:1f01 …… rootcolibri-imx6:/home# [ 840.027676] usb 1-1.1: USB disconnect, device number 4 [ 840.284299] usb 1-1.1: new high-speed USB device number 6 using ci_hdrc [ 840.427810] cdc_ether 1-1.1:1.0 eth1: register cdc_ether at usb-ci_hdrc.0-1.1, CDC Ethernet Device, 58:2c:80:13:92:63 lsusb查看 rootcolibri-imx6:/home# lsusb Bus 001 Device 005: ID 12d1:14db Huawei Technologies Co., Ltd. E353/E3131 …… d). 查看网络出现eth1正确获取ip并连接到网络下面就可以用使用以太网同样方法使用网络了 rootcolibri-imx6:/home# ifconfig …… eth1 Link encap:Ethernet HWaddr 58:2C:80:13:92:63 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::5a2c:80ff:fe13:9263/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:37 errors:0 dropped:0 overruns:0 frame:0 TX packets:69 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6899 (6.7 KiB) TX bytes:10381 (10.1 KiB) …… e). 验证网络连接 rootcolibri-imx6:/home# ping www.baidu.com PING www.baidu.com (61.135.169.121): 56 data bytes 64 bytes from 61.135.169.121: seq0 ttl51 time88.261 ms 64 bytes from 61.135.169.121: seq1 ttl51 time77.998 ms 64 bytes from 61.135.169.121: seq2 ttl51 time68.410 ms 64 bytes from 61.135.169.121: seq3 ttl51 time68.242 ms 64 bytes from 61.135.169.121: seq4 ttl51 time68.166 ms 2). Fallback模式 有一些较老型号的2G/3G Modem只支持这个模式无需再用usb-modeswitch转换可以直接参考下面转换后的操作部分。 a). 如下修改usb-modeswitch-data-20160112/usb_modeswitch.d目录下的12d1:1f01文件 ----------------------- # Huawei E303s Fallback Mode DefaultVendor0x12d1 DefaultProduct0x1f01 TargetVendor0x12d1 TargetProduct0x1001 MessageEndPoint 0x01 MessageContent55534243123456780000000000000011063000000100010000000000000000 NoDriverLoading0 ------------------------ b). 使用usb-modeswitch工具将modem设置为Fallback mode rootcolibri-imx6:/home# ./usb_modeswitch -c 12d1\:1f01 …… rootcolibri-imx6:/home# [ 2090.566190] usb 1-1.1: new high-speed USB device number 8 using ci_hdrc [ 2090.701092] option 1-1.1:1.0: GSM modem (1-port) converter detected [ 2090.713488] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0 [ 2090.723517] option 1-1.1:1.1: GSM modem (1-port) converter detected [ 2090.731817] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1 [ 2090.740318] option 1-1.1:1.2: GSM modem (1-port) converter detected [ 2090.748184] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB lsusb 查看 rootcolibri-imx6:/home# lsusb Bus 001 Device 008: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem …… c). 测试连接 rootcolibri-imx6:/home# ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Apr 11 09:49 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Apr 11 09:49 /dev/ttyUSB1 crw-rw---- 1 root dialout 188, 2 Apr 11 09:49 /dev/ttyUSB2 rootcolibri-imx6:/home# minicom -D /dev/ttyUSB0 ------------------ Welcome to minicom 2.7 OPTIONS: I18n Compiled on Nov 3 2015, 04:06:26. Port /dev/ttyUSB0, 09:53:44 Press CTRL-A Z for help on special keys AT OK -------------------- d). 编写ppp连接配置文件wcdma, wcdma-chat-connect和wcdma-chat-disconnect rootcolibri-imx6:/etc/ppp/peers# vi wcdma ----------------- nodetach lock /dev/ttyUSB0 115200 user card password card crtscts #hide-password show-password usepeerdns noauth noipdefault novj novjccomp noccp defaultroute ipcp-accept-local ipcp-accept-remote connect /usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect disconnect /usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect ---------------------- rootcolibri-imx6:/etc/ppp/peers# vi wcdma-chat-connect -------------------- ABORT BUSY ABORT NO CARRIER ABORT NO DIALTONE ABORT ERROR ABORT NO ANSWER TIMEOUT 120 AT OK \rATZ OK \rATCGDCONT1,IP,3gnet,,0,0 OK-AT-OK ATDT*99# CONNECT \d\c -------------------------- rootcolibri-imx6:/etc/ppp/peers# vi wcdma-chat-disconnect ----------------------- ABORT ERROR ABORT NO DIALTONE SAY \NSending break to the modem\n \k ATH SAY \nGood bay\n --------------------------- e). 连接网络 rootcolibri-imx6:/etc/ppp/peers# pppd call wcdma …… ATDT*99#^M^M CONNECT -- got it send (\d) Serial connection established. Using interface ppp0 Connect: ppp0 -- /dev/ttyUSB0 CHAP authentication succeeded: Welcome!! CHAP authentication succeeded Could not determine remote IP address: defaulting to 10.64.64.64 local IP address 10.91.228.253 remote IP address 10.64.64.64 primary DNS address 221.12.1.227 secondary DNS address 221.12.33.227 查看网络状态 rootcolibri-imx6:/etc/ppp/peers# ifconfig …… ppp0 Link encap:Point-to-Point Protocol inet addr:10.23.107.61 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:84 (84.0 B) TX bytes:102 (102.0 B) f). 测试网络 rootcolibri-imx6:/etc/ppp/peers# echo nameserver 221.12.1.227 /etc/resolv.conf //设置DNS服务器 rootcolibri-imx6:/etc/ppp/peers# ping www.baidu.com PING www.baidu.com (61.135.169.121): 56 data bytes 64 bytes from 61.135.169.121: seq0 ttl52 time218.477 ms 64 bytes from 61.135.169.121: seq1 ttl52 time68.066 ms 64 bytes from 61.135.169.121: seq2 ttl52 time107.773 ms 64 bytes from 61.135.169.121: seq3 ttl52 time77.604 ms 64 bytes from 61.135.169.121: seq4 ttl52 time77.339 ms 总结 根据上述两种模式的测试结果第一种Ethernet mode相对速度要更稳定一些因此对于支持两种模式的modem更建议采用Ethernet mode另外串口modem使用配置也可以参考Fallback mode。本文虽以E303s为例但其他3G/4G Modem的配置也是类似只是需要确定对应模式的Vendor IDProduct ID和Message。 参考文档 https://www.toradex.cn/zh_cn/computer-on-modules/colibri-arm-family/nxp-freescale-imx6 https://www.toradex.cn/zh_cn/products/carrier-board/colibri-evaluation-carrier-board http://developer.toradex.com/software/linux/linux-software http://www.draisberghof.de/usb_modeswitch/ http://www.cnblogs.com/ziqiuqiandao/archive/2013/06/06/3120972.html 扩展 USB 3G卡热插拔那些事 http://blog.chinaunix.NET/uid/20786208/cid-155003-abstract-1.html 六、相关博客 参看HI3515海思开发板移植3G模块笔记