“Orange Pi Win Plus”的版本间的差异

来自Wiki-Orange Pi
跳转至: 导航搜索
下载 Orange Pi Win/Win Plus用户手册
 
(未显示同一用户的11个中间版本)
第448行: 第448行:
 
  iv 确认插入的TF卡盘符和选择的盘符一致<br>
 
  iv 确认插入的TF卡盘符和选择的盘符一致<br>
 
  v 点击“格式化”按钮<br>
 
  v 点击“格式化”按钮<br>
  c.从下载页面下载操作系统镜像文件,页面地址如下:
+
  c.从下载页面下载操作系统镜像文件,页面地址如下:<br>
http://www.orangepi.cn/downloadresourcescn/<br>
+
'''http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''<br>
 
  d.解压下载的文件(除Android系统外的系统可用该方法来烧写,Android系统需要用其他的模式来烧写)<br>
 
  d.解压下载的文件(除Android系统外的系统可用该方法来烧写,Android系统需要用其他的模式来烧写)<br>
  e.右键单击下载的文件,选择 “解压文件”写入镜像文件到TF卡i 下载镜像写入工具,例如 Win32Diskimager,下载页面:  
+
  e.右键单击下载的文件,选择 “解压文件”写入镜像文件到TF卡i 下载镜像写入工具,例如 Win32Diskimager,下载页面: <br>
http://sourceforge.net/projects/Win32diskimager/files/Archive/<br>
+
http://sourceforge.net/projects/Win32diskimager/files/Archive/<br>
 
  ii选择已经解压的镜像文件路径<br>
 
  ii选择已经解压的镜像文件路径<br>
 
[[Image:winPlus-31.png]]<br><br>
 
[[Image:winPlus-31.png]]<br><br>
第466行: 第466行:
 
FAT32 格式(根据你的 TF 卡盘符来替换 x )<br>
 
FAT32 格式(根据你的 TF 卡盘符来替换 x )<br>
 
  c.从下载页面下载操作系统镜像文件,页面地址如下:<br>
 
  c.从下载页面下载操作系统镜像文件,页面地址如下:<br>
'''http://www.orangepi.cn/downloadresourcescn/'''<br>
+
'''http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''<br>
 
  d.解压下载的文件右键单击下载的文件,选择 “解压文件”<br>
 
  d.解压下载的文件右键单击下载的文件,选择 “解压文件”<br>
 
  e.写入镜像文件到 TF 卡<br>
 
  e.写入镜像文件到 TF 卡<br>
第477行: 第477行:
 
3)'''<big>使用工具 PhoenixCard 工具将Android 系统镜像写入 TF 卡</big>'''<br>
 
3)'''<big>使用工具 PhoenixCard 工具将Android 系统镜像写入 TF 卡</big>'''<br>
 
Android 系统镜像文件不能在 Linux 下使用 dd 命令或者在 Window 用 Win32 Diskimager 工具来写入 TF 卡。需要使用工具 PhoenixCard 来写入。<br>
 
Android 系统镜像文件不能在 Linux 下使用 dd 命令或者在 Window 用 Win32 Diskimager 工具来写入 TF 卡。需要使用工具 PhoenixCard 来写入。<br>
  a.下载 Android 系统和 PhoenixCard 烧写工具
+
  a.下载 Android 系统和 PhoenixCard 烧写工具PhoenixCard 从下面网页中下载:<br>
PhoenixCard 从下面网页中下载:<br>
 
 
'''http://pan.baidu.com/share/link?shareid=2785461830&uk=1077680202'''<br>
 
'''http://pan.baidu.com/share/link?shareid=2785461830&uk=1077680202'''<br>
 
Android 系统从下面的网页中下载:<br>
 
Android 系统从下面的网页中下载:<br>
'''http://www.orangepi.cn/downloadresourcescn/'''
+
'''http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html'''
 
  b.格式化 TF 卡
 
  b.格式化 TF 卡
 
[[Image:winPlus-32.png]]<br><br>
 
[[Image:winPlus-32.png]]<br><br>
第524行: 第523行:
 
=== 其他设置 ===
 
=== 其他设置 ===
 
<big>'''1)扩展TF 卡'''</big><br>
 
<big>'''1)扩展TF 卡'''</big><br>
做好系统运行卡之后立即进行文件系统 rootfs 分区的扩展,这将能大大提升系统的性能,避免空间不足带来的各种繁琐问题。<br><br>
+
做好系统运行卡之后立即进行文件系统 rootfs 分区的扩展,这将能大大提升系统的性能,避免空间不足带来的各种繁琐问题。<br>
 
  a.方法 1:<br>
 
  a.方法 1:<br>
 
   在 PC 机上扩展 TF 卡 rootfs 文件系统分区:<br>
 
   在 PC 机上扩展 TF 卡 rootfs 文件系统分区:<br>
 
   选择指定盘符,右键选择相应盘符,选择 “更改大小”调整成自己想要的大小, 单击“调整大小”,关闭对话框单击 “应用全部操作”,选择应用,完成扩容操作。
 
   选择指定盘符,右键选择相应盘符,选择 “更改大小”调整成自己想要的大小, 单击“调整大小”,关闭对话框单击 “应用全部操作”,选择应用,完成扩容操作。
 
  b.方法 2:<br>
 
  b.方法 2:<br>
   进入系统,通过 shell 扩容未分区之前<br>
