搭建OpenWrt交叉编译环境

来自WRTnode Wiki
跳转至: 导航搜索
其他语言:
English • ‎中文(中国大陆)‎

搭建OpenWrt交叉编译环境

交叉编译

交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。
基于Linux操作系统的应用开发环境一般是由目标系统硬件(WRTnode开发板)和宿主PC机所构成。
目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。
双方之间一般通过串口,WiFi或以太网接口建立连接关系。
虽然WRTnode上提供gcc,但是编译速度以及存储等限制,所以并不足以用来开发软件。 需要用到交叉开发模式:在PC上编辑、编译软件 ,然后在WRTnode板上运行、验证程序。

配置OpenWrt编译环境

PC一般是linux系统机或者是有linux虚拟机。在PC上安装linux虚拟机或者是安装linux和windows的双系统可参考网上教程。
配置PC上Linux编译环境;不同的linux系统有不同的安装命令。以下是常见linux系统安装编译OpenWrt系统所需的工具。

  • Debian 5 Lenny:
apt-get install gawk ncurses-dev unzip zlib1g-dev
  • Debian 6 Squeeze:
apt-get install libncurses5-dev zlib1g-dev gawk flex libssl-dev sdcc-nf
  • Debian 7 Wheezy:
apt-get install libncurses5-dev zlib1g-dev gawk
  • Ubuntu 13.10:
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt xsltproc
  • Ubuntu 12.04LTS:
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk  flex quilt libssl-dev xsltproc \
libxml-parser-perl mercurial bzr ecj cvs unzip
  • Ubuntu 64bit:
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext
  • Fedora 17:
yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex libz-dev flex ncurses-devel zlib-devel make patch unzip \
perl-ExtUtils-MakeMaker
  • Fedora 18 – 64Bit (Maybe also for lower versions, some packages seem to be missing above):
yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker \
glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison
  1. Maybe you need glibc.i686 glibc-static.i686 glibc-devel.i686 libgcc.i686 too
  • Fedora 19 – 64Bit (Maybe also for lower versions, some packages seem to be missing above):
yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker \ 
glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison wget
  • openSuSE 11.1
zypper install binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel flex git-core

WRTnode开发三部分

  • 编译&烧写U-Boot

WRTnode出厂时U-Boot已烧写到SPI Flash,U-Boot有网络传输、串口传输、烧写Flash 等功能,所以不需要用烧写器烧写。刷写U-Boot要谨慎,防止成砖~

  • 编译&烧写openwrt系统

编译WRTnode静态SDK

  • 编译&烧写&运行应用程序

可参考 :如何使用OpenWrt的toolchain编译一个可以在WRTnode上运行的程序