Openwrt学习-3

没有评论

2014年11月6日 at 上午8:14分类:硬件

如何更改内核版本:

内核不一致时安装IPK会提示错误,此时可以通过下面方法更改内核版本:

opkg install kernel -force-downgrade

或者将内核下载至本地,重新安装

opkg install /tmp/kernel.ipk

openwrt学习-2:编译

没有评论

2014年11月5日 at 上午9:53分类:硬件

设备:RG100A

版本:barrier_breaker 14.07 r42625

编译环境:ubuntu 14.10

 

安装编译OpenWrt所需要的软件

sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext  git libncurses5-dev libz-dev patch unzip zlib1g-dev  subversion

下载源码,指定为正式发布的r42625版本

mkdir OpenWrt

cd OpenWrt
svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42625

svn

 

配置编译环境:

cd barrier_breaker/

./scripts/feeds update -a

./scripts/feeds install -a

Feeds是OpenWrt环境所需要的软件包套件。

make defconfig

make prereq

make menuconfig

配置目标系统和luci:

config

开始编译:

make V=99或make V=s

编译过程中有时会出现下载出错的现象,重复编译下载即可

编译attrtab.c时出现错误,增加虚拟内存,重启后重新编译正常

openwrt学习-1

没有评论

2014年11月3日 at 上午9:38分类:硬件

设备:TPLINK WR743N v2

DRAM:  64 MB

Flash:  8 MB

CPU revision is: 00019374 (MIPS 24Kc)
SoC: Atheros AR9330 rev 1
Clocks: CPU:400.000MHz, DDR:400.000MHz,

 

TTL串口连接:

ipp

 

TTL线刷步骤:

1.下载TFTP服务器程序
2.将你的网线的一端接入WR743N的WAN口,一端接在电脑的网卡上, 更改ip地址如:192.168.1.10, 255.255.255.0, 192.168.1.1
3.安装并打开Tftpd32,将Current Directory设为固件程序(openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-factory.bin)的存放目录,如C:\tmp
4.打开串口调试工具,给路由器上电可以看到引导信息,在“Autobooting in 1 seconds”之后快速按下tpl,可以进入Uboot的命令行
看到ar7240>
5.在命令行中输入("ar7240>”及括号部分不要输)
hornet> setenv ipaddr 192.168.1.1 (此地址为路由器地址)
hornet> setenv serverip 192.168.1.10(此地址为TFTP服务器即电脑的地址)
printenv (查看当前的环境,核对两个地址是否正确)
6.下一步是将固件拷到路由器内存里
hornet> tftpboot 0x80000000 openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-factory.bin
然后等它拷完(非常快)
7.擦写flash
hornet> erase 0x9f020000 +0x3c0000 (0x9f020000为内核的启动地址,在开机的引导信息中可以看到,见840N的U-boot32行“## Booting image at 9f020000 ...”,
0x3c0000为固件大小,这个输错了路由器会变砖,上一步返回信息的最后一句会给出)
等待擦除
hornet> cp.b 0x80000000 0x9f020000 0x3c0000
hornet> bootm 0x9f020000
之后,系统就开始重新启动了

flash分区:

5个分区,地址如下:

0x000000000000-0x000000020000 : "u-boot"
0x000000020000-0x0000000ffbbc : "kernel"
0x0000000ffbbc-0x0000007f0000 : "rootfs"
0x000000450000-0x0000007f0000 : "rootfs_data"
0x0000007f0000-0x000000800000 : "art"
0x000000020000-0x0000007f0000 : "firmware"

root@OpenWrt:/# cat /proc/mtd
MTD

rootfs_data大小为3.6M,挂载在/overlay,为可写,是mtdblock3分区

rootfs总大小为7.1M,除了可写的rootfs_data区外,还有不可写的区域,挂载在/rom,大小为3.5M

kernel区大小为894K,它和rootfs一起组成了firemware区,地址范围是0x20000-0x7f0000

"u-boot":128KB,设备初始化程序+引导程序代码本身
"art":64KB,EEPROM分区,在Atheros的方案中这个分区保存了无线的硬件参数

5-a1

 

 

rootfs的只读和可读写区采用透明挂载的方式,都对应了系统'/'目录,如果用户修改将配置文件修改的乱了,大家可以从/rom中将出厂配置复制出来,比如/etc/config/network被你修改怀了,那么恢复的方法为:

root@OpenWrt:~# cp /rom/etc/config/network /etc/config/