+
   进入系统,通过 shell 扩容未分区之前
 
[[Image:winPlus-42.png]]<br><br>
 
[[Image:winPlus-42.png]]<br><br>
 
进入系统后使用 resize_rootfs.sh 扩容:<br><br>
 
进入系统后使用 resize_rootfs.sh 扩容:<br><br>
第538行: 第537行:
 
Orange pi 在加电开机前如果已连接网线,则系统启动后自动获取 IP 地址,如果没有连接网线,或是其它网络问题,则会导致获取 IP 地址失败,同时系统启动会因此等待一小段时间。<br>
 
Orange pi 在加电开机前如果已连接网线,则系统启动后自动获取 IP 地址,如果没有连接网线,或是其它网络问题,则会导致获取 IP 地址失败,同时系统启动会因此等待一小段时间。<br>
 
连接上网络之后应该是绿灯常亮,黄灯闪烁。要确定烧录的镜像是该板子的, 因为有些网卡是百兆网口(pc,one),有些网口是千兆(PC Plus),不能混用。<br><br>
 
连接上网络之后应该是绿灯常亮,黄灯闪烁。要确定烧录的镜像是该板子的, 因为有些网卡是百兆网口(pc,one),有些网口是千兆(PC Plus),不能混用。<br><br>
百兆网卡用的是芯片内部的数据线(internal phy),配置如下: 2 表示 internal phy
+
百兆网卡用的是芯片内部的数据线(internal phy),配置如下: 2 表示 internal phy<br><br>
 
[[Image:winPlus-45.png]]<br><br>
 
[[Image:winPlus-45.png]]<br><br>
 
千兆网卡用外部的千兆网卡芯片,用的是 external phy 1 表示 external phy<br><br>
 
千兆网卡用外部的千兆网卡芯片,用的是 external phy 1 表示 external phy<br><br>
第552行: 第551行:
 
<big>'''4)HDMI 或者 3.5mm 输出声音'''</big><br><br>
 
<big>'''4)HDMI 或者 3.5mm 输出声音'''</big><br><br>
 
  a.镜像默认从 hdmi 输出声音,用 alsamixer 可以查看并切换<br>
 
  a.镜像默认从 hdmi 输出声音,用 alsamixer 可以查看并切换<br>
ls /etc/asound.conf 里面 card 代表卡号,device 代表设备号。aplay -l 可以查看系统加载的声卡个数详细信息。cat /proc/asound/cards 也可以查看<br>
+
ls /etc/asound.conf 里面 card 代表卡号,device 代表设备号。aplay -l 可以查看系统加载的声卡个数详细信息。cat /proc/asound/cards 也可以查看<br>
用 alsamixer 切换声卡之后,可以使用alsactl store -f /var/lib/alsa/asound.state 来保存修改的参数<br>
+
用 alsamixer 切换声卡之后,可以使用alsactl store -f /var/lib/alsa/asound.state 来保存修改的参数<br>
3.5mm 接口输出需要修改文件系统上的配置文件/etc/asound.conf.将 card1 修改成 card0 即可,或者用amixer 修改,默认的已经配置好。或者直接使用图形界面的播放器选择声道的切换。
+
3.5mm 接口输出需要修改文件系统上的配置文件/etc/asound.conf.将 card1 修改成 card0 即可,或者用amixer 修改,默认的已经配置好。或者直接使用图形界面的播放器选择声道的切换。
 +
 
  b.图形界面切换方式:<br>
 
  b.图形界面切换方式:<br>
打开 smplayer,选择 options 中的 preferences,选择 alsa(audiocodec),HDMI 和audiocodec 同时只能打开一个。
+
  打开 smplayer,选择 options 中的 preferences,选择 alsa(audiocodec),HDMI 和audiocodec 同时只能打开一个。
 +
 
 
  c.如何使用 mic 录音<br>
 
  c.如何使用 mic 录音<br>
arecord -d 5 -f cd -t wav 123.wav<br>
+
  arecord -d 5 -f cd -t wav 123.wav<br>
录音之后,用aplay 123.wav 放音
+
  录音之后,用aplay 123.wav 放音
 
 
=== 通用软件配置 ===
 
  
 
== Linux 内核源码编译 ==
 
== 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 源码编译 ==
 
== 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 的安装 ===
 
=== 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 源码 ===
 
=== 下载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 源码的编译 ===
 
=== Lichee 源码的编译 ===
 +
解压之后的压缩包有 android 和 lichee,进入 lichee 目录下<br>
 +
$ cd lichee<br>
 +
$ ./build.sh lunch<br>
 +
选择 sun50iw1p1,参照上面 linux 的编译方法编译成功的打印信息<br><br>
 +
[[Image:WinPlus-134.png]]<br><br>
 +
 
=== Android 源码编译 ===
 
=== 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 简介 ===
 +
配置硬件: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 驱动程序开发 ==
 +
为帮助开发者更加熟悉 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>
 +
 
== 串口调试工具介绍 ==
 
== 串口调试工具介绍 ==
=== 基于Windows 平台的使用 ===
+
需要硬件:OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡<br><br>
=== 基于Linux 平台的使用 ===
+
[[Image:WinPlus-101.png]]<br><br>
 +
