爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑 $ N% z/ z1 x! d! m1 j

  a  c6 k1 O" P8 i$ g, R  |' M7 q鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。. X% G5 U, [1 L3 ]

引子6 p" F5 N, f; N# j" p5 ?
无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了4 }- k+ ?$ G; i" h+ \0 s- D
关于openwrt可以参考百度百科7 I  H8 o3 Z3 o# ^. Y4 W" u
http://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可). j4 a8 L2 r0 L7 ^
http://www.openwrt.org.cn) O/ [4 L  B+ \+ b
其他还有恩山chinadsl( S  h) o/ T4 ~' F1 x+ S
大亚db120-wg据我考证是最便宜的openwrt玩具。" u8 z: i0 P: n
大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。
$ m  S! j8 e8 E. ?; x" s; ^5 K这个可以刷openwrt的路由器可以干什么?7 Z$ }9 R5 ^" V+ }' l4 F* T) c: y3 A# |
有人拿它自动翻墙……( ]0 c; L$ ]" [2 G1 E) Q6 o# Y
有人拿它当网络电台……
0 o% v( u2 |' ~! f/ E有人拿它当下载机……$ o- J* E% L6 U- N7 }+ v
有人拿它当监控机、报警器……, y$ x3 T( C: U1 z
有人拿它做wifi机器人小车……
& \$ c7 e" {" E( n0 ]有人拿它当服务器……
) i1 M9 t( R$ U& u# {0 f我买个两个加邮费¥85,便宜吧
: O* |4 A, Q* ]
" q2 y/ [: ^& Z: T1 N: _. d& l看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。

3 ~, @& V+ {! R' [8 F" a+ g: c3 x注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。- L1 o. V3 A2 Q0 E
我是通过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
3 _" W2 I/ E6 i( u俺现在搞定了摄像头、GPS,下一步准备做机器人小车。- ^( h8 @0 T" C6 Z; i. Y* u) g8 Z
要知后事如何,请看下集挂摄像头。7 f' w2 s  |- [# e9 L0 [' b; x/ i; ~

作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子
  b/ c7 z  R+ t! a' b# {0 |. M' ^( ^, M; n) {  w
葱头兄准备入手的某品牌手机是不是中兴的V880?
/ j% l' [5 x; Z$ T我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。! _- [; W% n+ T

3 Y* _5 ]! d# q% G8 tlz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑 8 w! a4 {8 _. g, [3 V) _
% d8 T1 j7 d) j
俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……- A2 B1 i* s( L; i6 y. c
在正文之前讲点注意事项:) m8 e. r  [+ }& r% s. g
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。9 h. h2 ?) ~; a9 \  P6 G8 \- b
2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。3 [) c7 Z  H7 L! q; r( g! j
开始正文的分割线……0 x( Z! N: a& h4 U/ f. m1 Y

折腾1、挂摄像头
  S' F2 r7 P" p  @目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。1 y5 R' }; N- Z- w  W" j
  1. opkg install kmod-nls-base #后续安装需要" E7 @! d" j% P) k$ S4 m
  2. opkg install kmod-usb-core#后续安装需要
    $ Q2 p6 `+ y1 W/ t6 ?
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个# Q* @6 ]) j5 X  ?& }7 P
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的
    ; i" G2 e. U5 r
  5. opkg install libusb#后续安装需要
    3 {# c( K0 p6 e' h3 ]) @- q, D9 H
  6. opkg install zlib#后续安装需要8 w' O: q$ V6 [* j( \+ X+ g0 }
  7. opkg install usbutils#lsusb命令,很有用的工具
    " k2 L3 L2 o' `3 A1 A, R4 S
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb5 Y; Y5 X  n8 O$ L
输出为:
7 t% S( b8 b/ r6 E. V# k
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    1 A) t1 u! l; c4 b5 W5 p: a! U
  2. Bus 001 Device 002: ID 1e4e:0100! t& C1 @: w$ z, b
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。
; l" d- L! k6 i' [
  1. opkg install kmod-input-core#后续安装需要3 w5 x# w: j/ a; C2 `  W
  2. opkg install kmod-i2c-core#后续安装需要8 @  f) P+ R. N' I
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:
2 \. H9 r, [- E5 b  E/ z2 z) }; V! A9 O
  1. Linux video capture interface: v2.00. h) y: `% _0 V: C4 a0 E
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)
    1 |' w# `% N) Y6 o
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.
    : T' F2 i3 R, v$ G. h  u. W
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video04 b8 Y0 Q' r" c% R
cat: read error: No such device) g2 i, R3 j3 v% J& c# A
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。
1 G8 @$ p8 P$ O! c3 Z0 y9 t安装mjpg-streamer
+ T; y' v2 J* M: ~' F- H4 m
  1. opkg install librt#后续安装需要  U) ~) b2 y2 a  }3 Q' k# t
  2. opkg install libpthread#后续安装需要
    0 J* N6 F/ V* Z# t
  3. opkg install libjpeg#后续安装需要/ ?% L, }/ Z$ B/ e
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer
0 Y( P! V5 A& _
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:
- |' ~2 a) h/ \4 E3 Z& gmjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:8 ]* V1 p; F6 x) n- {+ j9 |
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
9 W% Y/ i, ?( ]8 o; G3 c( q" _+ @
血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。
$ k, M$ O& y1 y$ N. v7 y, N为了安全起见也可以-c username:password 加上用户名、密码。
( z  U' R. l7 `$ z* o& u" X3 Q这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。
0 p6 e7 Y, B  K# u没有反应?都睡着了吧7 t6 C# ^3 ~5 x

作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子8 ^+ n4 H; v8 a
3 h4 U6 N2 |1 c% ?+ T% b6 W4 ]: @
好像回帖被回和被点评也是可以加分的' G- ^5 m; ]( n0 r; R3 K1 [1 W
; O! Z% T5 k6 O3 H& b& i
俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子
. r1 H  \- l. q+ m
' [- Q. Z- \- M, X5 h! l3 V现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
( U9 t8 d# S1 ?% z6 {, T) `
% r+ r8 n+ g0 V6 N# I4 `. m3 n% h我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?
4 X# ^4 T0 j( I9 l5 Y: [/ Z; J要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子; d1 r7 [5 r- X9 V
7 ]8 A, X0 }( a% x
俺写了写人生,写了写感情,您老看可还行?2 A- [: s! r0 T9 @+ M8 C
突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。2 h4 E' j- \8 ?2 k8 B
GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)
  s" J4 E. [8 Y. J [HowTo] - set date based on GPS data from serial port1 w) _) V) K5 A* s2 O+ m
需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb6 x4 P9 S5 ^6 h
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
    ( X) f* Y2 v4 T, y9 v- P
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    5 z9 k7 r' \3 A; M( {  O7 x+ |
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。

  1. , D; H8 c* h- }* M1 E6 {
  2. opkg install kmod-usb-serial
    / E+ V3 W/ t) _  `, U
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。
, |- a9 g& A( {6 M
机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子
  e) z* _5 b1 N; N
4 s  N- J+ z' ?0 q' w. W( v无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




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