爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑
8 ~# _, l" n: [! P5 z1 F  E
4 {3 \( {; U% N2 X5 D鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。7 X' c; |3 K4 B* [. \( Q7 k# U* X1 k

引子
* f2 y% n# Z9 O* ~) A无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了。; b( c. \$ f% P2 e
关于openwrt可以参考百度百科6 g) B2 |3 j" Z3 b7 {+ ?( R$ x3 k
http://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)% {5 D& h& G& D" |7 t1 ~2 I' u
http://www.openwrt.org.cn
$ {2 G8 _: ]6 J9 h0 {) P其他还有恩山、chinadsl等' Z5 F) \( w3 W0 g0 ]' X' V
大亚db120-wg据我考证是最便宜的openwrt玩具。
6 _4 Z. b3 d4 a4 `大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。3 O/ [- o+ V3 i4 S% B" E
这个可以刷openwrt的路由器可以干什么?3 [0 Y& X% n* E8 W' X+ g' t
有人拿它自动翻墙……" |, g, E0 @6 ?- B1 z# y
有人拿它当网络电台……2 [4 u! F1 U8 L3 d+ i- }
有人拿它当下载机……! \) M  U! K/ t( P2 M. m
有人拿它当监控机、报警器……! C- \( R, U# Q- n
有人拿它做wifi机器人小车……
- }  r+ o  Z0 T有人拿它当服务器……
; x7 @* v5 F6 S" |- D我买个两个加邮费¥85,便宜吧。3 N( i( ?4 i+ b" v- p

7 K. M( |3 x. y看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。
8 `* B; r- g/ R7 t& _3 i& K
注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。
  V( G" P5 O1 O! o4 x% ]% ~我是通过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
' P3 ^1 r" w. @1 P俺现在搞定了摄像头、GPS,下一步准备做机器人小车。
- ]6 d2 B2 g( r- P! a/ E" g0 k) u要知后事如何,请看下集挂摄像头。4 K$ F. P5 {0 f$ @+ J' U9 l; B9 p! y

作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子* F$ U& {5 }' k$ J: i% ~
5 \* J6 s( ?5 j8 u4 r7 e
葱头兄准备入手的某品牌手机是不是中兴的V880?4 c% H/ k# Z1 u4 T4 Y, y
我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。7 q4 u# W" Y8 J2 J4 _% h) e' `

7 ^$ q  K+ S( H$ r! p5 f! }lz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑 3 R" r: V4 M( N' C; u" Q! P( E

6 @: h3 c: H& s9 ^# G( S俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……
7 M* S$ @* [9 `; q3 f在正文之前讲点注意事项:
- l! U3 u7 A& e; m1 G) J. I4 y' q1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。* g9 V1 W. V2 }6 u& k$ Q' t# j
2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。, K1 Y  w7 \' ~, i( {  Y" s0 ?
开始正文的分割线……, E, Q9 ?/ \; O4 o; j

折腾1、挂摄像头
+ f3 T' @  O' y. Q/ B% U目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。! `7 r2 u6 T6 A% |' C+ ^% v
  1. opkg install kmod-nls-base #后续安装需要4 A" _5 P& Y; q8 ]
  2. opkg install kmod-usb-core#后续安装需要4 Q9 H# A: Z1 k2 b& `& {
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个! {* w" r# C% ^0 u; E. U& m7 ?
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的. ^7 Q& Q" |  R2 F0 \" [
  5. opkg install libusb#后续安装需要
    $ s$ G5 h8 Z) ^# q
  6. opkg install zlib#后续安装需要  h* q. i/ N" G2 o
  7. opkg install usbutils#lsusb命令,很有用的工具+ z1 ^0 i, z& |# i
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb! k6 F2 G, c/ a, s9 @4 g  h
输出为:( s" D' V( l& z; J
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
      ^. W. ~" x/ D% F! R% O5 H3 e/ y7 Z
  2. Bus 001 Device 002: ID 1e4e:0100
    ( S0 c& J# C6 i6 v8 S4 Q$ H
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。
  q6 y  \7 h" {$ F9 R- W+ a
  1. opkg install kmod-input-core#后续安装需要
    ( @* C/ I. t+ Z0 ]
  2. opkg install kmod-i2c-core#后续安装需要
    * Z3 p4 w! h- O% R; k
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:, c5 t6 C9 D/ V0 }' u7 t
  1. Linux video capture interface: v2.00
    4 i* Q# [, p. q
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)& }( B1 E, R/ k: G: F
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.
    5 A  k- U  r$ H, K0 }# V
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video0
8 Y# E2 n# N% j& w" Q2 _3 Z7 W7 Ncat: read error: No such device2 b( |3 i( S( t( b  T" D% n: O
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。
( L! r; v8 q  n9 u0 W安装mjpg-streamer
# S+ w7 D/ Q7 ?8 u  D- K
  1. opkg install librt#后续安装需要
    7 w, [! x+ D- d2 P8 J9 S9 V' ^* [
  2. opkg install libpthread#后续安装需要
    ' B/ ]. ~" ^6 t) `, B: N
  3. opkg install libjpeg#后续安装需要2 p* \. `; H2 ~* \8 U
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer. y1 F- P- O, B! g/ R6 d! o* U# u
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:
' P' C6 m" E: s6 \$ w# n' O4 b  }mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:
% R0 [4 V3 P$ w. k) k' g% |- k8 ?
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码

, o1 K* A  j+ i0 M8 }4 F血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。. {8 G+ h1 j/ \* d2 y/ ]
为了安全起见也可以-c username:password 加上用户名、密码。
0 Z) M& P3 C& W1 I; R) x这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。
6 i  S% \# X; n. B0 l没有反应?都睡着了吧。/ e0 h! ]9 u* S# q

作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子5 x% T+ L: L8 g: X# j4 R

* \" a' a! W' s好像回帖被回和被点评也是可以加分的% R! s% H1 L! P3 {/ M( z7 s

2 ]. b+ Z7 }+ z1 _俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子) R* x0 i% X2 q3 H! x8 Z3 Q
$ Y  r/ B) D3 J0 n
现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子; k/ N/ E' b. {# Q  v; k" n
& _5 s- _' Y! o
我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?
# |8 c9 l/ U9 _, {0 l要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子: T" o7 p2 [* I: j; b2 w- v
. r5 F7 O1 C# v. Z; x/ \- h8 s
俺写了写人生,写了写感情,您老看可还行?
! C* @9 g9 v( b3 c6 P) s突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。6 b: o6 I. Y$ w/ y1 ^% M
GPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)
0 \4 i7 J# p$ ~4 R7 v2 S  ^5 s [HowTo] - set date based on GPS data from serial port
0 F/ S. H  l3 F2 R需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb
    ; h" _% e& j& a. T& C& J
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port0 K! H$ T  V( T2 @4 r
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub  j; c8 ]' ^  ^! ^( T! {4 @6 S
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。
  1. 6 P% |; d% Y1 R; N8 G7 e
  2. opkg install kmod-usb-serial& O' ~: q, f& W. ^
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。

5 B, W: q2 Z) I5 @: t机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子
: \6 u: \! U0 m4 V2 O' }# h3 ?( U/ M) `9 M, ^
无人驾驶车队这个到没有想过,路由器本身的router/switch 功能是否还在?当然存在了。车队理论上是可以的,只是需要相应的程序。WIFI下,速度要很低,这个倒不至于,只有一些简单的传输指令,蓝牙什么的都可以满足,wifi肯定可以,另外这个帖子就不要回复了(太geek了),沉下去吧,更详细的讨论可以去爱果联盟。
作者: 卡里其亚    时间: 2011-8-16 17:32
别沉别沉~葱头你从淘宝买的吗?我咋没找到那么便宜的呢?有没有商家链接共享一下?




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