TTL 转 USB 线<br><br>
 +
[[Image:2GIoT-53.png]]<br><br>
 +
=== 基于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平台进行串口调试工具有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>

2022年6月30日 (四) 10:51的最新版本

介绍

什么是 Orange Pi Win/Win Plus

香橙派是一款开源的单板卡片电脑,新一代的 arm 开发板,它可以运行Android 5.1、Ubuntu、Debian 等操作系统,兼容树莓派。香橙派单板电脑使用全志A64 系统级芯片,同时拥有 1GB(Win)/2GB(Win Plus) DDR3 内存。

Orange Pi Win/Win Plus 的用途

我们可以用它搭建:

  • 一台计算机
  • 一个无线网络服务器
  • 游戏机
  • 音乐播放器
  • 高清视频播放器
  • 扬声器
  • Android
  • Scratch
  • ......

还有更多的其他功能,因为 Orange Pi Win/Win Plus 是开源的。

Orange Pi Win/Win Plus 是为谁设计的

Orange Pi Win/Win Plus 不仅仅是一款消费品,同时也是给任何想用技术来进行创作创新的人设计的。它是一款非常简单、有趣、实用的工具,你可以用它去打造你身边的世界。

Orange Pi Win/Win Plus 的硬件特性

CPU 全志 A64 芯片,4 核 64 位 Cortex-A53
GPU Mali400MP2 GPU
Support OpenGL ES 2.0 and OpenVG1.1
内存 1GB/2GB DDR3 (与 GPU 共享)
板载存储 TF 卡(最大 32GB)/ 2MB Flash 存储器 / emmc(默认空贴)
板载网络 100/1000M 以太网 RJ45
板载 wifi+蓝牙 AP6212,IEEE802.11 b/g/n,BT4.2
视频输入 具有 CSI 接口的摄像头模块
音频输入 MIC
视频输出 HDMI, mips LCD
音频输出 3.5 mm 音频口和 HDMI
电源 DC 输入,USB OTG 供电,电池供电
USB 2.0 端口 4 个 USB 2.0 HOST, 1 个 USB 2.0 OTG
Low-level peripherals 40 pin 接头, 兼容树莓派
GPIO(1x3)口 UART, ground.
LED灯 电源指示灯和状态指示灯
按键 电源(SW2),复位键(SW4)
支持的操作系统 Android, Ubuntu, Debian 等操作系统,兼容树莓派.
外观规格介绍
产品尺寸 93mm×60mm
重量 79g

Orange Pi Win顶层视图:

WinPlus-1.png

Orange Pi Win底层视图:

WinPlus-2.png

Orange Pi Win接口详情图:

WinPlus-3.png
WinPlus-4.png

Orange Pi Win Plus顶层视图:

WinPlus-5.png

Orange Pi Win Plus底层视图:

WinPlus-6.png

Orange Pi Win Plus接口详情图:

WinPlus-7.png

WinPlus-8.png

GPIO 规格

Orange Pi 40-pin GPIO
香橙派开发板有 40 pin GPIO 接头用来匹配 Raspberry Pi(树莓派)的 Model A和 Model B。
下图是香橙派开发板的 GPIO 引脚线:
WinPlus-9.png

OrangePi(A64)    
CON1-P01 VCC3V3-EXT  
CON1-P02 VCC5V-EXT  
CON1-P03 TWI1-SDA PH3
CON1-P04 VCC-5V  
CON1-P05 TWI1-SCK PH2
CON1-P06 GND  
CON1-P07 S_PWM PL10
CON1-P08 S_UART_TX PL2
CON1-P09 GND  
CON1-P10 S_UART_RX PL3
CON1-P11 UART3_RX PH5
CON1-P12 PD4 PD4
CON1-P13 UART3_TX PH4
CON1-P14 GND  
CON1-P15 UART3_CTS PH7
CON1-P16 PL9 PL9
CON1-P17 VCC3V3-EXT  
CON1-P18 PC4 PC4
CON1-P19 SPI1_MOSI PD2
CON1-P20 GND  
CON1-P21 SPI1_MISO PD3
CON1-P22 UART3_RTS PH6
CON1-P23 SPI1_CLK PD1
CON1-P24 SPI1_CS0 PD0
CON1-P25 GND  
CON1-P26 PD6 PD6
CON1-P27 TWI2-SDA PE15
CON1-P28 TWI2-SCK PE14
CON1-P29 PB4 PB4
CON1-P30 GND  
CON1-P31 PB5 PB5
CON1-P32 UART2_RTS PB2
CON1-P33 PB6 PB6
CON1-P34 GND  
CON1-P35 PB7 PB7
CON1-P36 UART2_CTS PB3
CON1-P37 PD5 PD5
CON1-P38 UART2_TX PB0
CON1-P39 GND  
CON1-P40 UART2_RX PB1

CSI 摄像头接口规格

CSI 摄像头接口是一个可以通过适当的信号引脚映射来连接外部摄像头模块的 24 pin FPC 接口。CSI 接口的引脚定义如下所示。在香橙派开发板上标有“CON2”的就是摄像头接口。

WinPlus-28.png

OrangePi-CSI

