首页 > 代码库 > 交叉编译 小米路由器mini 的 python(MIPS)

交叉编译 小米路由器mini 的 python(MIPS)

看了很多文章,要么说的是用opkg安装python,要么说的是小米路由器的交叉编译,就是没有mini的。学习了这篇文章(http://me.deepgully.com/post/5638916786880512),编译了小米路由mini的python。

已编译好的:http://download.csdn.net/detail/kowity/9611919

 

小米路由mini版的路由是mips的,跟小米路由的arm版不一样,所以脚本做了一些修改。先下载小米路由器mini版的开发包,里面有编译工具链:http://bigota.miwifi.com/xiaoqiang/sdk/tools/package/sdk_package_r1c.zip。将压缩包里面的 toolchain 复制到 /opt/xiaomi 

 

先编译依赖库

 

[plain] view plain copy
 
 技术分享技术分享
  1. #!/bin/bash  
  2.   
  3. # rm -r -f /opt/xiaomi  
  4. # wget -c http://bigota.miwifi.com/xiaoqiang/sdk/tools/package/sdk_package_r1c.zip  
  5. # unzip sdk_package_r1c.zip  
  6. # cp -r -f sdk_package_r1c/include/* sdk_package_r1c/toolchain/include/  
  7. # cp -r -f sdk_package_r1c/lib/* sdk_package_r1c/toolchain/lib/  
  8. # mv -f sdk_package_r1c/toolchain /opt/xiaomi  
  9.   
  10. export XIAOMI_ROOT_PATH=/opt/xiaomi  
  11. export PATH="${XIAOMI_ROOT_PATH}/bin:${PATH}"  
  12.   
  13. rm -r -f readline-4.2  
  14. wget -c http://ftp.gnu.org/gnu/readline/readline-4.2.tar.gz  
  15. tar xvzf readline-4.2.tar.gz  
  16. cd readline-4.2  
  17. export CC=mipsel-openwrt-linux-uclibc-gcc RANLIB=mipsel-openwrt-linux-uclibc-ranlib AR=mipsel-openwrt-linux-uclibc-ar  
  18. ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=${XIAOMI_ROOT_PATH}  
  19. make  
  20. sudo make install  
  21. mipsel-openwrt-linux-uclibc-ranlib ${XIAOMI_ROOT_PATH}/lib/libreadline.a  
  22. cd ..  
  23.   
  24. rm -r -f libffi-3.1  
  25. wget -c ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz  
  26. tar xvzf libffi-3.1.tar.gz  
  27. cd libffi-3.1  
  28. ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=${XIAOMI_ROOT_PATH}  
  29. make  
  30. sudo make install  
  31. mipsel-openwrt-linux-uclibc-ranlib ${XIAOMI_ROOT_PATH}/lib/libffi.a  
  32. cd ..  
  33.   
  34. rm -r -f termcap-1.3.1  
  35. wget -c http://www.mirrorservice.org/sites/ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz  
  36. tar xvzf termcap-1.3.1.tar.gz  
  37. cd termcap-1.3.1  
  38. export CC=mipsel-openwrt-linux-uclibc-gcc RANLIB=mipsel-openwrt-linux-uclibc-ranlib AR=mipsel-openwrt-linux-uclibc-ar  
  39. ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=${XIAOMI_ROOT_PATH}  
  40. make  
  41. sudo make install  
  42. mipsel-openwrt-linux-uclibc-ranlib ${XIAOMI_ROOT_PATH}/lib/libtermcap.a  
  43. cd ..  



 



 

再编译python

 

[plain] view plain copy
 
 技术分享技术分享
  1. #!/bin/bash  
  2.   
  3. wget -c http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2  
  4. rm -r -f python  
  5. mkdir python  
  6. cd python  
  7. cp ../Python-2.7.5.tar.bz2 .  
  8. tar -jxf Python-2.7.5.tar.bz2  
  9.   
  10. wget -c http://bugs.python.org/file31991/Python-2.7.5-xcompile.patch  
  11. cp Python-2.7.5-xcompile.patch Python-2.7.5/  
  12.   
  13. wget -c http://7xrt07.com1.z0.glb.clouddn.com/setup.py.2.5.xcompile.patch  
  14. cp setup.py.xcompile.patch Python-2.7.5/  
  15.   
  16. mkdir backup  
  17. cd Python-2.7.5  
  18. make distclean  
  19. rm -rf python_for_build Parser/pgen_for_build  
  20.   
  21. cp Makefile.pre.in ../backup/  
  22. cp Modules/Setup.dist ../backup/Modules/  
  23. cp configure ../backup/  
  24. cp setup.py ../backup/  
  25.   
  26. unset CC  
  27. unset CXX  
  28.   
  29. ./configure  
  30. make --jobs=2 python Parser/pgen  
  31.   
  32. mv python python_for_build  
  33. mv Parser/pgen Parser/pgen_for_build  
  34.   
  35. cp python_for_build ../backup/  
  36. cp Parser/pgen_for_build ../backup/  
  37.   
  38.   
  39. patch -p3 < Python-2.7.5-xcompile.patch  
  40. patch < setup.py.xcompile.patch  
  41. make distclean  
  42.   
  43. RFS=/opt/xiaomi  
  44. export PATH="${RFS}/lib:${RFS}/usr/lib:${PATH}"  
  45. export LDFLAGS="-L${RFS}/usr/lib -L${RFS}/lib"  
  46.   
  47. ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=/\  
  48.     --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes  
  49.   
  50. if [ $? != 0 ]; then  
  51.     echo "(E) Configure FAILED!"  
  52.     exit 5  
  53. fi  
  54.   
  55. make --jobs=2 \  
  56.     CFLAGS="-g0 -Os -s -I${RFS}/include -I${RFS}/usr/include -L${RFS}/usr/lib -L${RFS}/lib -fdata-sections -ffunction-sections" \  
  57.     LDFLAGS="-L${RFS}/usr/lib -L${RFS}/lib"  
  58.       
  59.   
  60. if [ $? != 0 ]; then  
  61.     echo "(E) Make FAILED!"  
  62.     exit 5  
  63. fi  
  64.   
  65. mipsel-openwrt-linux-strip --strip-unneeded python  
  66.   
  67. echo "(I) Installing Python ..."  
  68. sudo make install DESTDIR=${RFS}/python PATH="${PATH}"  
  69. if [ $? != 0 ]; then  
  70.     echo "(E) Installation FAILED!"  
  71.     exit 5  
  72. fi  
  73.   
  74. rm -r -f ${RFS}/python/lib/python2.7/test  
  75. rm -r -f ${RFS}/python/lib/python2.7/unitest  
  76. rm -r -f ${RFS}/python/lib/python2.7/lib-tk  
  77. rm -r -f ${RFS}/python/lib/python2.7/idlelib  
  78. rm -r -f ${RFS}/python/lib/python2.7/2to3  
  79.   
  80. echo "(I) Python cross-compilation and installation is done!"  
  81.   
  82. exit 0  

 

将生成的python目录复制到小米路由器就ok了

 

http://blog.csdn.net/kowity/article/details/52302849

交叉编译 小米路由器mini 的 python(MIPS)