本文针对华为HG255D,但同时具有一定的通用参考价值

一、刷机篇

要想放心大胆的玩学会刷机是少不了的,经过我的反复多次的折腾总结了自己认为稳定而且简单的方法,最终达到刷不死的境界。

1,刷机和恢复教程(参考地址:http://itbbs.pconline.com.cn/15815647.html)

先上两张图:

华为HG255d只要是电信原版的u-boot就刷不死,所以大家可以放心大胆的刷!
(类似电脑BIOS那样,只要这个没坏,可以装系统换来换去,不管砖头还是不转头,只要按住Reast键开机,登陆网页进入刷机模式任刷)真贴心的设置

刷机固件打包下载网盘:http://l7.yunpan.cn/lk/91krrjpbvq
一、刷openwrt
1.前期固件准备:
①软件:1102-0x20000_hg255d-squashfs-tftp.checksum2.bin
②openwrt固件:0508-openwrt-ramips-rt305x-hg255d-squashfs-By_shcl.bin
(我用的是shcl版的,感觉还不错,你也可以刷其他版本的)

2.连接网线,设置固定IP地址

3.刷机过程
①打开IE并在地址栏输入http://192.168.1.1/upload.html
②用牙签顶住reset键后打开电源,开机后一直保持按住reset键。
③回到IE按回车,再以每秒一次的速度刷新网页直到出现升级页面,就会出现刷机画面,这时候可以松开reset键。
(可以按F5刷新,不过我建议在地址栏按回车键,效果比较好……)

④出现了这个画面,马上上传1102-0x20000_hg255d-squashfs-tftp.checksum2.bin,快速按Update software。上传成功之后,网页页面变为
(这个时候就慢慢等,一开始进入刷机模式,路由器有五六个灯是亮的,等它自动刷好,会自动重启,这是电源灯一闪一闪,最后只有两三个灯亮,就可以确定刷机完成了)

⑤ 自动重启后不要关机,输入192.168.1.1进入管理页,账号root,密码admin,在“备份|刷机”界面中选择:0508-openwrt-ramips-rt305x-hg255d-squashfs-By_shcl.bin固件再次刷机。

(大概等四五分钟,这期间两三个灯常亮,刷完后会自动重启,电源灯会一闪一闪,之后常亮重启完,再次进入输入192.168.1.1进入管理页,账号root,密码admin,可以设置了~~)

二、刷DD-Wrt固件

因为固件问题,这个DD固件不是原生为这款路由设计的,而是华硕RTN13U的DD固件,因为硬件大致相同,所以可以混用
1.前期固件准备:
①软件:1102-0x20000_hg255d-squashfs-tftp.checksum2.bin(和刷OpenWrt的那个是一样的)
②固件:Asus-RTN13U-r17990.bin(听说这是电信原版uboot最稳定少BUG的固件,当然,你也可以尝试下RTN13U其它固件,反正这路由器只要你不改Uboot是刷不死的)
2.刷机过程,参照刷OpenWrt,过程是一个鸟样
①将电脑本地网卡设成固定ip 192.168.1.2 网关留空。
②打开IE并在地址栏输入http://192.168.1.1/upload.html
③网线连接路由器任意lan口,用牙签顶住reset键后打开电源
④选择1102-0x20000_hg255d-squashfs-tftp.checksum2.bin固件后点击升级。
⑤自动重启后不要关机,输入192.168.1.1进入管理页,在“备份|刷机”界面中选择:Asus-RTN13U-r17990.bin固件再次刷机

三、刷回电信固件
刷机过程也是一样的

①将电脑本地网卡设成固定ip 192.168.1.2 网关留空。
②打开IE并在地址栏输入http://192.168.1.1/upload.html
③网线连接路由器任意lan口,用牙签顶住reset键后打开电源
④选择HG255d_telecom.bin固件后点击升级【刷回电信比较简单,刷一次就好,不用刷1102-0x20000_hg255d-squashfs-tftp.checksum2.bin】

等待2-3分钟后原版又回来了(超管账户telecomadmin ---- nE7jA%5m)。

2,路由管理方法和软件使用方法(含ipk包的上传安装方法)

用WinSCP在PC和OpenWRT之间传输文件

如果你嫌vi学起来麻烦,不喜欢用vi编辑,那么学会用WinSCP在PC和OpenWRT间传送文件吧。

仍旧以RT-N11+的image文件为例。我们在《在华硕RT-N11+上运行OpenWRT +Asterisk》中提供的编译好的image文件已经提供了对SSH-2的支持,所以可以利用WinSCP工具连接到RT-N11+上方便的实现文件传输。

实现了PC和OpenWRT之间的文件传输,需要编辑Asterisk配置文件时直接传到PC上编辑,编辑完了再传回去就好了,可以不必再学习相对繁复的vi编辑器。

(1)配置WinSCP联接,注意协议选择SCP

2)点击Login后由于密码未填(为空),WinSCP要求输入密码,我们默认密码为空,直接点OK

3)WinSCP联接成功,可以用鼠标拖动实现PC与RT-N11+之间的文件传输了

4)WinSCP会报个错误,不理它,直接点OK过

5)二、安装使用介绍(常规的安装方法):

1.  通过WinSCP将安装包上传至路由/root/ 目录下,然后在SSH中输入命令:

  opkg install njit8021xclient_1.1-1_brcm63xx.ipk

  另:

  WinSCP使用方法:打开WINSCP,输入主机名192.168.1.1,端口号22,用户名root,密码是你刚才设置的,下面的文件协议选SCP。之后登陆。

二、OpenWrt平台的搭建,含交叉编译平台和SDK(ToolChain)开发环境的搭建

这里网上教程很多很详细,我就自己实践过的文章推荐给大家

1,OpenWrt完整平台的搭建

环境:

Ubuntu 10.04,subversion,VMware workstation 7.1.3

、安装好后,在左上角“系统”菜单的“首选项”中选择“屏幕保护程序”,然后去掉左下角的“计算机空闲时激活屏幕保护程序”,然后按“关闭”,这个窗口是没有“应用”或“确定”之类的,直接关闭它就会保存。用惯了WINDOWS的用户注意了。为什么要做这步呢? 因为整个编译过程中有些步骤要等一段时间的,老是自动启用屏幕保护程序,然后还要重新输密码才能退出,也是麻烦事。

首先是得到openwrt-dreambox的源代码。

然后装上各种依赖关系包:

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversi-dev ncurses-term zlib1g-dev

sudo apt-get update

sudo apt-get install  libncurses5-dev  zlib1g-dev gawk  flex  patch  git-core g++   subversion

(注:backfire对于HG255D绝对是最好的版本选择,不然问题接踵而至)

然后进入home目录,建立文件夹:

makedir /openwrt

cd /openwrt

svn co svn://svn.openwrt.org.cn/dreambox/backfire openwrt-dreambox

cd openwrt-dreambox

./scripts/feeds update -a

./scripts/feeds install -a

然后输入make menuconfig,开始进入内核配置界面:

这里只需选择两项

1. Target System :  CPU型号 (RT305X)

2. Target Profile :   路由器新号(系列)(HG255D 只有backfire才有该型号吧)

3.最后:  make V=99 (输出调试信息模式下进行)

注:第一次编译由于要下载大量的软件包,慢慢的等吧,快则半小时,慢则2,3小时. 如果下载过慢,建议您中断编译过程,然后用迅雷去主动下载,放到./dl目录下。一个加快速度的小技巧: 本站小编已经将将一些常用的软件包打包成dl.tar,放在​http://ul.to/2y8a2w, 下载后用tar xvf dl.tar(在windows下用winrar打开即可,然后你用ftp或者samba之类传到Linux PC上),将解包出来的东东直接放到./dl目录下,相必会大大加快初次安装、编译的速度。同样在​http://ul.to/fasgus上可下载linux-2.36.30.10.tar.bz2,当然您也可以用迅雷之类的工具来下。

2、指定平台的交叉编译环境(SDK开发环境的构建)

Openwrt SDK是一个可再定位的,预编译好的OpenWrt工具链,适用于在不从头开始编译整个系统的前提下,针对一个特定平台交叉编译单个用户空间包。

使用SDK的原因:

为了保证二进制和特性兼容性,针对特定的发行版编译自定义软件

编译更新版本的指定包文件

使用自定义的补丁或者不同特性来重新编译已经存在的包

0.下载适合自己路由器平台的相关SDK和ToolChain

如:HG255D的官方下载地址为:

http://downloads.openwrt.org/attitude_adjustment/12.09/ramips/rt288x/

其中:

OpenWrt-SDK-ramips-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2