CON1-P01 NC  
CON1-P02 GND  
CON1-P03 TWI2-SDA PE13
CON1-P04 VCC-CSI  
CON1-P05 TWI2-SCK PE12
CON1-P06 CSI-RESET#  
CON1-P07 CSI-VSYNC PE3
CON1-P08 CSI-STBY-EN PE15
CON1-P09 CSI-HSYNC  
CON1-P10 VDD1V8-CSI
CON1-P11 VCC-CSI
CON1-P12 CSI-D7 PE11
CON1-P13 CSI-MCLK PE1
CON1-P14 CSI-D6 PE10
CON1-P15 GND
CON1-P16 CSI-D5 PE9
CON1-P17 CSI-PCLK PE0
CON1-P18 CSI-D4 PE8
CON1-P19 CSI-D0 PE4
CON1-P20 CSI-D3 PE7
CON1-P21 CSI-D1 PE5
CON1-P22 CSI-D2 PE6
CON1-P23 GND
CON1-P24 AFVCC-CSI


快速入门

按照如下步骤,你可以在很短的时间内配置并使用你的香橙派开发板。启动你的香橙派开发板需要完成以下几步。

步骤1: 准备需要的配件

第一次使用香橙派开发板,你至少需要准备如下的一些配件:

编号 项目 最低要求及说明
1 TF卡 最小 8GB容量,class 10 级,建议使用品牌TF卡
2 标准HDMI转HDMI线
标准HDMI转DVI线
标准HDMI转HDMI线用于连接 HD TV 或者HD显示器
标准HDMI转DVI线用于接DVI显示器
3 键盘鼠标 任何标准usb接口的键盘鼠标都可以。键盘和鼠标可能会需要较大的功率,所以可能需要使用一个 USB 集线器。
4 网线(可选) 网络属于可选项,它能够更加方便的更新和安装你的香橙派开发板上的软件。
5 电源适配器 至少 5V/2A 高品质电源适配器,OTG 尽量不用作电源输入。
6 音频线(可选) 你可以选择一个 3.5 mm 接口的音频线来体验立体音效。

WinPlus-29.png

HDMI 转 HDMI	            HDMI 转 DVI	                TF卡	             电源适配器

步骤2: 准备板子启动需要的 TF 卡

为了能够正常使用香橙派开发板,必须先在 TF 卡上安装操作系统。

1)基于Windows 平台将linux 操作系统写入TF 卡

a.把TF卡插入电脑中,TF卡的容量必须比操作系统镜像大,通常需要 8GB或更大的容量。
b.格式化TF卡
i 下载TF卡格式化工具,例如TF Formatter,下载地址

https://www.sdcard.org/downloads/formatter_4/eula_Windows/

ii 解压下载的文件,并运行 setup.exe
iii 在“选项设置”选项里, 设置“格式化类型”选项为快速格式化,“逻辑大小调整”选项为“开启(ON)”

WinPlus-30.png

iv 确认插入的TF卡盘符和选择的盘符一致
v 点击“格式化”按钮
c.从下载页面下载操作系统镜像文件,页面地址如下:
http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html
d.解压下载的文件(除Android系统外的系统可用该方法来烧写,Android系统需要用其他的模式来烧写)
e.右键单击下载的文件,选择 “解压文件”写入镜像文件到TF卡i 下载镜像写入工具,例如 Win32Diskimager,下载页面:
http://sourceforge.net/projects/Win32diskimager/files/Archive/
ii选择已经解压的镜像文件路径

WinPlus-31.png

iii点击 “Write” 按钮,耐心等待镜像写入
iv镜像写入完成后,点击“Exit”按钮

2)基于Linux 平台将linux 操作系统写入TF 卡

a.把 TF 卡插入电脑,TF卡的容量必须比操作系统镜像大,通常需要 8GB或更大
b.格式化 TF 卡
i运行 fdisk –l 命令确认 TF 卡的盘符
ii运行 umount /dev/sdx 卸载 TF 卡的所有分区
iii运行 sudo fdisk /dev/sdx 命令. 使用 o 命令去删除 TF 卡的所有分区,然后使用 n 命令去添加一个新的分区,最后使用 w 命令保存退出
iv运行 sudo mkfs.vfat /dev/sdx1 命令去格式化刚生成的 TF 卡分区为

FAT32 格式(根据你的 TF 卡盘符来替换 x )

c.从下载页面下载操作系统镜像文件,页面地址如下:
http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html
d.解压下载的文件右键单击下载的文件,选择 “解压文件”
e.写入镜像文件到 TF 卡
i运行 sudo fdisk –l 命令确认TF卡的盘符
ii确认镜像文件的hash key或者是md5 和下载页面提供的一致(可选)

sha1sum [path]/[imagename]

这将会输出一长串数字,应该和你下载的镜像页面的"SHA-1" 那一行匹配

iii运行 umount /dev/sdxx  命令卸载TF卡的所有分区
iv运行 sudo dd bs=4M if=[path]/[imagename] of=/dev/sdx 命令去写入镜像文件,耐心等待镜像写入。你可以使用 sudo pkill –USR1 –n –x dd 命令去查看烧写进度。

