Skip to content

Instantly share code, notes, and snippets.

@simpx
Forked from ninehills/wr703n-openwrt.md
Created August 10, 2012 14:51
Show Gist options
  • Save simpx/3314757 to your computer and use it in GitHub Desktop.
Save simpx/3314757 to your computer and use it in GitHub Desktop.
wr703n刷openwrt配置、记录

WR703N OpenWrt 配置流程

下载安装

  1. 下载http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin

2.1 原厂固件中,直接web页面升级 2.2 已刷openwrt的话,telent/ssh登录,下载bin文件到/tmp,运行'sysupgrade -i /tmp/openwrt-ar71xx-ubnt-rspro-squashfs-sysupgrade.bin'

P.S. 官方固件不带WebUI,所以需要对Linux系统较为熟悉,否则可以选择国内有人编译的带LuCI和中文支持的版本,Google即可。

初始配置[2]

首先用一根网线将703N的Lan口和你电脑相连,电脑上设置为DHCP模式。然后

telent 192.168.1.1

成功后出现OpenWrt的欢迎界面:

BusyBox v1.19.4 (2012-05-05 05:41:33 MST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------

然后更改root密码:

passwd root

更改root密码后dropbear(SSH 服务)就运行了,输入exit退出telent,然后

ssh [email protected]

以后就可以通过ssh管理OpenWrt.

网络配置

OpenWrt官方的固件是不带LuCl的,所以初始的网络设定需要在命令行下完成 首先备份相关配置,防止出错:

cp /etc/config ~/ -r

然后用vi修改相关配置(不会用vim的同学悲剧了)。 首先修改/etc/config/wireless文件,注释掉

# option disabled 1

然后修改/etc/config/network文件[3],首先修改lan接口配置,注释掉此行:

# option ifname 'eth0'

然后增加wan接口,如果你上级网络是DHCP的,则文件的末尾添加:

config interface 'wan'
    option ifname 'eth0'
    option proto 'dhcp'

如果你上级网络是静态IP,则在文件的末尾添加:

config interface 'wan'
    option ifname 'eth0'
    option proto 'static'
    option ipaddr '10.22.33.124'
    option netmask '255.255.255.0'
    option gateway '10.22.33.1'
    option dns '202.113.16.10'

然后将路由器的Lan/Wan口接到上级网络中,重启路由器。这时便可以通过电脑寻找SSID为 OpenWrt的无线网络,加入后便可以通过:

ssh [email protected]

来连接路由器。此时703N为无线路由模式,电脑便可以通过703N上网了。

安装软件

然后便可以用大名鼎鼎的opkg包管理系统。主要命令:

# 查看帮助
opkg help
# 更新数据库,必做
opkg update
# 列出已安装的包
opkg list-installed
# 安装LuCI,我就不选择装了,命令行很好
# 参见 http://wiki.openwrt.org/doc/howto/luci.essentials
opkg install luci

安装必须的包,我把u盘分成了2个区,第一个14g,第二个2g

opkg update
opkg install kmod-usb-storage block-mount kmod-fs-ext4

安装完成以后,挂载u盘.如下命令将默认的系统盘转移到u盘中.

mount /dev/sda1 /mnt
mkdir /tmp/root
mount -o bind / /tmp/root
cp /tmp/root/* /mnt -a
umount /tmp/root

修改 /etc/config/fstab 文件,让系统启动自动挂载,修改成如下

config mount
        option target   /overlay
        option device   /dev/sda1
        option fstype   ext3
        option options  rw,sync
        option enabled  1
        option enabled_fsck 0

执行如下命令让其生效

/etc/init.d/fstab enable

设置并激活 swap 分区 mkswap /dev/sda2 修改 fstab 文件,激活

config swap
        option device   /dev/sda2
        option enabled  1

一些工具

不要使用openwrt.org.cn源

opkg install kmod-usb-core
opkg install kmod-usb-ohci          #安装usb ohci控制器驱动
#opkg install kmod-usb-uhci      #UHCI USB控制器
opkg install kmod-usb2                #安装usb2.0 
opkg install kmod-usb-storage     #安装usb存储设备驱动
opkg install kmod-fs-ext3              #安装ext3分区格式支持组件
opkg install mount-utils                #挂载卸载工具
opkg install ntfs-3g                      #挂载NTFS
opkg install kmod-fs-vfat              #挂载FAT
opkg install block-mount
opkg install fdisk    
opkg install usbutils #安装了这个后可以用 lsusb

F.A.Q

  1. 无线加密,修改/etc/config/wireless文件,参见[4]。配置wpa加密需要修改config wifi-iface段。

     option ssid OpenWrt
     option encryption psk2
     option key        'secret passphrase'
    
  2. 出现路由端可以ping可以上网,而电脑不能上的问题。电脑端ping结果:

     From 192.168.1.1: icmp_seq=1 Destination Port Unreachable
    

    这时只需要重启firewall服务即可。

     /etc/init.d/firewall restart
    
  3. 重启后,执行df -h后如果发现/overlay挂载在/tmp/overlay-disabled上的解决方案

    rm /tmp/overlay-disabled/etc/extroot.md5sum

  4. 挂载usb成功后,dns失效

参考文献

  1. http://wiki.openwrt.org/toh/tp-link/tl-wr703n
  2. http://wiki.openwrt.org/doc/howto/firstlogin
  3. http://wiki.openwrt.org/doc/uci/network
  4. http://wiki.openwrt.org/doc/uci/wireless
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment