一、下载repo
1.1 从csdn上下载repo
$ curl https://code.csdn.net/tinalinux/repo/blob/stable/repo > ~/bin/repo
1.2 将repo添加到环境变量
将~/bin目录添加到环境变量:
$ chmod +x ~/bin/repo
$ export PATH=~/bin:$PATH
二、下载R16 Tina Linux SDK V2.1版本
$ repo init -u https://code.csdn.net/tinalinux/manifest.git -b r16-v2.1.y -m r16/v2.1.y-csdn.xml
$ repo sync
$ repo start r16-v2.1.y --all
三、编译
开发板为:SC3817R。
Ubuntu 16.04_X64
make 3.8.1
gcc 4.9.3
$ source build/envsetup.sh
$ lunch astar_parrot-tina
$ make -j
$ pack [-d]
四、问题与解决
4.1 编译adb出错
再次单独编译package,错误依旧:
$ make package/utils/adb/compile
WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!
make[1]: Entering directory `/(your path)'
make[2]: Entering directory `/(your path)/package/libs/toolchain'
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean; fi; echo "libc" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean; fi; echo "libgcc" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean; fi; echo "libatomic" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean; fi; echo "libstdcpp" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean; fi; echo "libpthread" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install.clean; fi; echo "librt" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/toolchain.default.install
make[2]: Leaving directory `/(your path)/package/libs/toolchain'
make[2]: Entering directory `/(your path)/package/allwinner/liballwinner-base'
if [ -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/liballwinner-base.default.install.clean ]; then rm -f /(your path)/out/astar-parrot/staging_dir/target/pkginfo/liballwinner-base.default.install /(your path)/out/astar-parrot/staging_dir/target/pkginfo/liballwinner-base.default.install.clean; fi; echo "liballwinner-base" >> /(your path)/out/astar-parrot/staging_dir/target/pkginfo/liballwinner-base.default.install
make[2]: Leaving directory `/(your path)/package/allwinner/liballwinner-base'
make[2]: Entering directory `/(your path)/package/utils/adb'
mkdir -p /(your path)/out/astar-parrot/compile_dir/target/adb
cp -fpR -r ./src/* /(your path)/out/astar-parrot/compile_dir/target/adb/
touch /(your path)/out/astar-parrot/compile_dir/target/adb/.prepared_06125a26652e3a6a422fa8a751aa73d1
rm -f /(your path)/out/astar-parrot/staging_dir/target/stamp/.adb_installed
rm -f /(your path)/out/astar-parrot/compile_dir/target/adb/.configured_*
touch /(your path)/out/astar-parrot/compile_dir/target/adb/.configured_yyy
#compile libmincrypt.a (Android)
make -C /(your path)/out/astar-parrot/compile_dir/target/adb/libs/libmincrypt ARCH="arm" AR="arm-openwrt-linux-muslgnueabi-ar" CC="arm-openwrt-linux-muslgnueabi-gcc" CFLAGS="-Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" LDFLAGS="-L/(your path)/out/astar-parrot/staging_dir/target/usr/lib -L/(your path)/out/astar-parrot/staging_dir/target/lib -L/(your path)/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/usr/lib -L/(your path)/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/lib -znow -zrelro"
make[3]: Entering directory `/(your path)/out/astar-parrot/compile_dir/target/adb/libs/libmincrypt'
arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I. -c -o rsa.o rsa.c
arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I. -c -o rsa_e_3.o rsa_e_3.c
arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I. -c -o rsa_e_f4.o rsa_e_f4.c
arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I. -c -o sha.o sha.c
ar r libmincrypt.a rsa.o rsa_e_3.o rsa_e_f4.o sha.o
ar: creating libmincrypt.a
make[3]: Leaving directory `/(your path)/out/astar-parrot/compile_dir/target/adb/libs/libmincrypt'
#complie libcutils.a (Android)
make -C /(your path)/out/astar-parrot/compile_dir/target/adb/libs/libcutils ARCH="arm" AR="arm-openwrt-linux-muslgnueabi-ar" CC="arm-openwrt-linux-muslgnueabi-gcc" CFLAGS="-Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" LDFLAGS="-L/(your path)/out/astar-parrot/staging_dir/target/usr/lib -L/(your path)/out/astar-parrot/staging_dir/target/lib -L/(your path)/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/usr/lib -L/(your path)/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/lib -znow -zrelro"
make[3]: Entering directory `/(your path)/out/astar-parrot/compile_dir/target/adb/libs/libcutils'
arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DHAVE_PTHREADS -DANDROID_SMP=1 -DHAVE_LIBC_SYSTEM_PROPERTIES=1 -DHAVE_SYS_SOCKET_H=1 -D_GNU_SOURCE -I. -I./include/ -c -o array.o array.c
arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -fno-plt -mfloat-abi=hard -Wformat -Werror=format-security -fstack-pr