3)使用工具 PhoenixCard 工具将Android 系统镜像写入 TF 卡
Android 系统镜像文件不能在 Linux 下使用 dd 命令或者在 Window 用 Win32 Diskimager 工具来写入 TF 卡。需要使用工具 PhoenixCard 来写入。

a.下载 Android 系统和 PhoenixCard 烧写工具PhoenixCard 从下面网页中下载:

http://pan.baidu.com/share/link?shareid=2785461830&uk=1077680202
Android 系统从下面的网页中下载:
http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html

b.格式化 TF 卡

WinPlus-32.png

c.检查插入的 TF 卡是否与选择的盘符一致,单击“恢复卡”按钮,开始格式 TF

WinPlus-33.png
格式化 TF 卡成功后,单击“确定”按钮

d.然后开始将 Android 系统写入 TF  卡,请注意下图红色标记的地方。

WinPlus-34.png

点击“烧录”,开始写入 TF 卡,等待烧录完成。

WinPlus-35.png

Android 系统成功烧写完成后。单击“退出” 按钮。 4)Armbian 镜像写入 TF 卡

a.TF 卡插入电脑中,TF 卡的容量必须比操作系统镜像大,通常需要 8GB. 下载操作系统镜像文件,镜像下载页面地址如下: http://www.armbian.com/download/
b.烧录至 TF 卡(镜像) i下载镜像写入工具,例如 Rufus,下载页面: https://rufus.akeo.ie/

WinPlus-36.png

 ii选择已经解压的镜像文件路径。

WinPlus-37.png

 iii点击开始按钮,耐心等待镜像写入
 iv镜像写入完成后,点击“关闭”按钮。

步骤3: 启动你的香橙派开发板

1)硬件连接示意图

WinPlus-38.png

OrangePi Win/Win Plus 运行android系统

WinPlus-39.png

WinPlus-40.png

2)启动 Orangepi 开发板

a.将写好镜像的 TF 卡插入香橙派开发板 TF 卡插槽
b.板子 mips 接口和 csi 接口之间是标准 HDMI 接口。用 HDMI 线连接香橙派开发板和 HDMI TV 或者显示器.如果没有 HDMI 或者 DVI 接口的显示器, 你可以使用mips接口接LCD。将 USB 键盘和鼠标插入右边缘的 USB 接口
c.将 USB 键盘和鼠标插入右边缘的 USB 接口
d.夹在 4 个USB接口中间的是千兆网口,你可以将香橙派开发板接入有线网络
e.下边缘的最右边是电源输入接口,连接一个至少 5V/ 2A的电源适配器。比 2A 大也可以。避免使用较小功率的 GSM 手机充电器,即使上面标明了"5V 2A", 它也不一定能够输出 2A。DC电源座子下端是 4 个排针,用跳线帽短接板子边缘两个脚,表示供电方式采用DC in。如果短接另外的两个针脚,表示使用电池供电,电池接在板子背面的两个大焊点上,丝印处标注了+ -极和BAT1 的标志。

WinPlus-41.png

如果上面的步骤都很顺利的话,开发板将会在几分钟内启动。显示屏上将显示系统的图形界面。首次启动时可能会需要很长的时间,请耐心等待。往后的启动时间将会很快

步骤4:正确关闭你的香橙派开发板

  • 你可以使用界面中的关机按键来安全关闭香橙派开发板。
  • 你也可以在 shell 里面输入命令来关闭系统:

sudo halt
or
sudo shutdown –h

如果以上步骤进行顺利,你将能安全地关闭香橙派开发板,如果直接使用电源按键关闭系统可能会损坏TF卡或者是文件系统。系统关闭后可以长按 5 秒以上的电源案件进行断电。

其他设置

1)扩展TF 卡
做好系统运行卡之后立即进行文件系统 rootfs 分区的扩展,这将能大大提升系统的性能,避免空间不足带来的各种繁琐问题。

a.方法 1:
在 PC 机上扩展 TF 卡 rootfs 文件系统分区:
选择指定盘符,右键选择相应盘符,选择 “更改大小”调整成自己想要的大小, 单击“调整大小”,关闭对话框单击 “应用全部操作”,选择应用,完成扩容操作。 b.方法 2:
进入系统,通过 shell 扩容未分区之前

WinPlus-42.png

进入系统后使用 resize_rootfs.sh 扩容:

WinPlus-43.png

命令行输入:resize_rootfs.sh,系统自动分区扩容,重启系统。 df -lh 检查分区扩容是否成功


WinPlus-44.png

2)连接有线网络

Orange pi 在加电开机前如果已连接网线,则系统启动后自动获取 IP 地址,如果没有连接网线,或是其它网络问题,则会导致获取 IP 地址失败,同时系统启动会因此等待一小段时间。
连接上网络之后应该是绿灯常亮,黄灯闪烁。要确定烧录的镜像是该板子的, 因为有些网卡是百兆网口(pc,one),有些网口是千兆(PC Plus),不能混用。

百兆网卡用的是芯片内部的数据线(internal phy),配置如下: 2 表示 internal phy

WinPlus-45.png

千兆网卡用外部的千兆网卡芯片,用的是 external phy 1 表示 external phy

WinPlus-46.png

以上配置默认已经配置好,可作为了解使用。

3)vnc 和ssh 登陆系统

