分类 wifidog源码 下的文章

wifidog编译

openwrt编译前需要做的事
编译前:

  1. make menuconfig
       这次openwrt升级后, 编译完刷上固件,openwrt会自动进入failsafe模式。怎么编译都不行。 后来发现, 新的固件里面选择了 Kernel Modules\Other modules\kmod-button-hotplug 模组。这个模组在启动的时候,触发了"f"或者“enter”按键,所以在启动的过程中就自动进入了failsafe模式。取消选择后,一切正常。

  2. 不要整个LUCI, 只是要Luci rpc模块的话, Luci\Collection\Luci不要选择。 则整个web界面都不会被安装。只有rpc的功能会存在。

  3. Openwrt默认不开启wifi,要开启的话, 修改这个文件:

    vi openwrt/trunk/package/kernel/mac80211/files/lib/wifi/mac80211.sh.

    滚到文件最后, 注释掉

    REMOVE THIS LINE TO ENABLE WIFI:
    option disabled 1

  4. openwrt默认开机启动ssh的方法参见:http://www.2cto.com/os/201304/204073.html

  3.1 Openwrt下的路径:package/network/services/dropbear/files/dropbear.config

  [openwrt@root files]$ vim dropbear.config
   1 config dropbear
   2 option PasswordAuth 'on'
   3 option RootPasswordAuth 'on'
   4 option Port '22'
   5 option Interface 'lan'
   6# option BannerFile '/etc/banner'

openwrt/trunk/package/base-files/files/etc/shadow

root:$1$uml/DyCk$QHYqbMVYwxtE4Tk.SVifM.:15838:0:99999:7:::

密码:123456
  1. Luci 的文件拷贝到

rpc.lua 拷贝到 openwrt/trunk/feeds/luci/modules/rpc/luasrc/controller
openwrt/trunk/feeds/luci/libs/web/luasrc

本文章由 http://www.wifidog.pro/2015/01/06/wifidog%E7%BC%96%E8%AF%91.html 整理编辑,转载请注明出处

wifidog-openwrt X86安装

安装最新trunk版OpenWrt-X86之过程
机器配置:CPU N270,双千兆网卡,1GDDR2内存,512MCF卡配合40针IDE接口插IDE硬盘
主板还有2个SATA接口,暂时未用,准备有空上硬盘安装小驴子。

从官网http://downloads.openwrt.org/snapshots/trunk/x86/openwrt-x86-generic-combined-ext4.img.gz下载固件到硬盘
解压,CF卡插在读卡器上接到台式机,用physdiskwrite将固件写入
CF插到转接口上,开机
台式机网线接到网卡eth0上,要注意,不同的主板eth0、eth1的定义不一样,我另外一块C7的主板,靠近键盘口的是eth0
等到网卡分配到地址:192.168.1.1XX,telnet到路由器192.168.1.1

cd etc/config
vi network

把eth1的wan打开(本人是通过另外一台DB120蹭网的),如果是PPPoe接入可以参考相关资料

config 'interface' 'wan'
        option 'ifname' 'eth1'
        option 'proto' 'dhcp'
        option 'defaultroute' '1'
        option 'peerdns' '0'

到此为止,台式机可以上网了

然后继续安装luci

opkg update
opkg intsall luci

安装完毕记得启动luci

./etc/init.d/uhttpd enable
./etc/init.d/uhttpd start

现在,可以通过IE访问路由器了,新版的鸬鹚有了较大进步,但是貌似IE6已经无法显示完整,后来偶用Chrome方能正常显示
主板上带一个miniPCI-e插槽,插上笔记本升级换下的BCM4312网卡(本人还有片BCM4321网卡,但是好像一直未能驱动成功)
再插上RTL8187L卡王
安装相关驱动

opkg install kmod-b43(BCM4312驱动) kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2 libusb(USB相关驱动) kmod-rtl8187(卡王驱动) wpad(无线网卡加密协议) m-route(多WAN支持)

重启后进入luci的network页面就能看到wifi页面激活了
新版trunk的X86相比较之前的版本无线部分加强了很多,蹭网设置更为简单快捷,点击扫描之后能够很详细的显示可以蹭网的基站列表
加入基站后重新telnet 192.168.1.1,修改etc/config下面的mroute,把蹭到的基站设置负载均衡
完工

本文章由 http://www.wifidog.pro/2015/01/06/wifidog-openwrt%E5%AE%89%E8%A3%85x86.html 整理编辑,转载请注明出处

wifidog固件升级

OpenWRT刷机教程
1、 首先修改PC的IP地址:
1.png

