Ubuntu配置OPENWRT开发环境

Ubuntu下配置OPENWRT开发环境

1.环境配置

sudo apt-get install gcc 
sudo apt-get install g++ 
sudo apt-get install patch 
sudo apt-get install bzip2 
sudo apt-get install make
sudo apt-get install gettext 
sudo apt-get install textinfo 
sudo apt-get install unzip 
sudo apt-get install libz-dev

sudo apt-get install binutils 
sudo apt-get install flex 
sudo apt-get install bison 
sudo apt-get install autoconf
sudo apt-get install sharutils 
sudo apt-get install subversion 
sudo apt-get install libncurses5-dev 
sudo apt-get install ncurses-term 
sudo apt-get install zlib1g-dev 
sudo apt-get install git-core
sudo apt-get install gawk
sudo apt-get install libssl-dev
sudo apt-get install asciidoc

最后一个安装时间较长,耐心等待。

2.下载openwrt

git clone git://git.openwrt.org/15.05/openwrt.git

3.添加软件扩展包

cd openwrt/
cp feeds.conf.default feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a

4.编译

make defconfig

5.配置

make menuconfig

Ubuntu配置OPENWRT开发环境_第1张图片
选择要编译的固件平台、型号,固件中要添加的功能和组件。

6.生成SDK

make menuconfig选上“Build the OpenWRT SDK”,保存,退出。

make V=99

完成后,在bin/ar71xx/目录下会生成SDK的压缩文件:OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2

7.安装SDK

把上步生成的压缩文件放在任意目录,解压。

tar -zxvf OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2

8.创建项目(例:helloworld)

mkdir helloword
cd helloword
touch helloword.c Makefile

helloworld.c文件的内容:

#include 
int main()
{
    printf(“hello my world!!!\n”);
    return 0;
}

Makefile文件的内容:

helloworld:helloworld.o
    cc -o helloworld hoelloworld.o
helloworld.o:helloworld.c
    cc -c helloworld.c
clean:
    rm *.o helloworld

9.生成包

cd OpenWrt-SDK/package
mkdir helloworld
cd hello world

把第8步的helloworld文件夹整体放入OpenWrt-SDK/package/helloworld中并改为src

touch Makefile 

Makefile文件的内容:

include $(TOPDIR)/rules.mk
PKG_NAME:=helloworld
PKG_VERSION:=5.0
PKG_RELEASE:=1.0
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk

define Package/$(PKG_NAME)
    SECTION:=utils
    CATEGORY:=Utilitie
    TITLE:=helloworld      -- i2c general program
    MAINTAINER:=asyncM
    DEPENDS:=+libc.so +libgcc_s.so.1 +libc.so.6
endef

define Package/$(PKG_NAME)/description
     general program
endef

define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(CP) ./src/* $(PKG_BUILD_DIR)/
endef

define Package/helloworld/install
    $(INSTALL_DIR) $(1)/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/bin/
    $(CP) /usr/lib/x86_64-linux-gnu/libc.so $(1)/bin/
    $(CP) /lib/x86_64-linux-gnu/libgcc_s.so.1 $(1)/bin/
    $(CP) /lib/x86_64-linux-gnu/libc.so.6 $(1)/bin/
ended

$(eval $(call BuildPackage,helloworld))

回到 OpenWrt-SDK 目录下,执行

make V=s

生成helloworld_1_ar71xx.ipk文件,可用find查看其位置

10.测试

将生成的helloworld_1_ar71xx.ipk文件用scp上传到目标路由器

scp helloworld_1_ar71xx.ipk root@IPaddr:

ssh登陆路由器,安装helloworld_1_ar71xx.ipk包

ssh root@IPaddr
root@OpenWrt:~# ls
helloworld_1_ar71xx.ipk
root@OpenWrt:~# opkg install helloworld_1_ar71xx.ipk 
Installing helloworld (1) to root...
Configuring helloworld.
root@OpenWrt:~# helloworld
hello my world!!!

你可能感兴趣的:(环境)