交叉编译 小米路由器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
先编译依赖库
- #!/bin/bash
- # rm -r -f /opt/xiaomi
- # wget -c http://bigota.miwifi.com/xiaoqiang/sdk/tools/package/sdk_package_r1c.zip
- # unzip sdk_package_r1c.zip
- # cp -r -f sdk_package_r1c/include/* sdk_package_r1c/toolchain/include/
- # cp -r -f sdk_package_r1c/lib/* sdk_package_r1c/toolchain/lib/
- # mv -f sdk_package_r1c/toolchain /opt/xiaomi
- export XIAOMI_ROOT_PATH=/opt/xiaomi
- export PATH="${XIAOMI_ROOT_PATH}/bin:${PATH}"
- rm -r -f readline-4.2
- wget -c http://ftp.gnu.org/gnu/readline/readline-4.2.tar.gz
- tar xvzf readline-4.2.tar.gz
- cd readline-4.2
- export CC=mipsel-openwrt-linux-uclibc-gcc RANLIB=mipsel-openwrt-linux-uclibc-ranlib AR=mipsel-openwrt-linux-uclibc-ar
- ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=${XIAOMI_ROOT_PATH}
- make
- sudo make install
- mipsel-openwrt-linux-uclibc-ranlib ${XIAOMI_ROOT_PATH}/lib/libreadline.a
- cd ..
- rm -r -f libffi-3.1
- wget -c ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz
- tar xvzf libffi-3.1.tar.gz
- cd libffi-3.1
- ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=${XIAOMI_ROOT_PATH}
- make
- sudo make install
- mipsel-openwrt-linux-uclibc-ranlib ${XIAOMI_ROOT_PATH}/lib/libffi.a
- cd ..
- rm -r -f termcap-1.3.1
- wget -c http://www.mirrorservice.org/sites/ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
- tar xvzf termcap-1.3.1.tar.gz
- cd termcap-1.3.1
- export CC=mipsel-openwrt-linux-uclibc-gcc RANLIB=mipsel-openwrt-linux-uclibc-ranlib AR=mipsel-openwrt-linux-uclibc-ar
- ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=${XIAOMI_ROOT_PATH}
- make
- sudo make install
- mipsel-openwrt-linux-uclibc-ranlib ${XIAOMI_ROOT_PATH}/lib/libtermcap.a
- cd ..
再编译python
- #!/bin/bash
- wget -c http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
- rm -r -f python
- mkdir python
- cd python
- cp ../Python-2.7.5.tar.bz2 .
- tar -jxf Python-2.7.5.tar.bz2
- wget -c http://bugs.python.org/file31991/Python-2.7.5-xcompile.patch
- cp Python-2.7.5-xcompile.patch Python-2.7.5/
- wget -c http://7xrt07.com1.z0.glb.clouddn.com/setup.py.2.5.xcompile.patch
- cp setup.py.xcompile.patch Python-2.7.5/
- mkdir backup
- cd Python-2.7.5
- make distclean
- rm -rf python_for_build Parser/pgen_for_build
- cp Makefile.pre.in ../backup/
- cp Modules/Setup.dist ../backup/Modules/
- cp configure ../backup/
- cp setup.py ../backup/
- unset CC
- unset CXX
- ./configure
- make --jobs=2 python Parser/pgen
- mv python python_for_build
- mv Parser/pgen Parser/pgen_for_build
- cp python_for_build ../backup/
- cp Parser/pgen_for_build ../backup/
- patch -p3 < Python-2.7.5-xcompile.patch
- patch < setup.py.xcompile.patch
- make distclean
- RFS=/opt/xiaomi
- export PATH="${RFS}/lib:${RFS}/usr/lib:${PATH}"
- export LDFLAGS="-L${RFS}/usr/lib -L${RFS}/lib"
- ./configure --host=mipsel-openwrt-linux-uclibc --build=mipsel-linux --prefix=/\
- --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes
- if [ $? != 0 ]; then
- echo "(E) Configure FAILED!"
- exit 5
- fi
- make --jobs=2 \
- CFLAGS="-g0 -Os -s -I${RFS}/include -I${RFS}/usr/include -L${RFS}/usr/lib -L${RFS}/lib -fdata-sections -ffunction-sections" \
- LDFLAGS="-L${RFS}/usr/lib -L${RFS}/lib"
- if [ $? != 0 ]; then
- echo "(E) Make FAILED!"
- exit 5
- fi
- mipsel-openwrt-linux-strip --strip-unneeded python
- echo "(I) Installing Python ..."
- sudo make install DESTDIR=${RFS}/python PATH="${PATH}"
- if [ $? != 0 ]; then
- echo "(E) Installation FAILED!"
- exit 5
- fi
- rm -r -f ${RFS}/python/lib/python2.7/test
- rm -r -f ${RFS}/python/lib/python2.7/unitest
- rm -r -f ${RFS}/python/lib/python2.7/lib-tk
- rm -r -f ${RFS}/python/lib/python2.7/idlelib
- rm -r -f ${RFS}/python/lib/python2.7/2to3
- echo "(I) Python cross-compilation and installation is done!"
- exit 0
将生成的python目录复制到小米路由器就ok了
http://blog.csdn.net/kowity/article/details/52302849
交叉编译 小米路由器mini 的 python(MIPS)的更多相关文章
- 中大东校小米路由器mini实现inode上网,ipv6 wifi【中大】【东校】【inode】【ipv6】
还有不到4个月就要毕业了,前几天半夜没事捣鼓小米路由没想到竟然实现了wifi的ipv6. 正好又安利了同学一台小米路由mini,从刷机到inode到ipv6全搞了一遍. 这里将教程写出来,服务学弟妹. ...
- 小米路由器mini如何设置外网访问wan网站的方法
很多的玩友都在小米路由器mini上面搭建了自己的网站,有些朋友还需要设置对外网进行开放,我自己也在路由器上面实践了使用,下面与大家分享一下如何设置外网访问路由器网站的办法. 工具/原料 小米路由器mi ...
- 小米路由器mini搭建个人静态网站的方法
小米路由和小米路由mini从本质上来说差距就在1T的硬盘上,其它并没有明显差别,但是功能却差很多,例如:小米路由有自带的LAMP模式,而小米路由mini则没有,换句话说,其实这个功能是被阉割了,仔细研 ...
- 小米路由器mini建FTP
输入命令 df -h 复制代码 查看自己的分区路径,我自己用了一个闲置笔记本电脑硬盘转USB,插到mini,有四个区 为了方便,我选择把ftp安装在第一个分区 /extdisks/sda1/ 创建f ...
- 小米路由器刷Xiaomi Mi WiFi Mini openwrt
Current Stable Release - OpenWrt 18.06.1,released on August, 18th 2018. there is also PandoraBox fir ...
- Openwrt路由器上安装python
在路由器安装python之前,还是经过了一番折腾的.淘宝上买了个已经刷好系统的小米迷你路由器,但里面安装的不是预期的Pandorbox,而是LEDE. 这个固件已经带了大量自带的软件,128的内存实在 ...
- 小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录
小米 R3G 参数 Architecture: MIPS Vendor: Mediatek Bootloader: U-Boot System-On-Chip: MT7621 family CPU/S ...
- 小米路由Mini刷Breed, 潘多拉和LEDE
1. 下载breed,地址 http://breed.hackpascal.net/ 2. 下载小米Mini的开发板rom, 地址 http://www1.miwifi.com/miwifi_down ...
- 关于使用TP-Link桥接小米路由器
家里因为有个小卧室,小卧室的写字台上面放了一台台式电脑,而我又不想用台式电脑牵一条长线到客厅的网口或者路由器上面,因为太麻烦,所以我使用了TPLink的无线USB插在了我的主机USB上,略去TPLIN ...
随机推荐
- WindowManage与Window的在Activity的一点小应用
super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN ...
- ODBC连接MySQL出现"E_FAIL"错误
ODBC不能处理这种格式的数据:0000-00-00,将其更新为正常的时间即可解决
- 一篇关于学C++的感想(拿来与大家分享)
学计算机的如果你有耐心看下去,我敢保证这绝对是一种收获 期待爱 大师提醒: 计算机专业不是学编程,而是懂得计算机的工作原理,以及和计算机相关的学科技术.一个高手不必懂得编程,coder是最底层的人物, ...
- [Guava官方文档翻译] 1.Guava简介 (Introduction)
用户指南 Guava包含Google在Java项目中用到的一些核心库:collections, caching, primitives support, concurrency 库, common a ...
- jquery 动态添加下拉框 需要增加 煊染 selectmenu("refresh");
若通过js动态选择下拉框的值必须刷新下拉框,例如:var selArray = $("select#sel");selArray[0].selectedIndex = 1;selA ...
- 在ctex环境下利用Metapost作图
使用Metapost作图,是LaTeX的好搭档.下面介绍如何在ctex环境下的使用Metapost作图. 首先新建一个test.mp的Metapost文件. 在文件开始需要声明如下代码: prolog ...
- Android开发系列之学习路线图
通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识. 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明 ...
- 图片裁切插件jCrop的使用心得(二)
上一篇简单的介绍了一下开发的背景以及一些学习资料,下面开始介绍如何上手. 一.下载jCrop http://deepliquid.com/content/Jcrop_Download.html 直接去 ...
- 使用css3背景渐变中的透明度来设置不同颜色的背景渐变
为了添加透明度,我们使用 rgba() 函数来定义颜色结点.rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明.rgba()后面的 ...
- 手动将MySQL服务安装到windows中
我的系统是win7 x64,mysql版本5.6 (网上的老教程很多都没用了,版本太旧,这是我自己总结出来的方法) 下载zip包的mysql可以获得最新版本,还可以免安装,好处多多,但是要把mysql ...