OpenWRT实践3:Click Modular Router

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fzxy002763/article/details/53763994

序言

本文我们介绍一下,在OpenWRT平台上运行一个较为轻便有效的软路由系统Click Modular Router,基于该软路由,我们可以扩展一些OpenWRT原有的功能。

Click Modular Router

第一步:获取Click源码,源码可以从官方网站下载( Click官网),也可以下载我们的整理的版本( Click源码包以及Makefile)。其中包含两个文件,一个是源码(click-2.0.1.tar.gz),一个是Makefile,之后我们需要对该Makefile进行手动添加。

第二步:在openwrt源码目录下,建立click文件夹,并将源码剪贴到这个文件夹内。具体添加的目录如下:
/home/openwrt/Desktop/openwrt/package/feeds/packages/click
即在(/home/openwrt/Desktop/openwrt/package/feeds/packages)这个目录下,新建click文件夹,然后将click-2.0.1.tar.gz解压之后的源码(即文件夹内的内容),全数复制到该文件夹内。解压click-2.0.1.tar.gz的指令如下:
tar -zvxf ./click-2.0.1.tar.gz
第三步:修改下载的Makefile,并同样复制到前面第二步新建的目录下。其中需要修改的Makefile部分如下:
#
# Copyright (C) 2006-2012 OpenWrt.org
#
# click Makefile by cqupt
# 
#

include $(TOPDIR)/rules.mk

PKG_NAME:=click
PKG_VERSION:=2.0.1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.read.cs.ucla.edu/click/

include $(INCLUDE_DIR)/package.mk

define Package/click
        SECTION:=net
        CATEGORY:=Network
        TITLE:=The Click Modular Router
        MAINTAINER:=Roberto Riggio <[email protected]>
        DEPENDS:=+kmod-tun +libpcap +libstdcpp
        URL:=http://www.read.cs.ucla.edu/
endef

define Package/click/Description
        The Click Modular Router
endef


CONFIGURE_ARGS += \
  --enable-local\
        --enable-tools=host \
        --enable-userlevel \
        --host=mips-linux \
        --build=mips \
        --enable-wifi \
        --disable-linuxmodule \
        --disable-dynamic-linking \

define Build/Compile
        $(call Build/Install/Default, install)
endef


define Package/click/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(CP) ~/Desktop/openwrt/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/uClibc-0.9.33.2/lib/librt.so.0 $(1)/usr/bin
        $(CP) ~/Desktop/openwrt/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/uClibc-0.9.33.2/lib/libpthread.so.0 $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/userlevel/click $(1)/usr/bin/click
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/click-align/click-align $(1)/usr/bin/click-align
        mkdir -p $(1)/usr/share/click
        $(CP) $(PKG_BUILD_DIR)/elementmap.xml $(1)/usr/share/click 
endef

$(eval $(call BuildPackage,click))
其中第48行和第49行需要修改为用户对应的目录下,即如下黑体的部分即是要修改的路径。
  • $(CP) ~/Desktop/openwrt/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/uClibc-0.9.33.2/lib/librt.so.0 $(1)/usr/bin
  • $(CP) ~/Desktop/openwrt/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/uClibc-0.9.33.2/lib/libpthread.so.0 $(1)/usr/bin

如果不做修改的话,在编译的时候,有可能会报如下的错误:
cp: cannot stat '/home/your_dir/openwrt/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/uClibc-0.9.33.2/lib/librt.so.0': No such file or directory
修改完之后,复制到之前的目录下:
/home/openwrt/Desktop/openwrt/package/feeds/packages/click
第四步:在openwrt根目录下,直接编译固件模块
make package/feeds/packages/click/compile V=99
编译后,可以直接把编译完的ipk安装包导入路由,并且进行安装,也在menuconfig中添加click,再将整个固件重新编译。
第五步:进行固件配置(添加选择 <Network - click>模块),如下图


编译完之后注意保存,然后退出。最后添加以下命令,用以取消bridge:

echo '# CONFIG_KERNEL_BRIDGE is not set' >> .config
第六步:重新编译固件,最后再更新路由器即可。
make V=99

猜你喜欢

转载自blog.csdn.net/fzxy002763/article/details/53763994