打开主菜单

Wiki-Orange Pi β

更改

Orange Pi 3B

添加7,547字节, 2023年8月23日 (三) 20:09
Orange Pi 3B的接口详情图
<span id="orange-pi-3b的硬件特性"></span>
== Orange Pi 3B的硬件特性 3B的硬件规格 ==
{| class="wikitable" style="width:800px;text-align: center;"
<div class="figure">
[[File:pi3b-img3-1.png|800px]]
</div>
<div class="figure">
[[File:pi3b-img4-1.png|800px]]
</div>
</div>
[[File:pi3b-img6-1.png|800px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''四个定位孔的直径都是3四个定位孔的直径都是2.0mm,M7mm,M.2 PICE设备固定孔直径为3PICE设备固定孔直径为2.5mm。9mm。'''</big>
|}
<big><p>'''开发板上的风扇可以通过PWM来调节转速和开关。'''</p></big>
|}
<p>[[File:pi3b-img14-1.png]]</p></li>
<li><p>百兆或者千兆网线,用于将开发板连接到因特网</p>
<p>[[File:pi3b-img15.png]]</p></li>
|}
::[[File:pi3b-img19-1.png]]
<ol start="2" style="list-style-type: decimal;">
<p>'''http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html'''</p>
|}
<p>[[File:pi3b-img20-1.png]]</p></li>
<li><p>资料主要包含</p>
<ol style="list-style-type: lower-alpha;">
</div></li>
<li><p>还需要准备一张16GB或更大容量的TF卡,TF卡的传输速度必须为'''class10'''级或'''class10'''级以上,建议使用闪迪等品牌的TF卡</p></li>
<li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和'''MiniLoader'''以及烧录工具'''RKDevTool_Release_v3.15.zip'''</p>
<ol style="list-style-type: lower-alpha;">
<li><p>确保TF卡插槽没有插入TF卡</p></li>
<li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p>
<p>[[File:pi3b-img38-1.png]]</p></li>
<li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p>
<p>[[File:pi3b-img39-1.png]]</p></li>
<li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p>
<p>[[File:pi3b-img40.png]]</p></li>
<li><p>然后选择'''导入配置'''选项</p>
<p>[[File:pi3b-img43.png]]</p></li>
<li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_tfcardrk356x_linux_tfcard.cfg'''配置文件,再点击'''打开'''</p><p>[[File:pi3b-img44-2.png]]</p></li>
<li><p>然后点击'''确定'''</p>
<p>[[File:pi3b-img45.png]]</p></li>
<li><p>然后点击下图所示的位置</p>
<p>[[File:pi3b-img46.png]]</p></li>
<li><p>再选择前面下载的'''MiniLoader'''文件夹中'''rk3566_MiniLoaderAllMiniLoaderAll.bin''',再点击'''打开'''</p>
<div class="figure">
[[File:pi3b-img47-1.png]]
</div></li>
<p>[[File:pi3b-img60.png]]</p></li></ol>
<ol start="1211" style="list-style-type: decimal;">
<li><p>Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验</p>
<p>[[File:pi3b-img61.png]]</p></li>
<li><p>确保开发板没有插入TF卡,没有连接电源</p></li>
<li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p>
<p>[[File:pi3b-img38-1.png]]</p></li>
<li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p>
<p>[[File:pi3b-img39-1.png]]</p></li>
<li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p>
<p>[[File:pi3b-img40.png]]</p></li>
<li><p>然后选择'''导入配置'''选项</p>
<p>[[File:pi3b-img43.png]]</p></li>
<li><p>然后选择前面下载的'''MiniLoader'''文件夹中的'''rk3588_linux_emmcrk356x_linux_emmc.cfg'''配置文件,再点击'''打开'''</p><p>[[File:pi3b-img66-1.png]]</p></li>
<li><p>然后点击'''确定'''</p>
<p>[[File:pi3b-img67.png]]</p></li>
<li><p>然后点击下图所示的位置</p>
<p>[[File:pi3b-img68.png]]</p></li>
<li><p>再选择前面下载的'''MiniLoader'''文件夹中'''rk3566_MiniLoaderAllMiniLoaderAll.bin''',再点击'''打开'''</p>
<div class="figure">
[[File:pi3b-img69-1.png]]
</div></li>
|-
|
<big><p>'''注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPI Flash后再启动试下。清空SPI Flash的方法请参考[[Orange Pi 3B#使用RKDevTool清空SPIFlash的方法|使用RKDevTool清空SPIFlash的方法]]小节的内容。'''</p></big>
|}
</li></ol>
|-
|
<big>'''注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu、OpenWRT或者OPi 注意,这里说的Linux镜像具体指的是从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html Orange Pi资料下载页面]下载的Debian、Ubuntu或者OPi OS Arch这样的Linux发行版镜像。'''</big>
|}
|-
|
<big><p>'''注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPI Flash后再启动试下。清空SPI Flash的方法请参考[[Orange Pi 3B#使用RKDevTool清空SPIFlash的方法|使用RKDevTool清空SPIFlash的方法]]小节的内容。'''</p></big>
|}
</li></ol>
|-
|
<big>'''注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian、Ubuntu这样的Linux发行版镜像。注意,这里说的Linux镜像具体指的是从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html Orange Pi资料下载页面]下载的Debian、Ubuntu这样的Linux发行版镜像。'''</big>
|}
<p>[[File:pi3b-img76.png]]</p></li>
<li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p>
<p>[[File:pi3b-img77-1.png]]</p></li>
<li><p>然后需要准备一根品质良好的USB2.0公对公数据线</p>
<div class="figure">
</li>
<li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html '''Orange Pi的资料下载页面''']下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以”'''.img'''”结尾的文件就是操作系统的镜像文件,大小一般都在2GB以上</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''注意,如果下载的是OpenWRT镜像,在OpenWRT镜像的下载链接中会看到下面三种类型的镜像,请选择”TF卡启动镜像”文件夹中的镜像文件。'''</p></big>
<p>[[File:pi3b-img78.png|center]]</p>
|}
</li>
<li><p>然后用解压软件解压'''DriverAssitant_v5.12.zip''',再在解压后的文件夹中找到'''DriverInstall.exe'''可执行文件并打开即可</p>
<li><p>确保开发板没有连接电源和插入TF卡以及eMMC</p></li>
<li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p>
<p>[[File:pi3b-img38-1.png]]</p></li>
<li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p>
<p>[[File:pi3b-img39-1.png]]</p></li>
<li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p>
<p>[[File:pi3b-img40.png]]</p></li>
|-
|
<big><p>'''如果烧录有问题,请先清空下SPIFlash然后再烧录试下。清空SPIFlash的方法请参考下如果烧录有问题,请先清空下SPI Flash然后再烧录试下。清空SPI Flash的方法请参考下[[Orange Pi 3B#使用RKDevTool清空SPIFlash的方法|使用RKDevTool清空SPIFlash的方法]]一小节的说明。'''</p></big>
|}
</li>
<p>[[File:pi3b-img76.png]]</p></li>
<li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p>
<p>[[File:pi3b-img77-1.png]]</p></li>
<li><p>烧录Linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将Linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入Linux系统。烧录Linux镜像到TF卡的方法请见[[Orange Pi 3B#基于Windows PC将Linux镜像烧写到TF卡的方法|'''基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[Orange Pi 3B#基于Ubuntu PC将Linux镜像烧写到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。</p></li>
<li><p>使用TF卡启动Linux系统后,我们首先烧录u-boot镜像到SPI Flash中</p>
<p>[[File:pi3b-img76.png]]</p></li>
<li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p>
<p>[[File:pi3b-img77-1.png]]</p></li>
<li><p>烧录Linux镜像到SPIFlash+NVMe SSD中需要借助TF卡来完成,所以首先需要将Linux镜像烧录到TF卡上,然后使用TF卡启动开发板进入Linux系统。烧录Linux镜像到TF卡的方法请见[[Orange Pi 3B#基于Windows PC将Linux镜像烧写到TF卡的方法|'''基于Windows PC将Linux镜像烧写到TF卡的方法''']]和[[Orange Pi 3B#基于Ubuntu PC将Linux镜像烧写到TF卡的方法|'''基于Ubuntu PC将Linux镜像烧写到TF卡的方法''']]两小节的说明。</p></li>
<li><p>启动进入TF卡中的Linux系统后,请先确认下NVMe SSD已经被开发板的Linux正常识别了。如果NVMe SSD正常识别了的话,使用'''sudo fdisk -l'''命令就能看到'''nvme'''相关的信息</p>
</div></li>
<li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html '''Orange Pi的资料下载页面''']下载瑞芯微驱动'''DriverAssitant_v5.12.zip'''和烧录工具'''RKDevTool_Release_v3.15.zip'''</p><ol style="list-style-type: lower-alpha;"><li><p>在[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html '''Orange Pi的资料下载页面''']首先选择'''官方工具''',然后进入下面的文件夹中</p><p>[[File:pi3b-img126-2.png]]</p></li><li><p>然后下载下面的所有文件</p><p>[[File:pi3b-img127-2.png]]</p></li></li></ol>
<li><p>然后从[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html '''Orange Pi的资料下载页面''']下载Android的镜像。</p>
<ol style="list-style-type: lower-alpha;">
<li><p>然后确保开发板没有插入TF卡,没有连接电源</p></li>
<li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p>
<p>[[File:pi3b-img38-1.png]]</p></li>
<li><p>然后给开发板接上Type-C接口的电源,并上电</p>
<p>[[File:pi3b-img39-1.png]]</p></li>
<li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p>
<p>[[File:pi3b-img40.png]]</p></li>
|-
|
<big>'''注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPIFlash后再启动试下。清空SPIFlash的方法请参考注意,烧录镜像到eMMC中后如果测试发现启动不了,请清空下SPI Flash后再启动试下。清空SPI Flash的方法请参考[[Orange Pi 3B#使用RKDevTool清空SPIFlash的方法|使用RKDevTool清空SPIFlash的方法]]小节的内容。'''</big>
|}
<li><p>打开安卓镜像的下载链接后可以看到下面两种类型的安卓镜像,请选择'''TF卡和eMMC启动镜像'''文件夹中的镜像进行下载</p>
<p>[[File:pi3b-img126.png]]</p></li>
<li><p>进入'''TF卡和eMMC启动镜像'''文件夹后可以看到下面三个镜像,它们的区别是:文件夹后可以看到下面两个镜像,它们的区别是:</p>
<ol style="list-style-type: none;">
<li><p>a) 第一个镜像专门用于HDMI显示的,支持4K显示,如果不使用LCD屏幕,请下载不带lcd的镜像</p></li>
<p>[[File:pi3b-img76.png]]</p></li>
<li><p>SPI Flash在开发板上的位置如下图所示,开始烧录前无需其他设置</p>
<p>[[File:pi3b-img77-1.png]]</p></li>
<li><p>还需要准备一根品质良好的USB2.0公对公数据线</p>
<div class="figure">
<li><p>确保开发板没有插入TF卡,没有连接电源</p></li>
<li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p>
<p>[[File:pi3b-img38-1.png]]</p></li>
<li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p>
<p>[[File:pi3b-img39-1.png]]</p></li>
<li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p>
<p>[[File:pi3b-img40.png]]</p></li>
<ol style="list-style-type: decimal;">
<li><p>SPI Flash在开发板上的位置如下图所示</p>
<p>[[File:pi3b-img77-1.png]]</p></li>
<li><p>首先需要准备一根品质良好的USB2.0公对公数据线</p>
<div class="figure">
<li><p>确保开发板没有插入TF卡,没有连接电源</p></li>
<li><p>然后按住开发板的MaskROM按键不放,MaskROM按键在开发板的位置如下图所示:</p>
<p>[[File:pi3b-img38-1.png]]</p></li>
<li><p>然后给开发板接上Type-C接口的电源,并上电,然后就可以松开MaskROM按键了</p>
<p>[[File:pi3b-img39-1.png]]</p></li>
<li><p>如果前面的步骤顺利,此时开发板会进入'''MASKROM'''模式,在烧录工具的界面上会提示”'''发现一个MASKROM设备'''”</p>
<p>[[File:pi3b-img40.png]]</p></li>
# 将烧录好镜像的TF卡插入香橙派开发板的TF卡插槽中。如果SPIFlash+NVMe SSD已经烧录好镜像了,那么就不需要插入TF卡了,只需确保NVMe SSD正常插入到开发板中即可。
# 开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。如果有Type-C转HDMI的线,也可以通过Type-C接口来显示开发板的系统界面。开发板有HDMI接口,可以通过HDMI转HDMI连接线把开发板连接到电视或者HDMI显示器。如果有购买LCD屏幕,也可以使用LCD屏幕来显示开发板的系统界面。
# 接上USB鼠标和键盘,用于控制香橙派开发板。
# 开发板有以太网口,可以插入网线用来上网。
# 连接一个5V/3A或者5V/4A的USB 3A的USB Type-C接口的'''高品质'''的电源适配。C接口的高品质的电源适配。
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''我们推荐的开发板的供电方式是使用5V/3A或者5V/4A的Type 3A的Type C接口的电源线插到开发板的Type-C电源接口来供电的。如果需要使用40pin接口中的5V引脚来给开发板供电,请确保使用的电源线和电源适配器能满足开发板的供电需求。如果有使用不稳定的情况,请换回Type-C电源供电。'''</big>
|}
<li><p>使用40pin接口中的5V引脚来给开发板供电,电源线的接法如下所示</p>
<ol style="list-style-type: lower-alpha;">
<li><p>上图所示的电源线USB A口需要插到5V/3A或者5V4A的电源适配器接头上(3A的电源适配器接头上('''<span style="color:#FF0000">请不要插到电脑的USB接口来供电</span>''')</p></li>
<li><p>红色的杜邦线需要插到开发板40pin的5V引脚上</p></li>
<li><p>黑色的杜邦线需要插到40pin接口的GND引脚上</p></li>
|-
| '''Ubuntu 22.04 - Jammy'''
| '''Linux5.10'''
| '''支持'''
| '''支持'''
|-
| '''Debian12 - Bookworm'''
| '''Linux5.10'''
| '''支持'''
| '''功能'''
| '''Debian11'''
| '''Debian12'''
| '''Ubuntu20.04'''
| '''Ubuntu22.04'''
|-
| '''USB2.0x3'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''USB3.0x1'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''M.2 NVMe SSD启动'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''WIFI'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''蓝牙'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''GPIO(40pin)'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''UART(40pin)'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''SPI(40pin)'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''I2C(40pin)'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''PWM(40pin)'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''PWM风扇接口'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''3pin调试串口'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''EMMC'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''TF卡启动'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''HDMI 视频'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''HDMI 音频'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''Camera'''
| '''OK<span style="color:#FF0000">NO</span>'''| '''OK<span style="color:#FF0000">NO</span>'''| '''OK<span style="color:#FF0000">NO</span>'''| '''<span style="color:#FF0000">NO</span>'''
|-
| '''LCD'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''eDP显示'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''千兆网口'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''网口状态灯'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''耳机播放'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''耳机录音'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''LED灯'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''RTC'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''GPU'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''NPU'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''VPU'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''看门狗测试'''
| '''OK'''
| '''OK'''
| '''OK'''
|-
| '''Chromium硬解视频'''
| '''OK'''
| '''OK'''
| '''OK'''
<ol style="list-style-type: decimal;">
<li><p>linux系统默认就是自动登录终端的,默认登录的用户名是Linux系统默认就是自动登录终端的,默认登录的用户名是'''<span style="color:#FF0000">orangepi</span>'''</p>
<p>[[File:pi3b-img172.png]]</p></li>
<li><p>使用下面的命令可以设置root用户自动登录终端</p>
<ol style="list-style-type: decimal;">
<li><p>开发板上有三个LED灯,一个绿灯,一个红灯,一个PCIe指示灯,所在位置如下图所示:</p>
<p>[[File:pi3b-img176-1.png]]</p></li>
<li><p>'''<span style="color:#FF0000">只要开发板打开了电源,红色的LED灯就会常亮,这是由硬件控制的,软件无法关闭。</span>'''</p></li>
<li><p>绿色的LED灯在内核启动后会一直闪烁,这是由软件控制的。</p></li>
|-
|
<p>root@orangepi:~# '''cd /sys/class/leds/statusstatus_led'''</p>
|}
</li>
|-
|
<p>root@orangepi:/sys/class/leds/workstatus_led# '''echo none &gt; trigger'''</p>
|}
</li>
|-
|
<p>root@orangepi:/sys/class/leds/workstatus_led# '''echo default-on &gt; trigger'''</p>
|}
</li>
|-
|
<p>root@orangepi:/sys/class/leds/workstatus_led# '''echo heartbeat &gt; trigger'''</p>
|}
</li></ol>
<ol style="list-style-type: decimal;">
<li><p>先登录linux系统,有下面三种方式先登录Linux系统,有下面三种方式</p>
<ol style="list-style-type: lower-alpha;">
<li>如果开发板连接了网线,可以通过[[Orange Pi 3B#SSH远程登录开发板|'''ssh远程登录linux系统ssh远程登录Linux系统''']]</li></ol>
<!-- -->
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>如果开发板连接好了调试串口,可以使用串口终端登录linux系统如果开发板连接好了调试串口,可以使用串口终端登录Linux系统</p></li><li><p>如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到Linux系统</p></li></ol>
</li></ol>
|-
|
<p>orangepi@orangepi:~$ '''ping www.orangepi.org -I wlan0''' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '''(-I是大写的I不是小写的L)'''</p>
<p>PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.</p>
<p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms</p>
<ol style="list-style-type: decimal;">
<li><p>先登录linux系统,有下面三种方式先登录Linux系统,有下面三种方式</p>
<ol style="list-style-type: lower-alpha;">
<li><p>如果开发板连接了网线,可以通过[[Orange Pi 3B#SSH远程登录开发板|'''ssh远程登录linux系统ssh远程登录Linux系统''']]</p></li><li><p>如果开发板连接好了调试串口,可以使用串口终端登录linux系统(串口软件请使用MobaXterm,使用minicom无法显示图形界面)如果开发板连接好了调试串口,可以使用串口终端登录Linux系统(串口软件请使用MobaXterm,使用minicom无法显示图形界面)</p></li><li><p>如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到Linux系统</p></li></ol>
</li>
<li><p>然后在命令行中输入nmtui命令打开wifi连接的界面</p>
|-
|
<p>orangepi@orangepi:~$ '''ping www.orangepi.org -I wlan0''' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '''(-I是大写的I不是小写的L)'''</p>
<p>PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes of data.</p>
<p>64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms</p>
<div class="figure">
[[File:pi3b-img188-1.png]]
</div></li></ol>
<li><p>然后输入下面的命令,其中</p>
<ol style="list-style-type: lower-alpha;">
<li><p>'''&quot;Wired connection 1&quot;''' &gt; 表示设置以太网口的静态IP地址,如果需要设置WIFI的静态IP地址,请修改为WIFI网络接口对应的名字(通过'''nmcli &gt; con show'''命令可以获取到)</p></li>
<li><p>'''ipv4.addresses'''后面是要设置的静态IP地址,可以修改为自己想要设置的值</p></li>
<li><p>'''ipv4.gateway''' 表示网关的地址</p>
</li></ol>
</li>
<li><p>然后重启linux系统然后重启Linux系统</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>然后重新进入linux系统使用然后重新进入Linux系统使用'''ip addr show eth0'''命令就可以看到IP地址已经设置为想要的值了</p>
{| class="wikitable" style="width:800px;"
|-
# 获取开发板的IP地址
# 然后就可以通过ssh命令远程登录linux系统然后就可以通过ssh命令远程登录Linux系统
::{| class="wikitable" style="width:800px;"
|-
|
<big><p>'''如果ssh无法正常登陆linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录linux系统然后在开发板上输入下面的命令后再尝试是否能连接:如果ssh无法正常登陆Linux系统,首先请检查下开发板的IP地址是否能ping通,如果ping通没问题的话,可以通过串口或者HDMI显示器登录Linux系统然后在开发板上输入下面的命令后再尝试是否能连接:'''</p>
<li><p>然后在'''Session Setting'''中选择'''SSH'''</p></li>
<li><p>然后在'''Remote host'''中输入开发板的IP地址</p></li>
<li><p>然后在'''Specify username'''中输入linux系统的用户名中输入Linux系统的用户名'''root'''或'''orangepi'''</p></li>
<li><p>最后点击'''OK'''即可</p>
<p>[[File:pi3b-img206.png]]</p></li></ol>
== 上传文件到开发板Linux系统中的方法 ==
<span id="在ubuntu-pc中上传文件到开发板linux系统中的方法pc中上传文件到开发板Linux系统中的方法"></span>
=== 在Ubuntu PC中上传文件到开发板Linux系统中的方法 ===
<ol style="list-style-type: lower-alpha;">
<li><p>'''file_path:'''需要替换为要上传文件的路径</p></li>
<li><p>'''orangepi:'''为开发板linux系统的用户名,也可以替换成其它的,比如root为开发板Linux系统的用户名,也可以替换成其它的,比如root</p></li>
<li><p>'''192.168.xx.xx:''' 为开发板的IP地址,请根据实际情况进行修改</p></li>
<li><p>'''/home/orangepi:''' 开发板linux系统中的路径,也可以修改为其它的路径开发板Linux系统中的路径,也可以修改为其它的路径</p>
{| class="wikitable" style="width:800px;"
|-
</div></ol>
<ol start="7" style="list-style-type: decimal;">
<li>连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了连接成功后在filezilla软件的右边就可以看到开发板Linux文件系统的目录结构了</li>
<div class="figure">
</div></ol>
<ol start="9" style="list-style-type: decimal;">
<li><p>上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了上传完成后就可以去开发板Linux系统中的对应路径中查看上传的文件了</p></li>
<li><p>上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了</p></li></ol>
<span id="在windows-pc中上传文件到开发板linux系统中的方法pc中上传文件到开发板Linux系统中的方法"></span>
=== 在Windows PC中上传文件到开发板Linux系统中的方法 ===
</div></ol>
<ol start="7" style="list-style-type: decimal;">
<li>连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了连接成功后在filezilla软件的右边就可以看到开发板Linux文件系统的目录结构了</li>
<div class="figure">
</div></ol>
<ol start="9" style="list-style-type: decimal;">
<li><p>上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了上传完成后就可以去开发板Linux系统中的对应路径中查看上传的文件了</p></li>
<li><p>上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了</p></li></ol>
<li><p>使用HDMI转HDMI线连接Orange Pi开发板和HDMI显示器</p>
<p>[[File:pi3b-img10.png]]</p></li>
<li><p>启动linux系统后如果HDMI显示器有图像输出说明HDMI接口使用正常启动Linux系统后如果HDMI显示器有图像输出说明HDMI接口使用正常</p></li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<!-- -->
<ol start="67" style="list-style-type: decimal;">
<li><p>然后选择想要连接的蓝牙设备,再点击鼠标右键就会弹出对此蓝牙设备的操作界面,选择'''Pair'''即可开始配对,这里演示的是和Android手机配对</p>
<p>[[File:pi3b-img238.png]]</p></li>
<span id="usb接口测试"></span>
 
== USB接口测试 ==
<ol style="list-style-type: decimal;">
<li><p>首先将RTL8723BU无线网卡模块插入开发板的USB接口中</p></li>
<li><p>然后linux系统会自动加载RTL8723BU蓝牙和WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载然后Linux系统会自动加载RTL8723BU蓝牙和WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p>
{| class="wikitable" style="width:800px;"
|-
<ol style="list-style-type: decimal;">
<li><p>首先将RTL8811无线网卡模块插入开发板的USB接口中</p></li>
<li><p>然后linux系统会自动加载RTL8811 然后Linux系统会自动加载RTL8811 WIFI相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p>
{| class="wikitable" style="width:800px;"
|-
</li></ol>
<ol start="3" style="list-style-type: decimal;">
<li><p>linux系统会自动加载rtl8821cu蓝牙和wifi相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载Linux系统会自动加载rtl8821cu蓝牙和wifi相关的内核模块,通过lsmod命令可以看到下面内核模块已自动加载</p>
{| class="wikitable" style="width:800px;"
|-
<li><p>b) --no-banner用于去除照片的水印</p></li>
<li><p>c) -r 选项用于指定照片的分辨率</p></li>
<li><p>d) -S 选项用设置于跳过前面的帧数选项用于设置跳过前面的帧数</p></li>
<li><p>e) ./image.jpg 用于设置生成的照片的名字和路径</p>
{| class="wikitable" style="width:800px;"
</li></ol>
</li>
<li><p>在服务器版的linux系统中,拍完照后可以使用scp命令将拍好的图片传到Ubuntu 在服务器版的Linux系统中,拍完照后可以使用scp命令将拍好的图片传到Ubuntu PC上镜像观看</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>在桌面版的linux系统中,可以通过HDMI显示器直接查看拍摄的图片在桌面版的Linux系统中,可以通过HDMI显示器直接查看拍摄的图片</p></li></ol>
</li></ol>
<ol style="list-style-type: decimal;">
<li><p>首先将耳机插入开发板的耳机孔中</p>
<p>[[File:pi3b-img255-1.png]]</p></li><li><p>然后可以通过'''aplay -l'''命令可以查看下linux系统支持的声卡设备,从下面的输出可知,命令可以查看下Linux系统支持的声卡设备,从下面的输出可知,'''card 0'''为rk809的声卡设备,也就是耳机的声卡设备</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''aplay -l''' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '''(-I是大写的I不是小写的L)'''</p>
<p>**** List of PLAYBACK Hardware Devices ****</p>
<p>'''card 0: rockchiprk809 [rockchip-rk809], device 0: dailink-multicodecs rk817-hifi-0 [dailink-multicodecs rk817-hifi-0]'''</p>
<ol style="list-style-type: lower-alpha;">
<li><p>下面是40pin完整的引脚图</p>
<p>[[File:pi3b-img257-1.png]]</p></li>
<li><p>下面的表格是上面完整表格左半边部分的图,能看得清楚点</p>
<p>[[File:pi3b-img258-1.png]]</p></li>
<li><p>下面的表格是上面完整表格右半边部分的图,能看得清楚点</p>
<p>[[File:pi3b-img259-1.png]]</p></li></ol>
</li>
<li><p>40pin接口中总共有'''<span style="color:#FF0000">28</span>'''个GPIO口,所有GPIO口的电压都是'''<span style="color:#FF0000">3.3v</span>'''</p></li></ol>
|-
|
<big>'''注意,Orange Pi发布的linux镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。Pi发布的Linux镜像中已经预装了wiringOP,除非wiringOP的代码有更新,否则无需重新下载编译安装,直接使用即可。'''
'''编译好的wiringOP的deb包在orangepi-build中的存放路径为:'''
<div class="figure">
[[File:pi3b-img260-1.png|750px|center]]
</div>
<div class="figure">
[[File:pi3b-img260-1.png]]
</div></li></ol>
|-
|
<big>'''Orange Pi发布的linux系统中有预装一个blink_all_gpio程序,这个程序会设置40pin中的所有28个GPIO口不停的切换高低电平。Pi发布的Linux系统中有预装一个blink_all_gpio程序,这个程序会设置40pin中的所有28个GPIO口不停的切换高低电平。'''
<ol style="list-style-type: decimal;">
<li><p>开发板40pin中总共有'''28'''个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO4_A4 个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO4_C3 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平</p><p>[[File:pi3b-img261-1.png]]</p></li>
<li><p>首先设置GPIO口为输出模式,其中第三个参数需要输入引脚对应的wPi的序号</p>
{| class="wikitable" style="width:800px;"
|}
<p>使用gpio readall可以看到7号引脚的值(V)变为了0</p>
<p>[[File:pi3b-img262-1.png]]</p></li>
<li><p>然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功</p>
{| class="wikitable" style="width:800px;"
|}
<p>使用gpio readall可以看到7号引脚的值(V)变为了1</p>
<p>[[File:pi3b-img263-1.png]]</p></li>
<li><p>其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可</p></li></ol>
<big>'''注意,Orange Pi 3B下面4个GPIO引脚因为外部有3.3V上拉,所以设置下拉是无效的,其它的引脚可以正常设置上下拉电阻功能'''</big>
[[File:pi3b-img264-1.png|750px|center]]
|}
<ol style="list-style-type: decimal;">
<li><p>下面以11号引脚——对应GPIO为GPIO3_C6 ——对应wPi序号为5——为例演示如何设置GPIO口的上下拉电阻</p>
<p>[[File:pi3b-img265-1.png]]</p></li>
<li><p>首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号</p>
{| class="wikitable" style="width:800px;"
<ol style="list-style-type: decimal;">
<li><p>由40pin接口的原理图可知,Orange Pi 3B可用的spi为spi3</p>
<p>[[File:pi3b-img266-1.png]]</p></li><li><p>在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的spi3默认是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以打开spi3。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=spi3-m0-cs0orangepi-spidev</span>config'''</p></big>
|}
</li>
<li><p>先查看下linux系统中是否存在然后选择'''System'''</p><p>[[File:pi3b-1.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置</p><p>[[File:pi3b-3.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6.png]]</p></li></ol></li><li><p>重启后进入系统先查看下Linux系统中是否存在'''spidev3.0'''的设备节点,如果存在,说明SPI3已经设置好了,可以直接使用</p>
{| class="wikitable" style="width:800px;"
|-
<ol style="list-style-type: decimal;">
<li><p>由下表可知,Orange Pi 3B可用的i2c为i2c2、i2c3和i2c4共三组 i2c总线</p>
<p>[[File:pi3b-img268-1.png]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
<big><p>'''从上表中可以看到,i2c4_m0和spi3_m0是引脚复用的,两者不能同时打开,i2c3_m0和uart3_m0也是引脚复用的,两者不能同时打开'''</p></big>
|}
</li><li><p>在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的i2c默认都是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以同时打开i2c2、i2c3和i2c4,如果只需要打开一个,那么就填写一个即可。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=i2c2-m1 i2c3-m0 i2c4orangepi-m0</span>config'''</p></big>
|}
</li>
<li><p>启动linux系统后,先确认下然后选择'''System'''</p><p>[[File:pi3b-1-1.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2-1.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的I2C的配置</p><p>[[File:pi3b-3-1.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4-1.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5-1.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6-1.png]]</p></li></ol></li><li><p>启动Linux系统后,先确认下/dev下存在i2c的设备节点</p>
{| class="wikitable" style="width:800px;"
|-
<ol style="list-style-type: decimal;">
<li><p>由下表可知,Orange Pi 3B可用的uart为uart3、uart7和uart9共三组uart总线</p>
<p>[[File:pi3b-img270-1.png]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
<big><p>'''从上表中可以看到,i2c3_m0和uart3_m0是引脚复用的,两者不能同时打开'''</p></big>
|}
</li><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的uart默认都是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以同时打开uart3、uart7、和uart9,如果只需要打开一个,那么就填写一个即可。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=uart3-m0 uart7-m2 uart9orangepi-m2</span>config'''</p></big>
|}
</li>
<li><p>进入linux系统后,先确认下然后选择'''System'''</p><p>[[File:pi3b-1-2.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2-2.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的UART的配置</p><p>[[File:pi3b-3-2.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4-2.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5-2.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6-2.png]]</p></li></ol></li><li><p>进入Linux系统后,先确认下/dev下是否存在对应uart的设备节点</p>
{| class="wikitable" style="width:800px;"
|-
| 对应27号引脚
| 对应15号引脚
| 对应7号引脚对应22号引脚
|}
[[File:pi3b-img271-1.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<ol style="list-style-type: decimal;">
<li><p>由下表可知,Orange Pi 3B可用的pwm113B可用的pwm11和pwm15共两路pwm</p><p>[[File:pi3b-img272-1.png]]</p></li><li><p>在linux系统中,40 pin中的PWM默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的pwm默认都是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以打开pwm11。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=pwm11orangepi-m1</span>config'''</p></big>
|}
</li>
<li><p>然后选择'''System'''</p><p>[[File:pi3b-1-3.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2-3.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的PWM的配置</p><p>[[File:pi3b-3-3.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4-3.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5-3.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6-3.png]]</p></li></ol></li><li><p>当打开一个pwm后,在'''/sys/class/pwm/'''中就会多出一个pwmchipX(X为具体的的数字)中就会多出一个pwmchipX(X为具体的的数字),比如打开pwm11后,查看/sys/class/pwm/下的pwmchipX会由一个变成了两个</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>上面哪个pwmchip对应pwm11呢,我们先查看下 '''ls /sys/class/pwm/ -l'''命令的输出,如下所示:</p></li><li><p>pwm11寄存器的基地址为fe6f0030,再看 '''ls /sys/class/pwm/ -l'''命令的输出,可以看到pwmchip1中链接到了fe6f0030.pwm,所以pwm11对应pwmchip为pwmchip1</p>
<div class="figure">
[[File:pi3b-img273.png]]
</div></li><li><p>然后由下表可知,pwm11寄存器的基地址为fe6f0030,再看 '''ls /sys/class/pwm/ -l'''命令的输出,可以看到pwmchip1中链接到了fe6f0030.pwm,所以pwm11对应pwmchip为pwmchip1</p></li>
<li><p>然后使用下面的命令可以让pwm11输出一个50Hz的方波(请先切换到root用户,再执行下面的命令)</p></li>
[[File:pi3b-img274.png]]
<li><p>上面演示的pwm11的测试方法,其他pwm测试方法都是类似的。</p></li>
</ol>
<span id="wiringop-python的安装使用方法"></span>
<div class="figure">
[[File:pi3b-img260-1.png|center]]
</div>
<ol style="list-style-type: decimal;">
<li><p>由40pin接口的原理图可知,Orange Pi 3B可用的spi为spi3</p>
<p>[[File:pi3b-img266-1.png]]</p></li><li><p>在linux系统中,40 pin中的SPI默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的spi3默认是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以打开spi4。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=spi3-m0-cs0orangepi-spidev</span>config'''</p></big>
|}
</li>
<li><p>先查看下linux系统中是否存在然后选择'''System'''</p><p>[[File:pi3b-1-4.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2-4.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用'''空格'''选中想要打开的SPI的配置</p><p>[[File:pi3b-3-4.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4-4.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5-4.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6-4.png]]</p></li></ol></li><li><p>先查看下Linux系统中是否存在'''spidev3.0'''的设备节点,如果存在,说明SPI3已经设置好了,可以直接使用</p>{| class="wikitable" style="width:800px;" |-
|
<p>orangepi@orangepi:~$ '''ls /dev/spidev3.0'''</p>
<ol start="1" style="list-style-type: decimal;">
<li><p>由下表可知,Orange Pi 3B可用的i2c为i2c2、i2c3和i2c4共三组 i2c总线</p>
<p>[[File:pi3b-img268-1.png]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
<big><p>'''从上表中可以看到,i2c4_m0和spi3_m0是引脚复用的,两者不能同时打开,i2c3_m0和uart3_m0也是引脚复用的,两者不能同时打开'''</p></big>
|}
</li><li><p>在linux系统中,40 pin中的I2C总线默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的i2c默认都是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以同时打开i2c2、i2c3和i2c4,如果只需要打开一个,那么就填写一个即可。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=i2c2-m1 i2c3-m0 i2c4orangepi-m0</span>config'''</p></big>
|}
</li>
<li><p>启动linux系统后,先确认下然后选择'''System'''</p><p>[[File:pi3b-1-5.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2-5.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的I2C的配置</p><p>[[File:pi3b-3-5.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4-5.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5-5.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6-5.png]]</p></li></ol></li><li><p>启动Linux系统后,先确认下/dev下存在i2c的设备节点</p>
{| class="wikitable" style="width:800px;"
|-
<ol style="list-style-type: decimal;">
<li><p>由下表可知,Orange Pi 3B可用的uart为uart3、uart7和uart9共三组uart总线</p>
<p>[[File:pi3b-img270-1.png]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
<big><p>'''从上表中可以看到,i2c3_m0和uart3_m0是引脚复用的,两者不能同时打开'''</p></big>
|}
</li><li><p>在linux系统中,40 pin中的UART默认都是关闭的,需要手动打开才能使用。详细步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在linux系统中,40pin中的uart默认都是关闭的,需要手动打开才能使用。'''</p>  <p>'''在/boot/orangepiEnv.txt中加入下面红色字体部分的配置,然后重启Linux系统就可以同时打开uart3、uart7、和uart9,如果只需要打开一个,那么就填写一个即可。'''</p>  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt'''</p><p>'''<span style="color:#FF0000">overlays=uart3-m0 uart7-m2 uart9orangepi-m2</span>config'''</p></big>
|}
</li>
<li><p>进入linux系统后,先确认下然后选择'''System'''</p><p>[[File:pi3b-1-6.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-2-6.png]]</p></li><li><p>然后使用键盘的方向键定位到下图所示的位置,再使用空格选中想要打开的UART的配置</p><p>[[File:pi3b-3-6.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-4-6.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-5-6.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-6-6.png]]</p></li></ol></li><li><p>进入Linux系统后,先确认下/dev下是否存在对应uart的设备节点</p>
{| class="wikitable" style="width:800px;"
|-
| 对应27号引脚
| 对应15号引脚
| 对应7号引脚对应22号引脚
|}
</ol>
== 硬件看门狗测试 ==
Orange Pi发布的linux系统中预装了watchdog_test程序,可以直接测试。Pi发布的Linux系统中预装了watchdog_test程序,可以直接测试。
运行watchdog_test程序的方法如下所示:
<ol style="list-style-type: decimal;">
<li><p>首先需要扩展下'''/tmp'''空间的大小,设置完后需要'''<span style="color:#FF0000">重启下开发板的linux系统重启下开发板的Linux系统</span>''',命令如下所示:</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>然后在linux系统中输入下面的命令就可以开始宝塔的安装然后在Linux系统中输入下面的命令就可以开始宝塔的安装</p>
{| class="wikitable" style="width:800px;"
|-
|-
|
'''https://downloads.nomachine.com/download/?id=118116&amp;distro=ARM'''
|}
|-
|
'''https://downloads.nomachine.com/download/?id=98'''
|}
|-
|
<big>'''操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。操作前请先确保Windows电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。'''
'''<span style="color:#FF0000">Ubuntu20.04测试VNC很多问题,请不要使用这种方法。</span>'''</big>
<li><p>然后输入前面设置的VNC的密码</p>
<p>[[File:pi3b-img327.png]]</p></li>
<li><p>登录成功后的界面显示如下图所示,然后就可以远程操作开发板linux系统的桌面了登录成功后的界面显示如下图所示,然后就可以远程操作开发板Linux系统的桌面了</p>
<p>[[File:pi3b-img328.png]]</p></li></ol>
</li></ol>
<span id="ubuntu-focal系统"></span>
=== Ubuntu Focal系统 Debian Bookworm系统 ===
<ol style="list-style-type: decimal;">
<li><p>Ubuntu Focal默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序Debian Bookworm默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</p>
<ol style="list-style-type: lower-alpha;">
<li><p>gcc的版本如下所示</p>
|-
|
<p>orangepi@orangepi:~$ '''gcc --version'''</p><p>gcc (Ubuntu 9Debian 12.42.0-1ubuntu1~20.04.114) 912.42.0</p><p>Copyright (C) 2019 2022 Free Software Foundation, Inc.</p><p>This is free software; see the source for copying conditions. There is NO</p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
|}
</li>
</li></ol>
</li>
<li><p>Ubuntu Focal默认安装有Python3Debian Bookworm默认安装有Python3</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Python3具体版本如下所示Python具体版本如下所示</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''python3'''</p><p>Python 3.811.10 2 (defaultmain, Nov 14 2022Mar 13 2023, 12:5918:4729)</p><p>[GCC 912.42.0] on linux</p><p>Type &quot;"help&quot;", &quot;"copyright&quot;", &quot;"credits&quot; " or &quot;"license&quot; " for more information.</p >>>|}{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <pbig>&gt;&gt;&gt;'''使用Ctrl+D快捷键可退出python的交互模式。'''</pbig>
|}
</li>
</li></ol>
</li>
<li><p>Ubuntu Focal默认没有安装Java的编译工具和运行环境Debian Bookworm默认没有安装Java的编译工具和运行环境</p>
<ol style="list-style-type: lower-alpha;">
<li><p>可以使用下面的命令安装openjdk可以使用下面的命令安装openjdk,Debian Bookworm中最新版本为openjdk-17</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''java --version'''</p>
<p>openjdk 17.0.2 2022-01-18</p>
<p>OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)</p>
<p>OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)</p>
|}
</li>
</li></ol>
<span id="ubuntu-jammy系统"></span>
=== Ubuntu Jammy系统 Focal系统 ===
<ol start="1" style="list-style-type: decimal;"><li><p>Ubuntu Jammy默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序Focal默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</p>
<ol style="list-style-type: lower-alpha;">
<li><p>gcc的版本如下所示</p>
|
<p>orangepi@orangepi:~$ '''gcc --version'''</p>
<p>gcc (Ubuntu 119.24.0-19ubuntu11ubuntu1~20.04.1) '''119.24.0'''</p><p>Copyright (C) 2021 2019 Free Software Foundation, Inc.</p>
<p>This is free software; see the source for copying conditions. There is NO</p>
<p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
</li></ol>
</li>
<li><p>Ubuntu Jammy默认安装有Python3Focal默认安装有Python3</p>
<ol style="list-style-type: lower-alpha;">
<li><p>Python3具体版本如下所示</p>
|
<p>orangepi@orangepi:~$ '''python3'''</p>
<p>Python '''3.8.10.4''' (maindefault, Apr 2 Nov 14 2022, 0912:0459:1947) </p><p>[GCC 119.24.0] on linux</p>
<p>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</p>
<p>&gt;&gt;&gt;</p>
</li></ol>
</li>
<li><p>Ubuntu Jammy默认没有安装Java的编译工具和运行环境Focal默认没有安装Java的编译工具和运行环境</p>
<ol style="list-style-type: lower-alpha;">
<li><p>可以使用下面的命令安装openjdk-1817</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''sudo apt install -y openjdk-1817-jdk'''</p>
|}
</li>
|
<p>orangepi@orangepi:~$ '''java --version'''</p>
<p>openjdk 18-ea 17.0.2 2022-0301-2218</p><p>OpenJDK Runtime Environment (build 18-ea17.0.2+368-Ubuntu-1120.04)</p><p>OpenJDK 64-Bit Server VM (build 18-ea17.0.2+368-Ubuntu-1120.04, mixed mode, sharing)</p>
|}
</li>
</li></ol>
<span id="qt的安装方法ubuntu-jammy系统"></span>
== QT的安装方法 = Ubuntu Jammy系统 ===
<ol start="1" style="list-style-type: decimal;"><li><p>使用下面的脚本可以安装QT5和QT CreatorUbuntu Jammy默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序</p><ol style="list-style-type: lower-alpha;"><li><p>gcc的版本如下所示</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''install_qtgcc --version'''</p><p>gcc (Ubuntu 11.2.0-19ubuntu1) '''11.2.sh0'''</p><p>Copyright (C) 2021 Free Software Foundation, Inc.</p><p>This is free software; see the source for copying conditions. There is NO</p><p>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
|}
</li>
<li><p>安装完后会自动打印QT的版本号</p><ol style="list-style-type: lower-alpha;"><li><p>Ubuntu20.04自带的qt版本为编写C语言的'''5.12hello_world.8c'''程序</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''install_qtvim hello_world.shc'''</p><p>#include &lt;stdio......h&gt;</p>  <p>QMake version 3.1int main(void)</p><p>Using Qt version '''{<span style="color/p>:#FF0000"<p>5.12.8printf(&quot;Hello World!\n&quot;);</spanp>  :<p>''' in return 0;</usr/lib/aarch64-linux-gnup><p>}</p>
|}
</li>
<li><p>Ubuntu22.04自带的QT版本为然后编译运行'''5.15hello_world.3c'''</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''install_qtgcc -o hello_world hello_world.shc'''</p><p>orangepi@orangepi:~$ '''......</p><p>QMake version 3.1hello_world'''</p><p>Using Qt version '''<span style="color:#FF0000">5.15.3</span>''' in /usr/lib/aarch64-linux-gnuHello World!</p>
|}
</li></ol>
</li>
<li><p>Debian11自带的QT版本为'''5.15.2'''Ubuntu Jammy默认安装有Python3</p><ol style="list-style-type: lower-alpha;"><li><p>Python3具体版本如下所示</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''install_qt.shpython3'''</p><p>Python '''3.10.4''' (main, Apr 2 2022, 09:04:19) [GCC 11.2..0] on linux</p><p>Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.</p><p>QMake version 3.1&gt;&gt;&gt;</p>|}</li><li><p>Using Qt version 编写Python语言的'''hello_world.py'''程序<span /p>{| class="wikitable" style="colorwidth:#FF0000800px;"|-| <p>5orangepi@orangepi:~$ '''vim hello_world.15.2py'''</spanp><p>print('Hello World!'' in /usr/lib/aarch64-linux-gnu)</p>
|}
</li>
<li><p>Debian12自带的QT版本为运行'''5hello_world.15.8py'''的结果如下所示</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''install_qtpython3 hello_world.shpy'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="color:#FF0000">5.15.8</span>''' in /usr/lib/aarch64-linux-gnuHello World!</p>
|}
</li></ol>
</li>
<li><p>然后在'''Applications'''中就可以看到QT Creator的启动图标Ubuntu Jammy默认没有安装Java的编译工具和运行环境</p><p>[[Fileol style="list-style-type:pi3blower-img329.png]]alpha;"></pli><p>也可以使用下面的命令打开QT Creator可以使用下面的命令安装openjdk-18</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''qtcreatorsudo apt install -y openjdk-18-jdk'''</p>
|}
</li><li><p>安装完后可以查看下Java的版本</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>orangepi@orangepi:~$ '''在QT和QT应用的启动过程中,如果提示下面的错误,请直接忽略,此错误对应用的运行不会有影响。java --version'''</p>  <p>'''libGL error: failed to create dri screen'''</p><p>'''libGL error: failed to load driver: rockchip'''openjdk 18-ea 2022-03-22</p><p>'''libGL error: failed to create dri screen'''OpenJDK Runtime Environment (build 18-ea+36-Ubuntu-1)</p><p>'''libGL error: failed to load driver: rockchip'''OpenJDK 64-Bit Server VM (build 18-ea+36-Ubuntu-1, mixed mode, sharing)</p></big>
|}
</li>
<li><p>QT Creator打开后的界面如下所示</p><p>[[File:pi3b-img330编写Java版本的'''hello_world.png]]java'''</p></li><li><p>QT Creator的版本如下所示</p><ol {| class="wikitable" style="list-style-typewidth: lower-alpha800px;"><li><p>QT Creator在'''Ubuntu20.04'''中的默认版本如下所示</p>|-| <p>[[Fileorangepi@orangepi:pi3b-img331.png]]</p></li><li><p>QT Creator在~$ '''Ubuntu22vim hello_world.04java'''中的默认版本如下所示</p><p>[[File:pi3b-img332.png]]public class hello_world</p></li><li><p>QT Creator在'''Debian11'''中的默认版本如下所示{</p>:<p>public static void main(String[[File:pi3b-img333.png]]args)</p></li><li>:<p>QT Creator在'''Debian12'''中的默认版本如下所示{</p>::<p>[[File:pi3b-img334System.out.png]]</p></li></ol></li><li><p>然后设置下QT</p><ol style="list-style-type: lower-alphaprintln(&quot;"><li><p>首先打开'''Help'''-Hello World!&gtquot;);'''About Plugins...'''</p><p>[[File:pi3b-img335.png]]</p></li><li><p>然后去掉'''ClangCodeModel'''的那个勾</p><p>[[File:pi3b-img336.png]]</p></li><li><p>'''<span style="color:#FF0000">设置完后需要重启下QT Creator</span>'''</p></li><li><p>然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCC}</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''Debian12请跳过这步。'''}</p></big>
|}
<p>[[File:pi3b-img337.png]]</p>
<p>[[File:pi3b-img338.png]]</p></li></ol>
</li>
<li><p>然后就可以打开一个示例代码</p><p>[[File:pi3b-img339.png]]</p></li><li><p>点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明</p><p>[[File:pi3b-img340.png]]</p></li><li><p>然后点击下然后编译运行'''Configure Projecthello_world.java'''</p><p>[[File:pi3b-img341.png]]</p></li><li><p>然后点击左下角的绿色三角形编译运行下示例代码</p><p>[[File:pi3b-img342.png]]</p></li><li><p>等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行</p><p>[[File:pi3b-img343.png]]</p></li><li><p>参考资料</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>[httpsorangepi@orangepi://wiki.qt.io/Install_Qt_5_on_Ubuntu ~$ '''https://wikijavac hello_world.qt.io/Install_Qt_5_on_Ubuntujava''']</p><p>[httpsorangepi@orangepi://download.qt.io/archive/qtcreator ~$ '''https://download.qt.io/archive/qtcreatorjava hello_world''']</p><p>[https://download.qt.io/archive/qt '''https://download.qt.io/archive/qt''']Hello World!</p>
|}
</li></ol>
</li></ol>
<span id="ros安装方法qt的安装方法"></span>
== ROS安装方法 QT的安装方法 ==
<span idol style="ubuntu20.04安装roslist-1style-noetic的方法type: decimal;"><li><p>使用下面的脚本可以安装QT5和QT Creator</spanp>{| class="wikitable" style== Ubuntu20.04安装ROS 1 Noetic的方法 ==="width:800px;" |-| # ROS 1当前活跃的版本如下所示,推荐版本为<p>orangepi@orangepi:~$ '''Noetic Ninjemysinstall_qt.sh'''</p>|}::[[File:pi3b-img344.png]]</li><li><p>安装完后会自动打印QT的版本号</p><ol style="list-style-type::[[File:pi3blower-img345alpha;"><li><p>Ubuntu20.png]]04自带的qt版本为'''5.12.8'''</p>::{| class="wikitable" style="width:800px;"
|-
|
[http<p>orangepi@orangepi://docs~$ '''install_qt.ros.org/ sh'''http:<//docsp><p>.....ros.org''']</p><p>QMake version 3.1</p><p>Using Qt version '''https<span style="color://wiki#FF0000">5.ros12.org8</Distributionsspan>'''in /usr/lib/aarch64-linux-gnu</p>
|}
 <ol start="2" style="list-style-type: decimal;"/li><li><p>ROS 1 Ubuntu22.04自带的QT版本为'''Noetic Ninjemys5.15.3'''官方安装文档链接如下所示:</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>[httporangepi@orangepi:~$ '''install_qt.sh'''<//wikip><p>.....ros.org</noeticp><p>QMake version 3.1</Installation/Ubuntu p><p>Using Qt version '''http<span style="color://wiki#FF0000">5.ros15.org/noetic3</Installation/Ubuntuspan>''']in /usr/lib/aarch64-linux-gnu</p>
|}
</li>
<li><p>ROS Debian11自带的QT版本为'''Noetic Ninjemys'''官方安装文档中Ubuntu推荐使用Ubuntu205.04,所以请确保开发板使用的系统为'''<span style="color:#FF0000">Ubuntu2015.04桌面版系统</span>2'''</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>[httporangepi@orangepi:~$ '''install_qt.sh'''<//wikip><p>.....ros.org</noeticp><p>QMake version 3.1</Installation p><p>Using Qt version '''http<span style="color://wiki#FF0000">5.ros15.org2</noetic/Installationspan>''']in /usr/lib/aarch64-linux-gnu</p>
|}
<p>[[File:pi3b-img346.png]]</p></li><li><p>然后使用下面的脚本安装ros1Debian12自带的QT版本为'''5.15.8'''</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi3borangepi:~$ '''install_rosinstall_qt.sh ros1'''</p><p>......</p><p>QMake version 3.1</p><p>Using Qt version '''<span style="color:#FF0000">5.15.8</span>''' in /usr/lib/aarch64-linux-gnu</p>
|}
</li></ol>
</li>
<li><p>使用ROS工具前,首先需要初始化下rosdep,然后编译源码时就能快速的安装一些系统依赖和一些ROS中的核心组件然后在'''Applications'''中就可以看到QT Creator的启动图标</p><p>[[File:pi3b-img329.png]]</p><p>也可以使用下面的命令打开QT Creator</lip>{| class="wikitable" style="width:800px;" |-| <p>orangepi@orangepi:~$ '''qtcreator'''</p>|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''在QT和QT应用的启动过程中,如果提示下面的错误,请直接忽略,此错误对应用的运行不会有影响。'''<span style="color:#FF0000">注意,运行下面的命令需要确保开发板能正常访问github,否则会由于网络问题而报错。</spanp>'''
<p>'''install_ros.sh脚本会尝试修改/etc/hosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的linux系统能正常访问github,然后再手动运行下面的命令。libGL error: failed to create dri screen'''</p>  <p>'''httpslibGL error://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yamlfailed to load driver: rockchip'''</p> <p>'''Hit httpslibGL error://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml''' failed to create dri screen'''<span style="color:#FF0000"/p>ERROR: error loading sources list:</spanp>''' libGL error:failed to load driver:rockchip'''<span style="color:#FF0000">The read operation timed out</spanp>'''</big>
|}
</li><li><p>QT Creator打开后的界面如下所示</p><p>[[File:pi3b-img330.png]]</p></li><li><p>QT Creator的版本如下所示</p><ol style="list-style-type: lower-alpha;"><li><p>QT Creator在'''Ubuntu20.04'''中的默认版本如下所示</p><p>[[File:pi3b-img331.png]]</p></li><li><p>QT Creator在'''Ubuntu22.04'''中的默认版本如下所示</p><p>[[File:pi3b-img332.png]]</p></li><li><p>QT Creator在'''Debian11'''中的默认版本如下所示</p><p>[[File:pi3b-img333.png]]</p></li><li><p>QT Creator在'''Debian12'''中的默认版本如下所示</p><p>[[File:pi3b-img334.png]]</p></li></ol></li><li><p>然后设置下QT</p><ol style="list-style-type: lower-alpha;"><li><p>首先打开'''Help'''-&gt;'''About Plugins...'''</p><p>[[File:pi3b-img335.png]]</p></li><li><p>然后去掉'''ClangCodeModel'''的那个勾</p><p>[[File:pi3b-img336.png]]</p></li><li><p>'''<span style="color:#FF0000">设置完后需要重启下QT Creator</span>'''</p></li><li><p>然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCC</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
orangepi@orangepi:~$ <big><p>'''Debian12请跳过这步。'''source </p></big>|}<p>[[File:pi3b-img337.png]]</p><p>[[File:pi3b-img338.png]]</p></optli></rosol></noeticli><li><p>然后就可以打开一个示例代码</setupp><p>[[File:pi3b-img339.bashpng]]</p></li><li><p>点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明</p><p>[[File:pi3b-img340.png]]</p></li><li><p>然后点击下'''Configure Project'''</p><p>[[File:pi3b-img341.png]]</p></li><li><p>然后点击左下角的绿色三角形编译运行下示例代码</p><p>[[File:pi3b-img342.png]]</p></li><li><p>等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行</p><p>[[File:pi3b-img343.png]]</p></li><li><p>参考资料</p>{| class="wikitable" style="width:800px;" |-| orangepi@orangepi<p>[https:~$ //wiki.qt.io/Install_Qt_5_on_Ubuntu '''sudo rosdep inithttps://wiki.qt.io/Install_Qt_5_on_Ubuntu''']</p><p>[https://download.qt.io/archive/qtcreator '''https://download.qt.io/archive/qtcreator''']</p>Wrote <p>[https:/etc/rosdownload.qt.io/rosdeparchive/sourcesqt '''https://download.listqt.dio/archive/qt''']</20-default.listp>|}Recommended: please run</li></ol>
::rosdep update<span id="ros安装方法"></span>
orangepi@orangepi:~$ '''rosdep update'''== ROS安装方法 ==
reading in sources list data from <span id="ubuntu20.04安装ros-1-noetic的方法"></etc/ros/rosdep/sources.listspan>=== Ubuntu20.d04安装ROS 1 Noetic的方法 ===
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml# ROS 1当前活跃的版本如下所示,推荐版本为'''Noetic Ninjemys'''
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base:[[File:pi3b-img344.yamlpng]]
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python:[[File:pi3b-img345.yamlpng]]
Hit https::{| class="wikitable" style="width:800px;" |-| [http://rawdocs.githubusercontentros.comorg/ros'''http:/rosdistro/master/rosdep/rubydocs.ros.yamlorg''']
Hit '''https://rawwiki.githubusercontentros.com/rosorg/rosdistro/master/releases/fuerte.yamlDistributions'''|}
Query rosdistro index https<ol start="2" style="list-style-type: decimal;"><li><p>ROS 1 '''Noetic Ninjemys'''官方安装文档链接如下所示:</p>{| class="wikitable" style="width:800px;" |-| <p>[http://rawwiki.githubusercontentros.comorg/noetic/Installation/Ubuntu '''http://wiki.ros.org/noetic/Installation/rosdistroUbuntu''']</masterp>|}</indexli><li><p>ROS '''Noetic Ninjemys'''官方安装文档中Ubuntu推荐使用Ubuntu20.04,所以请确保开发板使用的系统为'''<span style="color:#FF0000">Ubuntu20.04桌面版系统</span>'''</p>{| class="wikitable" style="width:800px;" |-v4| <p>[http://wiki.ros.org/noetic/Installation '''http://wiki.yamlros.org/noetic/Installation''']</p>|}Skip end<p>[[File:pi3b-ofimg346.png]]</p></li><li><p>然后使用下面的脚本安装ros1</p>{| class="wikitable" style="width:800px;" |-life distro &quot;ardent&quot;| <p>orangepi@orangepi3b:~$ '''install_ros.sh ros1'''</p>|}</li><li><p>使用ROS工具前,首先需要初始化下rosdep,然后编译源码时就能快速的安装一些系统依赖和一些ROS中的核心组件</p></li>Skip end{| class="wikitable" style="background-of-life distro &quotcolor:#ffffdc;bouncy&quotwidth:800px;"  Skip end-of|-life distro &quot;crystal&quot;| Skip end-of-life distro &quot;dashing&quot;<big>'''<span style="color:#FF0000">注意,运行下面的命令需要确保开发板能正常访问github,否则会由于网络问题而报错。</span>'''
Skip end-of-life distro &quot;eloquent&quot;
Add distro &quot;foxy&quot;'''install_ros.sh脚本会尝试修改/etc/hosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的Linux系统能正常访问github,然后再手动运行下面的命令。'''  '''https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml''' '''Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml'''
Add distro &quot;galactic&quot;'''<span style="color:#FF0000">ERROR: error loading sources list:</span>'''
Skip end-of-life distro &quot;groovy&quot;::'''<span style="color:#FF0000">The read operation timed out</span>'''</big>|}
Add distro &quot;humble&quot{| class="wikitable" style="width:800px;" |-| orangepi@orangepi:~$ '''source /opt/ros/noetic/setup.bash'''
Skip end-of-life distro &quot;hydro&quot;orangepi@orangepi:~$ '''sudo rosdep init'''
Skip endWrote /etc/ros/rosdep/sources.list.d/20-of-life distro &quot;indigo&quot;default.list
Skip end-of-life distro &quot;jade&quot;Recommended: please run
Skip end-of-life distro &quot;kinetic&quot;
Skip end-of-life distro &quot;lunar&quot;::rosdep update
Add distro &quot;melodic&quot;orangepi@orangepi:~$ '''rosdep update'''
Add distro &quot;noetic&quot;reading in sources list data from /etc/ros/rosdep/sources.list.d
Add distro &quot;rolling&quot;Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml Skip end-of-life distro &quot;ardent&quot; Skip end-of-life distro &quot;bouncy&quot; Skip end-of-life distro &quot;crystal&quot; Skip end-of-life distro &quot;dashing&quot; Skip end-of-life distro &quot;eloquent&quot; Add distro &quot;foxy&quot; Add distro &quot;galactic&quot; Skip end-of-life distro &quot;groovy&quot; Add distro &quot;humble&quot; Skip end-of-life distro &quot;hydro&quot; Skip end-of-life distro &quot;indigo&quot; Skip end-of-life distro &quot;jade&quot; Skip end-of-life distro &quot;kinetic&quot; Skip end-of-life distro &quot;lunar&quot; Add distro &quot;melodic&quot; Add distro &quot;noetic&quot; Add distro &quot;rolling&quot; updated cache in /home/orangepi/.ros/rosdep/sources.cache|}</ol><ol start="6" style="list-style-type: decimal;"><li><p>然后在'''桌面'''中打开一个命令行终端窗口,再使用'''test_ros.sh'''脚本可以启动一个小海龟的例程来测试下ROS是否能正常使用</p>{| class="wikitable" style="width:800px;"
|-
|
<ol style="list-style-type: decimal;">
<li><p>linux镜像默认是没有打开树莓派5寸屏幕的配置的,如果需要使用树莓派5寸屏幕,需要手动打开才行。Linux镜像默认是没有打开树莓派5寸屏幕的配置的,如果需要使用树莓派5寸屏幕,需要手动打开才行。</p></li>
<li><p>打开mipi lcd配置的步骤如下所示:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>然后选择'''System'''</p>
<p>[[File:pi3b-img359-1.png]]</p></li>
<li><p>然后选择'''Hardware'''</p>
<p>[[File:pi3b-img360.png]]</p></li>
<p>orangepi@orangepi:~$ '''cat /boot/orangepiEnv.txt | grep “raspi”"raspi"'''</p>
<p>'''<span style="color:#FF0000">overlays=raspi-7inch-touchscreen #示例配置</span>'''</p></big>
|}
<ol style="list-style-type: decimal;">
<li><p>在'''/boot/orangepiEnv.txt'''中加入'''extraargs=fbcon=rotate:要旋转的方向'''这行配置就可以设置服务器版本的linux系统显示的方向,其中这行配置就可以设置服务器版本的Linux系统显示的方向,其中'''fbcon=rotate:'''后面的数字可以设置为:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>0: 正常屏(默认为横屏)</p></li>
</li></ol>
</li>
<li><p>然后'''<span style="color:#FF0000">重启</span>'''linux系统就能看到lcd屏幕显示的方向已经旋转了Linux系统就能看到lcd屏幕显示的方向已经旋转了</p></li></ol>
=== 桌面版镜像旋转显示和触摸方向的方法 ===
<ol style="list-style-type: decimal;">
<li><p>首先在linux系统中打开首先在Linux系统中打开'''Display'''设置</p>
<p>[[File:pi3b-img366.png]]</p></li>
<li><p>然后在'''Rotation'''中选择想要旋转的方向</p>
</li></ol>
== eDP屏幕的使用方法 ===== eDP屏幕的组装方法 ===<ol style="list-style-type: decimal;"><li><p>目前仅适配了一款15.6寸的eDP屏幕,包含的配件如下:</p></li><ol style="list-style-type: lower-alpha;"><li><p>0.5间距30pin单头同向排线</p><p>[[File:pi3b-11.png]]</p></li><li><p>15.6寸 eDP显示屏,分辨率为1920x1080。</p><p>[[File:pi3b-12-1.png]]</p></li></ol><li><p>将30pin单头同向排线的FPC端连接到开发板的eDP接口,另一端连接到屏幕的eDP接口</p></li><p>[[File:pi3b-13-1.png]]</p></ol> === 打开eDP屏幕配置的方法 ===<ol style="list-style-type: decimal;"><li><p>Linux镜像默认是没有打开eDP屏幕的配置的,如果需要使用eDP屏幕,需要手动打开才行。</p></li><li><p>打开eDP屏配置的步骤如下所示:</p><ol style="list-style-type: lower-alpha;"><li><p>首先运行下'''orangepi-config''',普通用户记得加'''sudo'''权限</p>{| class="wikitable" style="width:800px;" |-| <p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>|}</li><li><p>然后选择'''System'''</p><p>[[File:pi3b-14.png]]</p></li><li><p>然后选择'''Hardware'''</p><p>[[File:pi3b-15.png]]</p></li><li><p>然后使用键盘的方向键定位到edp,再使用空格选中</p><p>[[File:pi3b-16.png]]</p></li><li><p>然后选择'''<Save>'''保存</p><p>[[File:pi3b-17.png]]</p></li><li><p>然后选择'''<Back>'''</p><p>[[File:pi3b-18.png]]</p></li><li><p>然后选择'''<Reboot>'''重启系统使配置生效</p><p>[[File:pi3b-19.png]]</p>{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big><p>'''上面的设置最终会在/boot/orangepiEnv.txt中加入overlays=edp这句配置。设置完后可以先检查下。如果不存在这句配置,那么设置就是有问题。'''</p>  <p>'''如果觉得使用orangepi-config比较麻烦,也可以使用vim编辑器打开/boot/orangepiEnv.txt,然后加入overlays=edp 这句配置也是可以。'''</p>  <p>orangepi@orangepi:~$ '''cat /boot/orangepiEnv.txt | grep "edp"'''</p><p>'''overlays=edp #示例配置'''</p></big>|}</li></ol></li><li><p>启动后可以看到eDP屏幕的显示如下所示:</p></li><p>[[File:pi3b-20.png]]</p></ol> == 开关机logo使用说明 ==
<ol style="list-style-type: decimal;">
|}
</li>
<li><p>开机logo图片在linux系统中的位置为开机logo图片在Linux系统中的位置为</p>
{| class="wikitable" style="width:800px;"
|-
== ZFS文件系统的使用方法 ==
 
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''最新版本的Ubuntu20.04、Ubuntu22.04、Debian11和Debian12<span style="color:#FF0000">桌面版系统</span>中已经预装了zfs,直接使用即可。'''
 
'''在Ubuntu20.04、Ubuntu22.04桌面版系统中预装的zfs版本是2.1.6。'''
 
'''在Debian11和Debian12桌面版系统中预装的zfs版本是2.1.11。'''
 
'''系统启动后,首先请确认下zfs的内核模块有没有被加载,如果使用lsmod命令可以看到zfs相关的内容,就说明系统已经预装了zfs。'''
 
orangepi@orangepi:~$ '''lsmod | grep &quot;zfs&quot;'''</big>
 
zfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2801664 &nbsp;&nbsp;&nbsp; 0
 
zunicode &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 327680 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
 
zzstd &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 471040 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
 
zlua &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 139264 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
 
zcommon &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 69632 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
 
znvpair &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 61440 &nbsp;&nbsp;&nbsp; 2 &nbsp; zfs,zcommon
 
zavl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16384 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
 
icp &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 221184 &nbsp;&nbsp;&nbsp; 1 &nbsp; zfs
 
spl &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 77824 &nbsp;&nbsp;&nbsp; 6 &nbsp; zfs,icp,zzstd,znvpair,zcommon,zavl
|}
<span id="安装zfs的方法"></span>
|-
|
<big>'''安装zfs前,请先确保使用的linux镜像为最新版本。另外,如果系统中已经安装了zfs,就无需重复安装了。安装zfs前,请先确保使用的Linux镜像为最新版本。另外,如果系统中已经安装了zfs,就无需重复安装了。'''</big>
|}
安装zfs前首先需要安装内核头文件,安装内核头文件的方法请参考[[Orange Pi 3B#安装内核头文件的方法|'''安装内核头文件的方法''']]小节的说明。
在Ubuntu20.04、Ubuntu22.04和Debian11系统中,zfs是无法通过apt直接安装的,这是因为默认的apt源中zfs版本低于2.1.6,存在和rk linux5Linux5.10内核不兼容的问题,这个问题在zfs的2.1.6及以后的版本中得到了修复。
为了解决这个问题,我们提供了能正常安装的zfs的deb包,可以从开发板的[http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3B.html '''官方工具''']中下载到。打开'''官方工具''',然后进入'''Ubuntu和Debian系统使用的zfs相关的deb包'''文件夹后,可以看到Ubuntu20.04、Ubuntu22.04和Debian11三种类型的deb包,请下载需要的版本。
下载完对应版本的zfs deb包后,请将它们上传到开发板的Linux系统中。上传方法请参考[[Orange Pi 3B#上传文件到开发板Linux系统中的方法|'''上传文件到开发板Linux系统中的方法''']]小节的说明。
上传完成后,再在开发板linux系统的命令行中使用上传完成后,再在开发板Linux系统的命令行中使用'''cd'''命令进入deb包的目录,然后使用下面的命令就可以安装zfs的deb包。
{| class="wikitable" style="width:800px;"
|}
然后重启下linux系统就能看到zfs内核模块会自动加载了:然后重启下Linux系统就能看到zfs内核模块会自动加载了:
{| class="wikitable" style="width:800px;"
</li>
<li><p>另外开发板配有开关机按键,还可以'''短按'''开发板上的开关机按键来关机。</p>
<p>[[File:pi3b-img376-1.png]]</p></li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<ol start="3" style="list-style-type: decimal;">
<li><p>关机后短按开发板上的开关机按键即可开机。</p>
<p>[[File:pi3b-img376-1.png]]</p></li><li><p>重启linux系统的命令为重启Linux系统的命令为</p>
{| class="wikitable" style="width:800px;"
|-
<span id="使用开发板的ubuntu22.04系统编译"></span>
=== 使用开发板的Ubuntu22.04系统编译 ===
 
<ol style="list-style-type: decimal;">
<li><p>Linux SDK,即'''orangepi-build''',支持在开发板的'''<span style="color:#FF0000">Ubuntu 22.04</span>'''的上运行(其它系统没有测试过),所以下载orangepi-build前,请首先确保开发板已安装的Ubuntu版本是Ubuntu 22.04。查看开发板已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是'''<span style="color:#FF0000">22.04</span>''',说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>orangepi@orangepi:~$ '''lsb_release -a'''</p>
<p>No LSB modules are available.</p>
<p>Distributor ID: Ubuntu</p>
<p>Description: Ubuntu 22.04.1 LTS</p>
<p>Release: '''<span style="color:#FF0000">22.04</span>'''</p>
<p>Codename: jammy</p>
|}
</li>
<li><p>'''<span style="color:#FF0000">由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保开发板能正常从GitHub下载代码,这点是非常重要的。</span>'''</p></li></ol>
 
<span id="使用x64的ubuntu22.04电脑编译"></span>
 
=== 使用x64的Ubuntu22.04电脑编译 ===
<li><p>'''<span style="color:#FF0000">另外,由于内核和U-boot等源码都是存放在GitHub上的,所以编译镜像的时候请确保电脑能正常从GitHub下载代码,这点是非常重要的。</span>'''</p></li></ol>
</li></ol>
<span id="获取linux获取Linux-sdk的源码"></span>
== 获取Linux sdk的源码 ==
=== 从github下载orangepi-build ===
# linux Linux sdk其实指的就是orangepi-build这套代码,orangepi-build是基于armbian build编译系统修改而来的,使用orangepi-build可以编译出多个版本的linux镜像。首先下载orangepibuild可以编译出多个版本的Linux镜像。首先下载orangepi-build的代码,命令如下所示:
::{| class="wikitable" style="width:800px;"
<ol start="2" style="list-style-type: decimal;">
<li>开发板当前使用的u-boot和linux内核版本如下所示boot和Linux内核版本如下所示</li>
{| class="wikitable" style="width:800px;text-align:center;"
| '''分支'''
| '''u-boot版本'''
| '''linux内核版本Linux内核版本'''
|-
| '''legacy'''
| '''u-boot 2017.09'''
| '''linux5Linux5.10'''
|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<big>'''这里所说的分支和orangepi-build源代码的分支不是同一个东西,请不要搞混了。此分支主要是用来区分不同内核源码版本的。'''
'''目前RK提供的linux5目前RK提供的Linux5.10 bsp内核我们定义为legacy分支。如果以后支持主线内核了,就会添加一个current分支。'''</big>
|}
</ol>
|-
|
<big><p>'''如果是从github下载的orangepi-build的代码,下载完后你可能会发现orangepi-build中并没有包含u-boot和linux内核的源码,也没有编译uboot和Linux内核的源码,也没有编译u-boot和linux内核需要用到交叉编译工具链,这是正常的,因为这些东西都存放在其它单独的github仓库或者某些服务器上了(下文会详述其地址)。orangepiboot和Linux内核需要用到交叉编译工具链,这是正常的,因为这些东西都存放在其它单独的github仓库或者某些服务器上了(下文会详述其地址)。orangepi-build在脚本和配置文件中会指定u-boot、linux内核和交叉编译工具链的地址,运行orangepiboot、Linux内核和交叉编译工具链的地址,运行orangepi-build时,当其发现本地没有这些东西,会自动去相应的地方下载的。'''</p></big>
|}
</li></ol>
|-
|
<big>'''只有在x64的电脑中使用orangepi-build编译镜像才会下载交叉编译工具链。在开发板的Ubuntu22.04中编译开发板的linux镜像是不会下载交叉编译工具链的,此时orangepi04中编译开发板的Linux镜像是不会下载交叉编译工具链的,此时orangepi-build/toolchains会是一个空文件夹。'''</big>
|}
|}
</li>
<li><p>编译linux内核源码使用的交叉编译工具链为编译Linux内核源码使用的交叉编译工具链为</p>
<ol style="list-style-type: lower-alpha;">
<li><p>linux5.10</p>
<ol style="list-style-type: decimal;">
<li><p>orangepi-build仓库下载完后并不包含linux内核、ubuild仓库下载完后并不包含Linux内核、u-boot的源码以及交叉编译工具链,linux内核和uboot的源码以及交叉编译工具链,Linux内核和u-boot的源码存放在独立的git仓库中</p>
<ol style="list-style-type: lower-alpha;">
<li><p>linux内核源码存放的git仓库如下所示:Linux内核源码存放的git仓库如下所示:</p>
{| class="wikitable" style="width:800px;"
|-
</li></ol>
</li>
<li><p>orangepi-build第一次运行的时候会去下载交叉编译工具链、u-boot和linux内核源码,成功编译完一次linux镜像后在orangepiboot和Linux内核源码,成功编译完一次Linux镜像后在orangepi-build中可以看到的文件和文件夹有</p>
<ol style="list-style-type: lower-alpha;">
<li><p>'''build.sh''': 编译启动脚本</p></li>
<li><p>'''external''': 包含编译镜像需要用的配置文件、特定功能的脚本以及部分程序的源码,编译镜像过程中缓存的rootfs压缩包也存放在external中</p></li>
<li><p>'''kernel''': 存放linux内核的源码,里面名为存放Linux内核的源码,里面名为'''orange-pi-5.10-rk35xx'''的文件夹存放的就是RK3588/RK3588S/RK3566系列开发板legacy分支的内核源码,内核源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载内核源码</p></li>
<li><p>'''LICENSE''': GPL 2许可证文件</p></li>
<li><p>'''README.md''': orangepi-build说明文件</p></li>
<li><p>'''output''': 存放编译生成的u-boot、linux等deb包、编译日志以及编译生成的镜像等文件boot、Linux等deb包、编译日志以及编译生成的镜像等文件</p></li><li><p>'''scripts''': 编译linux镜像的通用脚本编译Linux镜像的通用脚本</p></li>
<li><p>'''toolchains''': 存放交叉编译工具链</p></li>
<li><p>'''u-boot''': 存放u-boot的源码,里面名为'''v2017.09-rk3588'''的文件夹存放的就是RK3588/RK3588S/RK3566系列开发板legacy分支的u-boot源码,u-boot源码的文件夹的名字请不要手动修改,如果修改了,编译系统运行时会重新下载u-boot源码</p></li>
|}
</li>
<li><p>调试u-boot代码时,可以使用下面的方法来更新linux镜像中的uboot代码时,可以使用下面的方法来更新Linux镜像中的u-boot进行测试</p>
<ol style="list-style-type: lower-alpha;">
<li><p>将编译好的u-boot的deb包上传到开发板的linux系统中boot的deb包上传到开发板的Linux系统中</p>
{| class="wikitable" style="width:800px;"
|-
<li><p>然后选择'''5 Install/Update the bootloader on SD/eMM'''来更新TF卡中的u-boot或者'''7 Install/Update the bootloader on SPI Flash'''来更新SPI Flash中的u-boot</p>
<p>[[File:pi3b-img383.png]]</p></li>
<li><p>按下回车键后首先会弹出一个Warring按下回车键后首先会弹出一个Warning</p>
<p>[[File:pi3b-img384.png]]</p></li>
<li><p>再按下回车键就会开始更新u-boot,更新完后会显示下面的信息</p>
<li><p>编译内核源码时提示的部分信息说明如下</p>
<ol style="list-style-type: lower-alpha;">
<li><p>linux内核源码的版本Linux内核源码的版本</p>
{| class="wikitable" style="width:800px;"
|-
<!-- -->
<ol start="9" style="list-style-type: decimal;">
<li><p>orangepi-bulid编译系统编译linux内核源码时首先会将linux内核源码和github服务器的linux内核源码进行同步,所以如果想修改linux内核的源码,首先需要关闭源码的更新功能(bulid编译系统编译Linux内核源码时首先会将Linux内核源码和github服务器的Linux内核源码进行同步,所以如果想修改Linux内核的源码,首先需要关闭源码的更新功能('''需要完整编译过一次linux内核源码后才能关闭这个功能,否则会提示找不到linux内核的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为linux的源码都已缓存好了需要完整编译过一次Linux内核源码后才能关闭这个功能,否则会提示找不到Linux内核的源码,如果是从百度云盘下载的源码压缩包,则没有这个问题,因为Linux的源码都已缓存好了'''),否则所作的修改都会被还原,方法如下:</p>
<p>设置'''userpatches/config-default.conf'''中的IGNORE_UPDATES变量为”yes”</p>
{| class="wikitable" style="width:800px;"
|}
</li>
<li><p>如果对内核做了修改,可以使用下面的方法来更新开发板linux系统的内核和内核模块如果对内核做了修改,可以使用下面的方法来更新开发板Linux系统的内核和内核模块</p>
<ol style="list-style-type: lower-alpha;">
<li><p>将编译好的linux内核的deb包上传到开发板的linux系统中将编译好的Linux内核的deb包上传到开发板的Linux系统中</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>然后登录到开发板,卸载已安装的linux内核的deb包然后登录到开发板,卸载已安装的Linux内核的deb包</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>再安装刚才上传的新的linux内核的deb包再安装刚才上传的新的Linux内核的deb包</p>
{| class="wikitable" style="width:800px;"
|-
<li><p>'''jammy-xfce-arm64.f930ff6ebbac1a72108a2e100762b18f.tar.lz4'''是rootfs的压缩包,名字各字段的含义为</p>
<ol style="list-style-type: none;">
<li><p>a) '''jammy'''表示rootfs的linux发行版的类型表示rootfs的Linux发行版的类型</p></li>
<li><p>b) '''xfce'''表示rootfs为桌面版的类型,如果为'''cli'''则表示服务器版类型</p></li>
<li><p>c) '''arm64'''表示rootfs的架构类型</p></li>
<p>然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。</p>
<p>[[File:pi3b-img396.png]]</p></li>
<li><p>然后就会开始编译linux镜像,编译的大致流程如下然后就会开始编译Linux镜像,编译的大致流程如下</p>
<ol style="list-style-type: lower-alpha;">
<li><p>初始化Ubuntu PC的编译环境,安装编译过程需要的软件包</p></li>
<li><p>下载u-boot和linux内核的源码(如果已经缓存,则只更新代码)boot和Linux内核的源码(如果已经缓存,则只更新代码)</p></li>
<li><p>编译u-boot源码,生成u-boot的deb包</p></li>
<li><p>编译linux源码,生成linux相关的deb包编译Linux源码,生成Linux相关的deb包</p></li><li><p>制作linux 制作Linux firmware的deb包</p></li>
<li><p>制作orangepi-config工具的deb包</p></li>
<li><p>制作板级支持的deb包</p></li>
| '''eDP显示'''
| '''OK'''
|-
| '''Camera'''
| '''<span style="color:#FF0000">NO</span>'''
|-
| '''千兆网口'''
<span id="pin-接口-gpiouartspi-和-pwm-测试"></span>
 
== eDP屏幕的使用方法 ==
<ol style="list-style-type: decimal;">
<li><p>目前仅适配了一款15.6寸的eDP屏幕,包含的配件如下:</p></li>
<ol style="list-style-type: lower-alpha;">
<li><p>0.5间距30pin单头同向排线</p>
<p>[[File:pi3b-26.png]]</p>
</li>
<li><p>15.6寸 eDP显示屏,分辨率为1920x1080</p>
<p>[[File:pi3b-27.png]]</p>
</li>
</ol>
<li><p>将30pin单头同向排线的FPC端连接到开发板的eDP接口,另一端连接到屏幕的eDP接口</p></li>
<p>[[File:pi3b-28.png]]</p>
<li><p>再给板子接通Type-C电源,并上电,系统启动后,就可以看到屏幕显示如下图所示</p></li>
<p>[[File:pi3b-29-1.png]]</p>
</ol>
== 40pin 接口 GPIO、UART、SPI 和 PWM 测试 ==
<p>[[File:pi3b-img421.png]]</p></li>
<li><p>GPIO测试界面如下图所示,左边的两排'''CheckBox'''按钮跟40pin引脚是一一对应的关系。当勾选'''CheckBox'''按钮时,对应的GPIO引脚会被设置为'''OUT'''模式,引脚电平设置为高电平;当取消勾选时,GPIO引脚电平设置为低电平;当点击右边的'''GPIO READALL'''按钮时,可以获取到wPi号、GPIO模式、引脚电平等信息;当点击'''BLINK ALL GPIO'''按钮时,程序会控制28个GPIO口不停的切换高低电平</p>
<p>[[File:pi3b-img422-1.png]]</p></li>
<li><p>然后点击'''GPIO READALL'''按钮,输出信息如下图所示:</p>
<p>[[File:pi3b-img423-1.png]]</p></li><li><p>开发板40pin中总共有28个GPIO口可以使用,下面以7号引脚——对应GPIO为GPIO4_A4 ——对应wPi序号为2——为例演示如何设置GPIO口的高低电平。首先点击7号引脚对应的开发板40pin中总共有28个GPIO口可以使用,下面以11号引脚——对应GPIO为GPIO3_C6 ——对应wPi序号为5——为例演示如何设置GPIO口的高低电平。首先点击7号引脚对应的'''CheckBox'''按钮,当按钮为选中状态时,7号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为按钮,当按钮为选中状态时,11号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''3.3v''',说明设置高电平成功</p><p>[[File:pi3b-img424-1.png]]</p></li>
<li><p>然后点击'''GPIO READALL'''按钮,可以看到当前的7号引脚模式为'''OUT''',引脚电平为高电平</p>
<p>[[File:pi3b-img425.png]]</p></li>
<li><p>再次点击下图的'''CheckBox'''按钮取消勾选状态,7号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为按钮取消勾选状态,11号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为'''0v''',说明设置低电平成功</p><p>[[File:pi3b-img426-1.png]]</p></li>
<li><p>然后点击'''GPIO READALL'''按钮,可以看到当前的7号引脚模式为OUT,引脚电平为低电平</p>
<p>[[File:pi3b-img427-1.png]]</p></li></ol>
<span id="pin的uart测试-2"></span>
 
=== 40pin的UART测试 ===
<ol style="list-style-type: decimal;">
<li><p>Android中默认打开了UART7和UART9,在40pin的位置如下图所示,对应的设备节点分别是'''/dev/ttyS7'''和'''/dev/ttyS9'''</p>
<p>[[File:pi3b-img271-1.png]]</p></li>
<li><p>首先点击wiringOP图标打开wiringOP APP</p>
<p>[[File:pi3b-img420.png]]</p></li>
<ol style="list-style-type: decimal;">
<li><p>由 40pin 接口的原理图可知,Orange Pi 3B可用的 spi 为 spi3</p>
<p>[[File:pi3b-img266-1.png]]</p></li>
<li><p>这里通过w25q64模块来测试SPI接口,首先在SPI3接口接入w25q64设备</p>
<p>[[File:pi3b-img434.png]]</p></li>
<ol style="list-style-type: decimal;">
<li><p>Android默认开启了'''PWM11''',对应的引脚在40pin的所在位置如下图所示</p>
<p>[[File:pi3b-img440-1.png]]</p></li>
<li><p>首先点击wiringOP图标打开wiringOP APP</p>
<p>[[File:pi3b-img420.png]]</p></li>
<li><p>然后在wiringOP的主界面点击'''PWM_TEST'''按钮进入PWM的测试界面</p>
<p>[[File:pi3b-img441.png]]</p></li>
<li><p>PWM11对应的基地址是'''fe6f0030''',PWM15对应的基地址是'''fe700030''',这里pwmchip0右边显示是'''fdd70020.pwm''', 这时需要点击下拉选项选择其它的pwmchip,直到右边显示'''febf0030fe6f0030.pwm'''或者'''fe700030.pwm'''为止</p>
<p>[[File:pi3b-img442.png]]</p></li>
<li><p>当下拉选项选择'''pwmchip3'''时,右边对应的就是PWM11对应的基地址'''fe6f0030'''</p>
| '''更新说明'''
|-
| v0v1.10| 2023-0708-1917
| 初始版本
|}
| style="text-align:center;" |'''更新说明'''
|-
| style="text-align:center;" |2023-0708-1917
|
Orangepi3b_1.0.0_ubuntu_focal_server_linux5.10.160.7z
 
Orangepi3b_1.0.0_ubuntu_jammy_server_linux5.10.160.7z
 
Orangepi3b_1.0.0_debian_bullseye_server_linux5.10.160.7z
 
Orangepi3b_1.0.0_debian_bookworm_server_linux5.10.160.7z
 
Orangepi3b_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.160.7z
 
Orangepi3b_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.160.7z
 
Orangepi3b_1.0.0_debian_bullseye_desktop_xfce_linux5.10.160.7z
Orangepi3b_1.0.0_ubuntu_jammy_desktop_xfce_linux50_debian_bookworm_desktop_xfce_linux5.10.160.7z
Orangepi3b_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.160.7z
OrangePi3B_RK3566_Android11_v1.0.0.tar.gz
OrangePi3B_RK3566_Android11_lcd_spi-nvme_v1.0.0.tar.gz
 
* 初始版本
|}
8,460
个编辑