爱吱声

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

作者: 绿葱头    时间: 2011-8-12 15:24
标题: [绿葱头DIY]之大亚db120-wg路由器
本帖最后由 绿葱头 于 2011-8-13 22:43 编辑 # H/ T/ x, d" K& f  C2 P

# n/ y. w, N2 n" H8 y5 _鼎革同学说写技术也可以,俺就写一段技术,结果这个帖子俺写了7天,还没有写出来。因为一个跨平台编译问题,困扰了我很长时间,现在也没有解决。今天先写一个引子,希望俺星期天能解决这个问题,泪哗哗的分割线。
$ j% l2 P5 a- F! O& h
引子
; E; v4 ]1 s# y  H( d/ Z4 _无意中看到国内服务商赠送的路由器也可以刷rom了,激动啊,向来厚道的都是国外版本,俺准备入手的某品牌手机国外版本内存512m的,国内只有256m,太欺负人了
1 G& a" F; ]+ m9 H关于openwrt可以参考百度百科7 e9 U' t" ~: r- B* n: J! [8 X& g
http://openwrt.org(用firefox的同学注意:官方wiki打开如果是空白,那么请使用神器mason插件,自定义wiki.openwrt.org的Accept-Language为en-US既可)" h1 V/ g" b0 J$ N% a, y" m
http://www.openwrt.org.cn0 f4 h. r; L4 O0 @0 v3 [
其他还有恩山chinadsl
. X" O; p& `4 u4 Q/ l+ J9 Z大亚db120-wg据我考证是最便宜的openwrt玩具。
2 o4 b2 j8 `" T+ n1 ?# C3 v大亚db120-wg还有一个马甲是贝尔RG100-AA,只有一些细微的区别,官方ROM都是一个。9 T# e$ Y# X- M$ y0 a; K. V1 [8 z
这个可以刷openwrt的路由器可以干什么?0 r+ y8 T! |+ J: s2 B3 h6 h0 R
有人拿它自动翻墙……
# Y7 L8 y* o3 u; j7 U, |7 x有人拿它当网络电台……
  s  F9 u& a1 L! D有人拿它当下载机……
, \2 F, o- a: K# v) v有人拿它当监控机、报警器……& D" ^4 D/ F* h. ?- O9 A
有人拿它做wifi机器人小车……
+ ?* F6 p' d8 K有人拿它当服务器……% v( x% _8 Y$ I, }. P
我买个两个加邮费¥85,便宜吧/ I" D  ]* n& \8 Y' [; m/ |5 r
( F8 ]7 {3 t0 d) W4 c( T7 g' M2 ~
看卖家介绍:
硬件设计是极为强悍的:主芯片为最新的BCM6358(MIPS,芯片速度300MHZ),交换芯片为BCM5325,无线芯片为BCM4318,FLASH容量为16MB,内存容量为32MB DDR。2个USB接口、WIFI无线硬开关、WPS一键加密。

4 [, {4 i: A3 ?# V注意:大亚db120-wg、RG100-AA后期版本硬件与前期不一致,有可能刷不了openwrt,比较成熟的是两个USB口的老版本,打开看主板上看FLASH型号以S29打头。我的就是这种。
; Q; H# F# {2 S3 f. {; a& I我是通过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 e( x! D7 N& P% U  L& _! N俺现在搞定了摄像头、GPS,下一步准备做机器人小车。- T' p2 _. u" ]$ S# J$ {' g, N
要知后事如何,请看下集挂摄像头。
4 v5 _& d/ o$ _% {5 J% a% G+ M
作者: zealangel    时间: 2011-8-12 20:11
回复 绿葱头 的帖子$ R& ^, Y0 Q' J9 f  L! i
" S$ X2 k6 k5 u, ]! O* h' H
葱头兄准备入手的某品牌手机是不是中兴的V880?
  ~. d  g9 i8 ~, Q; c我就是用的这个坑爹的国内版
作者: leebar    时间: 2011-8-13 02:03
我有这个无线路由,期待兄大作!
作者: 阿雷    时间: 2011-8-13 11:47
编译过dd-wrt无线路由固件的飘过。一起交流。
作者: 牌牌    时间: 2011-8-13 15:37
几年前买过一个贝尔金的工程板好像就是可以刷这个的,结果买了之后一直懒得动手,导致现在俺用的无线路由还是这个裸板,连个壳都木有。
! x$ q: p: w4 {& }
/ @4 B$ E, p( o. |3 Zlz加油,好玩的话,俺也折腾下
作者: 绿葱头    时间: 2011-8-13 18:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂摄像头
本帖最后由 绿葱头 于 2011-8-13 18:33 编辑
" Q8 j6 K( y! Z8 w; R0 a" @: O
; C8 ]9 w. l& m* k俺比较担心这个是不是太geek了,毕竟不是专业论坛,实在没有一些大牛把技术文章写成对口相声的能力,听俺讲故事的都说是良好的催眠剂(小女可以证明)。看到部分同学对这个还比较感兴趣,俺就继续唠叨唠叨……
& Z9 T0 ^+ j/ U+ V! a在正文之前讲点注意事项:7 U( f  m7 l: j0 R6 y
1、刷新openwrt官方控件的注意,第一次启动需要telnelt 192.168.1.1(换lan4以外的口),这个时候是不需要密码的,进去以后passwd修改密码后才可以ssh登陆。2 C, K6 |! m) e/ K: l# m
2、注意写入FLASH。一个是一些软件的默认写入路径是FLASH里,要知道FLASH空间就16M,很容易就写满了。另一个是安装软件后重新启动一下,这样可以正确写入FLASH,避免因为FLASH效验错误无法启动(如果FLASH效验错误需要重新刷ROM)。8 a7 B3 b6 a& L2 ?( @3 z  ?
开始正文的分割线……
9 C' s% i# `! R8 Q
折腾1、挂摄像头) |; a2 ~5 d( e9 l" q
目前openwrt的摄像头安装似乎靠运气,网上的教程大多使用中星微(不知道为什么好多地方都写中微星)301摄像头做例子,我手头上只有一个廉价的良田免驱摄像头,VIDID是1e4e:0100,google到的第一条信息就是linux UVC驱动官网,可以看出使用的是鈺創芯片,使用UVC驱动成功。
% j3 [' h& m. L
  1. opkg install kmod-nls-base #后续安装需要
      J6 B6 |" |9 v* m
  2. opkg install kmod-usb-core#后续安装需要
    1 `5 }4 J( P3 M  B% P  Z0 \
  3. opkg install kmod-usb-ohci #ohci USB控制器,据说一般BCM都是这个
    ' c) N5 I* L- F- e: D
  4. opkg install kmod-usb2#这个摄像头是支持USB2.0的8 |: a$ O" w3 n8 [' Z& a
  5. opkg install libusb#后续安装需要6 |# B/ X- Q7 Q1 e2 u% ?
  6. opkg install zlib#后续安装需要7 S% B+ r# O: v" F4 P" |
  7. opkg install usbutils#lsusb命令,很有用的工具
    ( D' v6 U4 A- F7 G9 F7 H$ @6 R
  8. reboot;exit#重新启动后lsusb才有信息
复制代码
lsusb. Y# V. Q! B( J5 `( T7 j) i3 ^# t
输出为:9 c. Z3 B  Q/ h0 `( q, e/ @5 ~
  1. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    9 [. \# c/ ]0 n: |; g& r
  2. Bus 001 Device 002: ID 1e4e:0100
    % S6 a6 y; _& G8 o$ G6 x! R
  3. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以看出来已经摄像头已经接上,由于数据库的关系没有认出芯片。' m, t) u- F7 h7 p9 ^  {
  1. opkg install kmod-input-core#后续安装需要
    / n% w$ N8 u  b& p5 }8 L0 E& N
  2. opkg install kmod-i2c-core#后续安装需要
    . H# `8 O  C; }% d: k: p
  3. opkg install kmod-video-uvc#真正驱动
复制代码
这个时候应该出现/dev/video0了,dmesg输出:
" `- F1 y$ }( `) D
  1. Linux video capture interface: v2.00
    0 y- W3 p% l" _6 X9 |% f0 C4 Z' Z- e5 A
  2. uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0100)3 h: ]3 }4 K& t
  3. uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling work.0 N2 t$ W1 ~- R& S
  4. input: USB2.0 Camera as /devices/platform/bcm63xx_ehci.0/usb1/1-2/1-2:1.0/input0
