打开主菜单

Wiki-Orange Pi β

更改

Orange Pi Win Plus

添加16,094字节, 2022年6月30日 (四) 10:51
下载 Orange Pi Win/Win Plus用户手册
iv 确认插入的TF卡盘符和选择的盘符一致<br>
v 点击“格式化”按钮<br>
c.从下载页面下载操作系统镜像文件,页面地址如下:<br> '''http://www.orangepi.cn/downloadresourcescnhtml/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''<br>
d.解压下载的文件(除Android系统外的系统可用该方法来烧写,Android系统需要用其他的模式来烧写)<br>
e.右键单击下载的文件,选择 “解压文件”写入镜像文件到TF卡i 下载镜像写入工具,例如 Win32Diskimager,下载页面: <br> http://sourceforge.net/projects/Win32diskimager/files/Archive/<br>
ii选择已经解压的镜像文件路径<br>
[[Image:winPlus-31.png]]<br><br>
FAT32 格式(根据你的 TF 卡盘符来替换 x )<br>
c.从下载页面下载操作系统镜像文件,页面地址如下:<br>
'''http://www.orangepi.cn/downloadresourcescnhtml/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''<br>
d.解压下载的文件右键单击下载的文件,选择 “解压文件”<br>
e.写入镜像文件到 TF 卡<br>
3)'''<big>使用工具 PhoenixCard 工具将Android 系统镜像写入 TF 卡</big>'''<br>
Android 系统镜像文件不能在 Linux 下使用 dd 命令或者在 Window 用 Win32 Diskimager 工具来写入 TF 卡。需要使用工具 PhoenixCard 来写入。<br>
a.下载 Android 系统和 PhoenixCard 烧写工具PhoenixCard 烧写工具PhoenixCard 从下面网页中下载:<br>
'''http://pan.baidu.com/share/link?shareid=2785461830&uk=1077680202'''<br>
Android 系统从下面的网页中下载:<br>
'''http://www.orangepi.cn/downloadresourcescnhtml/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''
b.格式化 TF 卡
[[Image:winPlus-32.png]]<br><br>
Orange pi 在加电开机前如果已连接网线,则系统启动后自动获取 IP 地址,如果没有连接网线,或是其它网络问题,则会导致获取 IP 地址失败,同时系统启动会因此等待一小段时间。<br>
连接上网络之后应该是绿灯常亮,黄灯闪烁。要确定烧录的镜像是该板子的, 因为有些网卡是百兆网口(pc,one),有些网口是千兆(PC Plus),不能混用。<br><br>
百兆网卡用的是芯片内部的数据线(internal phy),配置如下: 2 表示 internal phy<br><br>
[[Image:winPlus-45.png]]<br><br>
千兆网卡用外部的千兆网卡芯片,用的是 external phy 1 表示 external phy<br><br>
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.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''
 
下载完毕后先进行分卷压缩再进行解压,解压之后将可获得以下目录:<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>
到官方网站上下载镜像文件:<br>
'''http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''<br><br>
[[Image:Xiazai3.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 简介 ===
配置硬件:sys_config.fex<br>
sys_config.fex 是被全志SOC 内核驱动或LiveSuit 使用的针对特定目标板的二进制配置文件,包含如何设置基于目标版的各种外设,端口,I/O 针脚信息。<br>
对于 OrangePi ,其工程化配置文档的位置是: lichee/tools/pack/chips/sun50iw1p1/configs/tulip-p1/sys_config.fex<br>
将文档拷贝到 /lichee 目录下,使用命令<br>
$ cd ./lichee<br>
$ cp ./tools/pack/chips/sun50iw1p1/configs/tulip-p1/sys_config.fex ./<br>
用户可根据 sysconfig1.fex_manul_linux_BSP_v0.4.doc 文件对 sys_config.fex进行个人化配置.<br>
sysconfig1.fex_manul_linux_BSP_v0.4.doc 的目录为 /lichee/buildroot/docs<br>
 
=== 例程 ===
修改 sys_config,重新生成 OrangePiA64.dtb 并替换,使用官网 github 上的编译系统来进行更新比较快速,方法参照 Linux 编译这一章节。<br>
电容屏(capacitor tp)<br><br>
{| class="wikitable" style="width:800px; line-height:30px;"
|-
! 配置项 !! 配置项含义
|-
| ctp_used=xx || 该选项为是否开启电容触摸,支持的话置 1,反之置 0
|-
| ctp_name =xx || 用于指明方案采用的触控方案,目前可选"ft5x_ts"或"Goodix-TS"
|-
| ctp_twi_id=xx || 用于选择 i2c adapter, 可选 0,2
|-
| ctp_twi_addr =xx || 指明 i2c 设备地址,与具体硬件相关
|-
| ctp_screen_max_x=xx || 触摸板的 x 轴最大坐标
|-
| ctp_screen_max_y=xx || 触摸板的 y 轴最大坐标
|-
| ctp_revert_x_flag=xx || 是否需要翻转 x 坐标,需要则置 1,反之置 0
|-
| ctp_revert_y_flag=xx || 是否需要翻转 y 坐标,需要则置 1,反之置 0
|-
| ctp_int_port=xx || 电容屏中断信号的 GPIO 配置
|-
| ctp_wakeup=xx || 电容屏唤醒信号的 GPIO 配置
|-
| ctp_io_port=xx || 电容屏 io 信号,目前与中断信号公用管脚
|}
<br>
 
配置举例:<br>
ctp_used = 1<br>
ctp_name = "ft5x_ts"<br>
ctp_twi_id = 2<br>
ctp_twi_addr = 0x70<br>
ctp_screen_max_x = 800<br>
ctp_screen_max_y = 480<br>
ctp_revert_x_flag = 0<br>
ctp_revert_y_flag = 0<br>
ctp_int_port = port:PH21<6><default><br>
ctp_wakeup = port:PB13<1><default><default><1><br>
ctp_io_port = port:PH21<0><default><br><br>
 
注意事项:<br>
若要支持新的电容触控 ic, 在原有电容触控 ic 的代码基础上,须结合 A10 bsp 层的配置情况,作相应修改。具体说来,<br>
1)在 sys_config 中:ctp_twi_id 应与硬件连接一致,<br>
2)在驱动部分代码中:使用的 twi 从设备名字+地址,应与 sys_config 中的 ctp_name, ctp_twi_addr 配置一致。<br>
同时,sysconfig 中的其他子键也要正确配置,在程序中,要对这些配置进行相应的处理
 