如果没有连接 hdmi 的条件,可以通过 vnc 或者是 ssh 远程登陆。

  • 先用串口登陆,安装 ssh, apt-get install ssh
  • 修改 ssh 配置文件/etc/ssh/sshd_config,

WinPlus-47.png

  • ifconfig 查看 ip,root 用户用 ssh 登陆

WinPlus-48.png

4)HDMI 或者 3.5mm 输出声音

a.镜像默认从 hdmi 输出声音,用 alsamixer 可以查看并切换
ls /etc/asound.conf 里面 card 代表卡号,device 代表设备号。aplay -l 可以查看系统加载的声卡个数详细信息。cat /proc/asound/cards 也可以查看
用 alsamixer 切换声卡之后,可以使用alsactl store -f /var/lib/alsa/asound.state 来保存修改的参数
3.5mm 接口输出需要修改文件系统上的配置文件/etc/asound.conf.将 card1 修改成 card0 即可,或者用amixer 修改,默认的已经配置好。或者直接使用图形界面的播放器选择声道的切换。 b.图形界面切换方式:
打开 smplayer,选择 options 中的 preferences,选择 alsa(audiocodec),HDMI 和audiocodec 同时只能打开一个。
c.如何使用 mic 录音
arecord -d 5 -f cd -t wav 123.wav
录音之后,用aplay 123.wav 放音

Linux 内核源码编译

为了支持快速工程开发,OrangePi 将工程配置选项写入到二进制文件中。系统运行时,通过读取该二进制文件来获得系统运行时的信息,这能大大简化工程开发的时间。
本手册主要描述如何使用该机制来加速客户的工程开发。
*表示通配符,实际值根据路径填写
需要硬件:OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡

WinPlus-101.png

下载源码

源代码可以在 OrangePi 官网上进行下载, 可以在官方工具找到 lichee 和android 的具体编译文档

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html

下载完毕后先进行分卷压缩再进行解压,解压之后将可获得以下目录:
WinPlus-116.png

buildroot: 工程编译脚本
brandy: boot,uboot 源码以及开源交叉编译工具 gcc-linaro linux-3.10: 内核源码
tools: 工程编译工具
build.sh: 编译脚本

项目源码的编译

第一次使用源码,需要全编整个工程。在 lichee 下使用下面命令来全编工程: 编译之前的注意事项:

a.进到 lichee 目录下,用命令:$ ls -la
b.查看 build.sh 是否有可执行权限,如果没有请修改权限 :$ chmod 755 build.sh
c.ls –la 之后如果有发现 .buildconfig 删除 $ rm –rf .buildconfig

WinPlus-117.png

使用下面命令全编工程
$ ./build.sh config
此时系统会提示芯片的选择,对于 OrangePi Win/Win Plus,选择 sun50iw1p1
此时系统会提示平台的选择,对于 OrangePi Win/Win Plus,选择 android
此时系统会提示 kernel 的选择,对于 OrangePi Win/Win Plus,选择 android 选择对应支持板子的型号,对于 OrangePi Win/Win Plus,选择 t1

WinPlus-118.png

出现此画面等待编译

WinPlus-119.png

等待十五分钟左右,编译完成。

WinPlus-120.png

内核镜像文件和库的替换

编译完成之后,将会目录下生成如下文件:
libs: lichee/out/sun50iw1p1/android/common/lib/modules/3.10.65
到官方网站上下载镜像文件:
http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Win-Plus.html

Xiazai3.png

镜像烧录:
$ sudo dd bs=4M if=*.img of=/dev/sd*
拔掉读卡器,再插一次。
此时,将 SD 卡插入到 PC 上,查看 SD 卡的挂载点(如果不知道如何获得 SD 卡的挂载点,请参考下图)。
第一个分区是 boot 分区

WinPlus-122.png

第二个分区是 rootfs 分区

WinPlus-123.png

将编译完产生的内核镜像文件拷贝到第一个分区(boot分区)
将编译完产生的lib库拷贝到第二个分区(rootfs分区)
推荐使用官网github上的编译系统

WinPlus-124.png

build.sh 执行脚本进入到编译的图形化界面
extenal 里面放的补丁和一些配置文件
kernel 内核目录
output 生成的文件
script 编译的脚本
toolchain 存放交叉编译器
uboot uboot源码
执行./build.sh,进入图形化界面,并选择Win/Win Plus

WinPlus-125.png

输入root密码

WinPlus-126.png

更新内核目录和模块

WinPlus-127.png

选择自己对应的文件目录更新uImage和modules

WinPlus-128.png

Android 源码编译

需要硬件:OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡
WinPlus-101.png

软件
Linux主机硬盘空间至少 50G(可满足一次完全编译)
Linux主机中需要:
Python 的 2.7.3 版本;
GNU Make 的 3.81-3.82 版本;
git 的 1.7 或更高版本;
Java 1.7 版本

JDK 的安装

下面给出的是 jdk1.6 的安装方法,安装 jdk1.7 用的是同样的方法。

  • 网上下载并安装 JDK,下载得到 jdk-6u31-linux-x64.bin
  • 修改 jdk-6u31-linux-x64.bin 的权限,之前的没有可执行权限
  • $ ./jdk-6u31-linux-x64.bin

