首页 技术 正文
技术 2022年11月10日
0 收藏 691 点赞 3,700 浏览 3954 个字

看了很多文章,要么说的是用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

先编译依赖库

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

再编译python

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

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

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,484
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,899
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,732
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,485
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,125
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,286