8,460
个编辑
更改
无编辑摘要
arecord -d 5 -f cd -t wav 123.wav<br>
录音之后,用aplay 123.wav 放音
== Linux 内核源码编译 ==
为了支持快速工程开发,OrangePi 将工程配置选项写入到二进制文件中。系统运行时,通过读取该二进制文件来获得系统运行时的信息,这能大大简化工程开发的时间。<br>
本手册主要描述如何使用该机制来加速客户的工程开发。<br>
'''*表示通配符,实际值根据路径填写'''<br>
'''需要硬件''':OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡<br><br>
[[Image:WinPlus-101.png]]<br><br>
=== 下载源码 ===
源代码可以在 OrangePi 官网上进行下载, 可以在官方工具找到 lichee 和android 的具体编译文档<br>
http://www.orangepi.org/downloadresources/<br>
下载完毕后先进行分卷压缩再进行解压,解压之后将可获得以下目录:<br>
[[Image:WinPlus-116.png]]<br><br>
buildroot: 工程编译脚本<br>
brandy: boot,uboot 源码以及开源交叉编译工具 gcc-linaro linux-3.10: 内核源码<br>
tools: 工程编译工具<br>
build.sh: 编译脚本<br><br>
=== 项目源码的编译 ===
第一次使用源码,需要全编整个工程。在 lichee 下使用下面命令来全编工程: 编译之前的注意事项:<br>
a.进到 lichee 目录下,用命令:$ ls -la
b.查看 build.sh 是否有可执行权限,如果没有请修改权限 :$ chmod 755 build.sh
c.ls –la 之后如果有发现 .buildconfig 删除 $ rm –rf .buildconfig
[[Image:WinPlus-117.png]]<br><br>
使用下面命令全编工程<br>
$ ./build.sh config<br>
此时系统会提示芯片的选择,对于 OrangePi Win/Win Plus,选择 sun50iw1p1<br>
此时系统会提示平台的选择,对于 OrangePi Win/Win Plus,选择 android <br>
此时系统会提示 kernel 的选择,对于 OrangePi Win/Win Plus,选择 android 选择对应支持板子的型号,对于 OrangePi Win/Win Plus,选择 t1<br><br>
[[Image:WinPlus-118.png]]<br><br>
出现此画面等待编译<br><br>
[[Image:WinPlus-119.png]]<br><br>
等待十五分钟左右,编译完成。<br><br>
[[Image:WinPlus-120.png]]<br><br>
=== 内核镜像文件和库的替换 ===
编译完成之后,将会目录下生成如下文件:<br>
libs: lichee/out/sun50iw1p1/android/common/lib/modules/3.10.65<br>
到官方网站上下载镜像文件:http://www.orangepi.org/downloadresources/<br><br>
[[Image:WinPlus-121.png]]<br><br>
镜像烧录:<br>
$ sudo dd bs=4M if=*.img of=/dev/sd*<br>
拔掉读卡器,再插一次。<br>
此时,将 SD 卡插入到 PC 上,查看 SD 卡的挂载点(如果不知道如何获得 SD 卡的挂载点,请参考下图)。<br>
第一个分区是 boot 分区<br><br>
[[Image:WinPlus-122.png]]<br><br>
第二个分区是 rootfs 分区<br><br>
[[Image:WinPlus-123.png]]<br><br>
将编译完产生的内核镜像文件拷贝到第一个分区(boot分区)<br>
将编译完产生的lib库拷贝到第二个分区(rootfs分区)<br>
'''推荐使用官网github上的编译系统'''<br><br>
[[Image:WinPlus-124.png]]<br><br>
build.sh 执行脚本进入到编译的图形化界面<br>
extenal 里面放的补丁和一些配置文件<br>
kernel 内核目录<br>
output 生成的文件<br>
script 编译的脚本<br>
toolchain 存放交叉编译器<br>
uboot uboot源码<br>
执行./build.sh,进入图形化界面,并选择Win/Win Plus<br><br>
[[Image:WinPlus-125.png]]<br><br>
输入root密码<br><br>
[[Image:WinPlus-126.png]]<br><br>
更新内核目录和模块<br><br>
[[Image:WinPlus-127.png]]<br><br>
选择自己对应的文件目录更新uImage和modules<br><br>
[[Image:WinPlus-128.png]]<br><br>
== Android 源码编译 ==
'''需要硬件:'''OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡<br>
[[Image:WinPlus-101.png]]<br><br>
'''软件'''<br>
Linux主机硬盘空间至少 50G(可满足一次完全编译)<br>
Linux主机中需要:<br>
Python 的 2.7.3 版本;<br>
GNU Make 的 3.81-3.82 版本;<br>
git 的 1.7 或更高版本;<br>
Java 1.7 版本<br><br>
=== JDK 的安装 ===
下面给出的是 jdk1.6 的安装方法,安装 jdk1.7 用的是同样的方法。<br>
* 网上下载并安装 JDK,下载得到 jdk-6u31-linux-x64.bin<br>
* 修改 jdk-6u31-linux-x64.bin 的权限,之前的没有可执行权限<br>
* $ ./jdk-6u31-linux-x64.bin<br>
之后生成一个文件夹<br>
[[Image:WinPlus-129.png]]<br><br>
* 终端输入<br>
注意 JAVA_HOME 是当前目录名字,根据自己存放目录填写<br>
[[Image:WinPlus-130.png]]<br><br>
$ export JAVA_HOME=*/jdk1.6.0_31<br>
$ export PATH=$PATH:/$JAVA_HOME/bin<br>
$ export CLASSPATH=.:$JAVA_HOME/lib<br>
$ export JRE_HOME=$JAVA_HOME/jre<br><br>
[[Image:WinPlus-131.png]]<br><br>
* 命令行输入java 按下tab看是否能自动补全(java),能说明成功安装确认java的版本是不是 1.7<br><br>
=== 安装平台支持软件 ===
$ sudo apt-get install git gnupg flex bison gperf build-essential \ <br>
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ <br>
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ <br>
libgl1-mesa-dev g++-multilib mingw32 tofrodos \<br>
python-markdown libxml2-utils xsltproc zlib1g-dev:i386<br>
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so<br>
=== 下载Android 源码 ===
下载链接地址: http://www.orangepi.cn/downloadresourcescn<br>
解压之后得到这两个目录<br>
[[Image:WinPlus-132.png]]<br><br>
=== 编译工具链的安装 ===
编译工具链已经集成在 Android SDK 中<br>
工具链位于 Android SDK 中的 lichee/brandy/gcc-linaro/(已存在)<br><br>
[[Image:WinPlus-133.png]]<br><br>
=== Lichee 源码的编译 ===
解压之后的压缩包有 android 和 lichee,进入 lichee 目录下<br>
$ cd lichee<br>
$ ./build.sh lunch<br>
选择 sun50iw1p1,参照上面 linux 的编译方法编译成功的打印信息<br><br>
[[Image:WinPlus-134.png]]<br><br>
=== Android 源码编译 ===
命令行输入<br>
$ cd android<br>
$ source ./build/envsetup.sh<br><br>
[[Image:WinPlus-135.png]]<br><br>
$ lunch tulip_p1-eng #选择方案号<br><br>
[[Image:WinPlus-136.png]]<br><br>[[Image:WinPlus-137.png]]<br><br>
$ extract-bsp #拷贝内核及驱动模块<br>
$ make #后面的数值为同时编译的进程,依赖于主机的配置<br>
$ pack #打包生成固件<br>
$ cd */lichee/tools/pack/<br><br>
== 使用工程配置化文件 ==
=== sys_config.fex 简介 ===