手把手教你搭建powerpc(P2020)的ltib编译环境

最近工作涉及一些要搭建基于PowerPC架构的CPU(P2020)的编译环境,谨以此文总结记录一下ltib(Linux Target Image Builder)编译环境的搭建过程,基本上freescale官网也有,只是做一个总结。

本文主要介绍使用CentOS6.6系统搭建ltib环境,并通过ltib命令行简单编译内核和最小文件系统,最终生成一个image,可烧写到powerpc p2020板子上运行。

freescale官网:http://www.nxp.com/


准备工作:
1) freescale官网下载Linux BSP for P2020 RDB (REV 20101101) ISO  -- P1020_P2020RDB_20101101_ltib.iso
2) CentOS官网下载CentOS6.6 ISO  -- CentOS-6.6-x86_64-minimal.iso

步骤:
1. 安装centos6系统

2. 创建新用户myuser, 使用ltib脚本时不允许使用root用户
[root@centos6 ~]# useradd myuser
[root@centos6 ~]# passwd myuser

3. 安装telnet-server, 用于远程登陆
[root@centos6 ~]# yum install telnet-server
[root@centos6 ~]# vim /etc/xinetd.d/telnet                 //设置disable=no
[root@centos6 ~]# service xinetd restart
[root@centos6 ~]# vim /etc/sysconfig/iptables              // 添加对端口23开放
[root@centos6 ~]# service iptables restart

4. 添加sudo for myuser, 
[root@centos6 ~]# vim /etc/sudoers
myuser    ALL=(ALL)       ALL
myuser    ALL=(ALL)       NOPASSWD: /bin/rpm,/opt/freescale/ltib/usr/bin/rpm

5. 安装ltib环境需要的依赖包

[root@centos6 ~]# yum install -y perl glibc glibc-headers glibc-devel binutils \
libstdc++ libstdc++-devel gcc gcc-c++ sudo zlib zlib-devel rpm \
rpm-build patch wget ncurses ncurses-devel m4 bison flex texinfo \
gettext autoconf libtool glib2-devel lzo-devel intltool libuuid-devel \
tcl perl-ExtUtils-MakeMaker ld-linux.so.2


packageversioncomment
perl>= 5.6.1to run the ltib script
glibc>= 2.2.xto build/run host packages
glibc-headers>= 2.2.xto build/run host packages
glibc-devel>= 2.2.xto build/run host packages
binutils>= 2.11.93to build host packages
libstdc++any?to build rpm-fs host package
libstdc++-develany?to build rpm-fs host package
gcc>= 2.96to build host packages
gcc-c++>= 2.26to build rpm-fs host package
sudoanyto run the 'rpm install' phase on each package
zlibanyto build rpm-fs and mtd-utils host packages
zlib-develanyto build rpm-fs and mtd-utils host packages
rpmanyto build initial rpm-fs host package
rpm-buildanyto build initial rpm-fs host package
patchanyused by rpm
wgetanyto download packages/patches on demand
ncurses>= 5.1to build lkc (config language) host package
ncurses-devel>= 5.1to build lkc (config language) host package
m4any?may be needed by bison
bisonanyto build lkc (config language) host package
flexanyNot required we install:for host lkc
texinfoanyto build genext2fs host package (requires ncurses-deve
gettextanygenext2fs target package
autoconf>= 2.54Not required we install: automake target package
libtool>= 1.4.2Not required we install: libusb target package
glib2-develany?Needed if you want to build glib2


6. 使用root用户挂载P1020_P2020RDB_20101101_ltib.iso, 并使用myuser用户安装BSP编译环境
[root@centos6 ~]# su root
[root@centos6 ~]# mount -o loop P1020_P2020RDB_20101101_ltib.iso /mnt
[root@centos6 ~]# su myuser
[myuser@centos6 ~]$ cd /opt/myuser/
[myuser@centos6 ~]$ /mnt/install

安装完成后,会在当前路径下生成一个以ltib前缀的路径,

进入到当前ltib路径,第一次需要执行

[myuser@centos6 ltib]$ ./ltib

随后会生成以下路径,会安装交叉编译环境;

/opt/freescale/pkgs           存放编译的软件所有源码包



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在Android平台上使用FFmpeg需要进行交叉编译,生成适用于Android的FFmpeg库,并将其打包到apk中。以下是手把手搭建ffmpeg命令行运行环境的步骤: 1.下载NDK 首先需要下载NDK(Native Development Kit),NDK是一个工具包,用于开发C/C++应用程序的原生库。Android Studio自带NDK,也可以从官网下载。 2.下载FFmpeg源代码 从FFmpeg的官网下载源代码,然后解压到本地。 3.配置交叉编译环境 在FFmpeg源代码根目录下创建一个build_android.sh文件,输入以下内容: ```bash #!/bin/bash NDK=$HOME/Android/Sdk/ndk-bundle # NDK路径 SYSROOT=$NDK/platforms/android-21/arch-arm/ # Android SDK路径 TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 # 工具链路径 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-debug \ --disable-network \ --disable-avdevice \ --disable-postproc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=android \ --arch=arm \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" ADDI_LDFLAGS="" build_one ``` 其中,NDK是NDK的路径,SYSROOT是Android SDK的路径,TOOLCHAIN是工具链的路径。 4.执行交叉编译命令 在终端中输入以下命令: ```bash chmod +x build_android.sh ./build_android.sh ``` 等待编译完成。编译完成后,在FFmpeg源代码根目录下会生成一个android目录,其中包含了交叉编译生成的FFmpeg库。 5.创建Android Studio项目 打开Android Studio,创建一个新项目。在app/build.gradle文件中添加以下代码: ```groovy android { compileSdkVersion 28 defaultConfig { applicationId "com.example.ffmpegdemo" minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { cppFlags "" abiFilters "armeabi-v7a" arguments "-DANDROID_ARM_NEON=TRUE" } } sourceSets.main { jniLibs.srcDirs = ['src/main/jniLibs'] } ndk { abiFilters "armeabi-v7a" } } ``` 其中,externalNativeBuild和ndk是用于指定使用交叉编译生成的库的配置。 6.将FFmpeg库打包到apk中 将交叉编译生成的库复制到项目的app/src/main/jniLibs/armeabi-v7a/目录下。在app/build.gradle文件中添加以下代码: ```groovy android { sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } } ``` 然后在终端中输入以下命令: ```bash ./gradlew assembleDebug ``` 等待打包完成。打包完成后,在项目的build/outputs/apk/debug/目录下会生成一个apk文件,其中包含了FFmpeg库。 至此,就完成了搭建ffmpeg命令行运行环境的所有步骤。可以通过在MainActivity中执行FFmpeg命令来测试FFmpeg是否正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值