复制代码
cat /dev/video06 t' O1 N! ?! k* q4 r8 G8 n
cat: read error: No such device0 A$ ]6 e+ [/ Z) l5 ^
开始cat /dev/video0 无图像输出,以为没有成功,查了N多资料,才知道有的摄像头就是这样的,可能是我的摄像头不支持mjpeg格式读取。9 L& d% v7 T) q4 F/ r5 p  a) {
安装mjpg-streamer8 y8 l  z# Q$ i# f& f  F
  1. opkg install librt#后续安装需要' [) c4 I+ Q. Z2 j8 y
  2. opkg install libpthread#后续安装需要
    8 {, K* l. o8 k/ D. k5 `
  3. opkg install libjpeg#后续安装需要
    / _* q$ L0 l) _7 P- A
  4. opkg install mjpg-streamer
复制代码
启动mjpg_streamer
8 \5 S6 n; P. j2 \$ Q
  1. mjpg_streamer -i "input_uvc.so -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码
失败的同学注意了:. o0 A+ o% B3 Y5 ^  I! @
mjpg_streamer默认使用的是mjpeg格式读取摄像头,而部分摄像头采用的是YUV格式(我的就是这种),如果使用不支持mjpge的摄像头需要加--yuv参数:
* I1 y& @3 ~  A7 {$ Y+ D
  1. mjpg_streamer -i "input_uvc.so --yuv -r 352x288" -o "output_http.so -w /tmp/webcam"
复制代码

4 y. V4 p6 X: N- P血淋淋的经验啊,试了palantir很多次没有成功就是这个原因,而且palantir似乎没有调节的选项。9 P$ ]% G( n* m! n7 L5 W+ e$ Z
为了安全起见也可以-c username:password 加上用户名、密码。, n9 F' N1 m- T6 T; ~
这个时候用firefox浏览器(据说IE不支持)输入网址:http://192.168.1.1:8080/?action=stream应该可以看到图像了
预告,俺下次课讲的内容是挂GPS。3 Z0 Q+ ?1 Z( w5 m, T
没有反应?都睡着了吧
* Z' x4 V/ D  v- d7 I' l
作者: 牌牌    时间: 2011-8-13 20:33
回复 绿葱头 的帖子
+ `6 s8 O/ ~( F* D
: @9 e# \( \9 B' B) q好像回帖被回和被点评也是可以加分的
1 Q. G( V1 G# W* J# L# ^/ b+ N
) H9 f  p/ v' o0 f9 u0 j" V俺觉得嘛,在这个版发帖不在乎挣分,而在于让大牛认识,然后帮忙把你捞出去,当然顺便多挣点分就更好啦
作者: 绿葱头    时间: 2011-8-13 20:42
回复 牌牌 的帖子
& ?  l- g3 p9 Z) l
3 ~( L+ ?+ P5 ~1 _5 @& o6 j4 v' }现在不好混啊,刚开始管理员们参与相当快,给分毫不吝啬(当初都是5分5分的,现在可好,都是2、3分),鼎导说可以写点技术的,俺就写技术去了,结果被绊倒在跨平台编译上7天,自从8.8股市大跌以后,水贴多了很多,管理员可能嫌这里太乱了,提拔也越来越严格……
作者: 鼎革    时间: 2011-8-13 20:47
回复 绿葱头 的帖子
/ B8 ]! X% R4 e+ N6 |( r* T" R4 p; Y+ Q1 E0 ?# z
我晕。木想到您老的技术还真是干巴巴的纯技术啊,能写点雅俗共赏的,木基础也能明白的吗?" Z, x7 J3 H1 i" e
要不您就写生活,写人生,写感情,写影评。。。。,还是有很多东东可写的嘛
作者: 绿葱头    时间: 2011-8-14 01:29
回复 鼎革 的帖子1 i$ [, |. n  i" p" s6 [5 W1 t9 x
5 m3 i6 T3 G  I4 @* k3 M, N
俺写了写人生,写了写感情,您老看可还行?+ a+ M9 x& L& P/ w: E: `
突然想起马三立的《吃饺子》来了
作者: 绿葱头    时间: 2011-8-15 06:27
标题: [绿葱头DIY]之大亚db120-wg路由器之挂GPS
虽然这个帖子太geek了,不适合这里。俺还是把它写完吧。虽然虎头蛇尾一些,等过一段时间机器人车弄出来了,再续上。
6 P6 v% _$ a1 z- tGPS receiver in OpenWrt(这个网站还有其它很多硬件的安装,可以参考)
. D9 m3 \. p3 [  K- G. G [HowTo] - set date based on GPS data from serial port" n1 n  d" d8 A! r
需要注意的是,DB120有两个USB口,下面一个是USB1.1&2.0的,上面是USB2.0的,所以一些USB1.1的设备必须使用下面的USB口。
  1. lsusb
    / p; V! l4 Y4 x( N" {+ v, q
  2. Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port7 w4 L- F7 C/ ]' Z1 L1 c
  3. Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub) u+ d. A) A, \3 {2 m
  4. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
复制代码
可以发现USB GPS使用的是广泛的PL2303。
  1. ' t' C3 A5 ^0 `, g9 x& N1 j
  2. opkg install kmod-usb-serial
    ! M8 g3 e& A0 ^, S! P  j+ [
  3. opkg install kmod-usb-serial-pl2303
复制代码
就可以安装成功了。

4 B( B2 g# S" O# d8 k- d机器人小车可以参考这个BLOG说得比较详细,再加个机械手什么的就更好玩了。
作者: 绿葱头    时间: 2011-8-15 06:29
标题: [绿葱头DIY]之大亚db120-wg路由器之智能小车
先占个位子,以后再写。
作者: 绿葱头    时间: 2011-8-15 07:53
回复 Sina 的帖子  d6 C1 H  j: i2 e2 K6 T

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




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