OKMX6X Python 移植笔记

飞凌嵌入式应用笔记,基于 FETMX6X 核心版 V1.1,IMX6X 系列,Linux 3.0.35

原始文件: /工作相关/飞凌嵌入式imx6全部资料/嵌入式相关(小发光硬件部分)/20200219 孙润民/飞凌电子/OKMX6DL、Q系列产品应用笔记/python移植/Python移植笔记.pdf 文件大小: 892 KB 页数: 12页 提取方式: PDF文本提取(pdf-inspector),text_based类型 处理日期: 2026-09-20


核心内容

本文档详细说明了在飞凌 OKMX6X 开发板上移植 Python 2.7 的完整流程,分为编译和配置两个阶段。

一、Python 编译过程

所需工具包(位于源码目录 Python 移植/工具包):

  • Python-2.7.13.tgz
  • sqlite-autoconf-3200100.tar.gz
  • Python-2.7.13-xcompile.patch.tar.gz
  • ntp-4.2.8p10.tar
  • setuptools-0.6c11-py2.7.egg
  • openssl-OpenSSL_1_0_1b.zip
  • zlib-1.2.3.tar.gz

关键步骤:

  1. 编译 sqlite3(Python 依赖):

    ./configure --host=arm-none-linux-gnueabi --prefix=$PWD/../sqlite3
    make -j8 && make install
  2. 编译 zlib 和 openssl(交叉编译到 arm_install 目录)

  3. 编译 Python for x86(用于 host 工具):

    ../Python-2.7.13/configure --prefix=`pwd`
    make -j8 && make install
  4. 打补丁并配置 ARM 交叉编译:

    • 修改 Modules/Setup.dist,取消 zlib 和 _ssl 注释
    • configure 时指定 --host=arm-none-linux-gnueabi
  5. 编译 Python for ARM:

    make HOSTPYTHON=../python2_7_13_for_x86_64/python \
         HOSTPGEN=../python2_7_13_for_x86_64/Parser/pgen \
         BLDSHARED="arm-none-linux-gnueabi-gcc -shared" \
         CROSS_COMPILE=arm-none-linux-gnueabi- \
         SSL=`pwd`
  6. 编译 ntpdate(网络时间同步工具)

输出目录结构:

output/
├── ntp-4.2.8.p10.tar.bz2
└── sources/
    ├── openssl-OpenSSL_1_0_1b.tar.bz2
    ├── python2.7-for-arm.tar.bz2
    └── setuptools-0.6c11-py2.7.egg

二、开发板配置

  1. 解压缩到开发板根目录:

    tar xvf python2.7-arm.tar.bz2 -C /
    tar xvf openssl-OpenSSL_1_0_1b.tar.bz2 -C /
  2. 修改配置:

    • /lib/pkgconfig/python2.pc:设置 prefix=/
    • /bin/python2.7-config:第一行改为 #!/bin/python2.7
    • /etc/profile:添加 PYTHONHOME、PYTHONPATH、PATH 环境变量
  3. 安装 easy_install:

    bash setuptools-0.6c11-py2.7.egg
  4. 取消 SSL 全局验证(解决 pip 安装时的 SSL 错误):

    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
  5. 安装 pip 并测试:

    easy_install pip
    pip install requests
    python2.7 -c "import requests"

关键要点

  • 交叉编译工具链:arm-none-linux-gnueabi-(需与开发板匹配)
  • 必须预先编译:sqlite3、zlib、openssl(Python 模块依赖)
  • SSL 验证问题:国内镜像源常用,需关闭全局 SSL 验证
  • 输出包结构:所有编译产物打包后拷贝到开发板,保持相对路径

关联知识