== OrangePi 驱动程序开发 ==
为帮助开发者更加熟悉 OrangePi,本手册主要描述如何在开发板上使用简单设备驱动模块和应用程序。<br>
'''需要硬件''':OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡<br>
 
=== 设备驱动和应用程序的编写 ===
'''1)应用程序(app.c):'''<br>
[[Image:I96-45.png]]<br><br>
'''2)驱动程序(OrangePi_misc.c)'''<br>
[[Image:I96-46.png]]<br><br>[[Image:I96-47.png]]<br><br>
 
=== 设备驱动的编译方法 ===
OrangePi_misc.c 拷贝到源码目录下*/lichee/linux-3.10/driver/misc<br>
[[Image:WinPlus-101.png]]<br><br>
进入*/lichee/linux-3.10/drivers/misc/,并修改makefile<br>
修改当前文件的Makefile(如下图所示)<br><br>
[[Image:I96-48.png]]<br><br>
和Makefile同级的文件夹下有Kconfig,每个Kconfig分别描述了所属目录源文件 相关的内核配置菜单,在内核配置make menuconfig时候,从Kconfig中读取配置菜单, <br>
用户配置后保存到.config中。在内核编译时,主Makefile调用这个.config,就知道用户对内核的配置情况。<br>
所以Kconfig就是对应着内核的配置菜单。加入要添加新的驱动到内核源码中, 可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就可以在menuconfig里面选择我们驱动是否被编译。<br><br>
[[Image:I96-49.png]]<br><br>
回到源码目录下<br><br>
[[Image:WinPlus-103.png]]<br><br>
$ ./build.sh<br>
编译内核,之后会在 lichee/linux-3.10/output/lib/modules/3.10.65下面产生一个 orangepi_misc.ko 文件:<br><br>
[[Image:WinPlus-104.png]]<br><br>
能发现在*/lichee/linux-3.10/output/lib/modules/3.10.65/产生一个.ko文件,这就是刚刚的OrangePi_misc.c经过编译之后产生的模块。<br>
插上U 盘(注意此时SD 卡已经烧好镜像) 如果此时SD 卡挂载到系统的/dev/sdb 目录下,SD 将会有两个子挂载点,分别为 /dev/sdb1 和 /dev/sdb2。<br>
SD 卡的两个分区会自动挂载到 PC 上的 /media/ 目录下,第一个分区是 boot 分区,第二个分区为 rootfs 分区。<br><br>
[[Image:WinPlus-105.png]]<br><br>
把OrangePi_misc.ko文件复制到/media/*/lib/modules/3.10.65 里 $ cp OrangePi_misc.ko /media/*/lib/modules/3.10.65
 
