爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑 ; ?: A  J% o" O* e( G

  h( C7 {' A% k3 n/ X* `! }鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。
3 ^9 e* N# s+ e+ s1 ^& Q4 K
引子9 s( C% U1 k( ?5 ~2 S
无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了* n: m: Y' T$ j7 T" @. m. y& ~4 f
关于openwrt可以参考百度百科# X: U$ S' _; ^: q
http://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)' V$ U) G; u! }9 G
http://www.openwrt.org.cn
+ w2 Y( M9 f1 n! h' d其他还有恩山chinadsl9 X* k) `3 \( H9 @. X
大亚db120-wg据我考证是最便宜的openwrt玩具。
% B2 q$ N+ c4 j. k8 q- P: S$ X4 y大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。
: x9 r, C: [* }3 G  w* x9 ]# {8 T这个可以刷openwrt的路由器可以干什么?
/ X2 \7 J4 c( i9 E1 |( o5 E1 \有人拿它自动翻墙……: v! O6 f0 z: w
有人拿它当网络电台……
; U7 _: G) `# t3 G3 A有人拿它当下载机……
( ]1 C, ]) X+ D5 s. M$ x有人拿它当监控机、报警器……4 A2 y1 r. j6 U: `9 k9 h, G
有人拿它做wifi机器人小车……
$ v% O. f: S& a, g/ S有人拿它当服务器……7 D, u; v  f) s% M2 P" H8 d( {) Z) D
我买个两个加邮费¥85,便宜吧
4 O* o  A. I  d" K* D
. @3 P$ e. U, ]" G* @  p2 V看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。
+ X# r% F+ L: p+ L: X5 j3 C/ N) N! N
注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。( H8 ^& a0 o$ @; ]% Q1 S
我是通过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
( s4 R; C' ]$ F俺现在搞定了摄像头、GPS,下一步准备做机器人小车。6 O/ g: d4 O5 c, j- A- i" C; h
要知后事如何,请看下集挂摄像头。2 M: q/ M  L4 G7 \% W! g

作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子! d1 I& u  k" m5 w1 j0 H

0 h7 A) g0 v' f# f& q* X' b; \葱头兄准备入手的某品牌手机是不是中兴的V880?& C6 h. q  e3 K8 T* w
我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。, z9 Q- Y9 Z4 R5 K) R& V  ?
' F3 `4 }4 l8 u+ Y/ S; R" h
lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑
) K5 s: b0 r! q4 K3 H$ \  L6 q1 e( u& {# D5 T! l" j. v3 L
俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……
5 Q  c! m' v9 a* H, P: |在正文之前讲点注意事项:9 T; K' c3 r' H6 Z0 A& l
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。
5 N9 H! Q- v0 c  {) I1 e4 A2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。% t0 M, M! B* X9 n
开始正文的分割线……
) D7 z6 R9 R9 L5 X' z* O
折腾1、挂摄像头# a: q6 D8 H5 {0 w
目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。  m/ m' B2 |4 H3 h; z5 u
  1. opkg install kmod-nls-base #后续安装需要
    # Q0 F# U9 {( ]
  2. opkg install kmod-usb-core#后续安装需要
    - T5 T! J/ I- X0 U$ y& z2 `0 S* f" }
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个
    ( i6 z) Z4 C# A1 N+ p" X% Z2 y# B- }
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的
    - a; a) s' u0 ]3 k- L$ R
  5. opkg install libusb#后续安装需要1 x* E9 i5 u  i
  6. opkg install zlib#后续安装需要
    , ^' ~5 Y3 c% S) Q% o$ ]6 E
  7. opkg install usbutils#lsusb命令,很有用的工具
    2 v% v, W$ W" P( F, G2 i
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb
, l" n% Y- @4 C" m; h输出为:7 v0 n3 V# B- D" X2 A
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    ( x2 ~- D. y: E' i7 {
  2. Bus 001 Device 002: ID 1e4e:0100/ V4 r& _& `0 l% C4 t  M" R! }
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。5 u6 [8 N5 f! s" Y
  1. opkg install kmod-input-core#后续安装需要
    & R* M  J4 h0 Z7 k7 d  W8 k
  2. opkg install kmod-i2c-core#后续安装需要
    ' Q# D; N9 F6 W# m4 K5 o% s2 I2 K7 V) ?
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:" `# U9 J  M# i, s
  1. Linux video capture interface: v2.00
    8 Q  I) `$ J6 S$ z6 g7 r
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)% b) D" Q# Y" g- d4 l8 L: _* T. k. p
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.
    3 L$ m# A. ^, V; }; [
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video0
* |) L0 L# J3 U1 w. g8 y! H3 Icat: read error: No such device+ `, b, G! S2 o$ r* x
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。8 P7 @) Z# J$ z5 X5 R1 ?# ?
安装mjpg-streamer$ u' K7 c  v" W7 a3 s) {
  1. opkg install librt#后续安装需要1 N8 ]9 }- E# B! j- d
  2. opkg install libpthread#后续安装需要  `4 V& H( y& v% S3 C
  3. opkg install libjpeg#后续安装需要# j5 P9 r% G9 J0 Y. R& v) ]0 g  Y
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer
, w. S" G) p7 f6 ?: m
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:4 s7 O, q& q. o1 I! C( f
mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:
) _, f# L2 O% l+ ^9 h0 p4 L
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
6 n& K2 W0 f# C8 O# @4 F
血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。* v5 A* |) @6 p1 w. |0 y
为了安全起见也可以-c username:password 加上用户名、密码。
, e/ }- ?. R5 A- b2 W8 Z6 w这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。
$ W: D* q- E4 g- E$ }$ ], t: p没有反应?都睡着了吧
) H5 v* T+ ]& F1 n4 _0 _: c# Z$ F5 r
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子" I1 G* X; W* Z' S

8 s' u  a- g, \5 ^- ?- ~& Q好像回帖被回和被点评也是可以加分的+ C: I# M2 Z0 W$ }; y
# H7 G" T2 w# \  m, K6 t9 _9 L
俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子
/ H; S$ ]8 Y, N$ l* L7 _
1 q9 C" s3 N6 W9 F现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
+ ^, C# _4 O+ r0 r, }/ _2 K! S4 s
1 N) c6 C+ W; A6 a我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?( B( J6 M. b# I; S- `2 W
要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子
; x4 N& M+ l* E7 N# V' N( c% w
6 ]) G& `: |2 a) y4 |  b. \0 S' ]俺写了写人生,写了写感情,您老看可还行?
; S: P8 o( W9 t% e$ |. P突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。9 s% Q: c! J+ s3 Y
GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)9 O- o; u1 _* q% p4 I
[HowTo] - set date based on GPS data from serial port
/ ?+ k/ `, \' \需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb
    * S/ s& I1 W$ }2 V8 {$ K& f2 a( y
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port7 c4 P* N" K0 j$ Y
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    + V- J2 ^, T* O" C/ O& r' a4 x
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。

  1. * L3 J+ J* q" c
  2. opkg install kmod-usb-serial
    $ b# ^0 m& o2 G1 p  J6 u
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。

* c3 V4 q9 }% z, m& d机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子
3 A9 |/ x6 n5 ^- t2 D# H" p4 R. @$ @8 r: G0 m: }8 j; \
无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




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