之后生成一个文件夹
WinPlus-129.png

  • 终端输入

注意 JAVA_HOME 是当前目录名字,根据自己存放目录填写
WinPlus-130.png

$ export JAVA_HOME=*/jdk1.6.0_31
$ export PATH=$PATH:/$JAVA_HOME/bin
$ export CLASSPATH=.:$JAVA_HOME/lib
$ export JRE_HOME=$JAVA_HOME/jre

WinPlus-131.png

  • 命令行输入java 按下tab看是否能自动补全(java),能说明成功安装确认java的版本是不是 1.7

安装平台支持软件

$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

下载Android 源码

下载链接地址: http://www.orangepi.cn/downloadresourcescn
解压之后得到这两个目录
WinPlus-132.png

编译工具链的安装

编译工具链已经集成在 Android SDK 中
工具链位于 Android SDK 中的 lichee/brandy/gcc-linaro/(已存在)

WinPlus-133.png

Lichee 源码的编译

解压之后的压缩包有 android 和 lichee,进入 lichee 目录下
$ cd lichee
$ ./build.sh lunch
选择 sun50iw1p1,参照上面 linux 的编译方法编译成功的打印信息

WinPlus-134.png

Android 源码编译

命令行输入
$ cd android
$ source ./build/envsetup.sh

WinPlus-135.png

$ lunch tulip_p1-eng #选择方案号

WinPlus-136.png

WinPlus-137.png

$ extract-bsp #拷贝内核及驱动模块
$ make #后面的数值为同时编译的进程,依赖于主机的配置
$ pack #打包生成固件
$ cd */lichee/tools/pack/

使用工程配置化文件

sys_config.fex 简介

配置硬件:sys_config.fex
sys_config.fex 是被全志SOC 内核驱动或LiveSuit 使用的针对特定目标板的二进制配置文件,包含如何设置基于目标版的各种外设,端口,I/O 针脚信息。
对于 OrangePi ,其工程化配置文档的位置是: lichee/tools/pack/chips/sun50iw1p1/configs/tulip-p1/sys_config.fex
将文档拷贝到 /lichee 目录下,使用命令
$ cd ./lichee
$ cp ./tools/pack/chips/sun50iw1p1/configs/tulip-p1/sys_config.fex ./
用户可根据 sysconfig1.fex_manul_linux_BSP_v0.4.doc 文件对 sys_config.fex进行个人化配置.
sysconfig1.fex_manul_linux_BSP_v0.4.doc 的目录为 /lichee/buildroot/docs

例程

修改 sys_config,重新生成 OrangePiA64.dtb 并替换,使用官网 github 上的编译系统来进行更新比较快速,方法参照 Linux 编译这一章节。
电容屏(capacitor tp)

配置项 配置项含义
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 信号,目前与中断信号公用管脚


配置举例:
ctp_used = 1
ctp_name = "ft5x_ts"
ctp_twi_id = 2
ctp_twi_addr = 0x70
ctp_screen_max_x = 800
ctp_screen_max_y = 480
ctp_revert_x_flag = 0
ctp_revert_y_flag = 0
ctp_int_port = port:PH21<6><default>
ctp_wakeup = port:PB13<1><default><default><1>
ctp_io_port = port:PH21<0><default>

注意事项:
若要支持新的电容触控 ic, 在原有电容触控 ic 的代码基础上,须结合 A10 bsp 层的配置情况,作相应修改。具体说来,
1)在 sys_config 中:ctp_twi_id 应与硬件连接一致,
2)在驱动部分代码中:使用的 twi 从设备名字+地址,应与 sys_config 中的 ctp_name, ctp_twi_addr 配置一致。
同时,sysconfig 中的其他子键也要正确配置,在程序中,要对这些配置进行相应的处理

OrangePi 驱动程序开发

为帮助开发者更加熟悉 OrangePi,本手册主要描述如何在开发板上使用简单设备驱动模块和应用程序。
需要硬件:OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡

设备驱动和应用程序的编写

1)应用程序(app.c):
I96-45.png

2)驱动程序(OrangePi_misc.c)
I96-46.png

I96-47.png

设备驱动的编译方法

OrangePi_misc.c 拷贝到源码目录下*/lichee/linux-3.10/driver/misc
WinPlus-101.png

进入*/lichee/linux-3.10/drivers/misc/,并修改makefile
修改当前文件的Makefile(如下图所示)

I96-48.png

和Makefile同级的文件夹下有Kconfig,每个Kconfig分别描述了所属目录源文件 相关的内核配置菜单,在内核配置make menuconfig时候,从Kconfig中读取配置菜单,
用户配置后保存到.config中。在内核编译时,主Makefile调用这个.config,就知道用户对内核的配置情况。
所以Kconfig就是对应着内核的配置菜单。加入要添加新的驱动到内核源码中, 可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就可以在menuconfig里面选择我们驱动是否被编译。

I96-49.png

回到源码目录下

WinPlus-103.png

$ ./build.sh
编译内核,之后会在 lichee/linux-3.10/output/lib/modules/3.10.65下面产生一个 orangepi_misc.ko 文件:

WinPlus-104.png

