佐须之男 发布的文章

Openwrt的feeds添加wifidog

Feeds是OpenWrt环境所需要的软件包套件。最重要的feeds有:

‘packages’一些额外的基础路由器特性软件

‘LuCI’OpenWrt默认的GUI

‘Xwrt’另一种可选的GUI界面

需要能够连接互联网。

在下载之前可以通过查看’feeds.conf.default’文件,来检查哪些文件需要包含在环境中。

开始下载,使用:

[openwrt@localhost trunk]$ ./scripts/feeds update -a

安装feeds包,只有安装之后,在后面的make menuconfig时,才可以对相关配置进行勾选。

[openwrt@localhost trunk]$ ./scripts/feeds install -a

如果更新了feeds的配置文件,需要添加新的软件包用于生成系统。只需进行重复操作:

[openwrt@localhost trunk]$ ./scripts/feeds update -a

[openwrt@localhost trunk]$ ./scripts/feeds install -a

可使用的feeds列表配置在feeds.conf目录下或者feeds.conf.default。这个文件包含了feeds列表,每一行又三部分组成,feed方法,feed 名字和feed源

下面是一个feeds.conf.default的例子:

src-git packages https://github.com/openwrt/packages.git
src-git luci http://git.openwrt.org/project/luci.git
src-git routing https://github.com/openwrt-routing/packages.git
src-git telephony http://git.openwrt.org/feed/telephony.git
src-git management https://github.com/openwrt-management/packages.git
src-git oldpackages http://git.openwrt.org/packages.git
#src-svn xwrt http://x-wrt.googlecode.com/svn/trunk/package
#src-svn phone svn://svn.openwrt.org/openwrt/feeds/phone
#src-svn efl svn://svn.openwrt.org/openwrt/feeds/efl
#src-svn xorg svn://svn.openwrt.org/openwrt/feeds/xorg
#src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop
#src-svn xfce svn://svn.openwrt.org/openwrt/feeds/xfce
#src-svn lxde svn://svn.openwrt.org/openwrt/feeds/lxde
#src-link custom /usr/src/openwrt/custom-feed

下面是feed支持的方法类型:

src-bzr 通过使用bzr从数据源的path/URL下载数据

src-cpy 通过从数据源path拷贝数据

src-darcs 通过使用darcs从数据源path/URL下载数据

src-git 通过使用git从数据源path/URL下载数据

src-hg 通过使用hg从数据源path/URL 下载数据

src-link 创建一个数据源path的symlink

src-svn 通过使用svn从数据源path/URL下载数据

本文章由 http://www.wifidog.pro/2015/06/24/openwrt-feed-%E5%88%86%E6%9E%90.html 整理编辑,转载请注明出处

OpenWRT中添加新设备支持

这里还是向OpenWRT中添加对小度路由的支持
向 target/linux/ramips/image/makefile中写入新设备

image/build/profile/mt7620a_CLZ=$(call buildFirmware/Default8M/$(1),$(1),mt7620a_clz,MT7620a_CLZ)
$(call image/Build/Profile/MT7620a_CLZ,$(1))

base-files中的一些可用配置:

base-files/etc/diag.sh 控制LED在OpenWRT启动时是否闪烁
base-files/lib/upgrade/platform.sh 允许sysupgrade工作
base-files/etc/uci-defaults/network to configure(安装) default network interface(界面) settings, particularly MAC addresses
base-files/etc/uci-defaults/leds if you have configurable(可配置的) LEDs which should default to a behavior(行为), like a WLAN activity LED
base-files/etc/hotplug.d/firmware(固件)/10-rt2x00-eeprom to extract(提取) the firmware image for the wireless(无线的) module
base-files/lib/preinit/06_set_iface_mac to set the MAC addresses of any other interfaces(界面)

编写的小度路由用的dts文件

/dts-v1/;

/include/ "mt7620a.dtsi"

/ {
    compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
    model = "Ralink MT7620A xiaodu board";

    palmbus@10000000 {
        sysc@0 {
            ralink,gpiomux = "i2c";
            ralink,uartmux = "gpio";
            ralink,wdtmux = <1>;
        };

        gpio0: gpio@600 {
            status = "okay";
        };

        spi@b00 {
            status = "okay";

            w25q64bv@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "w25q64bv";
                reg = <0 0>;
                linux,modalias = "w25q64bv";
                spi-max-frequency = <1000000>;

                partition@0 {
                    label = "u-boot";
                    reg = <0x0 0x30000>;
                    read-only;
                };

                partition@30000 {
                    label = "u-boot-env";
                    reg = <0x30000 0x10000>;
                    read-only;
                };

                factory: partition@40000 {
                    label = "factory";
                    reg = <0x40000 0x10000>;
                    read-only;
                };

                partition@50000 {
                    label = "firmware";
                    reg = <0x50000 0x6b0000>;
                };

                partition@700000 {
                    label = "usercfg";
                    reg = <0x700000 0x100000>;
                };
            };
        };
    };

    ethernet@10100000 {
        status = "okay";

        pinctrl-names = "default";
        pinctrl-0 = <&ephy_pins>;

        ralink,port-map = "llllw";
    };

    gsw@10110000 {
        ralink,port4 = "ephy";
    };

    sdhci@10130000 {
        status = "okay";
    };

    pcie@10140000 {
        status = "okay";
    };

    gpio-keys-polled {
        compatible = "gpio-keys";
        #address-cells = <1>;
        #size-cells = <0>;
        poll-interval = <20>;
        wps {
            label = "wps";
            gpios = <&gpio0 12 1>;
            linux,code = <0x100>;
        };
        reset {
            label = "reset";
            gpios = <&gpio0 13 1>;
            linux,code = <0x101>;
        };
    };
};

