http://www.huomo.cn/developer/article-b8f0.html
1. 参考文档
1.1 Obtaining MIPS Android Source Code (http://www.mipsandroid.com/documents/show/1)
1.2 Compiling Android for MIPS (http://www.awakecoding.com/index.php?option=com_content&view=article&id=21:compiling-android-for-mips)
1.3 移植Android到MIPS平台(续) (http://my.unix-center.net/~Simon_fu/?p=557)
2. 环境准备
2.1 安装ubuntu(使用virtulbox)
2.2 安装其他需要工具
sudo apt-get install gcc build-essential git-core libreadline-dev zip curl wget valgrind python eclipse ecj flex bison gperf libsdl-dev libwxgtk2.6-dev libgmp3-dev libsds-dev clearsilver-dev libclearsilver-perl python-clearsilver gcc-multilib g++-multilib
2.3 安装java jdk
sudo apt-get sun-java5-jdk
sudo update-alternatives --config java (选择刚安装完的JDK目录)
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
2.4 安装mips-4.3 toolchain
此步骤可省略,使用android自带的prebuilt toolchain即可 3. 源码下载
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir mipsandroid
$ cd mipsandroid
$ repo init -u git://public.mipsandroid.com/mips/platform/manifest.git -b mips-eclair
$ repo sync 4. 编译
4.1 准备
在mipsandroid下添加env.sh如下
export TOP='pwd'
export J2RE_HOME=/usr/lib/jvm/java-1.5.0-sun/jre
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
export ANDROID_JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
source build/envsetup.sh
export USE_CCACHE=1
export TARGET_ARCH_VERSION=mips32r2
export TARGET_ARCH=mips
export ANDROID_PRODUCT_OUT=~/android/mipsandroid/out/target/product/generic
export PATH=$PATH:~/android/mipsandroid/out/host/linux-x86/bin/ 4.2 步骤
source env.sh
make
4.3 此时已生成emulator和对应的system.img ramdisk.img userdata.img(kernel-qemu使用prebuilt的) 4.3问题总结
之前由于PRODUCT指定不对,造成编译出的init使用了hard float point的libc,重新make clean;make解决 5.编译SDK
5.1 执行
在4步骤完成后
make sdk 5.2 问题总结
5.2.1 提示crtbegin_so.S找不到
修改bionic/libc/Android.mk如下,注释掉
#ifeq ($(TARGET_ARCH),mips)
# we only need begin_so/end_so for mips, since it needs an appropriate .init
# section in the shared library with a function to call all the entries in
# .ctors section.
#GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
#$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.S
# @mkdir -p $(dir $@)
# $(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $<
#ALL_GENERATED_SOURCES += $(GEN) #GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
#$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
# @mkdir -p $(dir $@)
# $(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $<
#ALL_GENERATED_SOURCES += $(GEN)
#endif # TARGET_ARCH == mips 5.2.2 生成的linux sdk使用不正常,发现kernel-qemu拷贝的是arm的,将其替换即可 6.编译windows SDK
6.1 步骤
1)将mipsandroid拷贝到cygwin里
2)windows安装java jdk
3)修改env.sh
export TOP='pwd'
export J2RE_HOME=/cygdrive/c/Java/jdk1.5.0_20/jre
export JAVA_HOME=/cygdrive/c/Java/jdk1.5.0_20
export ANDROID_JAVA_HOME=/cygdrive/c/Java/jdk1.5.0_20
source build/envsetup.sh
export TARGET_ARCH_VERSION=mips32r2
export TARGET_ARCH=mips
export ANDROID_PRODUCT_OUT=~/android/mipsandroid/out/target/product/generic
export PATH=$PATH:/cygdrive/c/Java/jdk1.5.0_20/bin
4)修改make_windows_sdk.sh,增加acp编译(android 2.2),修改cygwin目录,删除adb/fastboot编译(android 2.2),如下 a) CYG_MGWZ_PATH=/cygdrive/c/cygwin/bin/mgwz.dll -> CYG_MGWZ_PATH=/cygdrive/e/cygwin/bin/mgwz.dll b) SDK_NUMBER=`echo $filename | sed -n 's/^.*_\([^_./]\+\)_[^_.]*\..*$/\1/p'` -> SDK_NUMBER=2.2 c) aapt adb aidl \
etc1tool \
prebuilt \
dexdump dmtracedump \
fastboot \
->
acp aapt aidl \
etc1tool \
prebuilt \
dexdump dmtracedump \ d) cp -v out/host/windows-x86/bin/*.{exe,dll} "$TOOLS"/ -> cp -v out/host/windows-x86/bin/*.exe "$TOOLS"/ e)
[[ -n $NEED_MGWZ ]] && cp -v $CYG_MGWZ_PATH "$TOOLS"/ ->
[[ -n $NEED_MGWZ ]] && cp -v $CYG_MGWZ_PATH "$TOOLS"/
cp -v /cygdrive/e/cygwin/bin/cygz.dll "$TOOLS"/
cp -v /cygdrive/e/cygwin/bin/cygwin1.dll "$TOOLS"/ f)
[[ -n $NEED_MGWZ ]] && cp -v "$TOOLS"/mgwz.dll "$PLATFORM_TOOLS"/
->
[[ -n $NEED_MGWZ ]] && cp -v "$TOOLS"/mgwz.dll "$PLATFORM_TOOLS"/
cp -v "$TOOLS"/cygz.dll "$PLATFORM_TOOLS"/
cp -v "$TOOLS"/cygwin1.dll "$PLATFORM_TOOLS"/ 5)修改external/sqlite/dist/shell.c
#if defined(HAVE_READLINE) && HAVE_READLINE==1 -> #if 0
# include <readline/readline.h>
# include <readline/history.h>
6.2 安装使用
kernel-qemu还是arm的,替换成mips的
分享到:
相关推荐
React Native App中mips交叉编译工具问题,NDK r17c之后的版本中,将mips和mips64的交叉编译工具移除
android-ndk-r20-darwin-x86_64包里toolchains目录下的mips64el-linux-android-4.9和mipsel-linux-android-4.9,可以解决NDK17版本以上编译出现的No toolchains found in the NDK
ndk-build中toolchains目录下的mips64el-linux-android-4.9和mipsel-linux-android-4.9,可以解决NDK17版本以上编译出现的No toolchains found in the NDK
android-ndk-r10-mac-x86_64包里toolchains目录下的mips64el-linux-android-4.9和mipsel-linux-android-4.9,可以解决NDK17版本以上编译出现的No toolchains found in the NDK
mips64el-linux-android-4.9, android 编译的时候需要它
mupdf1.9a android-mips版本,重新编译源码,修改默认红色画笔批注为黑色批注,修改画笔粗细,亲测可用
资源中包括android4.2.2的adb的源码以及依赖的库的源码。首先进入openssl/crypto中,修改makefile中的CROSS_COMPILE,修改为自己的编译环境,然后执行make,生成libCrypto.a。然后回到adb根目录,同样修改makefile的...
android-ndk-r12b\toolchains下的编译平台 下的编译平台 下的编译平台 下的编译平台
编译后的android各平台fftw静态库。x86 x86_64 mips mips64 armeabi armeabi-v7a arm64-v8a
放到toolchains目录下即可,可以解决Android Studio因为缺少工具链导致NDK编译不过以及AVD无法正常创建的问题,使用者注意版本和内核架构。
opencv 3.1.0 源码重新编译出的Android sdk so 文件 ,解决了Google play 报的libpng 旧版本安全漏洞,本so 文件 采用的是最新的libpng 1.6.23版本 ,包含arm arm-v7a mips x86 等平台文件
Windows上android assimp编译工具,还有一个是so库,懒人一步编译,无需自己编写工具,已经整合好了。建议配合ndk版本16b使用,这样可以支持最低api14,和mips,mips64,armeabi架构,几乎支持所有安卓平台(android4.0...
rsync-android 此存储库包含使用 Android NDK 为 ARM、x86 和 MIPS 构建 rsync 二进制文件的脚本。
libjpeg-turbo 交叉编译aarch64 6.5.0 jpeg图像加速库
bpi_a64_android初步编译为LCD显示20170309_1442.7z banana pi a64 android6.0.1初步编译为LCD显示。初步设置。 bpi_a64_android的编译配置文件排版.txt 2017/3/9 14:33 0、压缩包的处理: rootroot@cm-System...
基于Google官方gcc4.9.x修改的源码, 支持直接通过交叉编译器编译出在Android上跑的gcc, gcc版本为7.2.0 建议静态编译
编译好的VLC.zip,编译好的VCL-Android版本,打了四种架构的so包,armeabi-v7a、armeabi、x86、mips