爱吱声

标题: [绿葱头DIY]之大亚db120-wg路由器 [打印本页]

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑 8 ]# N+ i- u/ N" b

) {- x) o* z5 Z6 ?+ h) W4 E  Q! I鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。
6 r$ F/ A, z3 H, }
引子8 n$ t* k- @) Z) T$ p
无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了0 L, R& [3 W; q/ K1 ]7 \  z! Y
关于openwrt可以参考百度百科" G- _- r" p' M5 r5 ~& p- I4 _# z
http://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)7 T' I: p* _4 X, {. g7 z1 p3 v0 L
http://www.openwrt.org.cn4 \! `' N' b5 L
其他还有恩山chinadsl8 n/ r8 O" `( P( S
大亚db120-wg据我考证是最便宜的openwrt玩具。
! _0 V; g& E/ w2 P, `大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。
" K  e, {" E* X! n6 T这个可以刷openwrt的路由器可以干什么?% d3 K! x/ ]8 A! j9 X4 W$ ~8 H1 x
有人拿它自动翻墙……
" B( c. S8 Y+ J2 A) Z$ p有人拿它当网络电台……# ~& \- V2 Q- t4 k: _9 }
有人拿它当下载机……
( V7 p( L0 J# w; `( x" _+ x有人拿它当监控机、报警器……
% I% @  w4 X+ T: H5 X有人拿它做wifi机器人小车……
# U; Z: z7 x0 N有人拿它当服务器……
" v5 R+ Z0 r1 e7 X我买个两个加邮费¥85,便宜吧/ ?1 M* Z+ M& f# A/ Q$ r( {

% P" {* U, G+ ?8 k* {6 U. ~4 ]看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。

) c% O; o+ `( R0 t+ ]* g注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。3 T! b) N' _. T0 d; Q3 w
我是通过WEB刷的官方ROM(http://downloads.openwrt.org/backfire/10.03.1-rc4/brcm63xx/openwrt-RG100A_DB120-jffs2-128k-cfe.bin),参考教程http://www.openwrt.org.cn/hdwiki/index.php?doc-view-11( u3 N% y2 C- J" a( W( l3 C0 v: C
俺现在搞定了摄像头、GPS,下一步准备做机器人小车。
* a7 a( C) @; j' j要知后事如何,请看下集挂摄像头。  S6 E4 n4 r/ I9 Y3 W3 T

作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子" ^7 C, P% J. o2 T: P/ v
5 H& T: K' o3 O! T# D4 k
葱头兄准备入手的某品牌手机是不是中兴的V880?! E- d) |* F6 Y; A! L' i
我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。: ~: Q$ y; E- {/ e( w: n6 D) _

+ ~- [% M3 B4 `( G! H$ Q% v$ ]lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑 : K7 T0 D7 e/ s2 G; Z( K
5 m! P8 J- g4 E( V7 U
俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……2 R. f  F* d( L! \5 L( Q" s" {
在正文之前讲点注意事项:/ \: c1 N- x) R, T) o: m
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。
0 ?& E" ]6 U* S, G2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。/ q& K/ g9 p+ R" b! w* {4 U4 ^
开始正文的分割线……
0 D' Q* C8 w$ W5 X
折腾1、挂摄像头. Z& M' m2 M/ ?0 j0 r* M
目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。" a3 A% }  h# C9 k6 {: I0 w
  1. opkg install kmod-nls-base #后续安装需要
    3 V/ I1 q" M: Q
  2. opkg install kmod-usb-core#后续安装需要
    / |, u3 ^- l' _2 _% J
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个- w8 K: `5 L. v9 g$ |
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的" q' p. s' `& B- w  I! @
  5. opkg install libusb#后续安装需要
    ' Q5 u" n) S" w8 o
  6. opkg install zlib#后续安装需要9 u: ~) o% r; a' v
  7. opkg install usbutils#lsusb命令,很有用的工具  i# c% j, Q! _! m- n8 T4 ^: l
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb: F: J6 d( n/ I9 x& E$ n
输出为:
2 I0 A) `7 K; t' w# f
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub$ @# h2 y; s3 E
  2. Bus 001 Device 002: ID 1e4e:0100" {# t( s3 }. O9 \& R' U5 U, a
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。
4 J) I8 j* O( W( X% {7 |" V, W
  1. opkg install kmod-input-core#后续安装需要  r$ i' A# N1 _
  2. opkg install kmod-i2c-core#后续安装需要
    ; f: c* |4 P$ i/ p4 X& f9 d  q2 r
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:$ ]/ ?2 ^0 d# d( n" i; J& g: G3 r
  1. Linux video capture interface: v2.00+ S5 `$ p* r* _8 A0 R
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)
    ; Y3 N6 o! Z/ `1 }& @
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.3 Y  ^5 w* a5 r) Z
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video0
6 O( h5 E3 M$ mcat: read error: No such device$ h3 _8 L9 h4 m" D0 R
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。6 ]% a9 J  w$ O) y5 a
安装mjpg-streamer
3 r, N- c7 f9 X/ J$ n% Q
  1. opkg install librt#后续安装需要9 F; [+ H0 n; U; J. C, ]$ C4 c
  2. opkg install libpthread#后续安装需要
    ' u9 Q# m' ~! K+ v& ^
  3. opkg install libjpeg#后续安装需要
    0 p( O/ c6 D1 V( `# c( `, L
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer
8 H3 V, R* G# ]" T) t0 A7 ^
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:
0 J# ?" `" C, S7 ?mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:7 @1 k" B6 F# P; V* }1 G8 Y
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
2 F+ [) n2 e- C+ D
血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。
( K8 p6 @( X( q4 p& R& g# Z为了安全起见也可以-c username:password 加上用户名、密码。* G$ K) c; C6 }! H- s% m2 ^0 z
这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。; \" V1 K1 l/ D% C1 D2 q
没有反应?都睡着了吧
' R1 y& X, C& Z) F' J
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子" P9 z1 _8 V5 R7 s& H5 v& x

+ P3 c9 \* q7 c3 R" J; y. [! \好像回帖被回和被点评也是可以加分的, ^) e/ H7 {- l' _: Y" ?( F
! X$ u; Q# q* r: D1 {! p
俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子
- `3 P2 s: J7 z4 ^' C# A1 w
! k% v! ?/ @8 ]$ Y; u8 G; }& O现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
. z* z" C3 G- {% V3 h  w. y+ r7 x* d2 G' @. |- O. k8 z
我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?
6 J" e: a2 H: K* y4 @  d0 D要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子0 P; H6 Q! t! O! v* o6 \1 p8 n+ Q

. y! m; U! R( r0 Y4 o! \2 P俺写了写人生,写了写感情,您老看可还行?/ Q1 l: N9 J( X& X0 S* p* M
突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。7 `& ]$ a$ S# d3 h1 f% I
GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)% t/ t0 h: x4 T7 k1 l% o- E3 {# @2 w% W
[HowTo] - set date based on GPS data from serial port
# U2 g- K+ Y" g+ \  E7 Q3 L7 l需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb, e" i7 ~6 r, E$ M9 m2 h1 t. _
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
    2 `* K& J0 y  ]- k2 P
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    % l4 _; ^, w4 m2 J2 V8 @2 v
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。

  1. 9 t9 c0 }  y' q
  2. opkg install kmod-usb-serial
    0 F- [9 Y% d9 h) B
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。
; v# A$ f+ Z  o0 Z' e- N1 k' ]. @
机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子0 g. x. l) z, q7 A# H( U

* C2 n+ U8 l3 ?6 z6 H无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




欢迎光临 爱吱声 (http://129.226.69.186/bbs/) Powered by Discuz! X3.2