2、 刷机准备
首先,在OpenWRT官网下载所需要的版本,我这里下载的是brcm.2.4版本。
然后下载tftp执行文件:tftp.exe,可以把两者放在一起放在桌面上或者其他文件夹都可以。
然后打开路由器电源,用网线把路由器其中一个LAN口和电脑相连。
然后开始菜单>运行>cmd>输入命令 ping 192.168.1.1 –t
2.png

此图说明路由器连接正常
然后打开tftp.exe刷机程序:
3.png

在固件文件那一栏载入下载的OpenWRT固件,注意先不要点击更新固件
3、 开始刷机
关闭路由电源,会显示如下图形
4.png

如果是英文会显示:TTL timed out

现在打开电源,会如下图所示:
5.png

当出现 TTL=100,马上点击tftp刷机程序的更新固件
6.png

然后等待,等再次出现TTL=64的时候则刷机成功
7.png

4.刷机成功
为了证明刷机成功,再开始>运行>cmd>输入命令: telnet 192.168.1.1 也就是用telnet登录路由,会显示如下:
8.png

本文章由 http://www.wifidog.pro/2015/01/05/wifidog-openwrt%E5%9B%BA%E4%BB%B6%E5%8D%87%E7%BA%A7.html 整理编辑,转载请注明出处

wifidog web界面

OpenWrt Web界面修改及功能实现实例说明
通过上篇文章的介绍,我们应该了解了Lua语言在OpenWrt Web配置页面的基本对应功能设计方法。本文将以一个页面为例,来说明Lua语言如何实现页面控件以及怎么使输入或操作的选项在系统中生效。

页面如图所示:
1.png

首先,我们要在System栏下建立分页"Test by Wayne",使用cbi模块实现,修改目录lua\luci\controller\admin下的system.lua文件。

在function index()中添加语句:

entry({"admin", "system", "test"}, cbi("admin_system/test"), "Test by Wayne", 30).dependent=false

接下来就需要在lua\luci\model\cbi\admin_system中创建test.lua文件并完成控件元素编辑。

上一篇文章中已经说过,所有的控件都由Map开始,在这里我测试的是网络设置,语句如下:

m = Map("network", translate("Test Page by Wayne (~_~)"), translate("On this page we can learn how the .lua works."))

然后需要创建分块”Network Configuration”。创建section之前,需要在etc/config目录下的network文件中添加一个配置,就取名叫netset吧,network文件如下:

config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
                   ……
config 'interface' 'lan'
        option 'ifname' 'eth0'
        option 'type' 'bridge'
        option 'proto' 'static'
                   ……
config 'netset'

修改好配置文件后,使用如下语句创建section:

s = m:section(TypedSection, "netset", translate("Network Configuration"))

第一个控件”address”属于cbi类型的Value类型,并且定义输入类型为ip4addr,实现如下:

ipaddr1 = s:taboption("wan1", Value, "ipaddr1", translate("address"))
ipaddr1.datatype = "ip4addr"

控件”netmask”在这里其实是ListValue的效果,但是此处为了拥有custom自定义的选项,设置的类型为Value,实现如下:

netmask1 = s:taboption("wan1", Value, "netmask1", translate("netmask"))
netmask1.datatype = "ip4addr"
netmask1:value("255.255.255.0")
netmask1:value("255.255.0.0")
netmask1:value("255.0.0.0")

2.png

到这里,控件都已经可以添加并显示了,剩下的工作就是输入的值如IP地址和网关信息怎么获取生效了。

在进行编辑Save & Apply后,再打开etc/config/network文件,发现文件内容如下:

config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
                   ……
config 'interface' 'lan'
        option 'ifname' 'eth0'
        option 'type' 'bridge'
        option 'proto' 'static'
                   ……
config 'netset'
        option 'ipaddr1' '192.168.1.30'
        option 'netmask1' '255.255.255.0'
        option 'gateway1' '192.168.1.5'

即所操作的内容都在配置文件中自动保存,而配置文件中的值获取方式就很多了,我们可以使用uci命令得到。

Usage: uci [<options>] <command> [<arguments>]

Commands:
        batch
        export     [<config>]
        import     [<config>]
        changes    [<config>]
        commit     [<config>]
        add        <config> <section-type>
        add_list   <config>.<section>.<option>=<string>
        show       [<config>[.<section>[.<option>]]]
        get        <config>.<section>[.<option>]
        set        <config>.<section>[.<option>]=<value>
        delete     <config>[.<section[.<option>]]
        rename     <config>.<section>[.<option>]=<name>
        revert     <config>[.<section>[.<option>]]
        reorder    <config>.<section>=<position>

这样,一个页面的定制和功能的实现过程就完成了。

作者:Wayne
出处:http://www.cnblogs.com/dwayne/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意请保留此段声明,且在文章页面明显位置给出原文链接。

本文章由 http://www.wifidog.pro/2015/01/05/wifidog-web.html 整理编辑,转载请注明出处