OpenWrt-Toolchain-ramips-for-mipsel_r2-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2

这两个是我们要下载的文件,(不是说SDK么,那是应为ToolChain里面有我们SDK编译是需要的lib等其他库文件)

0. 安装编译环境需要的相关依赖吧(多装总部少装问题要好):

sudo apt-get update

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev

sudo apt-get install  libncurses5-dev  zlib1g-dev  gawk  flex  patch   git-core g++   subversion

1. 把OpenWrt-SDK-ramips复制到一个目录,解压

tar  jxvf  OpenWrt-SDK-ramips-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2tar.bz2

2. 进入目录

cd  OpenWrt-SDK-ramips-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2

3. 将自己的项目代码目录拷贝到本目录的 package目录下(下面也会讲到,这里只是提一下)

注意 Makefile 必须遵守openwrt的规则, 可参考

http://blog.chinaunix.net/uid-27194309-id-3432651.html

4. 编译, 成功后在bin/ar71xx/packages目录下可以看到相关的ipk文件, 可用winscp 拷贝出来

注:

#编译所有组件   make V=99

#单独编译某个组件  make package/{PackageName}/compile

5. 安装到路由器上实验, 这个你们都懂的

注:项目的src里的Makefile源代码生成的目标程序名 = PackageName 根目录(src上层目录)下面的 Makefile 里面定义个PKG_NAME,不然各种奇葩的错误等着你,而且官网上没有文档说明这点。

另外:千万不要看网上说编译完一个package后要执行下make distclean以清理之类的,要不然等着出现各种问题吧,最后不的不得重新解压我们的SDK。

#注: SDK的目录不要改动, 否则出现如下错误

xxg@xxg-desktop:~/SDK-ar71xx-gcc-4.6-linaro_uClibc-0.9.33.2$ make

/bin/sh: /home/xxg/OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: not found

/bin/sh: /home/xxg/OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: not found

三、OpenWrt下创建自己的软件包,又称在OpenWrt下做程序设计,或OpenWrt的嵌入式开发

1,了解Makefile

具体的Makefile细节规则参见一下几篇不错的文章:

openwrt SDK, 利用SDK生成自己的ipk安装包:

http://blog.chinaunix.net/uid-27194309-id-3432651.html

OpenWrt增加软件包方法

http://blog.csdn.net/niyufeng/article/details/7390755

(原版:http://wiki.openwrt.org/doc/devel/packages)

[OpenWrt] 创建软件包

http://blog.csdn.net/sydjm/article/details/8252336

openwrt下面创建/添加package----Makefile模版

http://blog.csdn.net/hdw10/article/details/7939336

特别注意事项:

1,项目的src里的Makefile源代码生成的目标程序名 = PackageName 根目录(src上层目录)下面的 Makefile 里面定义个PKG_NAME,不然各种奇葩的错误等着你,而且官网上没有文档说明这点。

2,src下面的Makefile也是要注意和以前的在linux下的区分一下的

$(CC) 和 $(CXX) 是openwrt 的特定交叉编译器,在编译openwrt 时候创建的,在此直接使用即可。$(LDFLAGS) ,$(CFLAGS) 是用交叉编译器链接和编译文件时必须要加的标志。很多编译出错的原因都是处在此!!

参见:

http://blog.csdn.net/han_dawei/article/details/7939336 文章末尾

http://fleshandmachines.wordpress.com/2011/08/22/openwrt-cc-programing/  文章中的模版(注意C和C++的区别)

3,这样的错误:

“makefile tab Makefile:2: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.”

那是应为:

在每个命令前面要有一个tab字符。

但有些编辑器会自动将tab转为四个或八个空格。

如:

set tabstop=4 # 四个空格。

set shiftwidth=4 # 自动缩进的宽度。

check your editor!

参见:http://hi.baidu.com/xmuwubo/item/4f504d55dfaa28dbd48bacc3

4,程序依赖的动态库PackageName/Makefile里的 DEPENDS 选项要写

,并且在PackageName/src/Makefile 里的编译选项后面也要写

如:

define Package/PackageName

..............................................

DEPENDS:=+libpcap +libopenssl

Endef

2,两个实例帮你了解OpenWrt平台下程序设计

2.1 hellowrld C语言版

2.2 hellowrld C++ 版

参见(老外做学问真的很认真):

http://fleshandmachines.wordpress.com/2011/08/22/openwrt-cc-programing/(需翻墙)

http://www.gargoyle-router.com/wiki/doku.php?id=openwrt_coding

注意:其中作者解决C++程序中使用STL库函数而我们的OpenWrt默认又不集成STL库的解决 办法,作者是按OpenWrt的两个版本( Kamikaze版和White Russian 版,作者说他文章中的解决办法是针对White Russian 版的可能对Kamikaze版没效果),说实话我百度了半天Kamikaze版和White Russian 版的区别也没搞出个所以然:-(,我就知道我的0508固件。

另外:我的是编译的时候就报错了:Package memwatch is missing dependencies for the following libraries: libstdc++.so.6 ,这时我们前面下载的:

OpenWrt-Toolchain-ramips-for-mipsel_r2-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2

就用上了,解压之,然后

1,Copy"OpenWrt-Toolchain-ramipsXXX/usr/lib/libstdc++.so.6.0.16"

到"OpenWrt-SDK-ramipsXXX/staging_dir/target-i386_uClibc-0.9.33.2/usr/lib"

2.cd OpenWrt-SDK-ramipsXXX/staging_dir/target-i386_uClibc-0.9.33.2/usr/lib

执行:

ln -s libstdc++.so.6.0.16 libstdc++.so.6" (注:后面的那个你想得到的)

也就是复制ToolChain里的库文件的SDK里,然后创建连接(兼容使用)

参考:https://forum.openwrt.org/viewtopic.php?id=42098  (末尾坛友的回复)

对于路由器运行环境那端:

去官网下载了个:libstdcpp_4.3.3+cs-43.32_ramips.ipk 装上就OK了,那么照作者的意思我的0508的固件就是基于Kamikaze版做的了(只是猜测),作者给的方法是在线安装,我想说呵呵,对于我这种苛刻的校园环境路由器直接联网不是那么容易的,所以下载,上传,安装 倒也来的方便。

官方下载地址:

http://downloads.openwrt.org.cn/OpenWrt-DreamBox/packages/ramips/packages/libstdcpp_4.3.3+cs-43.32_ramips.ipk

3,实战移植开源项目到OpenWrt平台,即把自己的符合C/C++标准规范的程序源码修改并在OpenWrt SDK下编译生成安装文件(ipk)

移植开源项目h3cclient到OpenWrt平台

1,前期准备:

找到能在自己学校认证成功上网的开源client代码,具体的大家可以先装个linux系统测试下,如果能在linux下认证成功的话那么移植到OpenWrt也才就有了可能性。

2,代码OpenWrt规范化

(前面说的Makefile说的已经很清楚了,这里再提一下)

OpenWrt要求源代码必须在PackageName/src目录下面,且PackageName下和src 目录下各有一个Makefile,要特别注意前面提到的src下面的Makefile里编译指令和通常写法的区别

3,我编译h3cclient遇到问题及解决办法

1,看到源代码里用到了libpcap 那么本机编译环境自然也的装个吧,另外网上有人说它还用了libgcrypt,所以就一起安装下吧(注意是本机,电脑)

sudo apt-get install libpcap-dev

sudo apt-get install libgcrypt-dev

2,上面说说的程序用了STL缺少库的解决办法(含本机和路由连个运行环境)

3,还有一个就是,好像是什么程序使用了ccache编译时报了错误,google一通,这样解决的:

apt-get install ccache

4,编译时:ERROR:please fix package/helloworld/Makefile

解决办法:没什么说的,检查你的Makefile把骚年,参见我前面说的Makefile规范

5.复制网上的代码的时候注意检查Makefile 中的 Tab是否还在呢

6,想不起来了,记得当时遇到问题是挺多的

四,经验总结篇

玩东西要有神挡杀神佛挡杀佛,兵来将挡水来土掩的勇气。遇到问题解决问题,google,baidu少不了,翻墙那是必然。

五、其它好的文章推荐:

如何在OpenWRT环境下做开发

http://hi.baidu.com/gouooo/item/6932bfa97d23d1981410736a

OpenWrt toolchain工具链环境及开发程序示例

http://blog.appdevp.com/archives/64

Ubuntu 12.04安装QQ2012

http://www.linuxidc.com/Linux/2012-05/59564.htm

openwrt下面创建/添加package----Makefile模版

http://blog.csdn.net/hdw10/article/details/7939336

2015/10/7 补充 TTL刷机教程

http://www.right.com.cn/forum/thread-143721-1-1.html

HG255D[OpenWrt]从入门到精通相关推荐

  1. java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!

    java从入门到精通,让我来告诉你! 毫无疑问,java是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握java看似是一件十分困难的事.其实,只要掌握了科学的学习方法 ...

  2. 虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通

    UE5 Niagara学习教程  课程获取:虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通-云桥网 你会学到什么 我将通过创建各种各样的实时效果来教你虚幻引擎中强大的粒子系统. 我们将从简单的基 ...

  3. Revit:从入门到精通学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小:8.07 GB |时长:12h 16m Re ...

  4. 《Java 开发从入门到精通》—— 2.2 编写第一段Java程序

    本节书摘来异步社区<Java 开发从入门到精通>一书中的第2章,第2.2节,作者: 扶松柏 , 陈小玉,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 编 ...

  5. meteor从入门到精通_我已经大规模运行Meteor一年了。 这就是我所学到的。

    meteor从入门到精通 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 我已经大规模运行Meteor一年了. 这就是我所学到的. (I've been runni ...

  6. Java学习从入门到精通的学习建议

    想要学好java技术,首先打好基础很重要,不论学什么基础都是重中之重,学习Java更是如此.如:基础语法.核心类库.面向对象编程.异常.集合.IO流等基础如果学不好,那么后边更深入的语法也不容易学会. ...

  7. ASP网络编程从入门到精通 下载

    <ASP网络编程从入门到精通> 清华大学出版社 特点: 面向ASP零基础读者,循序渐进 全面分析ASP技术细节 用代码描述个个知识点,操作性强 通过典型模块设计,体会ASP的奥妙 通过网上 ...

  8. 【组队学习】【28期】数据采集从入门到精通

    数据采集从入门到精通 论坛版块: http://datawhale.club/c/team-learning/38-category/38 开源内容: https://github.com/dataw ...

  9. MAT入门到精通(二)

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 阅读本文大概需要6分钟. 上一篇文章MAT入门到精通(一)介绍了MAT的使用场景和基本概念,这篇文 ...

  10. Python从入门到精通 - 入门篇 (下)

    上一讲回顾:Python从入门到精通 - 入门篇 (上) 接着上篇继续后面两个章节,函数和解析式. 4 函数 Python 里函数太重要了 (说的好像在别的语言中函数不重要似的).函数的通用好处就不用 ...

最新文章

  1. JMeter学习(二十三)关联
  2. c语言实现天气预报步骤,一份天气预报的制作历程
  3. IDEA-使用IDEA创建maven多模块父子工程
  4. 详解网页中的关键词分布技术
  5. 天翼云从业认证(4.1)上云迁移实战
  6. Spring 的 xml文件的获取
  7. 软件系统中的颗粒度_意式浓缩咖啡丨甘醇香浓余韵长,研磨的度与质千万别忽视...
  8. JavaScript如何来实现面向对象的核心封装,继承,多态
  9. Java List 中的set add
  10. linux查看 网卡信息
  11. kk5.0电脑版 服务器信息,1 月 2017 累积更新 5.0.8308.984 Lync Server 2013 web 组件服务器...
  12. 从学生到职场,这位百万爬虫博主都经历了什么?
  13. 08-词嵌入(Word embeddings)
  14. KVM或openstack虚拟化环境中windows主机忘记登陆密码如何使用pe的方式进行破解
  15. 夏令时及java中常用方法
  16. css文字怎么显示在一起,css如何让文字成排显示
  17. 关于编辑器EditPlus
  18. 【电力电子技术】 THE BUCK-BOOST 升降压斩波电路
  19. vivado设计之解读复杂性报告(Complexity Characteristics)
  20. Android数据持久化保存--File

热门文章

  1. 搜题公众号对接题库教程
  2. Keil μVision4软件简介
  3. springboot整合富文本编辑器
  4. CSF文件批量转换为AVI格式
  5. 数控加工中心编程和UG编程和什么区别
  6. 华为 5680 OLT native vlan配置方式
  7. js修改css样式的方法,js如何设置css样式?js修改css样式的方法
  8. iocomp iPlot使用说明15 Adding Data添加数据
  9. Hbase教程(一) Hbase入门教程
  10. Fiddler Everywhere安装