用户工具

站点工具


entware-ng:armv7

Entware-ng ARMv7

笔记: 创建 Entware-ng 环境

系统环境准备

ubuntu 需要安装以下软件包

gcc g++ make autoconf automake flex gperf bison texinfo libtool libtool-bin libncurses5-dev zlib1g-dev unzip libssl-dev gettext python2.7 subversion

centos 需要安装以下软件包

git patch bzip2 gcc gcc-c++ libtool ncurses-devel zlib-static openssl-devel make autoconf automake flex gperf bison texinfo libtool unzip gettext subversion

搭建 entware-ng

$ git clone https://github.com/Entware-ng/Entware-ng.git
$ cd Entware-ng
$ make package/symlinks
$ cp ./configs/armv7.config .config
$ make tools/install
$ make toolchain/install
$ make target/compile

ubuntu无法编译golang支持的解决方法

新版本加入了go语言的支持, 但是tools编译的过程中, ubuntu环境下可能出错. 解决方法是, 编辑 .config, 把里面的有关 GCCGO, libgo, 和Go有关的包, 全部注释了, 包含下面内容.

CONFIG_INSTALL_GCCGO=y
CONFIG_PACKAGE_libgo=m
CONFIG_PACKAGE_asciinema-ng=m
CONFIG_PACKAGE_gotty=m
CONFIG_PACKAGE_rclone=m
CONFIG_PACKAGE_shell2http=m
CONFIG_PACKAGE_syncthing=m

编译自带软件包

编译名叫name的软件

$ make package/name/compile

手动编译软件

设置环境变量

export STAGING_DIR=/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi
export PATH=$PATH:/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/bin

手动编译设置

手动编译软件时configure需要加入以下参数

./configure \
--target=arm-openwrt-linux \
--host=arm-openwrt-linux \
--build=x86_64-linux-gnu \
CC=arm-openwrt-linux-gnueabi-gcc \
CFLAGS='-O2 -pipe -march=armv7-a -mtune=cortex-a9 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -fPIC' \
CPPFLAGS='-I/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/include -I/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/include -I/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/usr/include -I/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/include' \
LDFLAGS='-L/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/lib -L/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link=/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 -L/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/usr/lib -L/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/lib'

例子

编译tinc 1.11pre12

先编译依赖库, entware-ng自带

make package/ncurses/compile
make package/lzo/compile
make package/libreadline/compile
make package/zlib/compile

接着编译tinc

./configure \
--target=arm-openwrt-linux \
--host=arm-openwrt-linux \
--build=x86_64-linux-gnu \
--prefix=/opt \
--without-openssl \
CC=arm-openwrt-linux-gnueabi-gcc \
CFLAGS='-O2 -pipe -march=armv7-a -mtune=cortex-a9 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -fPIC' \
CPPFLAGS='-I/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/include -I/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/include -I/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/usr/include -I/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/include' \
LDFLAGS='-L/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/lib -L/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link=/opt/arm/Entware-ng/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 -L/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/usr/lib -L/opt/arm/Entware-ng/staging_dir/toolchain-arm_cortex-a9_gcc-5.3.0_glibc-2.23_eabi/lib'
make
entware-ng/armv7.txt · 最后更改: 2016/05/05 16:10 由 Hshh