添加设备后,最好需要将之前编译产生的临时文件删除,语句如下

 cd trunk
 rm -rf tmp
 make menuconfig

本文章由 http://www.wifidog.pro/2015/06/22/openwrt%E6%B7%BB%E5%8A%A0%E6%96%B0%E8%AE%BE%E5%A4%87.html 整理编辑,转载请注明出处

wifidog交叉编译wifidog安装

不得不亲自进行交叉编译移植的时候,所碰到的一些问题。

(1)下载源码
这个可以到wifidog官方下载。

(2)交叉编译环境
这个需要提前准备好,也不多说了

(3)解压,并进入代码目录
运行./autogen.sh
可能会报错:libtoolize: command not found
这个需要安装一下依赖的工具包:apt-get install libtool

(4)然后执行./configure

./configure –host=mips-openwrt-linux –prefix=$PWD/install

host参数指定的是目的平台,一般情况下,设定了host之后,makefile中的编译器会自动调整为host平台的编译器
prefix参数是指执行make install 之后,程序安装的路径。安装在源代码目录的install文件夹内,是为了不污染主机的环境。

(5)然后把install目录中的文件,都拷贝到目的平台(我这里是openwrt)
但是暂时是无法启动wifidog的,因为还没有配置文件。可以在源代码目录找到,拷贝到目标平台的 /etc/wifidog.conf
具体的配置,请自行google

(6)这里提一点,如果是可以直接安装wifiedog的,就直接在线安装吧,不要折腾。
我是不得不修改wifidog 的源码,增加接口,才自行交叉编译的。
如果像我情况一样的话,建议先在线安装wifidog,然后交叉编译完之后把原来安装的wifidog替换掉就好了。这样子可以省了一些写启动脚本之类的工作。

(7)当然,移植过程中还会遇到其它问题,例如

Reading configuration file ‘/home/mint/workspace/my-wifidog/wifidog-gateway/install/etc/wifidog.conf’ 
Could not open configuration file ‘/home/mint/workspace/my-wifidog/wifidog-gateway/install/etc/wifidog.conf’ 

这里报错是因为,默认把安装路径install下面的/etc作为默认配置文件的目录。需要在wifidog启动的时候指定一下。

在openwrt平台上,wifidog启动的脚本是/usr/bin/wifidog-init
在option那里增加一个 参数 ” -c /etc/wifidog.conf “

本文章由 http://www.wifidog.pro/2015/06/17/wifidog%E7%A7%BB%E6%A4%8D.html 整理编辑,转载请注明出处

Wiwiz虚拟机安装遇到"ErrorCode:4"及解决方法

Wiwiz虚拟机安装遇到"ErrorCode:4"及解决方法

不久以前,我用无线路由器刷DD-WRT + Wiwiz做了几个收费Wifi热点,并赚了些钱,感觉挺不错。

现在需要帮朋友的咖啡厅弄一个带认证的Wifi。其实,他的咖啡厅原来就有无线网络,是两个无线路由器,只不过用的是普通的WEP加密的方式。现在希望改成Web认证,Wiwiz的电子招待券的那种,也就是限制让只有消费的顾客才能上网。而且顾客还需要用手机接收短信进行验证,目的是为了手机顾客手机号,发送咖啡厅的活动信息什么的。我正好手头有Wiwiz的专业版账号,就送给他一个热点。咖啡厅原来的无线路由器不能刷DD-WRT,所以就准备用虚拟机的方法,虚拟机就装在他们咖啡厅银台的电脑里(有线连接到路由器)。

我下载的是Wiwiz官网的虚拟机镜像文件,参考官网的安装指南进行配置。有一点不同的是,Wiwiz虚拟机里的虚拟网卡eth1的默认地址是 192.168.1.250,而我朋友咖啡厅的无线路由器的地址是192.168.0.*,所以就在虚拟机的Linux环境里先用setup命令改了一下 IP设置,修改eth1的地址为192.168.0.250,其他的都没变。
www.2cto.com
开始的时候,我下载的网上的绿色精简版的VMWare。执行“/usr/local/hsbuilder/hsbuilder_setup.sh setup”命令之后,设置到最后的时候遇到了这个错误:

HSBuilder Utility Running Failed!
Error Code: 4
Message: Server is not reachable.

我在虚拟机里ping外网网站的地址,都ping不通,也就是说虚拟机根本连不上外网。我估计可能是VMWare的NAT服务设置的问题。一检查吓一跳,果然是绿色精简版,宿主机里压根就没有安装NAT服务,也没有NAT的虚拟网卡。
于是,我就去下了一个正版的VMWare Player,估计问题就可以解决了。可是重新安装之后还是报同样的错,也依然不能从虚拟机里ping通外网。而且郁闷的是在百度里搜了很久也没找到这个错误的说明。怎么折腾还是ping不通。我只好再仔细看一遍安装指南。

果然,我发现我之前看漏了这么一句话:如你改变了虚拟机原来的网络设置,那么请执行“service network restart”,以使新的设置立即生效。
www.2cto.com
我就执行了这个命令,居然马上就可以Ping通外网了。然后就重新设置Wiwiz程序,果然没有报错了,一切都顺利完成。

总结起来,Wiwiz虚拟机里不能连接外网的原因就是两个:

  1. 绿色精简版的VMWare没有NAT服务,不能用这个版本。一定要用正版的VMWare。其实,正版的VMWare Player是免费的,所以根本没必要用绿色精简版。
  2. 如果改变了Wiwiz虚拟机镜像原来的IP设置,之后一定要执行“service network restart”,这样设置才能生效,否则还是不能通外网的。

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