=== 交叉编译器编译应用程序 ===
以arm-linux-gnueabihf-gcc为例子讲述如何安装变差编译器。首先查询是否有下面这个交叉编译器,没有下载安装<br>
$ arm-linux-gnueabihf-gcc -v<br>
[[Image:WinPlus-106.png]]<br><br>
编译应用程序,发现所需要的交叉编译器是arm-linux-gnueabihf-gcc,网上下载并安装<br><br>
[[Image:WinPlus-107.png]]<br><br>
解压并进入解压之后的目录<br><br>
[[Image:WinPlus-108.png]]<br><br>
进入 bin 目录下,查看内容<br><br>
[[Image:WinPlus-109.png]]<br><br>
pwd显示该路径,并将这个路径倒到全局<br><br>
[[Image:WinPlus-110.png]]<br><br>
$ ll /etc/environment 发现该文件只能读,需要<br>
$ chmod 755 /etc/environment 修改权限<br><br>
[[Image:WinPlus-111.png]]<br><br>
把路径加入全局环境变量中<br><br>
[[Image:WinPlus-112.png]]<br><br>
有了交叉编译器,编译应用程序 $ arm-linux-gnueabihf-gcc app.c –o aq<br><br>
之后在目录下产生一个aq的应用程序,将应用程序aq复制到开发板文件系统(rootfs的/home/orangepi/下)<br>
$ cp aq /media/*/home/orangepi/<br><br>
 
=== 驱动和程序的运行方式 ===
将卡取下,插入开发板,上电开机。<br>
首先要切换成root用户,开发板下加载模块驱动模块<br>
$ insmod /lib/modules/Orangepi_misc.ko<br>
$ lsmod 看下是否加载上<br><br>
[[Image:WinPlus-113.png]]<br><br>
$ ll /dev/orangepimisc(杂项设备自动生成设备文件,具体看驱动代码)<br><br>
[[Image:WinPlus-114.png]]<br><br>
执行应用程序(注意应用程序的用法,具体看代码)<br>
$ ./aq /dev/orangepimisc <br><br>
 
== 串口调试工具介绍 ==
需要硬件:OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡<br><br>[[Image:WinPlus-101.png]]<br><br>TTL 转 USB 线<br><br>[[Image:2GIoT-53.png]]<br><br>=== 基于Windows 平台的使用 基于Windows平台的使用 ===在使用 OrangePi 做项目开发过程中,为了获得更多的调试信息,OrangePi 默认支持串口信息调试。对于开发者而言,只需准备上面提到的材料,即可简单的获得串口调试信息。<br>不同的上位机使用的串口调试工具大同小异,基本可以参考下文的方法进行部署。使用 Windows 平台进行串口调试的工具很多,通常使用的工具是 putty。<br>本节以 putty 作为例子进行部署讲解。<br><br> '''1)Windows下USB驱动安装'''<br>* 目前最新版的驱动PL2303_Prolific_DriverInstaller_v130.zip,下载解压。<br>[[Image:I96-62.png]]<br><br>* 以管理员身份选择应用程序安装<br>[[Image:I96-63.png]]<br><br>* 等待安装完成<br>[[Image:I96-64.png]]<br><br> '''2)Windows下Putty安装'''<br>* 下载 putty 安装包<br>* 等待安装完成<br>[[Image:I96-65.png]]<br><br>* 等待安装完成<br>[[Image:I96-66.png]]<br><br>* 解压安装<br>* 安装好之后打开程序如下图所示<br>* 等待安装完成<br>[[Image:I96-67.png]]<br><br> '''3)调试的连接方式'''<br><br>使用 TTL 转串口线,一端连接 OrangePi,另一端连接 PC<br><br>'''4)设备信息的获取'''<br><br>* 开始菜单选择控制面板<br>[[Image:I96-69.png]]<br><br>* 点击设备管理器,查看端口号<br>[[Image:I96-70.png]]<br><br>* Putty配置<br>[[Image:I96-71.png]]<br><br>串行口设置成相应的端口号(COM5),速度设置成 921600<br>'''6)调试串口'''<br>OrangePi 上电开机,串口自动打印串口 log<br>[[Image:I96-72.png]]<br><br> === 基于Linux 平台的使用 Linux平台下的操作 ===使用Linux平台进行串口调试工具有minicom和kermit。本文以kermit作为例子进行讲解。<br>'''1)Kermit 安装'''* 使用命令进行安装:<br>$ sudo apt-get install ckermit<br>[[Image:I96-73.png]]<br><br>* 配置 kermit<br>$ sudo vi /etc/kermit/kermrc<br>[[Image:I96-74.png]]<br><br>* 添加行:<br>set line /dev/ttyUSB1<br>set speed 921600<br>set carrier-watch off set handshake none<br>set flow-control none<br>robust<br>set file type bin<br>set file name lit<br>set rec pack 1000<br>set send pack 1000<br>set window 5<br><br>[[Image:I96-75.png]]<br><br>'''2)调试的连接方式'''<br><br>使用 TTL 转串口线,一端连接 Orange Pi,另一端连接 PC<br><br>'''3)设备信息的获取'''<br>$ ls /dev/ (在 PC 终端输入命令,查询 TTL 转串口线的设备号)<br>[[Image:I96-77.png]]<br> a.从图中可以看出,“TTL 转串口”线被识别为 “ttyUSB0”,配置 /ect/kermit/kermitc文件,更新串口信息。 $ sudo vi /etc/kermit/kermitc<br> b.将 setline 的值设置为 /dev/ttyUSB0[[Image:I96-78.png]]<br><br>'''4)开始调试串口'''<br> a.在上位机终端输入命令,进入 kermit 模式: $ sudo kermit –c[[Image:I96-79.png]]<br><br> b.Orange Pi 上电开机,串口自动打印串口 log,登录密码为 root/orangepi 和orangepi/orangepi<br> == 下载 Orange Pi Win/Win Plus用户手册 ==<br> 更多关于Orange Pi Win/Win Plus的使用信息,请查看 [http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html Orange Pi Win/Win Plus 用户手册] (下载-产品使用说明书)<br><br>
8,460
个编辑