能发现在*/lichee/linux-3.10/output/lib/modules/3.10.65/产生一个.ko文件,这就是刚刚的OrangePi_misc.c经过编译之后产生的模块。
插上U 盘(注意此时SD 卡已经烧好镜像) 如果此时SD 卡挂载到系统的/dev/sdb 目录下,SD 将会有两个子挂载点,分别为 /dev/sdb1 和 /dev/sdb2。
SD 卡的两个分区会自动挂载到 PC 上的 /media/ 目录下,第一个分区是 boot 分区,第二个分区为 rootfs 分区。

WinPlus-105.png

把OrangePi_misc.ko文件复制到/media/*/lib/modules/3.10.65 里 $ cp OrangePi_misc.ko /media/*/lib/modules/3.10.65

交叉编译器编译应用程序

以arm-linux-gnueabihf-gcc为例子讲述如何安装变差编译器。首先查询是否有下面这个交叉编译器,没有下载安装
$ arm-linux-gnueabihf-gcc -v
WinPlus-106.png

编译应用程序,发现所需要的交叉编译器是arm-linux-gnueabihf-gcc,网上下载并安装

WinPlus-107.png

解压并进入解压之后的目录

WinPlus-108.png

进入 bin 目录下,查看内容

WinPlus-109.png

pwd显示该路径,并将这个路径倒到全局

WinPlus-110.png

$ ll /etc/environment 发现该文件只能读,需要
$ chmod 755 /etc/environment 修改权限

WinPlus-111.png

把路径加入全局环境变量中

WinPlus-112.png

有了交叉编译器,编译应用程序 $ arm-linux-gnueabihf-gcc app.c –o aq

之后在目录下产生一个aq的应用程序,将应用程序aq复制到开发板文件系统(rootfs的/home/orangepi/下)
$ cp aq /media/*/home/orangepi/

驱动和程序的运行方式

将卡取下,插入开发板,上电开机。
首先要切换成root用户,开发板下加载模块驱动模块
$ insmod /lib/modules/Orangepi_misc.ko
$ lsmod 看下是否加载上

WinPlus-113.png

$ ll /dev/orangepimisc(杂项设备自动生成设备文件,具体看驱动代码)

WinPlus-114.png

执行应用程序(注意应用程序的用法,具体看代码)
$ ./aq /dev/orangepimisc

串口调试工具介绍

需要硬件:OrangePi Win/Win Plus 开发板,读卡器和一张 TF 卡

WinPlus-101.png

TTL 转 USB 线

2GIoT-53.png

基于Windows平台的使用

在使用 OrangePi 做项目开发过程中,为了获得更多的调试信息,OrangePi 默认支持串口信息调试。对于开发者而言,只需准备上面提到的材料,即可简单的获得串口调试信息。
不同的上位机使用的串口调试工具大同小异,基本可以参考下文的方法进行部署。使用 Windows 平台进行串口调试的工具很多,通常使用的工具是 putty。
本节以 putty 作为例子进行部署讲解。

1)Windows下USB驱动安装

  • 目前最新版的驱动PL2303_Prolific_DriverInstaller_v130.zip,下载解压。

I96-62.png

  • 以管理员身份选择应用程序安装

I96-63.png

  • 等待安装完成

I96-64.png

2)Windows下Putty安装

  • 下载 putty 安装包
  • 等待安装完成

I96-65.png

  • 等待安装完成

I96-66.png

  • 解压安装
  • 安装好之后打开程序如下图所示
  • 等待安装完成

I96-67.png

3)调试的连接方式

使用 TTL 转串口线,一端连接 OrangePi,另一端连接 PC

4)设备信息的获取

  • 开始菜单选择控制面板

I96-69.png

  • 点击设备管理器,查看端口号

I96-70.png

  • Putty配置

I96-71.png

串行口设置成相应的端口号(COM5),速度设置成 921600
6)调试串口
OrangePi 上电开机,串口自动打印串口 log
I96-72.png

Linux平台下的操作

使用Linux平台进行串口调试工具有minicom和kermit。本文以kermit作为例子进行讲解。
1)Kermit 安装

  • 使用命令进行安装:

$ sudo apt-get install ckermit
I96-73.png

  • 配置 kermit

$ sudo vi /etc/kermit/kermrc
I96-74.png

  • 添加行:

set line /dev/ttyUSB1
set speed 921600
set carrier-watch off set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5

I96-75.png

2)调试的连接方式

使用 TTL 转串口线,一端连接 Orange Pi,另一端连接 PC

3)设备信息的获取
$ ls /dev/ (在 PC 终端输入命令,查询 TTL 转串口线的设备号)
I96-77.png

a.从图中可以看出,“TTL  转串口”线被识别为 “ttyUSB0”,配置 /ect/kermit/kermitc文件,更新串口信息。 $ sudo vi /etc/kermit/kermitc
b.将 setline 的值设置为 /dev/ttyUSB0

I96-78.png

4)开始调试串口

a.在上位机终端输入命令,进入 kermit 模式: $ sudo kermit –c

I96-79.png

b.Orange Pi 上电开机,串口自动打印串口 log,登录密码为 root/orangepi 和orangepi/orangepi


下载 Orange Pi Win/Win Plus用户手册


更多关于Orange Pi Win/Win Plus的使用信息,请查看 Orange Pi Win/Win Plus 用户手册 (下载-产品使用说明书)