OrangePi_Zero3_H618_用户手册_v1.3

发布时间:2024-03-23 20:03:50浏览次数:107
range Pi 用户手册 深圳市迅龙软件有限公司版权所有Orange Pi Zero 3用户手册 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn3www.xunlong.tv1.5.Orange Pi Zero 3的顶层视图和底层视图顶层视图:底层视图: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn93www.xunlong.tv使用HDMI转VGA显示时,开发板以及开发板的Linux系统是不需要做任何设置的,只需要开发板Micro HDMI接口能正常显示就可以了。所以如果测试有问题,请检查HDMI转VGA转换器、VGA线以及显示器是否有问题。3.9.3. Linux5.4 系统 HDMI 分辨率设置的方法注意: 此方法只适用于 linux5.4 内核的系统。1) 在 linux 系统的/boot/orangepiEnv.txt 中有个 disp_mode 变量,可以通过它来设置HDMI 输出的分辨率,linux 系统默认设置的分辨率为 1080p60orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txtverbosity=1console=bothdisp_mode=1080p60fb0_width=1920fb0_height=10802) disp_mode 变量支持设置的值如下表所示disp_mode支持的值HDMI分辨率HDMI刷新率480i720x48060 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn94www.xunlong.tv576i720x48050480p720x48060576p720x57660720p501280x72050720p601280x720601080i501920x1080501080i601920x1080601080p241920x1080241080p501920x1080501080p601920x108060注意:Linux 系统目前不支持 4K 分辨率。3) 将 disp_mode 变量的值修改为想要输出的分辨率,然后重启系统,HDMI 就会输出所设置的分辨率了4) 查看 HDMI 输出分辨率的方法如下所示,如果显示的分辨率和设置的分辨率一样,说明开发板这端的设置正确orangepi@orangepi:~$ sudo cat /sys/class/disp/disp/attr/sys3.9.4. Linux5.4 系统 Framebuffer 宽度和高度的修改方法注意: 此方法只适用于 linux5.4 内核的系统。在 linux 系统的/boot/orangepiEnv.txt 中有 fb0_width 和 fb0_height 两个变量,可以通过它们来设置 Framebuffer 的宽度和高度,linux 系统默认设置 fb0_width=1920、fb0_height=1080。orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txtverbosity=1console=bothdisp_mode=1080p60fb0_width=1920 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn95www.xunlong.tvfb0_height=1080fb0_width 和 fb0_height 不同分辨率对应的参考值如下所示:HDMI 分辨率fb0_widthfb0_height480p720480576p720576720p12807201080p19201080在相同的 HDMI 分辨下,当 fb0_width 和 fb0_height 设置的值越大时,屏幕显示的文字就越小,当 fb0_width 和 fb0_height 设置的值越小时,屏幕显示的文字就越大。3.9.5. Framebuffer 光标设置1) Framebuffer 使用的 softcursor,设置光标闪烁或者不闪烁的方法如下所示root@orangepi:~# echo 1 > /sys/class/graphics/fbcon/cursor_blink #光标闪烁root@orangepi:~# echo 0 > /sys/class/graphics/fbcon/cursor_blink #光标不闪烁2) 如果需要隐藏光标,可以在/boot/orangepiEnv.txt 的 extraargs 变量(extraargs的 值 会 赋 值 给 bootargs 环 境 变 量 最 终 传 递 给 内 核 ) 中 加 入vt.global_cursor_default=0(如果 vt.global_cursor_default=1 则是显示光标),然后重启系统就能看到光标已经消失orangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txtverbosity=1console=bothdisp_mode=1080p60fb0_width=1920fb0_height=1080extraargs=vt.global_cursor_default=03.10. 蓝牙使用方法3.10.1. 桌面版镜像的测试方法1) 点击桌面右上角的蓝牙图标 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn96www.xunlong.tv2)然后选择适配器3)如果有提示下面的界面,请选择Yes4)然后在蓝牙的适配器设置界面中设置Visibility Setting为Always visible,然后关闭即可5)然后打开蓝牙设备的配置界面 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn97www.xunlong.tv6)点击Search即可开始扫描周围的蓝牙设备7)然后选择想要连接的蓝牙设备,再点击鼠标右键就会弹出对此蓝牙设备的操作界面,选择Pair即可开始配对,这里演示的是和Android手机配对8)配对时,桌面的右上角会弹出配对确认框,选择Confirm确认即可,此时手机上也同样需要进行确认 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn98www.xunlong.tv9)和手机配对完后,可以选择已配对的蓝牙设备,然后右键选择Send a File即可开始给手机发送一张图片10)发送图片的界面如下所示3.10.2. 服务器版镜像的使用方法1)进入系统后首先可以通过hciconfig命令来查看是否存在蓝牙的设备节点,如果存在,说明蓝牙初始化正常 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn99www.xunlong.tvorangepi@orangepi:~$ sudo apt update && sudo apt install -y bluezorangepi@orangepi:~$ hciconfig -ahci0: Type: Primary Bus: UARTBD Address: 3E:61:3D:19:0E:52 ACL MTU: 1021:8 SCO MTU: 240:3UP RUNNINGRX bytes:925 acl:0 sco:0 events:72 errors:0TX bytes:5498 acl:0 sco:0 commands:72 errors:0Features: 0xbf 0xff 0x8d 0xfe 0xdb 0x3d 0x7b 0xc7Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3Link policy: RSWITCH SNIFFLink mode: SLAVE ACCEPTName: 'orangepi'Class: 0x3c0000Service Classes: Rendering, Capturing, Object Transfer, AudioDevice Class: Miscellaneous,HCI Version: 5.0 (0x9) Revision: 0x400LMP Version: 5.0 (0x9) Subversion: 0x400Manufacturer: Spreadtrum Communications Shanghai Ltd (492)2) 使用 bluetoothctl 扫描蓝牙设备orangepi@orangepi:~$ sudo bluetoothctl[NEW] Controller 10:11:12:13:14:15 orangepizero3 [default]Agent registered[bluetooth]# power on #使能控制器Changing power on succeeded[bluetooth]# discoverable on #设置控制器为可被发现的Changing discoverable on succeeded[CHG] Controller 10:11:12:13:14:15 Discoverable: yes[bluetooth]# pairable on #设置控制器为可配对的Changing pairable on succeeded[bluetooth]# scan on #开始扫描周围的蓝牙设备Discovery started[CHG] Controller 10:11:12:13:14:15 Discovering: yes[NEW] Device 76:60:79:29:B9:31 76-60-79-29-B9-31[NEW] Device 9C:2E:A1:42:71:11 小米手机[NEW] Device DC:72:9B:4C:F4:CF orangepi range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn100www.xunlong.tv[bluetooth]# scan off #扫描到想连接的蓝牙设备后就可以关闭扫描了,然后记下蓝牙设备的 MAC 地址,这里测试的蓝牙设备为 Android 手机,蓝牙的名字为orangepi,对应的 MAC 地址为 DC:72:9B:4C:F4:CFDiscovery stopped[CHG] Controller 10:11:12:13:14:15 Discovering: no[CHG] Device DC:72:9B:4C:F4:CF RSSI is nil3) 扫描到想配对的设备后就可以进行配对了,配对需要使用设备的 MAC 地址[bluetooth]# pair DC:72:9B:4C:F4:CF #使用扫描到的蓝牙设备的 MAC 地址进行配对Attempting to pair with DC:72:9B:4C:F4:CF[CHG] Device DC:72:9B:4C:F4:CF Connected: yesRequest confirmation[leeb1m[agent] Confirm passkey 764475 (yes/no): yes #在这里输入 yes,在手机上也需要确认[CHG] Device DC:72:9B:4C:F4:CF Modalias: bluetooth:v010Fp107Ed1436[CHG] Device DC:72:9B:4C:F4:CF UUIDs: 0000046a-0000-1000-8000-00805f9b34fb[CHG] Device DC:72:9B:4C:F4:CF ServicesResolved: yes[CHG] Device DC:72:9B:4C:F4:CF Paired: yesPairing successful #提示配对成功[CHG] Device DC:72:9B:4C:F4:CF ServicesResolved: no[CHG] Device DC:72:9B:4C:F4:CF Connected: no4) 配对成功后,手机蓝牙界面的显示如下所示5) 连 接 蓝 牙 设 备需 要 安装 pulseaudio-module-bluetooth 软件 包 , 然 后 再 启 动pulseaudio 服务orangepi@orangepi:~$ sudo apt update range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn101www.xunlong.tvorangepi@orangepi:~$ sudo apt -y install pulseaudio-module-bluetoothorangepi@orangepi:~$ pulseaudio --start6) 连接蓝牙设备的方法orangepi@orangepi:~$ sudo bluetoothctlAgent registered[bluetooth]# paired-devices #查看已配对的蓝牙设备的 MAC 地址Device DC:72:9B:4C:F4:CF orangepi[bluetooth]# connect DC:72:9B:4C:F4:CF #使用 MAC 地址连接蓝牙设备Attempting to connect to DC:72:9B:4C:F4:CF[CHG] Device DC:72:9B:4C:F4:CF Connected: yesConnection successful[CHG] Device DC:72:9B:4C:F4:CF ServicesResolved: yes[CHG] Controller 10:11:12:13:14:15 Discoverable: no[orangepi]# #出现这个提示符说明连接成功7) 连接完蓝牙设备后,Android 手机的蓝牙配置界面就可以看到已连接用于通话和媒体的音频的提示3.11.USB接口测试USB 接口是可以接 USB hub 来扩展 USB 接口的数量的。3.11.1. 连接 USB 鼠标或键盘测试1)将USB接口的键盘插入Orange Pi开发板的USB接口中 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn102www.xunlong.tv2)连接Orange Pi开发板到HDMI显示器3)如果鼠标或键盘能正常操作系统说明USB接口使用正常(鼠标只有在桌面版的系统中才能使用)3.11.2. 连接 USB 存储设备测试1)首先将U盘或者USB移动硬盘插入Orange Pi开发板的USB接口中2)执行下面的命令如果能看到sdX的输出说明U盘识别成功orangepi@orangepi:~$ cat /proc/partitions | grep "sd*"major minor #blocks name8 0 30044160 sda8 1 30043119 sda13) 使用 mount 命令可以将 U 盘挂载到/mnt 中,然后就能查看 U 盘中的文件了orangepi@orangepi:~$ sudo mount /dev/sda1 /mnt/orangepi@orangepi:~$ ls /mnt/test.txt4) 挂载完后通过 df -h 命令就能查看 U 盘的容量使用情况和挂载点orangepi@orangepi:~$ df -h | grep "sd"/dev/sda1 29G 208K 29G 1% /mnt3.11.3. USB 以太网卡测试1)目前测试过能用的USB以太网卡如下所示,其中RTL8153 USB千兆网卡插入开发板的USB 2.0 Host接口中测试可以正常使用,但是速率是达不到千兆的,这点请注意序号型号1RTL8152B USB 百兆网卡2RTL8153 USB 千兆网卡2) 首先将 USB 网卡插入开发板的 USB 接口中,然后在 USB 网卡中插入网线,确保网线能正常上网,如果通过 dmesg 命令可以看到下面的 log 信息,说明 USB 网卡 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn4www.xunlong.tv1.6.Orange Pi Zero 3的接口详情图 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn103www.xunlong.tv识别正常orangepi@orangepi:~$ dmesg | tail[ 121.985016] usb 3-1: USB disconnect, device number 2[ 126.873772] sunxi-ehci 5311000.ehci3-controller: ehci_irq: highspeed device connect[ 127.094054] usb 3-1: new high-speed USB device number 3 using sunxi-ehci[ 127.357472] usb 3-1: reset high-speed USB device number 3 using sunxi-ehci[ 127.557960] r8152 3-1:1.0 eth1: v1.08.9[ 127.602642] r8152 3-1:1.0 enx00e04c362017: renamed from eth1[ 127.731874] IPv6: ADDRCONF(NETDEV_UP): enx00e04c362017: link is not ready[ 127.763031] IPv6: ADDRCONF(NETDEV_UP): enx00e04c362017: link is not ready[ 129.892465] r8152 3-1:1.0 enx00e04c362017: carrier on[ 129.892583] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c362017: linkbecomes ready3) 然后通过 ifconfig 命令可以看到 USB 网卡的设备节点,以及自动分配的 IP 地址orangepi@orangepi:~$ sudo ifconfigenx00e04c362017: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu1500inet 192.168.1.177 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::681f:d293:4bc5:e9fd prefixlen 64 scopeid 0x20<link>ether 00:e0:4c:36:20:17 txqueuelen 1000 (Ethernet)RX packets 1849 bytes 134590 (134.5 KB)RX errors 0 dropped 125 overruns 0 frame 0TX packets 33 bytes 2834 (2.8 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 04) 测试网络连通性的命令如下orangepi@orangepi:~$ ping www.baidu.com -I enx00e04c362017PING www.a.shifen.com (14.215.177.38) from 192.168.1.12 eth0: 56(84) bytes of data.64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=56 time=6.74 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=56 time=6.80 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=56 time=6.26 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=56 time=7.27 ms^C--- www.a.shifen.com ping statistics --- range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn104www.xunlong.tv4 packets transmitted, 4 received, 0% packet loss, time 3002msrtt min/avg/max/mdev = 6.260/6.770/7.275/0.373 ms3.11.4. USB 摄像头测试1) 首先将 USB 摄像头插入到 Orange Pi 开发板的 USB 接口中2) 然后通过 lsmod 命令可以看到内核自动加载了下面的模块orangepi@orangepi:~$ lsmodModule Size Used byuvcvideo 106496 03) 通过 v4l2-ctl 命令可以看到 USB 摄像头的设备节点信息为/dev/video0orangepi@orangepi:~$ sudo apt updateorangepi@orangepi:~$ sudo apt install -y v4l-utilsorangepi@orangepi:~$ v4l2-ctl --list-devicesUSB 2.0 Camera (usb-sunxi-ehci-1):/dev/video0注意v4l2中的l是小写字母l,不是数字1。另外video的序号不一定都是video0,请以实际看到的为准。4) 使用 fswebcam 测试 USB 摄像头a. 安装 fswebcamorangepi@orangepi:~$ sudo apt updateorangepi@orangepi:~$ sudo apt-get install -y fswebcamb.安装完fswebcam后可以使用下面的命令来拍照a) -d选项用于指定USB摄像头的设备节点b) --no-banner用于去除照片的水印c) -r选项用于指定照片的分辨率d) -S选项用设置于跳过前面的帧数e) ./image.jpg用于设置生成的照片的名字和路径orangepi@orangepi:~$ sudo fswebcam -d /dev/video0 \--no-banner -r 1280x720 -S 5 ./image.jpgc. 在服务器版的 linux 系统中,拍完照后可以使用 scp 命令将拍好的图片传到Ubuntu PC 上镜像观看 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn105www.xunlong.tvorangepi@orangepi:~$ scp image.jpg test@192.168.1.55:/home/test(根据实际情况修改 IP 地址和路径)d. 在桌面版的 linux 系统中,可以通过 HDMI 显示器直接查看拍摄的图片5) 使用 mjpg-streamer 测试 USB 摄像头a. 下载 mjpg-streamera) Github 的下载地址:orangepi@orangepi:~$ git clone https://github.com/jacksonliam/mjpg-streamerb) Gitee 的镜像下载地址为:orangepi@orangepi:~$ git clone https://gitee.com/leeboby/mjpg-streamerb.安装依赖的软件包a) Ubuntu系统orangepi@orangepi:~$ sudo apt-get install -y cmake libjpeg8-devb) Debian 系统orangepi@orangepi:~$ sudo apt-get install -y cmake libjpeg62-turbo-devc. 编译安装 mjpg-streamerorangepi@orangepi:~$ cd mjpg-streamer/mjpg-streamer-experimentalorangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ make -j4orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ sudo make installd.然后输入下面的命令启动mjpg_streamer注意,video的序号不一定都是video0,请以实际看到的为准。orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ export LD_LIBRARY_PATH=.orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so -d \/dev/video0 -u -f 30" -o "./output_http.so -w ./www"e.然后在和开发板同一局域网的Ubuntu PC或者Windows PC或者手机的浏览器中输入【开发板的IP地址:8080】就能看到摄像头输出的视频了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn106www.xunlong.tv3.12. 音频测试3.12.1. 使用命令行播放音频的方法3.12.1.1. 耳机接口播放音频测试1) 首先需要将 13pin 扩展板插入到 Orange Pi 开发板的 13pin 接口中,然后在音频接口中插入耳机2) 通过 aplay -l 命令可以查看 linux 系统支持的声卡设备a. linux5.4 系统的输出如下所示,其中 card 0: audiocodec 就是耳机播放需要的声卡设备root@orangepi:~# aplay -l**** List of PLAYBACK Hardware Devices ****card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sun50iw9-codec-0 [] range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn107www.xunlong.tvSubdevices: 1/1Subdevice #0: subdevice #0b. linux6.1 系统的输出如下所示,其中 audiocodec 就是耳机播放需要的声卡设备root@orangepi:~# aplay -l**** List of PLAYBACK Hardware Devices ****card 0: audiocodec [audiocodec], device 0: CDC PCM Codec-0 [CDC PCMCodec-0]Subdevices: 1/1Subdevice #0: subdevice #03) 然后使用 aplay 命令播放音频,耳机就能听到声音了root@orangepi:~# aplay -D hw:0,0 /usr/share/sounds/alsa/audio.wavPlaying WAVE 'audio.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo如果耳机测试有杂音,请将耳机拔出来一些,不要全部插到底。3.12.1.2. HDMI 音频播放测试1) 首先使用 Micro HDMI 转 HDMI 线将 Orange Pi 开发板连接到电视机上(其他的HDMI 显示器需要确保可以播放音频)2) HDMI 音频播放无需其他设置,直接使用 aplay 命令播放即可root@orangepi:~# aplay -D hw:2,0 /usr/share/sounds/alsa/audio.wav3.12.2. 在桌面系统中测试音频方法1) 首先打开文件管理器 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn108www.xunlong.tv2)然后找到下面这个文件(如果系统中没有这个音频文件,可以自己上传一个音频文件到系统中)3)然后选中audio.wav文件,右键选择使用vlc打开就可以开始播放4)切换HDMI播放和耳机播放等不同音频设备的方法a.首先打开音量控制界面b.播放音频的时候,在Playback中会显示播放软件可以使用的音频设备选项,如下图所示,在这里可以设置需要播放到哪个音频设备 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn109www.xunlong.tv3.13. 红外接收测试1) 首先需要将 13pin 扩展板插入到 Orange Pi 开发板的 13pin 接口中,插入扩展板后,开发板才能使用红外接收功能2) 安装 ir-keytable 红外测试软件orangepi@orangepi:~$ sudo apt updateorangepi@orangepi:~$ sudo apt-get install -y ir-keytable3)然后执行ir-keytable可以查看红外设备的信息a. linux5.4系统输出如下所示orangepi@orangepi:~$ ir-keytableFound /sys/class/rc/rc0/ (/dev/input/event1) with: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn110www.xunlong.tvDriver: sunxi-rc-recv, table: rc_map_sunxilirc device: /dev/lirc0Supported protocols: lirc necEnabled protocols: lirc necName: sunxi_ir_recvbus: 25, vendor/product: 0001:0001, version: 0x0100Repeat delay = 500 ms, repeat period = 125 msb. linux6.1 系统的输出如下所示orangepi@orangepi:~$ ir-keytableFound /sys/class/rc/rc0/ with:Name: sunxi-irDriver: sunxi-irDefault keymap: rc-emptyInput device: /dev/input/event5LIRC device: /dev/lirc0Attached BPF protocols: Operation not permittedSupported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharpxmp imon rc-mmEnabled kernel protocols: lircbus: 25, vendor/product: 0001:0001, version: 0x0100Repeat delay = 500 ms, repeat period = 125 ms4) 测试红外接收功能前需要准备一个 Orange Pi 专用的红外遥控器,其他遥控器不支持5) 然后在终端中输入 ir-keytable -t 命令,再使用红外遥控器对着 Orange Pi 开发板的红外接收头按下按键就能在终端中看到接收到的按键编码了a. linux5.4 系统输出如下所示orangepi@orangepi:~$ sudo ir-keytable -t range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn111www.xunlong.tvTesting events. Please, press CTRL-C to abort.1598339152.260376: event type EV_MSC(0x04): scancode = 0xfb04131598339152.260376: event type EV_SYN(0x00).1598339152.914715: event type EV_MSC(0x04): scancode = 0xfb0410b. linux6.1 系统输出如下所示orangepi@orangepi:~$ sudo ir-keytable -c -p NEC -tOld keytable clearedProtocols changed to necTesting events. Please, press CTRL-C to abort.202.063219: lirc protocol(nec): scancode = 0x45c202.063249: event type EV_MSC(0x04): scancode = 0x45c202.063249: event type EV_SYN(0x00).3.14. 温度传感器3.14.1. linux5.4 系统查看温度的方法H618 总共有 4 个温度传感器,查看温度的命令如下所示:显示的温度值需要除以 1000,单位才是摄氏度。a. sensor0:CPU的温度传感器,第一条命令用于查看温度传感器的类型,第二条命令用于查看温度传感器的数值orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone0/typecpu_thermal_zoneorangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone0/temp57734b. sensor1:DDR 的温度传感器,第一条命令用于查看温度传感器的类型,第二条命令用于查看温度传感器的数值orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone1/typeddr_thermal_zoneorangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone1/temp57410c. sensor2:GPU 的温度传感器,第一条命令用于查看温度传感器的类型,第二条命令用于查看温度传感器的数值orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone2/typegpu_thermal_zone range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn112www.xunlong.tvorangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone2/temp59273d. sensor3:VE 的温度传感器,第一条命令用于查看温度传感器的类型,第二条命令用于查看温度传感器的数值orangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone3/typeve_thermal_zoneorangepi@orangepi:~$ cat /sys/class/thermal/thermal_zone3/temp589493.14.2. linux6.1 系统查看温度的方法orangepi@orangepi:~$ sensorscpu_thermal-virtual-0Adapter: Virtual devicetemp1: +47.4°C (crit = +110.0°C)gpu_thermal-virtual-0Adapter: Virtual devicetemp1: +48.7°C (crit = +110.0°C)ddr_thermal-virtual-0Adapter: Virtual devicetemp1: +47.8°C (crit = +110.0°C)ve_thermal-virtual-0Adapter: Virtual devicetemp1: +47.2°C (crit = +110.0°C)3.15.13 Pin扩展板接口引脚说明1) 开发板 13 pin 扩展板接口引脚的顺序请参考下图 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn5www.xunlong.tv四个定位孔的直径都是3.0mm。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn113www.xunlong.tv2)开发板13pin接口的原理图如下所示3)开发板13 pin扩展板接口引脚的功能说明如下a. 13pin引脚接扩展板时,可以额外提供a) 2个USB 2.0 Hostb)耳机左右声道音频输出c) TV-OUT视频输出d)红外接收功能e)接了扩展板后13pin接口的10、11和12号引脚就无法使用了f)另外需要注意13pin扩展板上的MIC在Orange Pi Zero 3上是无法使用的b. 13pin引脚不接扩展板时,10、11、12和13号引脚可当作普通GPIO口来使用GPIO 序号功能引脚5V1GND2USB2-DM3USB2-DP4USB3-DM5 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn114www.xunlong.tvUSB3-DP6LINEOUTR7LINEOUTL8TV-OUT965PC110272PI1611262PI612234IR-RX/PH10133.16. 26 Pin 接口引脚说明1) Orange Pi Zero 3 开发板 26 pin 接口引脚的顺序请参开发板上的丝印图2) 开发板 26 pin 接口引脚的功能如下表所示GPIO序号GPIO功能引脚引脚功能GPIOGPIO序号3.3V125V229PH5TWI3-SDA345V228PH4TWI3-SCK56GND73PC9PC978UART5_TXPH2226GND910UART5_RXPH322770PC6PC61112PC11PC117569PC5PC51314GND72PC8PC81516PC15PC15793.3V1718PC14PC1478231PH7SPI1_MOSI1920GND232PH8SPI1_MISO2122PC7PC771230PH6SPI1_CLK2324SPI1_CSPH9233GND2526PC10PC1074 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn115www.xunlong.tv3) 26pin接口中总共有17个GPIO口,所有GPIO口的电压都是3.3v3.17. 安装wiringOP的方法注意,Orange Pi 发布的 linux 镜像中已经预装了 wiringOP,除非 wiringOP 的代码有更新,否则无需重新下载编译安装,直接使用即可。编译好的 wiringOP 的 deb 包在 orangepi-build 中的存放路径为:orangepi-build/external/cache/debs/arm64/wiringpi_x.xx.deb进入系统后可以运行下 gpio readall 命令,如果能看到下面的输出,说明wiringOP 已经预装并且能正常使用。1) 下载 wiringOP 的代码orangepi@orangepi:~$ sudo apt updateorangepi@orangepi:~$ sudo apt install -y gitorangepi@orangepi:~$ git clone https://github.com/orangepi-xunlong/wiringOP.git -b next注意,源码需要下载 wiringOP next 分支的代码,请别漏了-b next 这个参数。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn116www.xunlong.tv如果从GitHub下载代码有问题,可以直接使用Linux镜像中自带的wiringOP源码,存放位置为:/usr/src/wiringOP。2) 编译安装 wiringOPorangepi@orangepi:~$ cd wiringOPorangepi@orangepi:~/wiringOP$ sudo ./build cleanorangepi@orangepi:~/wiringOP$ sudo ./build3)测试gpio readall命令的输出如下a.其中1到26号引脚与开发板上的26 Pin引脚是一一对应的b. 27号引脚对应开发板上13pin的10号引脚c. 29号引脚对应开发板上13pin的11号引脚d. 31号引脚对应开发板上13pin的12号引脚e. 33号引脚对应开发板上13pin的13号引脚f. 28、30、32、34号引脚为空,请直接忽略 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn117www.xunlong.tv3.18.26pin接口GPIO、I2C、UART、SPI和PWM测试3.18.1. 26pin GPIO 口测试1) 下面以 7 号引脚——对应 GPIO 为 PC9——对应 wPi 序号为 2——为例演示如何设置 GPIO 口的高低电平2) 首先设置 GPIO 口为输出模式,其中第三个参数需要输入引脚对应的 wPi 的序号root@orangepi:~/wiringOP# gpio mode 2 out3) 然后设置 GPIO 口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为 0v,说明设置低电平成功root@orangepi:~/wiringOP# gpio write 2 0使用gpio readall可以看到7号引脚的值(V)变为了04)然后设置GPIO口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功root@orangepi:~/wiringOP# gpio write 2 1使用 gpio readall 可以看到 7 号引脚的值(V)变为了 1 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn118www.xunlong.tv5)其他引脚的设置方法类似,只需修改wPi的序号为引脚对应的序号即可3.18.2. 26 pin GPIO 口上下拉电阻的设置方法1)下面以7号引脚——对应GPIO为PC9——对应wPi序号为2——为例演示如何设置GPIO口的上下拉电阻2)首先需要设置GPIO口为输入模式,其中第三个参数需要输入引脚对应的wPi的序号root@orangepi:~/wiringOP# gpio mode 2 in3) 设置为输入模式后,执行下面的命令可以设置 GPIO 口为上拉模式root@orangepi:~/wiringOP# gpio mode 2 up4) 然后输入下面的命令读取 GPIO 口的电平,如果电平为 1,说明上拉模式设置成功root@orangepi:~/wiringOP# gpio read 215)然后执行下面的命令可以设置GPIO口为下拉模式root@orangepi:~/wiringOP# gpio mode 2 down6) 然后输入下面的命令读取 GPIO 口的电平,如果电平为 0,说明下拉模式设置成 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn119www.xunlong.tv功root@orangepi:~/wiringOP# gpio read 203.18.3. 26pin SPI 测试1) 由 26pin 接口的原理图可知,可用的 spi 为 spi12) Linux 系统中 spi1 默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a. 首先运行下 orangepi-config,普通用户记得加 sudo 权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 Systemc. 然后选择 Hardware range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn120www.xunlong.tvd.然 后 使 用 键 盘 的 方 向 键 定 位 到 下 图 所 示 的 位 置 , 再 使 用 空 格 选 中spi1-cs1-spideve.然后选择<Save>保存f.然后选择<Back>g.然后选择<Reboot>重启系统使配置生效3)然后查看下linux系统中是否存在spidev1.1的设备节点,如果存在,说明SPI1的配置已经生效了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn121www.xunlong.tvorangepi@orangepi:~$ ls /dev/spidev1*/dev/spidev1.14) 先不短接 SPI1 的 mosi 和 miso 两个引脚,运行 spidev_test 的输出结果如下所示,可以看到 TX 和 RX 的数据不一致orangepi@orangepi:~$ sudo spidev_test -v -D /dev/spidev1.1spi mode: 0x0bits per word: 8max speed: 500000 Hz (500 KHz)TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF F0 0D | ......@....▒..................▒.RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF | ................................5) 然后短接 SPI1 的 mosi(26pin 接口中的第 19 号引脚)和 miso(26pin 接口中的第 21 号引脚)两个引脚再运行 spidev_test 的输出如下,可以看到发送和接收的数据一样orangepi@orangepi:~$ sudo spidev_test -v -D /dev/spidev1.1spi mode: 0x0bits per word: 8max speed: 500000 Hz (500 KHz)TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF F0 0D | ......@....▒..................▒.RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF F0 0D | ......@....▒..................▒.3.18.4. 26pin I2C 测试1)由26pin的原理图可知,可用的i2c为i2c3 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn122www.xunlong.tv2) Linux系统中i2c3默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a.首先运行下orangepi-config,普通用户记得加sudo权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 Systemc. 然后选择 Hardwared. 然后使用键盘的方向键定位到下图所示的位置,再使用空格选中 ph-i2c3 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn6www.xunlong.tv2. 开发板使用介绍2.1. 准备需要的配件1) TF卡,最小8GB容量的class10级或以上的高速闪迪卡使用其他品牌的TF卡(非闪迪的TF卡),如下图所示(包含但不仅限这些卡),已经有朋友反馈系统启动过程中会出现问题,比如系统启动到一半卡住不动,或者reboot命令无法正常使用,最后都是换了闪迪牌的TF卡后才解决的。所以如果您使用的是非闪迪牌的TF卡发现系统启动或者使用过程有问题,请更换闪迪牌的TF卡后再测试。目前反馈在Orange Pi Zero 3 上启动有问题的部分TF卡另外,在其他型号的开发板上能正常使用的TF卡并不能保证在Orange Pi Zero 3上也一定能正常启动,这点请特别注意。2) TF 卡读卡器,用于读写 TF 卡3) Micro HDMI 转 HDMI 连接线,用于将开发板连接到 HDMI 显示器或者电视进行显示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn123www.xunlong.tve.然后选择<Save>保存f.然后选择<Back>g.然后选择<Reboot>重启系统使配置生效3)启动linux系统后,先确认下/dev下存在i2c3的设备节点orangepi@orangepi:~$ ls /dev/i2c-3/dev/i2c-34) 然后开始测试 i2c,首先安装 i2c-toolsorangepi@orangepi:~$ sudo apt-get updateorangepi@orangepi:~$ sudo apt-get install -y i2c-tools5) 然后在 26pin 接头的 i2c3 引脚上接一个 i2c 设备5V 和 3.3V 引脚请根据具体的 i2c 设备进行选择,不同的 i2c 设备需要的电压值可能不同。sda 引脚对应 26pin 中 3 号引脚sck 引脚对应 26pin 中 5 号引脚5v引脚对应26pin中2号引脚3.3v引脚对应26pin中1号引脚 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn124www.xunlong.tvgnd 引脚对应 26pin 中 6 号引脚6) 然后使用 i2cdetect -y 3 命令如果能检测到连接的 i2c 设备的地址,就说明 i2c 能正常使用不同的 i2c 设备地址是不同的,下图 0x50 地址只是一个示例。请以实际看到的为准。3.18.5. 26pin 的 UART 测试1)由26pin接口的原理图可知,可用的uart为uart52) Linux系统中uart5默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a.首先运行下orangepi-config,普通用户记得加sudo权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 System range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn125www.xunlong.tvc.然后选择Hardwared.然后使用键盘的方向键定位到下图所示的位置,再使用空格选中ph-uart5e.然后选择<Save>保存f.然后选择<Back>g.然后选择<Reboot>重启系统使配置生效 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn126www.xunlong.tv3)进入linux系统后,先确认下/dev下是否存在uart5的设备节点注意,linux5.4系统为/dev/ttyAS5。orangepi@orangepi:~$ ls /dev/ttyS5/dev/ttyS54)然后开始测试uart5接口,先使用杜邦线短接要测试的uart5接口的rx和txuart5tx 引脚对应 26pin 的 8 号引脚rx 引脚对应 26pin 的 10 号引脚5) 使用 wiringOP 中的 gpio 命令测试串口的回环功能如下所示,如果能看到下面的打印,说明串口通信正常orangepi@orangepi:~$ gpio serial /dev/ttyS5 # linux-6.1测试命令orangepi@orangepi:~$ gpio serial /dev/ttyAS5 # linux-5.4测试命令Out: 0: -> 0Out: 1: -> 1Out: 2: -> 2Out: 3: -> 3^C3.18.6. 使用/sys/class/pwm/测试 PWM 的方法开发板最多可以使用4通道PWM,它们所在引脚的位置如下图所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn127www.xunlong.tv1) Linux 系统中 pwm 默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a. 首先运行下 orangepi-config,普通用户记得加 sudo 权限orangepi@orangepi:~$ sudo orangepi-configb.然后选择Systemc.然后选择Hardwared.然后使用键盘的方向键定位到下图所示的位置,再使用空格选中pwm对应的配置 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn128www.xunlong.tv由于PWM1、PWM2和26pin接口中UART5的RX、TX引脚是复用的,所以打开PWM1和PWM2(需要选择ph-pwm12)时请确保没有选择UART5的配置(不要勾选ph-uart5)。PWM3、PWM4和调试串口中的TX、RX引脚是复用的,所以使用PWM3和PWM4(需要选择ph-pwm34)时请将UART0的配置关掉(需要选择disable-uart0),关掉UART0后调试串口就无法使用了。e. 然后选择<Save>保存f. 然后选择<Back>g. 然后选择<Reboot>重启系统使配置生效2) 重启后就可以开始 PWM 的测试下面的命令请在 root 用户下执行。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn129www.xunlong.tva.在命令行中输入下面的命令可以让pwm1输出一个50Hz的方波root@orangepi:~# echo 1 > /sys/class/pwm/pwmchip0/exportroot@orangepi:~# echo 20000000 > /sys/class/pwm/pwmchip0/pwm1/periodroot@orangepi:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycleroot@orangepi:~# echo 1 > /sys/class/pwm/pwmchip0/pwm1/enableb. 在命令行中输入下面的命令可以让 pwm2 输出一个 50Hz 的方波root@orangepi:~# echo 2 > /sys/class/pwm/pwmchip0/exportroot@orangepi:~# echo 20000000 > /sys/class/pwm/pwmchip0/pwm2/periodroot@orangepi:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm2/duty_cycleroot@orangepi:~# echo 1 > /sys/class/pwm/pwmchip0/pwm2/enablec. 在命令行中输入下面的命令可以让 pwm3 输出一个 50Hz 的方波root@orangepi:~# echo 3 > /sys/class/pwm/pwmchip0/exportroot@orangepi:~# echo 20000000 > /sys/class/pwm/pwmchip0/pwm3/periodroot@orangepi:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm3/duty_cycleroot@orangepi:~# echo 1 > /sys/class/pwm/pwmchip0/pwm3/enabled.在命令行中输入下面的命令可以让pwm4输出一个50Hz的方波root@orangepi:~# echo 4 > /sys/class/pwm/pwmchip0/exportroot@orangepi:~# echo 20000000 > /sys/class/pwm/pwmchip0/pwm4/periodroot@orangepi:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm4/duty_cycleroot@orangepi:~# echo 1 > /sys/class/pwm/pwmchip0/pwm4/enable range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn130www.xunlong.tv3.19.wiringOP硬件PWM的使用方法使用 wiringOP 硬件 PWM 功能前,请先下载最新的 wiringOP 的源码然后编译安装下。v1.0.2 版本的 linux 镜像中预装的 wiringOP 是用不了硬件 PWM 功能的。下载安装 wiringOP 的方法请参考安装 wiringOP 的方法一小节的说明。最新版本 wiringOP 的 gpio readall 命令的输出如下所示,相对于老版本,新增了 28 和 30号引脚用来表示 PWM3 和 PWM4。开发板最多可以使用4通道PWM,它们所在引脚的位置如下图所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn131www.xunlong.tv3.19.1. 使用 wiringOP 的 gpio 命令设置 PWM 的方法3.19.1.1. 设置对应引脚为 PWM 模式1) 4 个 PWM 引脚与 wPi 序号对应关系如下表所示:PWM 引脚wPi 序号PWM14PWM23PWM321PWM4222) 设置引脚为 PWM 模式的命令如下,以 PWM1 为例,其中第三个参数需要输入PWM1 引脚对应的 wPi 的序号orangepi@orangepi:~$ gpio mode 4 pwm3) 引脚设置为 PWM 模式后,默认会输出一个频率为 23475Hz,占空比为 50%的方波,此时,我们使用示波器测量对应的 PWM 引脚,就可以看到下面的波形 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn132www.xunlong.tv3.19.1.2. 调节 PWM 占空比的方法1) PWM 占空比的计算公式如下所示,我们可以通过设置 CCR 和 ARR 的值来调节PWM 占空比PWM 占空比 = CCR / ARR其中:CCR 的取值范围是 0~65535,默认值是 512。ARR 的取值范围是 1~65536,默认值是 1024。需要注意的是,我们设置的 CCR 值需要小于 ARR,因为占空比不能大于 1,当设置 CCR > ARR 时,会提示如下错误信息:val pwmWrite 0 <= X <= 1024Or you can set new range by yourself by pwmSetRange(range)2) 我们可以使用下面的命令设置 PWM1 引脚的 ARR 为 2048orangepi@orangepi:~$ gpio pwmr 4 20483)运 行 上 面 的 命 令 后 , 通 过 示 波 器 可 以 观 察 到PWM占 空 比 从 默 认 的50%(512/1024)变为25%(512/2048) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn7www.xunlong.tv注意,请不要使用下图所示的这种比较宽的Micro HDMI转接头,由于开发板的Micro HDMI接口和Type-C电源接口之间的间距比较小,可能会导致两者无法同时插入到开发板。4) 电源,如果有 5V/2A 或 5V/3A 的电源头那就只需要准备一根下面左边图片所示的 USB 转 Type C 接口的数据线,另外也可以使用类似下面右边图片所示的线和电源头一体的 5V/2A 或者 5V/3A 的高品质 USB Typc C 接口电源适配器。5) 13pin 扩展板a. 扩展板实物如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn133www.xunlong.tv4)我们可以使用下面的命令设置PWM1引脚的CCR为1024orangepi@orangepi:~$ gpio pwm 4 10245) 运行上面的命令后,通过示波器可以观察到 PWM 占空比从 25%(512/2048)变为 50%(1024/2048) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn134www.xunlong.tv3.19.1.3. 调节 PWM 频率的方法3.19.1.3.1. 通过设置分频系数来调节 PWM 频率的方法1) 设置分频系数后,PWM 频率会变为分频系数分之一分频系数的取值范围是 1~256,默认是 1。2) 比如可以使用下面的命令设置 PWM1 引脚的分频系数为 5orangepi@orangepi:~$ gpio pwmc 4 53) PWM 默认频率为 23475Hz,经过 5 分频后计算值为 4695Hz, 通过示波器可以观察到 PWM 频率实际值为 4688Hz,误差可以忽略3.19.1.3.2. 直接设置 PWM 频率的方法1) 我们可以使用 gpio pwmTone 命令来设置 PWM 引脚的频率,比如使用下面的命令可以设置 PWM1 引脚的 PWM 频率为 20000Hzorangepi@orangepi:~$ gpio pwmTone 4 20000 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn135www.xunlong.tv在设置PWM频率时,需要保证:设置的频率值> 24000000 / (65536 *分频系数)。比如,默认的分频系数为1,在没有修改分频系数的情况下,设置的频率值应大于366。如果设置值过小,会出现如下报错:gpio: range must be between 1 and 655362) 然后通过示波器可以观察到 PWM 频率变为 20000Hz 了3.19.2. PWM 测试程序的使用方法1) 在 wiringOP 的 example 目录下,有一个名为 pwm.c 的程序,此程序演示了使用wiringOP 中 PWM 相关的 API 来操作 PWM 的方法orangepi@orangepi:~$ cd wiringOP/examples/orangepi@orangepi:~/wiringOP/examples$ ls pwm.cpwm.c2)编译pwm.c为可执行程序的命令如下所示sorangepi@orangepi:~/wiringOP/examples$ gcc -o pwm pwm.c -lwiringPi range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn136www.xunlong.tv3)然后就可以执行PWM测试程序了,在执行PWM测试程序时,需要指定PWM引脚,比如可以使用下面的命令对PWM1引脚进行测试:sorangepi@orangepi:~/wiringOP/examples$ sudo ./pwm 44) pwm 程序执行后会对以下内容依次进行测试:a. 通过设置 ARR 调节 PWM 占空比b. 通过设置 CCR 调节 PWM 占空比c. 通过设置分频系数调节 PWM 频率d. 直接设置 PWM 频率5) 在每完成一项测试后,会停止输出 pwm 波形 5 秒钟,在完成所有测试内容后,会重新开始新一轮测试6) PWM 测试程序的详细执行过程如下所示:a. 通过设置 ARR 调节 PWM 占空比:通过示波器可以观察到 PWM 波形每隔0.5 秒产生变化,在变化了 8 次后,PWM 占空比从 50%变为 25%,保持 5秒,然后 PWM 波形每隔 0.5 秒产生变化,在变化了 8 次后,PWM 占空比从 25%变为 50%,保持 5 秒。b. 通过设置 CCR 调节 PWM 占空比:通过示波器可以观察到 PWM 波形每隔0.5 秒产生变化,在变化了 8 次后,PWM 占空比从 50%变为 100%,保持 5秒,然后 PWM 波形每隔 0.5 秒产生变化,在变化了 8 次后,PWM 占空比从 100%变为 50%,保持 5 秒。c. 通过设置分频系数调节 PWM 频率:通过示波器可以观察到 PWM 波形每隔0.5 秒产生变化,在变化了 9 次后,PWM 频率变为默认 PWM 频率的 1/10,即 2347Hz,保持 5 秒,然后 PWM 波形每隔 0.5 秒产生变化,在变化了 9次后,PWM 频率变为默认 PWM 频率,即 23475Hz,保持 5 秒。d. 直接设置 PWM 频率:通过示波器可以观察到 PWM 频率首先变为 2000Hz,然后每隔两秒 PWM 频率增加 2000Hz,在变化了 9 次后,PWM 频率变为20000Hz,保持 5 秒。3.20. wiringOP-Python 的安装使用方法wiringOP-Python是wiringOP的Python语言版本的库,用于在Python程序中操作开发板的GPIO、I2C、SPI和UART等硬件资源。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn137www.xunlong.tv另外请注意下面所有的命令都是在root用户下操作的。3.20.1. wiringOP-Python 的安装方法1) 首先安装依赖包root@orangepi:~# sudo apt-get updateroot@orangepi:~# sudo apt-get -y install git swig python3-dev python3-setuptools2)然后使用下面的命令下载wiringOP-Python的源码注意,下面的git clone--recursive命令会自动下载wiringOP的源码,因为wiringOP-Python是依赖wiringOP的。请确保下载过程没有因为网络问题而报错。如 果 从GitHub下 载 代 码 有 问 题 , 可 以 直 接 使 用Linux镜 像 中 自 带 的wiringOP-Python源码,存放位置为:/usr/src/wiringOP-Python。root@orangepi:~# git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python -b nextroot@orangepi:~# cd wiringOP-Pythonroot@orangepi:~/wiringOP-Python# git submodule update --init --remote3)然后使用下面的命令编译wiringOP-Python并将其安装到开发板的Linux系统中root@orangepi:~# cd wiringOP-Pythonroot@orangepi:~/wiringOP-Python# python3 generate-bindings.py > bindings.iroot@orangepi:~/wiringOP-Python# sudo python3 setup.py install4) 然后输入下面的命令,如果有帮助信息输出,说明 wiringOP-Python 安装成功,按下 q 键可以退出帮助信息的界面root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; help(wiringpi)"Help on module wiringpi:NAMEwiringpiDESCRIPTION# This file was automatically generated by SWIG (http://www.swig.org).# Version 4.0.2## Do not make changes to this file unless you know what you are doing--modify range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn138www.xunlong.tv# the SWIG interface file instead.5) 在 python 命令行下测试 wiringOP-Python 是否安装成功的步骤如下所示:a. 首先使用 python3 命令进入 python3 的命令行模式root@orangepi:~# python3b. 然后导入 wiringpi 的 python 模块>>> import wiringpi;c.最后输入下面的命令可以查看下wiringOP-Python的帮助信息,按下q键可以退出帮助信息的界面>>> help(wiringpi)Help on module wiringpi:NAMEwiringpiDESCRIPTION# This file was automatically generated by SWIG (http://www.swig.org).# Version 4.0.2## Do not make changes to this file unless you know what you are doing--modify# the SWIG interface file instead.CLASSESbuiltins.objectGPIOI2CSerialnesclass GPIO(builtins.object)| GPIO(pinmode=0)|>>> range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn139www.xunlong.tv3.20.2. 26pin GPIO 口测试wiringOP-Python跟wiringOP一样,也是可以通过指定wPi号来确定操作哪一个GPIO引脚,因为wiringOP-Python中没有查看wPi号的命令,所以只能通过wiringOP中的gpio命令来查看板子wPi号与物理引脚的对应关系。1) 下面以 7 号引脚——对应 GPIO 为 PC9 ——对应 wPi 序号为 2——为例演示如何设置 GPIO 口的高低电平2) 直接用命令测试的步骤如下所示:a. 首先设置 GPIO 口为输出模式,其中 pinMode 函数的第一个参数是引脚对应的 wPi 的序号,第二个参数是 GPIO 的模式root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \ range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn140www.xunlong.tvfrom wiringpi import GPIO; wiringpi.wiringPiSetup() ; \wiringpi.pinMode(2, GPIO.OUTPUT) ; "b. 然后设置 GPIO 口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为 0v,说明设置低电平成功root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\wiringpi.digitalWrite(2, GPIO.LOW)"c. 然后设置 GPIO 口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为 3.3v,说明设置高电平成功root@orangepi:~/wiringOP-Python# python3 -c "import wiringpi; \from wiringpi import GPIO; wiringpi.wiringPiSetup() ;\wiringpi.digitalWrite(2, GPIO.HIGH)"3)在python3的命令行中测试的步骤如下所示:a.首先使用python3命令进入python3的命令行模式root@orangepi:~# python3b. 然后导入 wiringpi 的 python 模块>>> import wiringpi>>> from wiringpi import GPIOc. 然后设置 GPIO 口为输出模式,其中 pinMode 函数的第一个参数是引脚对应的 wPi 的序号,第二个参数是 GPIO 的模式>>> wiringpi.wiringPiSetup()0>>> wiringpi.pinMode(2, GPIO.OUTPUT)d.然后设置GPIO口输出低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功>>> wiringpi.digitalWrite(2, GPIO.LOW)e. 然后设置 GPIO 口输出高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为 3.3v,说明设置高电平成功>>> wiringpi.digitalWrite(2, GPIO.HIGH)4) wiringOP-Python在 python代码中设置 GPIO高低电平的方法可以参考下 examples中的 blink.py 测试程序,blink.py 测试程序会设置开发板 26 pin 中所有的 GPIO 口的电压不断的高低变化root@orangepi:~/wiringOP-Python# cd examples range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn141www.xunlong.tvroot@orangepi:~/wiringOP-Python/examples# ls blink.pyblink.pyroot@orangepi:~/wiringOP-Python/examples# python3 blink.py3.20.3. 26pin SPI 测试1) 由 26pin 接口的原理图可知,可用的 spi 为 spi12) Linux 系统中 spi1 默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a. 首先运行下 orangepi-config,普通用户记得加 sudo 权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 Systemc. 然后选择 Hardware range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn142www.xunlong.tvd.然 后 使 用 键 盘 的 方 向 键 定 位 到 下 图 所 示 的 位 置 , 再 使 用 空 格 选 中spi1-cs1-spideve.然后选择<Save>保存f.然后选择<Back>g.然后选择<Reboot>重启系统使配置生效3)然后查看下linux系统中是否存在spidev1.1的设备节点,如果存在,说明SPI1的配置已经生效了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn8www.xunlong.tvb.扩展板插入开发板的方式如下所示,切记不要插反了c. Orange Pi Zero 3开发板上的13pin排针可以接上扩展板来扩展开发板上没有的功能,扩展板可以使用的功能有1麦克风(Mic)不支持,不支持,不支持!!!13pin 扩展板是一个通用型号的扩展板,适用于Orange Pi 多款开发板,但是 Orange Pi Zero3 的 13pin接口是没有 Mic 功能的,所以 13pin 扩展板上虽然有 Mic,但是在 Orange Pi Zero 3 上是不能用的,13pin 扩展板在 Orange Pi Zero 3 上主要用来扩展除Mic 以外的其他功能。2模拟音视频输出接口支持,可用于接耳机播放音乐,或者通过 AV 线接电视输出模拟音视频信号(仅安卓系统)。3USB 2.0 Host x 2支持,用于接 USB 键盘、鼠标以及 USB 存储设备。4红外接收功能支持,通过红外遥控可以控制 Android 系统。d. Orange Pi Zero 3开发板13pin排针的原理图如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn143www.xunlong.tvorangepi@orangepi:~$ ls /dev/spidev1*/dev/spidev1.14) 然 后 可 以 使 用 examples 中 的 spidev_test.py 程 序 测 试 下 SPI 的 回 环 功 能 ,spidev_test.py 程序需要指定下面的两个参数:a. --channel:指定 SPI 的通道号b. --port:指定 SPI 的端口号5) 先不短接 SPI1 的 mosi 和 miso 两个引脚,运行 spidev_test.py 的输出结果如下所示,可以看到 TX 和 RX 的数据不一致root@orangepi:~/wiringOP-Python# cd examplesroot@orangepi:~/wiringOP-Python/examples# python3 spidev_test.py \--channel 1 --port 1spi mode: 0x0max speed: 500000 Hz (500 KHz)Opening device /dev/spidev1.1TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF F0 0D |......@..........|RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF |.................|6) 然后使用杜邦线短接 SPI1 的 txd(26pin 接口中的第 19 号引脚)和 rxd(26pin接口中的第 21 号引脚)两个引脚再运行 spidev_test.py 的输出如下,可以看到发送和接收的数据一样,说明 SPI1 回环测试正常root@orangepi:~/wiringOP-Python# cd examplesroot@orangepi:~/wiringOP-Python/examples# python3 spidev_test.py \--channel 1 --port 1spi mode: 0x0max speed: 500000 Hz (500 KHz)Opening device /dev/spidev1.1TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF F0 0D |......@..........|RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF F0 0D |......@..........| range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn144www.xunlong.tv3.20.4. 26pin I2C 测试1)由26pin的原理图可知,可用的i2c为i2c32) Linux系统中i2c3默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a.首先运行下orangepi-config,普通用户记得加sudo权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 Systemc. 然后选择 Hardware range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn145www.xunlong.tvd.然后使用键盘的方向键定位到下图所示的位置,再使用空格选中ph-i2c3e.然后选择<Save>保存f.然后选择<Back>g.然后选择<Reboot>重启系统使配置生效3)启动linux系统后,先确认下/dev下存在i2c3的设备节点orangepi@orangepi:~$ ls /dev/i2c-3/dev/i2c-34) 然后开始测试 i2c,首先安装下 i2c-toolsorangepi@orangepi:~$ sudo apt-get updateorangepi@orangepi:~$ sudo apt-get install -y i2c-tools5) 然后在 26pin 接头的 i2c3 引脚上接一个 i2c 设备,这里以 DS1307 RTC 模块为例 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn146www.xunlong.tvRTC 模块的引脚开发板 26pin 对应的引脚5V2 号引脚GND6 号引脚SDA3 号引脚SCL5号引脚6)然后使用i2cdetect -y 3命令如果能检测到连接的i2c设备的地址,就说明i2c设备连接正确7)然后可以运行examples中的ds1307.py测试程序读取RTC的时间root@orangepi:~/wiringOP-Python# cd examplesroot@orangepi:~/wiringOP-Python/examples# python3 ds1307.py --device \"/dev/i2c-3"Thu 2022-06-16 04:35:46Thu 2022-06-16 04:35:47Thu 2022-06-16 04:35:48^Cexit range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn147www.xunlong.tv3.20.5. 26pin 的 UART 测试1)由26pin接口的原理图可知,可用的uart为uart52) Linux系统中uart5默认是关闭的,需要手动打开才能使用。打开步骤如下所示:a.首先运行下orangepi-config,普通用户记得加sudo权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 Systemc. 然后选择 Hardware range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn148www.xunlong.tvd.然后使用键盘的方向键定位到下图所示的位置,再使用空格选中ph-uart5e.然后选择<Save>保存f.然后选择<Back>g.然后选择<Reboot>重启系统使配置生效3)进入linux系统后,先确认下/dev下是否存在uart5的设备节点注意,linux5.4系统为/dev/ttyAS5。orangepi@orangepi:~$ ls /dev/ttyS5/dev/ttyS54)然后开始测试uart5接口,先使用杜邦线短接要测试的uart5接口的rx和txuart5tx 引脚对应 26pin 中的 8 号引脚rx 引脚对应 26pin 中的 10 号引脚5) 最后可以运行 examples 中的 serialTest.py 程序来测试下串口的回环功能,如果能 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn149www.xunlong.tv看到下面的打印,说明串口回环测试正常root@orangepi:~/wiringOP-Python# cd examplesroot@orangepi:~/wiringOP-Python/examples# python3 serialTest.py --device "/dev/ttyS5" # linux6.1使用root@orangepi:~/wiringOP-Python/examples# python3 serialTest.py --device "/dev/ttyAS5" # linux5.4使用Out: 0: -> 0Out: 1: -> 1Out: 2: -> 2Out: 3: -> 3Out: 4:^Cexit3.21. 硬件看门狗测试Orange Pi发布的linux系统中预装了watchdog_test程序,可以直接测试。运行watchdog_test程序的方法如下所示:a.第二个参数10表示看门狗的计数时间,如果这个时间内没有喂狗,系统会重启b.我们可以通过按下键盘上的任意键(ESC除外)来喂狗,喂狗后,程序会打印一行keep alive表示喂狗成功orangepi@orangepi:~$ sudo watchdog_test 10open successoptions is 33152,identity is sunxi-wdtput_usr return,if 0,success:0The old reset time is: 16return ENOTTY,if -1,success:0return ENOTTY,if -1,success:0put_user return,if 0,success:0put_usr return,if 0,success:0keep alivekeep alivekeep alive range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn150www.xunlong.tv3.22. 查看H618芯片的chipid查看 H618 芯片 chipid 的命令如下所示,每个芯片的 chipid 都是不同的,所以可以使用 chipid 来区分多个开发板。orangepi@orangepi:~$ cat /sys/class/sunxi_info/sys_info | grep "chipid"sunxi_chipid : 338020004c0048080147478824681ed13.23.Python相关说明3.23.1. Python 源码编译安装的方法如果使用的 Ubuntu 或者 Debian 系统软件仓库中的 Python 版本不符合开发的要求,想要使用最新版本的 Python,可以使用下面的方法下载 Python 的源码包来编译安装最新版本的 Python。下面演示的是编译安装 Python3.9 的最新版本,如果要编译安装其他的版本的Python,方法也是一样的(需要下载想要安装的 Python 对应的源码)。1)首先安装编译Python需要的依赖包orangepi@orangepi:~$ sudo apt-get updateorangepi@orangepi:~$ sudo apt-get install -y build-essential zlib1g-dev \libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \libreadline-dev libffi-dev curl libbz2-dev2) 然后下载最新版本的 Python3.9 源码并解压orangepi@orangepi:~$ wget \https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgzorangepi@orangepi:~$ tar xvf Python-3.9.10.tgz3) 然后运行配置命令orangepi@orangepi:~$ cd Python-3.9.10orangepi@orangepi:~$ ./configure --enable-optimizations4)然后编译安装Python3.9,编译时间大概需要半个小时左右orangepi@orangepi:~$ make -j4 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn151www.xunlong.tvorangepi@orangepi:~$ sudo make altinstall5) 安装完后可以使用下面的命令查看下刚安装的 Python 的版本号orangepi@orangepi:~$ python3.9 --versionPython 3.9.106) 然后更新下 piporangepi@orangepi:~$ /usr/local/bin/python3.9 -m pip install --upgrade pip3.23.2. Python 更换 pip 源的方法Linux系统pip默认使用的源为Python官方的源,但是国内访问Python官方的源速度是很慢的,并且经常会由于网络原因导致Python软件包安装失败。所以在使用pip安装Python库时,请记得更换下pip源。1) 首先安装下 python3-piporangepi@orangepi:~$ sudo apt-get updateorangepi@orangepi:~$ sudo apt-get install -y python3-pip2) Linux下永久更换pip源的方法a.先新建~/.pip目录,然后添加pip.conf配置文件,并在其中设置pip的源为清华源orangepi@orangepi:~$ mkdir -p ~/.piporangepi@orangepi:~$ cat <<EOF > ~/.pip/pip.conf[global]timeout = 6000index-url = https://pypi.tuna.tsinghua.edu.cn/simpletrusted-host = pypi.tuna.tsinghua.edu.cnEOFb. 然后使用 pip3 安装 Python 库速度就会很快了3) Linux 下临时更换 pip 源的方法,其中的<packagename>需要替换为具体的包名orangepi@orangepi:~$ pip3 install <packagename> -i \https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn152www.xunlong.tv3.24. 安装Docker的方法Orange Pi 提供的 linux 镜像已经预装了 Docker,只是 Docker 服务默认没有打开。使用 enable_docker.sh 脚本可以使能 docker 服务,然后就可以开始使用 docker 命令了,并且在下次启动系统时也会自动启动 docker 服务。orangepi@orangepi:~$ enable_docker.sh可以使用下面的命令测试下 docker,如果能运行 hello-world 说明 docker 能正常使用了。orangepi@orangepi:~$ docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world256ab8fe8778: Pull completeDigest:sha256:7f0a9f93b4aa3022c3a4c147a449ef11e0941a1fd0bf4a8e6c9408b2600777c5Status: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly......使用docker命令时,如果提示permission denied,请将当前用户加入到docker用户组,这样不需要sudo就能运行docker命令了。orangepi@orangepi:~$ sudo usermod -aG docker $USER注意:需要退出重新登录系统才能生效,重启系统也可以。3.25.Home Assistant的安装方法注意,这里只会提供在 Ubuntu 或者 Debian 系统中安装 Home Assistant 的方法,Home Assistant 详细的使用方法请参考官方文档或者相应的书籍。3.25.1. 通过 docker 安装1) 首先请安装好 docker,并确保 docker 能正常运行。docker 的安装步骤请参考安装 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn9www.xunlong.tv6) USB接口的鼠标和键盘,只要是标准USB接口的鼠标和键盘都可以,鼠标和键盘可以用来控制Orange Pi开发板7)红外遥控器,主要用于控制安卓TV系统注意,空调的遥控或者电视机的遥控是无法控制Orange Pi开发板的,默认只有Orange Pi提供的遥控才可以。8) 百兆或者千兆网线,用于将开发板连接到因特网9) AV 视频线,如果希望通过 AV 接口而不是 HDMI 接口来显示视频,那么就需要通过 AV 视频线将开发板连接到电视 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn153www.xunlong.tvDocker的方法一节的说明。2)然后可以搜索下Home Assistant的docker镜像orangepi@orangepi:~$ docker search homeassistant3) 然后使用下面的命令下载 Home Assistant 的 docker 镜像到本地,镜像大小大概有1GB 多,下载时间会比较长,请耐心等待下载完成orangepi@orangepi:~$ docker pull homeassistant/home-assistantUsing default tag: latestlatest: Pulling from homeassistant/home-assistantbe307f383ecc: Downloading5fbc4c07ac88: Download complete...... (省略部分输出)3cc6a1510c9f: Pull complete7a4e4d5b979f: Pull completeDigest:sha256:81d381f5008c082a37da97d8b08dd8b358dae7ecf49e62ce3ef1eeaefc4381bbStatus: Downloaded newer image for homeassistant/home-assistant:latestdocker.io/homeassistant/home-assistant:latest4) 然后可以使用下面的命令查看下刚下载的 Home Assistant 的 docker 镜像orangepi@orangepi:~$ docker images homeassistant/home-assistantREPOSITORY TAG IMAGE ID CREATED SIZEhomeassistant/home-assistant latest bfa0ab9e1cf5 2 months ago 1.17GB5)此时就可以运行Home Assistant的docker容器了orangepi@orangepi:~$ docker run -d \--name homeassistant \--privileged \--restart=unless-stopped \-e TZ=Asia/Shanghai \-v /home/orangepi/home-assistant:/config \--network=host \homeassistant/home-assistant:latest range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn154www.xunlong.tv6)然后在浏览器中输入【开发板的IP地址:8123】就能看到Home Assistant的界面Home Assistant容器的启动需要一段时间,如果下面的界面没有正常显示,请等待几秒钟再刷新。如果等待一分钟以上还没有正常显示下面的界面说明HomeAssistant安装有问题,此时需要去检查前面的安装设置过程是否有问题了。7) 然后输入姓名、用户名和密码再点击创建账号8) 然后按照界面提示根据自己的喜好设置,再点击下一步 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn155www.xunlong.tv9)然后点击下一步10)然后点击完成11) Home Assistant最终显示的主界面如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn156www.xunlong.tv12)停止Home Assistant容器的方法a.查看docker容器的命令如下所示orangepi@orangepi:~$ docker ps -ab. 停止 Home Assistant 容器的命令如下所示orangepi@orangepi:~$ docker stop homeassistantc. 删除 Home Assistant 容器的命令如下所示orangepi@orangepi:~$ docker rm homeassistant3.25.2. 通过 python 安装安装前请先更换下pip的源为国内源,加快Python包的安装速度,配置方法见Python更换pip源的方法一节的说明。1) 首先安装依赖包orangepi@orangepi:~$ sudo apt-get updateorangepi@orangepi:~$ sudo apt-get install -y python3 python3-dev python3-venv \python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential \libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata如果是debian12请使用下面的命令:orangepi@orangepi:~$ sudo apt-get update range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn157www.xunlong.tvorangepi@orangepi:~$ sudo apt-get install -y python3 python3-dev python3-venv \python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential \libopenjp2-7 libturbojpeg0-dev tzdata2) 然后需要编译安装 Python3.9,方法请参考 Python 源码编译安装的方法一节Debian Bullseye 默认的 Python 版本就是 Python3.9,所以无需编译安装。Ubuntu Jammy 默认的 Python 版本就是 Python3.10,所以也无需编译安装。Debian Bookworm 默认的 Python 版本就是 Python3.11,所以也无需编译安装。3) 然后创建 Python 虚拟环境Debian Bookworm 中是 python3.11,请记得替换对应的命令。orangepi@orangepi:~$ sudo mkdir /srv/homeassistantorangepi@orangepi:~$ sudo chown orangepi:orangepi /srv/homeassistantorangepi@orangepi:~$ cd /srv/homeassistantorangepi@orangepi:~$ python3.9 -m venv .orangepi@orangepi:~$ source bin/activate(homeassistant) orangepi@orangepi:/srv/homeassistant$4) 然后安装需要的 Python 包(homeassistant) orangepi@orangepi:/srv/homeassistant$ python3 -m pip install wheel5) 然后就可以安装 Home Assistant Core(homeassistant) orangepi@orangepi:/srv/homeassistant$ pip3 install homeassistant6)然后输入下面的命令就可以运行Home Assistant Core(homeassistant) orangepi@orangepi:/srv/homeassistant$ hass7) 然后在浏览器中输入【开发板的 IP 地址:8123】就能看到 Home Assistant 的界面第一次运行 hass 命令时,会下载安装和缓存一些运行必须的库和依赖包。这个过程可能会花费几分钟的时间。注意,此时在浏览器中是无法看到 Home Assistant的界面的,请等待一段时间后再刷新下。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn158www.xunlong.tv3.26.OpenCV的安装方法3.26.1. 使用 apt 来安装 OpenCV1) 安装命令如下所示orangepi@orangepi:~$ sudo apt-get updateorangepi@orangepi:~$ sudo apt-get install -y libopencv-dev python3-opencv2)然后使用下面的命令打印OpenCV的版本号输出正常,说明OpenCV安装成功a. Ubuntu22.04中OpenCV的版本如下所示:orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"4.5.4b. Ubuntu20.04 中 OpenCV 的版本如下所示:orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"4.2.0c. Debian11 中 OpenCV 的版本如下所示:orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"4.5.1d. Debian12中OpenCV的版本如下所示:orangepi@orangepi:~$ python3 -c "import cv2; print(cv2.__version__)"4.6.0 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn159www.xunlong.tv3.27. 宝塔Linux面板的安装方法宝塔 Linux 面板是提升运维效率的服务器管理软件,支持一键 LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA 等 100 多项服务器管理功能(摘抄自宝塔官网)1)首先需要扩展下/tmp空间的大小,设置完后需要重启下开发板的linux系统,命令如下所示:orangepi@orangepi:~$ sudo sed -i 's/nosuid/&,size=2G/' /etc/fstaborangepi@orangepi:~$ sudo reboot2) 重启后,可以看到/tmp 空间的大小变为 2G 了orangepi@orangepi:~$ df -h | grep "/tmp"tmpfs 2.0G 12K 2.0G 1% /tmp3) 然后在 linux 系统中输入下面的命令就可以开始宝塔的安装orangepi@orangepi:~$ sudo install_bt_panel.sh4)然后宝塔安装程序会提醒是否安装Bt-Panel到/www文件夹,此时输入y即可+----------------------------------------------------------------------| Bt-WebPanel FOR CentOS/Ubuntu/Debian+----------------------------------------------------------------------| Copyright © 2015-2099 BT-SOFT(http://www.bt.cn) All rights reserved.+----------------------------------------------------------------------| The WebPanel URL will be http://SERVER_IP:8888 when installed.+----------------------------------------------------------------------Do you want to install Bt-Panel to the /www directory now?(y/n): y5) 然后要做的就是耐心等待,当看到终端输出下面的打印信息时,说明宝塔已经安装完成,整个安装过程大约耗时 34 分钟,根据网络速度的不同可能会有一些差别 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn160www.xunlong.tv6)此时在浏览器中输入上面显示的面板地址就可以打开宝塔Linux面板的登录界面,然后在对应的位置输入上图显示的username和password就可以登录进宝塔7)成功登录宝塔后的会弹出下面的欢迎界面,首先请将中间的用户须知阅读完拖到最下面,然后就可以选择“我已同意并阅读《用户协议》”,接着点击“进入面板”就可以进入宝塔了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn161www.xunlong.tv8)进入宝塔后首先会提示需要绑定宝塔官网的账号,如果没有账号可以去宝塔的官网(https://www.bt.cn)注册一个9)最终显示的界面如下图所示,可以很直观的看到开发板Linux系统的一些状态信息,比如负载状态、CPU的使用率、内存使用率和存储空间的使用情况等 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn162www.xunlong.tv10)宝塔的更多功能可以参考下面资料自行探索使用手册:http://docs.bt.cn论坛地址:https://www.bt.cn/bbsGitHub 链接:https://github.com/aaPanel/BaoTa3.28. face_recognition 人脸识别库的安装和测试方法注意,此小节的内容都是在桌面版本的Linux系统中测试的,所以请确保开发板使用的系统为桌面版本的系统。另外下面的安装测试都是在orangepi用户下进行的,请保持环境一致。Debian12目前没有适配。face_recognition 源码仓库的地址为:https://github.com/ageitgey/face_recognitionface_recognition 中文版本的说明文档为:https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md3.28.1. 使用脚本自动安装 face_recognition 的方法1) 首先在桌面中打开一个终端,然后下载 face_recognition_install.sh range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn10www.xunlong.tv10)散热片,如果担心开发板的温度过高,可以加个散热片,散热片贴在H618芯片上即可11) 5V的散热风扇,如下图所示,开发板的26pin和13pin接口上都有5V和GND引脚可以接散热风扇,26pin和13pin排针的间距为2.54mm,散热风扇的电源接口参照这个规格去购买即可。注意,开发板插上电源后5V引脚就可以直接使用,无需其他设置,另外5V引脚输出的电压是无法通过软件调节和关闭的。12) 配套外壳(待添加图片)13) USB 转 TTL 模块和杜邦线,使用串口调试功能时,需要 USB 转 TTL 模块和杜邦线来连接开发板和电脑 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn163www.xunlong.tvorangepi@orangepi:~/Desktop$ wget \https://gitee.com/leeboby/face_recognition_install/raw/master/face_recognition_install.sh2) 然后执行下面的命令开始安装 face_recognitionorangepi@orangepi:~/Desktop$ bash face_recognition_install.sh3) face_recognition 安装完后会自动下载 face_recognition 的源码,然后自动运行face_recognition 中的一些示例,如果最后能看到桌面上弹出了下面的这些图片就说明 face_recognition 安装测试成功了3.28.2. 手动安装 face_recognition 的方法1) 首先新建~/.pip 目录,再添加 pip.conf 配置文件,并在其中设置 pip 的镜像源为清华源,需要执行的命令如下所示:orangepi@orangepi:~$ mkdir -p ~/.piporangepi@orangepi:~$ cat <<EOF > ~/.pip/pip.conf[global]timeout = 6000index-url = https://pypi.tuna.tsinghua.edu.cn/simpletrusted-host = pypi.tuna.tsinghua.edu.cnEOF range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn164www.xunlong.tv2)然后安装依赖包orangepi@orangepi:~$ sudo apt updateorangepi@orangepi:~$ sudo apt install -y python3-pip libopencv-dev \python3-opencv imagemagick python3-scipy python3-setuptools python3-wheel \python3-dev cmake python3-testresources3) 然后更新下 pip3orangepi@orangepi:~$ python3 -m pip install -U pip setuptools wheel4) 安装 face_recognition 前首先需要安装下 dlib 这个库,由于 dlib 这个库在开发板上编译安装比较慢,所以我在 gitee 上保存了一份编译好的 dlib whl 文件,下载后直接安装就可以了。dlib whl 文件下载地址如下所示:https://gitee.com/leeboby/python_whla.首先将python_whl仓库下载到开发板的Linux系统中orangepi@orangepi:~$ git clone --depth=1 https://gitee.com/leeboby/python_whlb. 在 python_whl 文件夹中可以看到有多个版本的 dlib 安装包,dlib 不同版本对应的 Linux 系统如下所示:Ubuntu20.04dlib-19.24.0-cp38-cp38-linux_aarch64.whlUbuntu22.04dlib-19.24.0-cp310-cp310-linux_aarch64.whlDebian11dlib-19.24.0-cp39-cp39-linux_aarch64.whlc.然后就可以开始安装dlib,命令如下所示a) Ubuntu20.04orangepi@orangepi:~$ cd python_whlorangepi@orangepi:~/python_whl$ python3 -m pip install dlib-19.24.0-cp38-cp38-linux_aarch64.whlb) Ubuntu22.04orangepi@orangepi:~$ cd python_whlorangepi@orangepi:~/python_whl$ python3 -m pip install dlib-19.24.0-cp310-cp310-linux_aarch64.whlc) Debian11orangepi@orangepi:~$ cd python_whlorangepi@orangepi:~/python_whl$ python3 -m pip install dlib-19.24.0-cp39-cp39-linux_aarch64.whld.安装完后如果使用下面的命令能正常打印dlib的版本号,就说明dlib安装正确orangepi@orangepi:~/python_whl$ python3 -c "import dlib; print(dlib.__version__)"19.24.0 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn165www.xunlong.tv5)然后安装下face_recognition_models-0.3.0-py2.py3-none-any.whlorangepi@orangepi:~/python_whl$ python3 -m pip install face_recognition_models-0.3.0-py2.py3-none-any.whl6) 然后安装 face_recognitionorangepi@orangepi:~$ python3 -m pip install face_recognition7) 然后需要重新打开一个终端,才能找到并运行 face_detection 和 face_recognition这两个命令a. face_recognition 命令用来在单张图片或一个图片文件夹中识别是谁的脸b. face_detection 命令用来在单张图片或一个图片文件夹中定位人脸的位置orangepi@orangepi:~$ which face_detection/usr/local/bin/face_detectionorangepi@orangepi:~$ which face_recognition/usr/local/bin/face_recognition如果重新打开终端找不到上面的两个命令,请试下手动导入环境变量,然后再测试下。orangepi@orangepi:~$ export PATH=/home/orangepi/.local/bin:$PATH3.28.3. face_recognition 的测试方法注意,下面的操作都是在桌面中演示的,所以首先请连接好 HDMI 显示器,或者使用 NoMachine/VNC 远程登录 Linux 桌面来测试。1)在face_recognition的 源 码 中 有 一 些 示 例 代 码 , 我 们 可 以 直 接 用来 测 试 ,face_recognition源码的下载地址如下所示:a. GitHub官方的下载地址orangepi@orangepi:~$ git clone https://github.com/ageitgey/face_recognition.gitb. Gitee 镜像下载地址orangepi@orangepi:~$ git clone https://gitee.com/leeboby/face_recognition.git2) face_recognition 示例代码的路径如下所示face_recognition/examples3) face_recognition的中文说明文档链接如下所示,使用face_recognition前请仔细阅 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn166www.xunlong.tv读下https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md4) find_faces_in_picture.py 用来在图片中定位人脸的位置,测试步骤如下所示a. 在桌面中打开一个终端,然后进入 face_recognition/examples 目录,再执行下面的命令orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ python3 find_faces_in_picture.pyI found 1 face(s) in this photograph.A face is located at pixel location Top: 241, Left: 419, Bottom: 562, Right: 740b. 等待一段时间会弹出下面的图片,这就是在测试图片中定位到的人脸5) find_facial_features_in_picture.py 用来识别单张图片中人脸的关键点,测试步骤如下所示a. 在桌面中打开一个终端,然后进入 face_recognition/examples 目录,再执行下面的命令orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ python3 find_facial_features_in_picture.pyb.等待一段时间会弹出下面的图片,可以看到将人脸轮廓都标注出来了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn167www.xunlong.tv6) identify_and_draw_boxes_on_faces.py用来识别人脸并使用方框标注,测试步骤如下所示a.在桌面中打开一个终端,然后进入face_recognition/examples目录,再执行下面的命令orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ python3 identify_and_draw_boxes_on_faces.pyb. 等待一段时间会弹出下面的图片,可以看到将图片中的人脸都使用方框标注出来了,并且正确显示了人物的名字7) face_distance.py 用来在不同精度上比较两个人脸是否属于一个人,首先打开一个终端,然后进入 face_recognition/examples 目录,再执行下面的命令就可以看到 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn168www.xunlong.tv测试的输出结果orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ python3 face_distance.pyThe test image has a distance of 0.35 from known image #0- With a normal cutoff of 0.6, would the test image match the known image? True- With a very strict cutoff of 0.5, would the test image match the known image? TrueThe test image has a distance of 0.82 from known image #1- With a normal cutoff of 0.6, would the test image match the known image? False- With a very strict cutoff of 0.5, would the test image match the known image?False8) recognize_faces_in_pictures.py 用来识别未知图片中的人脸是谁。首先打开一个终端,然后进入 face_recognition/examples 目录,再执行下面的命令,等待一端时间后就能看到测试结果orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ python3 recognize_faces_in_pictures.pyIs the unknown face a picture of Biden? FalseIs the unknown face a picture of Obama? TrueIs the unknown face a new person that we've never seen before? False9) facerec_from_webcam_faster.py 用来识别 USB 摄像头中的人脸,测试步骤如下所示:a. 首先请将 USB 摄像头插入开发板的 USB 接口中,然后通过 v4l2-ctl(注意v4l2 中的 l 是小写字母 l,不是数字 1)命令查看下 USB 摄像头的设备节点的序号orangepi@orangepi:~$ sudo apt updateorangepi@orangepi:~$ sudo apt install -y v4l-utilsorangepi@orangepi:~$ v4l2-ctl --list-devicescedrus (platform:cedrus):/dev/video0USB2.0 UVC PC Camera: USB2.0 UV (usb-5311000.usb-1):/dev/video1/dev/video2 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn169www.xunlong.tvb.然后在桌面中打开一个终端,进入face_recognition/examples目录后,首先修改下facerec_from_webcam_faster.py中使用的摄像头的设备序号。比如上面通过v4l2-ctl --list-devices命令查看到USB摄像头为/dev/video1,那就修改cv2.VideoCapture(0)中的0为1orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ vim facerec_from_webcam_faster.pyvideo_capture = cv2.VideoCapture(1)c. 然后执行下面的命令运行 facerec_from_webcam_faster.pyorangepi@orangepi:~/face_recognition/examples$ python3 facerec_from_webcam_faster.pyd. 等待一段时间会弹出摄像头的显示画面e. 此时可以将摄像头对准自己,当摄像头检测到人脸时,会将检测到的人脸使用方框框起来。注意,检测人脸时,摄像头显示的画面会比较卡顿,请不要移动过快f. 还可以打开一张奥巴马的图片,然后使用摄像头对准打开的图片,可以看到不仅能将人脸标注出来,还能正确显示检测到的人脸的名字。注意,检测人脸时,摄像头显示的画面会比较卡顿,请不要移动过快 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn170www.xunlong.tv10) web_service_example.py是一个非常简单的使用Web服务上传图片运行人脸识别的案例,后端服务器会识别这张图片是不是奥巴马,并把识别结果以json键值对输出,测试步骤如下所示:a.在桌面中打开一个终端,然后进入face_recognition/examples目录,再执行下面的命令(如果是使用脚本自动安装的face_recognition,那么就不需要安装flask了)orangepi@orangepi:~$ python3 -m pip install flaskorangepi@orangepi:~$ cd face_recognition/examplesroot@orangepi:~/face_recognition/examples$ python3 web_service_example.py* Serving Flask app 'web_service_example' (lazy loading)* Environment: productionWARNING: This is a development server. Do not use it in a production deployment.Use a production WSGI server instead.* Debug mode: on* Running on all addresses (0.0.0.0)WARNING: This is a development server. Do not use it in a production deployment.* Running on http://127.0.0.1:5001* Running on http://192.168.1.79:5001 (Press CTRL+C to quit)* Restarting with stat* Debugger is active!* Debugger PIN: 500-161-390b. 然后另外打开一个终端,再运行下面的命令就可以返回图片识别的结果(注意,下面的命令执行路径为 face_recognition/examples) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn171www.xunlong.tvorangepi@orangepi:~/face_recognition/examples$ curl -XPOST -F \"file=@obama2.jpg" http://127.0.0.1:5001{"face_found_in_image": true,"is_picture_of_obama": true}c. 我们也可以将 face_recognition/examples/obama2.jpg 这张图片拷贝到其他的 Linux 电脑中,当然也可以自己准备一张名为 obama2.jpg 的图片,然后在 Linux 电脑中可以使用下面的命令远程通过开发板运行的服务来识别人脸(注意命令中的 IP 地址需要替换为开发板的 IP 地址,file 后的文件名需要替换为想要测试的图片的名字)test@test:~$ curl -XPOST -F "file=@obama2.jpg" http://192.168.1.79:5001{"face_found_in_image": true,"is_picture_of_obama": true}d. 使用浏览器测试的方法如下所示:a) 首先打开浏览器,然后在浏览器的地址栏输入开发板的 IP 地址:5001,然后就能看到下面的页面b) 然后将 obama2.jpg 复制到桌面orangepi@orangepi:~/face_recognition/examples$ cp obama2.jpg /home/orangepi/Desktop/c)然后在浏览器中选择刚才复制的图片 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn172www.xunlong.tvd)然后点击Upload上传刚才选择的图片进行人脸识别e)等待一段时间后就会显示检测的结果11) face_detection命令测试示例a. face_detection命令行工具可以在单张图片或一个图片文件夹中定位人脸位置(输出像素点坐标)。使用face_detection --help可以查看下face_detection命令的帮助信息orangepi@orangepi:~$ face_detection --helpUsage: face_detection [OPTIONS] IMAGE_TO_CHECKOptions:--cpus INTEGER number of CPU cores to use in parallel. -1 means "use all in range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn11www.xunlong.tv注意,开发板使用的TTL电平是 3.3v的,除了上图所示的USB转TTL模块外,其他类似的 3.3v的USB转TTL模块一般也都是可以的。14) 安装有 Ubuntu 和 Windows 操作系统的 X64 电脑1Ubuntu22.04 PC可选,用于编译Android和Linux源码2Windows PC用于烧录 Android 和 Linux 镜像2.2. 下载开发板的镜像和相关的资料1) 中文版资料的下载网址为http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html2)英文版资料的下载网址为http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html3) 资料主要包含a. Android 源码:保存在百度云盘和谷歌网盘上b. Linux 源码:保存在 Github 上c. Android 镜像:保存在百度云盘和谷歌网盘上d. Ubuntu 镜像:保存在百度云盘和谷歌网盘上e. Debian 镜像:保存在百度云盘和谷歌网盘上f. 用户手册和原理图:芯片相关的数据手册也会放在这里g. 官方工具:主要包括开发板使用过程中需要用到的软件 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn173www.xunlong.tvsystem"--model TEXT Which face detection model to use. Options are "hog" or"cnn".--help Show this message and exit.b. 检测单张图片的示例如下所示:orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ face_detection obama2.jpgobama2.jpg,302,474,611,164c. 使用多核并行检测多张图片的示例如下所示:a) 首先进入 face_recognition/examples 文件夹b) 然后新建一个 test 文件夹c) 然后将 jpg 图片都拷贝到 test 文件夹中d) 然后使用所有的 cpu 并行运行 face_detection 来检查 test 文件夹中的图片,其中--cpus -1 表示使用所有的 cpuorangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ mkdir testorangepi@orangepi:~/face_recognition/examples$ cp *.jpg testorangepi@orangepi:~/face_recognition/examples$ face_detection --cpus -1 testtest/obama-240p.jpg,29,261,101,189test/obama_small.jpg,65,215,169,112test/obama2.jpg,302,474,611,164test/two_people.jpg,62,394,211,244test/two_people.jpg,95,941,244,792test/obama.jpg,136,624,394,366test/obama-480p.jpg,65,507,189,383test/obama-720p.jpg,94,751,273,572test/obama-1080p.jpg,136,1140,394,882test/biden.jpg,233,749,542,43912) face_recognition命令测试示例a. face_recognition命令行工具可以在单张图片或者一个图片文件夹中认出是谁的脸。使用face_recognition --help可以查看下face_recognition命令的帮助信息orangepi@orangepi:~$ face_recognition --helpUsage: face_recognition [OPTIONS] KNOWN_PEOPLE_FOLDER range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn174www.xunlong.tvIMAGE_TO_CHECKOptions:--cpus INTEGER number of CPU cores to use in parallel (can speedup processing lots of images). -1 means "use all insystem"--tolerance FLOAT Tolerance for face comparisons. Default is 0.6.Lower this if you get multiple matches for the sameperson.--show-distance BOOLEAN Output face distance. Useful for tweaking tolerancesetting.--help Show this message and exit.b. 首先新建一个已知名字的人脸图片文件夹 known_people,然后复制两张图片到 known_people 中,然后将 obama2.jpg 复制为 unkown.jpg,也就是我们要识别的图片orangepi@orangepi:~$ cd face_recognition/examplesorangepi@orangepi:~/face_recognition/examples$ mkdir known_peopleorangepi@orangepi:~/face_recognition/examples$ cp biden.jpg obama.jpg known_peopleorangepi@orangepi:~/face_recognition/examples$ cp obama2.jpg unkown.jpgc. 然后就可以使用下面的命令识别下 unkown.jpg 图片中人物的名字,可以看到识别到 unkown.jpg 图片为 obamaorangepi@orangepi:~/face_recognition/examples$ face_recognition known_people \unkown.jpgunkown.jpg,obamad.如果我们识别一张不相关的图片,就会显示unknown_personroot@orangepi:~/face_recognition/examples$ face_recognition known_people \alex-lacamoire.pngalex-lacamoire.png,unknown_persone. 我们还可以新建一个 test 文件夹,然后在其中放入多张图片,然后就可以使用所有的 CPU 来并行识别所有的图片orangepi@orangepi:~/face_recognition/examples$ mkdir testorangepi@orangepi:~/face_recognition/examples$ cp *.jpg *.png testorangepi@orangepi:~/face_recognition/examples$ face_recognition --cpus -1 \known_people testtest/obama-240p.jpg,obama range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn175www.xunlong.tvtest/alex-lacamoire.png,unknown_persontest/obama_small.jpg,obamatest/unkown.jpg,obamatest/obama2.jpg,obamatest/lin-manuel-miranda.png,unknown_persontest/two_people.jpg,bidentest/two_people.jpg,obamatest/obama-720p.jpg,obamatest/obama.jpg,obamatest/obama-480p.jpg,obamatest/biden.jpg,bidentest/obama-1080p.jpg,obama3.29. 设置中文环境以及安装中文输入法注意,安装中文输入法前请确保开发板使用的Linux系统为桌面版系统。3.29.1. Debian 系统的安装方法1) 首先设置默认 locale 为中文a. 输入下面的命令可以开始配置 localeorangepi@orangepi:~$ sudo dpkg-reconfigure localesb.然后在弹出的界面中选择zh_CN.UTF-8 UTF-8(通过键盘上的上下方向按键来上下移动,通过空格键来选择,最后通过Tab键可以将光标移动到<OK>,然后回车即可) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn176www.xunlong.tvc.然后设置默认locale为zh_CN.UTF-8d.退出界面后就会开始locale的设置,命令行显示的输出如下所示orangepi@orangepi:~$ sudo dpkg-reconfigure localesGenerating locales (this might take a while)...en_US.UTF-8... donezh_CN.UTF-8... doneGeneration complete.2) 然后打开 Input Method range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn177www.xunlong.tv3)然后选择OK4)然后选择Yes range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn178www.xunlong.tv5)然后选择fcitx6)然后选择OK7)然后重启Linux系统才能使配置生效 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn179www.xunlong.tv8)然后打开Fcitx configuration9)然后点击下图所示位置的+号10)然后搜索Google Pinyin再点击OK range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn180www.xunlong.tv11)然后将Google Pinyin放到最前面12)然后打开Geany这个编辑器测试下中文输入法 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn181www.xunlong.tv13)中文输入法测试如下所示14)通过Ctrl+Space快捷键可以切换中英文输入法15)如果需要整个系统都显示为中文,可以将/etc/default/locale中的变量都设置为zh_CN.UTF-8orangepi@orangepi:~$ sudo vim /etc/default/locale# File generated by update-localeLC_MESSAGES=zh_CN.UTF-8LANG=zh_CN.UTF-8LANGUAGE=zh_CN.UTF-8 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn182www.xunlong.tv16)然后重启系统就能看到系统显示为中文了3.29.2. Ubuntu 20.04 系统的安装方法1)首先打开Language Support2)然后找到汉语(中国)选项 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn12www.xunlong.tv2.3. 基于Windows PC将Linux镜像烧写到TF卡的方法注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian或者Ubuntu这样的Linux发行版镜像。2.3.1. 使用 balenaEtcher 烧录 Linux 镜像的方法1)首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡2)然后使用读卡器把TF卡插入电脑3) 从 Orange Pi 的资料下载页面下载想要烧录的 Linux 操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“.img”结尾的文件就是操作系统的镜像文件,大小一般都在 1GB 以上4)然后下载Linux镜像的烧录软件——balenaEtcher,下载地址为https://www.balena.io/etcher/5) 进入 balenaEtcher 下载页面后,点击绿色的下载按钮会跳到软件下载的地方6) 然后可以选择下载 balenaEtcher 的 Portable 版本的软件,Portable 版本无需安装,双击打开就可以使用 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn183www.xunlong.tv3)然后请使用鼠标左键选中汉语(中国)并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示:注意,这一步不是很好拖动的,请耐心多试几次。4) 然后选择 Apply System-Wide 将中文设置应用到整个系统 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn184www.xunlong.tv5)然后设置Keyboard input method system为fcitx6)然后重启Linux系统使配置生效7)重新进入系统后,在下面的界面请选择不要再次询问我,然后请根据自己的喜好决定标准文件夹是否也要更新为中文 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn185www.xunlong.tv8)然后可以看到桌面都显示为中文了9)然后我们可以打开Geany测试下中文输入法,打开方式如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn186www.xunlong.tv10)打开Geany后,默认还是英文输入法,我们可以通过Ctrl+Space快捷键来切换成中文输入法,然后就能输入中文了3.29.3. Ubuntu 22.04 系统的安装方法1)首先打开Language Support range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn187www.xunlong.tv2)然后找到汉语(中国)选项3)然后请使用鼠标左键选中汉语(中国)并按住不动,然后往上将其拖到最开始的位置,拖完后的显示如下图所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn188www.xunlong.tv注意,这一步不是很好拖动的,请耐心多试几次。4) 然后选择 Apply System-Wide 将中文设置应用到整个系统5) 然后重启 Linux 系统使配置生效6) 重新进入系统后,在下面的界面请选择不要再次询问我,然后请根据自己的喜好决定标准文件夹是否也要更新为中文 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn189www.xunlong.tv7)然后可以看到桌面都显示为中文了8)然后打开Fcitx5配置程序 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn190www.xunlong.tv9)然后选择使用拼音输入法10)选择后的界面如下所示,再点击确定即可 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn191www.xunlong.tv11)然后我们可以打开Geany测试下中文输入法,打开方式如下图所示12)打开Geany后,默认还是英文输入法,我们可以通过Ctrl+Space快捷键来切换成中文输入法,然后就能输入中文了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn192www.xunlong.tv3.30. 远程登录Linux系统桌面的方法3.30.1. 使用 NoMachine 远程登录请确 保开 发板 安 装 的 Ubuntu 或 者 Debian 系统为桌 面 版本 的 系 统 。 另 外NoMachine 也提供了详细的使用文档,强烈建议通读此文档来熟悉 NoMachine 的使用,文档链接如下所示:https://knowledgebase.nomachine.com/DT10R00166NoMachine 支持 Windows、Mac、Linux、iOS 和安卓平台,所以我们可以在多种设备上通过 NoMachine 来远程登录控制 Orange Pi 开发板。下面演示下在Windows 中通过 NoMachine 来远程登录 Orange Pi 开发板的 Linux 系统桌面。其他平台的安装方法请参考下 NoMachine 的官方文档。操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。1) 首先下载 NoMachine 软件 Linux arm64 deb 版本的安装包,然后安装到开发板的Linux 系统中a. 由于 H618 是 ARMv8 架构的 SOC,我们使用的系统为 Ubuntu 或者 Debian, range Pi 用户手册 深圳市迅龙软件有限公司版权所有目录1. Orange Pi Zero 3的基本特性........................................................................................ 11.1. 什么是 Orange Pi Zero 3................................................................................................... 11.2. Orange Pi Zero 3 的用途.................................................................................................... 11.3. Orange Pi Zero 3 是为谁设计的........................................................................................ 11.4. Orange Pi Zero 3 的硬件特性............................................................................................ 21.5. Orange Pi Zero 3 的顶层视图和底层视图........................................................................ 31.6. Orange Pi Zero 3 的接口详情图........................................................................................ 42.开发板使用介绍............................................................................................................ 62.1. 准备需要的配件................................................................................................................ 62.2. 下载开发板的镜像和相关的资料.................................................................................. 112.3. 基于 Windows PC 将 Linux 镜像烧写到 TF 卡的方法....................................................122.3.1. 使用 balenaEtcher 烧录 Linux 镜像的方法.........................................122.3.2. 使用 Win32Diskimager 烧录 Linux 镜像的方法 ................................ 152.4. 基于 Ubuntu PC 将 Linux 镜像烧写到 TF 卡的方法 ...................................................... 182.5. 烧写 Android 镜像到 TF 卡的方法 ................................................................................. 222.6. 板载 SPI Flash 中的微型 linux 系统使用说明 ................................................................ 282.7. 启动香橙派开发板 .......................................................................................................... 292.8. 调试串口的使用方法 ...................................................................................................... 292.8.1. 调试串口的连接说明........................................................................... 292.8.2. Ubuntu 平台调试串口的使用方法...................................................... 312.8.3. Windows 平台调试串口的使用方法 ...................................................342.9. 使用开发板 26pin 或 13pin 接口中的 5v 引脚供电说明.............................................. 372.10. 使用开发板 13pin 接口扩展 USB 接口的方法............................................................ 383. Debian/Ubuntu Server 和 Xfce 桌面系统使用说明 .................................................... 403.1. 已支持的 linux 镜像类型和内核版本............................................................................ 40 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn13www.xunlong.tv7) 如果下载的是需要安装版本的 balenaEtcher,请先安装再使用。如果下载的Portable 版本 balenaEtcher,直接双击打开即可,打开后的 balenaEtcher 界面如下图所示打开 balenaEtcher 时如果提示下面的错误:请选择 balenaEtcher 后点击右键,然后选择以管理员身份运行。8)使用balenaEtcher烧录Linux镜像的具体步骤如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn193www.xunlong.tv所以这里需要下载NoMachine for ARM ARMv8 DEB安装包,下载链接如下所示:注意,这个下载链接可能会变,请认准Armv8/Arm64版本的deb包。https://downloads.nomachine.com/download/?id=118&distro=ARMb.另外在官方工具中也可以下载到NoMachine的安装包先进入远程登录软件-NoMachine文件夹然后下载arm64版本的deb安装包c.然后将下载的nomachine_x.x.x_x_arm64.deb上传到开发板的Linux系统中d.然后使用下面的命令在开发板的Linux系统中安装NoMachineorangepi@orangepi:~$ sudo dpkg -i nomachine_x.x.x_x_arm64_arm64.deb2) 然后下载 NoMachine 软件 Windows 版本的安装包,下载地址如下所示注意,这个下载链接可能会变。https://downloads.nomachine.com/download/?id=9 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn194www.xunlong.tv3)然后在Windows中安装NoMachine,安装完后请重启下电脑4)然后在Window中打开NoMachine5) NoMachine启动后会自动扫描局域网内其他安装有NoMachine的设备,进入NoMachine的主界面后就可以看到开发板已经在可连接的设备列表里了,然后点击下图红色方框所示的位置即可开始登录开发板的Linux系统桌面6)然后点击OK7)然后在下图对应的位置输入开发板Linux系统的用户名和密码,再点击OK开始 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn195www.xunlong.tv登陆8)然后在接下来的界面中都点击OK9)最后就能看到开发板Linux系统的桌面了3.30.2. 使用 VNC 远程登录操作前请先确保Windwos电脑和开发板在同一局域网内,并且能正常ssh登录开发板的Ubuntu或者Debian系统。Ubuntu20.04测试VNC很多问题,请不要使用这种方法。1) 首先运行 set_vnc.sh 脚本设置下 vnc,记得加 sudo 权限orangepi@orangepi:~$ sudo set_vnc.shYou will require a password to access your desktops. range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn196www.xunlong.tvPassword: #在这里设置 vnc 的密码,8 位字符Verify: #在这里设置 vnc 的密码,8 位字符Would you like to enter a view-only password (y/n)? nxauth: file /root/.Xauthority does not existNew 'X' desktop is orangepi:1Creating default startup script /root/.vnc/xstartupStarting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/orangepi:1.logKilling Xtightvnc process ID 3047New 'X' desktop is orangepi:1Starting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/orangepi:1.log2) 使用 MobaXterm 软件连接开发板 linux 系统桌面的步骤如下所示:a. 首先点击 Session,然后选择 VNC,再填写开发板的 IP 地址和端口,最后点击 OK 确认b. 然后输入前面设置的 VNC 的密码 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn197www.xunlong.tvc.登录成功后的界面显示如下图所示,然后就可以远程操作开发板linux系统的桌面了3.31.QT的安装方法1) 使用下面的脚本可以安装 QT5 和 QT Creatororangepi@orangepi:~$ install_qt.sh2)安装完后会自动打印QT的版本号a. Ubuntu20.04自带的qt版本为5.12.8orangepi@orangepi:~$ install_qt.sh......QMake version 3.1Using Qt version 5.12.8 in /usr/lib/aarch64-linux-gnub. Ubuntu22.04 自带的 QT 版本为 5.15.3orangepi@orangepi:~$ install_qt.sh...... range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn198www.xunlong.tvQMake version 3.1Using Qt version 5.15.3 in /usr/lib/aarch64-linux-gnuc. Debian11 自带的 QT 版本为 5.15.2orangepi@orangepi:~$ install_qt.sh......QMake version 3.1Using Qt version 5.15.2 in /usr/lib/aarch64-linux-gnud. Debian12 自带的 QT 版本为 5.15.8orangepi@orangepi:~$ install_qt.sh......QMake version 3.1Using Qt version 5.15.8 in /usr/lib/aarch64-linux-gnu3)然后在Applications中就可以看到QT Creator的启动图标也可以使用下面的命令打开QT Creatororangepi@orangepi:~$ qtcreator4) QT Creator 打开后的界面如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn199www.xunlong.tv5) QT Creator的版本如下所示a. QT Creator在Ubuntu20.04中的默认版本如下所示b. QT Creator在Ubuntu22.04中的默认版本如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn200www.xunlong.tvc. QT Creator在Debian11中的默认版本如下所示d. QT Creator在Debian12中的默认版本如下所示6)然后设置下QT range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn201www.xunlong.tva.首先打开Help->About Plugins...b.然后去掉ClangCodeModel的那个勾c.设置完后需要重启下QT Creatord.然后确保QT Creator使用的GCC编译器,如果默认为Clang,请修改为GCCDebian12请跳过这步。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn202www.xunlong.tv7)然后就可以打开一个示例代码 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn14www.xunlong.tva.首先选择要烧录的Linux镜像文件的路径b.然后选择TF卡的盘符c.最后点击Flash就会开始烧录Linux镜像到TF卡中9) balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中10) Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn203www.xunlong.tv8)点击示例代码后会自动打开对应的说明文档,可以仔细看下其中的使用说明9)然后点击下Configure Project range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn204www.xunlong.tv10)然后点击左下角的绿色三角形编译运行下示例代码11)等待一段时间后,会弹出下图所示的界面,此时就说明QT能正常编译运行 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn205www.xunlong.tv12)参考资料https://wiki.qt.io/Install_Qt_5_on_Ubuntuhttps://download.qt.io/archive/qtcreatorhttps://download.qt.io/archive/qt3.32. ROS 安装方法3.32.1. Ubuntu20.04 安装 ROS 1 Noetic 的方法1) ROS 1当前活跃的版本如下所示,推荐版本为Noetic Ninjemys range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn206www.xunlong.tvhttp://docs.ros.orghttps://wiki.ros.org/Distributions2) ROS 1 Noetic Ninjemys 官方安装文档链接如下所示:http://wiki.ros.org/noetic/Installation/Ubuntu3) ROS Noetic Ninjemys 官方安装文档中 Ubuntu 推荐使用 Ubuntu20.04,所以请确保开发板使用的系统为 Ubuntu20.04 桌面版系统http://wiki.ros.org/noetic/Installation4)然后使用下面的脚本安装ros1orangepi@orangepi:~$ install_ros.sh ros15) 使用 ROS 工具前,首先需要初始化下 rosdep,然后编译源码时就能快速的安装一些系统依赖和一些 ROS 中的核心组件注意,运行下面的命令需要确保开发板能正常访问 github,否则会由于网络问题而报错。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn207www.xunlong.tvinstall_ros.sh脚本会尝试修改/etc/hosts并自动运行下面的命令。但是这种方法无法保证每次都能正常访问github,如果install_ros.sh安装完ros1后有提示下面的错误,请自己想其它办法让开发板的linux系统能正常访问github,然后再手动运行下面的命令。https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yamlHit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yamlERROR: error loading sources list:The read operation timed outorangepi@orangepi:~$ source /opt/ros/noetic/setup.bashorangepi@orangepi:~$ sudo rosdep initWrote /etc/ros/rosdep/sources.list.d/20-default.listRecommended: please runrosdep updateorangepi@orangepi:~$ rosdep updatereading in sources list data from /etc/ros/rosdep/sources.list.dHit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yamlHit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yamlHit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yamlHit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yamlHit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yamlQuery rosdistro indexhttps://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yamlSkip end-of-life distro "ardent"Skip end-of-life distro "bouncy"Skip end-of-life distro "crystal"Skip end-of-life distro "dashing"Skip end-of-life distro "eloquent"Add distro "foxy"Add distro "galactic"Skip end-of-life distro "groovy"Add distro "humble"Skip end-of-life distro "hydro" range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn208www.xunlong.tvSkip end-of-life distro "indigo"Skip end-of-life distro "jade"Skip end-of-life distro "kinetic"Skip end-of-life distro "lunar"Add distro "melodic"Add distro "noetic"Add distro "rolling"updated cache in /home/orangepi/.ros/rosdep/sources.cache6) 然后在桌面中打开一个命令行终端窗口,再使用 test_ros.sh 脚本可以启动一个小海龟的例程来测试下 ROS 是否能正常使用orangepi@orangepi:~$ test_ros.sh7) 运行完 test_ros.sh 脚本后,会弹出下图所示的一个小海龟8) 然后请保持刚才打开终端窗口在最上面 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn209www.xunlong.tv9)此时按下键盘上的方向按键就可以控制小海龟上下左右移动了3.32.2. Ubuntu20.04 安装 ROS 2 Galactic 的方法1) ROS 2当前活跃的版本如下所示,推荐版本为Galactic Geochelone range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn210www.xunlong.tvhttp://docs.ros.orghttp://docs.ros.org/en/galactic/Releases.html2) ROS 2 Galactic Geochelone 官方安装文档链接如下所示:docs.ros.org/en/galactic/Installation.htmlhttp://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html3) ROS 2 Galactic Geochelone 官方安装文档中 Ubuntu Linux 推荐使用 Ubuntu20.04,所以请确保开发板使用的系统为 Ubuntu20.04 桌面版系统。安装 ROS 2 有几种方法,下面演示下通过 Debian packages 的方式来安装 ROS 2 Galactic Geochelone range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn211www.xunlong.tv4)使用install_ros.sh脚本可以安装ros2orangepi@orangepi:~$ install_ros.sh ros25) install_ros.sh 脚本安装完 ros2 后会自动运行下 ros2 -h 命令,如果能看到下面的打印,说明 ros2 安装完成usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...ros2 is an extensible command-line tool for ROS 2.optional arguments:-h, --help show this help message and exitCommands:action Various action related sub-commandsbag Various rosbag related sub-commandscomponent Various component related sub-commandsdaemon Various daemon related sub-commandsdoctor Check ROS setup and other potential issuesinterface Show information about ROS interfaceslaunch Run a launch filelifecycle Various lifecycle related sub-commandsmulticast Various multicast related sub-commandsnode Various node related sub-commandsparam Various param related sub-commandspkg Various package related sub-commandsrun Run a package specific executablesecurity Various security related sub-commandsservice Various service related sub-commandstopic Various topic related sub-commandswtf Use `wtf` as alias to `doctor`Call `ros2 <command> -h` for more detailed usage.6) 然后可以使用 test_ros.sh 脚本测试下 ROS 2 是否安装成功,如果能看到下面的打印,说明 ROS 2 能正常运行 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn212www.xunlong.tvorangepi@orangepi:~$ test_ros.sh[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1][INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2][INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3'[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]7) 运行下面的命令可以打开 rviz2orangepi@orangepi:~$ source /opt/ros/galactic/setup.bashorangepi@orangepi:~$ ros2 run rviz2 rviz28) ROS 的使用方法请参考下 ROS 2 的文档http://docs.ros.org/en/galactic/Tutorials.html3.32.3. Ubuntu22.04 安装 ROS 2 Humble 的方法1)使用install_ros.sh脚本可以安装ros2orangepi@orangepi:~$ install_ros.sh ros22) install_ros.sh 脚本安装完 ros2 后会自动运行下 ros2 -h 命令,如果能看到下面的打印,说明 ros2 安装完成 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn15www.xunlong.tv11)成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了2.3.2. 使用 Win32Diskimager 烧录 Linux 镜像的方法1)首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn213www.xunlong.tvusage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...ros2 is an extensible command-line tool for ROS 2.optional arguments:-h, --help show this help message and exitCommands:action Various action related sub-commandsbag Various rosbag related sub-commandscomponent Various component related sub-commandsdaemon Various daemon related sub-commandsdoctor Check ROS setup and other potential issuesinterface Show information about ROS interfaceslaunch Run a launch filelifecycle Various lifecycle related sub-commandsmulticast Various multicast related sub-commandsnode Various node related sub-commandsparam Various param related sub-commandspkg Various package related sub-commandsrun Run a package specific executablesecurity Various security related sub-commandsservice Various service related sub-commandstopic Various topic related sub-commandswtf Use `wtf` as alias to `doctor`Call `ros2 <command> -h` for more detailed usage.3) 然后可以使用 test_ros.sh 脚本测试下 ROS 2 是否安装成功,如果能看到下面的打印,说明 ROS 2 能正常运行orangepi@orangepi:~$ test_ros.sh[INFO] [1671174101.200091527] [talker]: Publishing: 'Hello World: 1'[INFO] [1671174101.235661048] [listener]: I heard: [Hello World: 1][INFO] [1671174102.199572327] [talker]: Publishing: 'Hello World: 2'[INFO] [1671174102.204196299] [listener]: I heard: [Hello World: 2][INFO] [1671174103.199580322] [talker]: Publishing: 'Hello World: 3' range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn214www.xunlong.tv[INFO] [1671174103.204019965] [listener]: I heard: [Hello World: 3]4) 运行下面的命令可以打开 rviz2orangepi@orangepi:~$ source /opt/ros/humble/setup.bashorangepi@orangepi:~$ ros2 run rviz2 rviz25) 参考文档http://docs.ros.org/en/humble/index.htmlhttp://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html3.33. 安装内核头文件的方法Linux6.1 内核的 Debian11 系统编译内核模块时会报 GCC 的错误。所以如果要编译内核模块请使用 Debian12 或者 Ubuntu22.04。1) OPi 发布的 Linux 镜像默认自带了内核头文件的 deb 包,存放的位置为/opt/orangepi@orangepi:~$ ls /opt/linux-headers*/opt/linux-headers-xxx-sun50iw9_x.x.x_arm64.deb2) 使用下面的命令可以安装内核头文件的 deb 包orangepi@orangepi:~$ sudo dpkg -i /opt/linux-headers*.deb range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn215www.xunlong.tv3)安装完后在/usr/src下就能看到内核头文件所在的文件夹orangepi@orangepi:~$ ls /usr/srclinux-headers-x.x.x4) 然后可以编译下 Linux 镜像中自带的 hello 内核模块的源码,hello 模块的源码在/usr/src/hello 中,进入此目录后,然后使用 make 命令编译即可。orangepi@orangepi:~$ cd /usr/src/hello/orangepi@orangepi:/usr/src/hello$ sudo makemake -C /lib/modules/5.4.125/build M=/usr/src/hello modulesmake[1]: Entering directory '/usr/src/linux-headers-5.4.125'CC [M] /usr/src/hello/hello.oBuilding modules, stage 2.MODPOST 1 modulesCC [M] /usr/src/hello/hello.mod.oLD [M] /usr/src/hello/hello.komake[1]: Leaving directory '/usr/src/linux-headers-5.4.125'5) 编译完后会生成 hello.ko 内核模块orangepi@orangepi:/usr/src/hello$ ls *.kohello.ko6)使用insmod命令可以将hello.ko内核模块插入内核中orangepi@orangepi:/usr/src/hello$ sudo insmod hello.ko7) 然后使用 demsg 命令可以查看下 hello.ko 内核模块的输出,如果能看到下面的输出说明 hello.ko 内核模块加载正确orangepi@orangepi:/usr/src/hello$ dmesg | grep "Hello"[ 2871.893988] Hello Orange Pi -- init8) 使用 rmmod 命令可以卸载 hello.ko 内核模块orangepi@orangepi:/usr/src/hello$ sudo rmmod helloorangepi@orangepi:/usr/src/hello$ dmesg | grep "Hello"[ 2871.893988] Hello Orange Pi -- init[ 3173.800892] Hello Orange Pi -- exit range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn216www.xunlong.tv3.34.Linux系统支持的部分编程语言测试3.34.1. Debian Bullseye 系统1) Debian Bullseye 默认安装有 gcc 编译工具链,可以直接在开发板的 Linux 系统中编译 C 语言的程序a. gcc 的版本如下所示orangepi@orangepi:~$ gcc --versiongcc (Debian 10.2.1-6) 10.2.1 20210110Copyright (C) 2020 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.b. 编写 C 语言的 hello_world.c 程序orangepi@orangepi:~$ vim hello_world.c#include <stdio.h>int main(void){printf("Hello World!\n");return 0;}c.然后编译运行hello_world.corangepi@orangepi:~$ gcc -o hello_world hello_world.corangepi@orangepi:~$ ./hello_worldHello World!2) Debian Bullseye 默认安装有 Python3a. Python 具体版本如下所示orangepi@orangepi:~$ python3Python 3.9.2 (default, Feb 28 2021, 17:03:44)[GCC 10.2.1 20210110] on linuxType "help", "copyright", "credits" or "license" for more information.>>> range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn217www.xunlong.tv使用Ctrl+D快捷键可退出python的交互模式。b. 编写 Python 语言的 hello_world.py 程序orangepi@orangepi:~$ vim hello_world.pyprint('Hello World!')c.运行hello_world.py的结果如下所示orangepi@orangepi:~$ python3 hello_world.pyHello World!3) Debian Bullseye 默认没有安装 Java 的编译工具和运行环境a. 可以使用下面的命令安装 openjdk,Debian Bullseye 中最新版本为 openjdk-17orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdkb. 安装完后可以查看下 Java 的版本orangepi@orangepi:~$ java --versionc.编写Java版本的hello_world.javaorangepi@orangepi:~$ vim hello_world.javapublic class hello_world{public static void main(String[] args){System.out.println("Hello World!");}}d. 然后编译运行 hello_world.javaorangepi@orangepi:~$ javac hello_world.javaorangepi@orangepi:~$ java hello_worldHello World!3.34.2. Debian Bookworm 系统1) Debian Bookworm 默认安装有 gcc 编译工具链,可以直接在开发板的 Linux 系统中编译 C 语言的程序a. gcc 的版本如下所示orangepi@orangepi:~$ gcc --versiongcc (Debian 12.2.0-14) 12.2.0Copyright (C) 2022 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NO range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn218www.xunlong.tvwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.b. 编写 C 语言的 hello_world.c 程序orangepi@orangepi:~$ vim hello_world.c#include <stdio.h>int main(void){printf("Hello World!\n");return 0;}c. 然后编译运行 hello_world.corangepi@orangepi:~$ gcc -o hello_world hello_world.corangepi@orangepi:~$ ./hello_worldHello World!2) Debian Bookworm默认安装有Python3a. Python具体版本如下所示orangepi@orangepi:~$ python3Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>使用 Ctrl+D 快捷键可退出 python 的交互模式。b.编写Python语言的hello_world.py程序orangepi@orangepi:~$ vim hello_world.pyprint('Hello World!')c. 运行 hello_world.py 的结果如下所示orangepi@orangepi:~$ python3 hello_world.pyHello World!3) Debian Bookworm 默认没有安装 Java 的编译工具和运行环境a. 可 以 使 用 下 面 的 命 令 安 装 openjdk , Debian Bookworm 中 最 新 版 本 为openjdk-17orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdk range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn219www.xunlong.tvb.安装完后可以查看下Java的版本orangepi@orangepi:~$ java --versionc. 编写 Java 版本的 hello_world.javaorangepi@orangepi:~$ vim hello_world.javapublic class hello_world{public static void main(String[] args){System.out.println("Hello World!");}}d. 然后编译运行 hello_world.javaorangepi@orangepi:~$ javac hello_world.javaorangepi@orangepi:~$ java hello_worldHello World!3.34.3. Ubuntu Focal 系统1) Ubuntu Focal默认安装有gcc编译工具链,可以直接在开发板的Linux系统中编译C语言的程序a. gcc的版本如下所示orangepi@orangepi:~$ gcc --versiongcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0Copyright (C) 2019 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.b. 编写 C 语言的 hello_world.c 程序orangepi@orangepi:~$ vim hello_world.c#include <stdio.h>int main(void){printf("Hello World!\n");return 0; range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn220www.xunlong.tv}c. 然后编译运行 hello_world.corangepi@orangepi:~$ gcc -o hello_world hello_world.corangepi@orangepi:~$ ./hello_worldHello World!2) Ubuntu Focal 默认安装有 Python3a. Python3 具体版本如下所示orangepi@orangepi:~$ python3Python 3.8.10 (default, Nov 14 2022, 12:59:47)[GCC 9.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>使用Ctrl+D快捷键可退出python的交互模式。b. 编写 Python 语言的 hello_world.py 程序orangepi@orangepi:~$ vim hello_world.pyprint('Hello World!')c.运行hello_world.py的结果如下所示orangepi@orangepi:~$ python3 hello_world.pyHello World!3) Ubuntu Focal 默认没有安装 Java 的编译工具和运行环境a. 可以使用下面的命令安装 openjdk-17orangepi@orangepi:~$ sudo apt install -y openjdk-17-jdkb. 安装完后可以查看下 Java 的版本orangepi@orangepi:~$ java --versionopenjdk 17.0.2 2022-01-18OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04)OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing)c.编写Java版本的hello_world.javaorangepi@orangepi:~$ vim hello_world.javapublic class hello_world{public static void main(String[] args){ range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn221www.xunlong.tvSystem.out.println("Hello World!");}}d. 然后编译运行 hello_world.javaorangepi@orangepi:~$ javac hello_world.javaorangepi@orangepi:~$ java hello_worldHello World!3.34.4. Ubuntu Jammy 系统1) Ubuntu Jammy 默认安装有 gcc 编译工具链,可以直接在开发板的 Linux 系统中编译 C 语言的程序a. gcc 的版本如下所示orangepi@orangepi:~$ gcc --versiongcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0Copyright (C) 2021 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.b.编写C语言的hello_world.c程序orangepi@orangepi:~$ vim hello_world.c#include <stdio.h>int main(void){printf("Hello World!\n");return 0;}c. 然后编译运行 hello_world.corangepi@orangepi:~$ gcc -o hello_world hello_world.corangepi@orangepi:~$ ./hello_worldHello World!2) Ubuntu Jammy 默认安装有 Python3a. Python3 具体版本如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn222www.xunlong.tvorangepi@orangepi:~$ python3Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>使用 Ctrl+D 快捷键可退出 python 的交互模式。b.编写Python语言的hello_world.py程序orangepi@orangepi:~$ vim hello_world.pyprint('Hello World!')c. 运行 hello_world.py 的结果如下所示orangepi@orangepi:~$ python3 hello_world.pyHello World!3) Ubuntu Jammy 默认没有安装 Java 的编译工具和运行环境a. 可以使用下面的命令安装 openjdk-18orangepi@orangepi:~$ sudo apt install -y openjdk-18-jdkb.安装完后可以查看下Java的版本orangepi@orangepi:~$ java --versionopenjdk 18.0.2-ea 2022-07-19OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)OpenJDK 64-Bit Server VM (build 18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing)c. 编写 Java 版本的 hello_world.javaorangepi@orangepi:~$ vim hello_world.javapublic class hello_world{public static void main(String[] args){System.out.println("Hello World!");}}d. 然后编译运行 hello_world.javaorangepi@orangepi:~$ javac hello_world.javaorangepi@orangepi:~$ java hello_worldHello World! range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn16www.xunlong.tv2)然后使用读卡器把TF卡插入电脑3)接着格式化TF卡a.可以使用SD Card Formatter这个软件格式化TF卡,其下载地址为https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zipb. 下载完后直接解压安装即可,然后打开软件c. 如果电脑只插入了 TF 卡,则“Select card”一栏中会显示 TF 卡的盘符,如果电脑插入了多个 USB 存储设备,可以通过下拉框选择 TF 卡对应的盘符d. 然后点击“Format”,格式化前会弹出一个警告框,选择“是(Y)”后就会开始格式化e. 格式化完 TF 卡后会弹出下图所示的信息,点击确定即可 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn223www.xunlong.tv3.35. 上传文件到开发板Linux系统中的方法3.35.1. 在 Ubuntu PC 中上传文件到开发板 Linux 系统中的方法3.35.1.1. 使用 scp 命令上传文件的方法1)使用scp命令可以在Ubuntu PC中上传文件到开发板的Linux系统中,具体命令如下所示a. file_path:需要替换为要上传文件的路径b. orangepi:为开发板linux系统的用户名,也可以替换成其它的,比如rootc. 192.168.xx.xx:为开发板的IP地址,请根据实际情况进行修改d. /home/orangepi:开发板linux系统中的路径,也可以修改为其它的路径test@test:~$ scp file_path orangepi@192.168.xx.xx:/home/orangepi/2) 如果要上传文件夹,需要加上-r 参数test@test:~$ scp -r dir_path orangepi@192.168.xx.xx:/home/orangepi/3) scp 还有更多的用法,请使用下面的命令查看 man 手册test@test:~$ man scp3.35.1.2. 使用 filezilla 上传文件的方法1) 首先在 Ubuntu PC 中安装 filezillatest@test:~$ sudo apt install -y filezilla2) 然后使用下面的命令打开 filezillatest@test:~$ filezilla3) filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn224www.xunlong.tv4)连接开发板的方法如下图所示5)然后选择保存密码,再点击确定 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn225www.xunlong.tv6)然后选择总是信任该主机,再点击确定7)连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了8)然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Ubuntu PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn226www.xunlong.tv传文件到开发板中了。9)上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了10)上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了3.35.2. 在 Windows PC 中上传文件到开发板 Linux 系统中的方法3.35.2.1. 使用 filezilla 上传文件的方法1) 首先下载 filezilla 软件 Windows 版本的安装文件,下载链接如下所示https://filezilla-project.org/download.php?type=client range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn227www.xunlong.tv2)下载的安装包如下所示,然后双击直接安装即可FileZilla_Server_1.5.1_win64-setup.exe安装过程中,下面的安装界面请选择 Decline,然后再选择 Next> range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn228www.xunlong.tv3) filezilla打开后的界面如下所示,此时右边远程站点下面显示的是空的4)连接开发板的方法如下图所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn229www.xunlong.tv5)然后选择保存密码,再点击确定6)然后选择总是信任该主机,再点击确定7)连接成功后在filezilla软件的右边就可以看到开发板linux文件系统的目录结构了8)然后在filezilla软件的右边选择要上传到开发板中的路径,再在filezilla软件的左边选中Windows PC中要上传的文件,再点击鼠标右键,再点击上传选项就会开始上传文件到开发板中了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn230www.xunlong.tv9)上传完成后就可以去开发板linux系统中的对应路径中查看上传的文件了10)上传文件夹的方法和上传文件的方法是一样的,这里就不再赘述了3.36. 开关机logo使用说明1) 开关机 logo 默认只在桌面版的系统中才会显示2) 在/boot/orangepiEnv.txt 中设置 bootlogo 变量为 false 可以关闭开关机 logoorangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txtverbosity=1bootlogo=false3)在/boot/orangepiEnv.txt中设置bootlogo变量为true可以开启开关机logoorangepi@orangepi:~$ sudo vim /boot/orangepiEnv.txtverbosity=1bootlogo=true4) 开机 logo 图片在 linux 系统中的位置为 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn231www.xunlong.tv/usr/share/plymouth/themes/orangepi/watermark.png5) 替换开机 logo 图片后需要运行下命令才能生效orangepi@orangepi:~$ sudo update-initramfs -u3.37. 关机和重启开发板的方法1) 在 Linux 系统运行的过程中,如果直接拔掉电源断电,可能会导致文件系统丢失某些数据,建议断电前先使用 poweroff 命令关闭开发板的 Linux 系统,然后再拔掉电源orangepi@orangepi:~$ sudo poweroff注意,关闭开发板后需要重新拔插电源才能开机。2) 使用 reboot 命令即可重启开发板中的 Linux 系统orangepi@orangepi:~$ sudo reboot range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn232www.xunlong.tv4. Linux SDK——orangepi-build 使用说明4.1. 编译系统需求Linux SDK,即orangepi-build,只支持在安装有Ubuntu 22.04的X64电脑上运行,所以下载orangepi-build前,请首先确保自己电脑已安装的Ubuntu版本是Ubuntu 22.04。查看电脑已安装的Ubuntu版本的命令如下所示,如果Release字段显示的不是22.04,说明当前使用的Ubuntu版本不符合要求,请更换系统后再进行下面的操作。test@test:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 22.04 LTSRelease: 22.04Codename: jammy如果电脑安装的是 Windows 系统,没有安装有 Ubuntu 22.04 的电脑,可以考虑使用 VirtualBox 或者 VMware 来在 Windows 系统中安装一个 Ubuntu 22.04 虚拟机。但是请注意,不要在 WSL 虚拟机上编译 orangepi-build,因为 orangepi-build 没有在WSL 虚拟机中测试过,所以无法确保能正常在 WSL 中使用 orangepi-build,另外请不要在开发板的 Linux 系统中使用 orangepi-build。Ubuntu 22.04 amd64 版本的安装镜像下载地址为:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso在电脑中或者虚拟机中安装完 Ubuntu 22.04 后,请先设置 Ubuntu 22.04 的软件源为清华源(或者其它你觉得速度快的国内源),不然后面安装软件的时候很容易由于网络原因而出错。替换清华源的步骤如下所示:a. 替换清华源的方法参考这个网页的说明即可。https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/b.注意Ubuntu版本需要切换到22.04。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn17www.xunlong.tv4) 从Orange Pi的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“.img”结尾的文件就是操作系统的镜像文件,大小一般都在 1GB以上5)使用Win32Diskimager烧录Linux镜像到TF卡a. Win32Diskimager的下载页面为http://sourceforge.net/projects/win32diskimager/files/Archive/b. 下载完后直接安装即可,Win32Diskimager 界面如下所示a) 首先选择镜像文件的路径b) 然后确认下 TF 卡的盘符和“设备”一栏中显示的一致c) 最后点击“写入”即可开始烧录c. 镜像写入完成后,点击“退出”按钮退出即可,然后就可以拔出 TF 卡插到开发板中启动 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn233www.xunlong.tvc.需要替换的/etc/apt/sources.list文件的内容为:test@test:~$ sudo mv /etc/apt/sources.list cat /etc/apt/sources.list.baktest@test:~$ sudo vim /etc/apt/sources.list#默认注释了源码镜像以提高apt update速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse#预发布软件源,不建议启用# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiversed. 替换完后需要更新下包信息,并确保没有报错。test@test:~$ sudo apt-get updatee. 另外,由于内核和 U-boot 等源码都是存放在 GitHub 上的,所以编译镜像的时候请确保电脑能正常从 GitHub 下载代码,这点是非常重要的。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn234www.xunlong.tv4.2. 获取linux sdk的源码4.2.1. 从 github 下载 orangepi-buildlinux sdk 指的是 orangepi-build 这套代码,orangepi-build 是基于 armbian build 编译系统修改而来的,使用 orangepi-build 可以编译出多个版本的 linux 镜像。使用下面的命令可以下载 orangepi-build 的代码:test@test:~$ sudo apt-get updatetest@test:~$ sudo apt-get install -y gittest@test:~$ git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next注意,使用 H618 Soc 的开发板是需要下载 orangepi-build 的 next 分支源码的,上面的 git clone 命令需要指定 orangepi-build 源码的分支为 next。通过 git clone 命令下载 orangepi-build 的代码是不需要输入 github 账号的用户名和密码的(下载本手册中的其他代码也是一样的),如果如输入 git clone 命令后Ubuntu PC 提示需要输入 github 账号的用户名和密码,一般都是 git clone 后面的orangepi-build 仓库的地址输入错误了,请仔细检查命令拼写是否有错误,而不是以为我们这里忘了提供 github 账号的用户名和密码。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn235www.xunlong.tvH618系列开发板当前使用的u-boot和linux内核版本如下所示:分支u-boot 版本linux 内核版本currentu-boot v2018.05linux5.4nextu-boot v2021.07linux6.1这里所说的分支和 orangepi-build 源代码的分支不是同一个东西,请不要搞混了。此分支主要是用来区分不同内核源码版本的。目前全志提供的 linux5.4 bsp 内核我们定义为 current 分支。最新的 linux6.1 LTS内核定义为 next 分支。orangepi-build 下载完后会包含下面的文件和文件夹:a. build.sh: 编译启动脚本b. external: 包含编译镜像需要用的配置文件、特定的脚本以及部分程序的源码等c. LICENSE: GPL 2 许可证文件d. README.md: orangepi-build 说明文件e. scripts: 编译 linux 镜像的通用脚本test@test:~/orangepi-build$ lsbuild.sh external LICENSE README.md scripts如 果 是 从 github 下 载 的 orangepi-build 的 代 码 , 下 载 完 后 你 可 能 会 发 现orangepi-build 中并没有包含 u-boot 和 linux 内核的源码,也没有编译 u-boot 和 linux内核需要用到交叉编译工具链,这是正常的,因为这些东西都存放在其它单独的github 仓库或者某些服务器上了(下文会详述其地址)。orangepi-build 在脚本和配置文件中会指定 u-boot、linux 内核和交叉编译工具链的地址,运行 orangepi-build时,当其发现本地没有这些东西,会自动去相应的地方下载的。4.2.2. 下载交叉编译工具链orangepi-build 第一次运行的时候会自动下载交叉编译工具链放在 toolchains 文件夹中,每次运行 orangepi-build 的 build.sh 脚本后,都会检查 toolchains 中的交叉编译工具链是否都存在,如果不存在则会重新开始下载,如果存在则直接使用,不会重复下载。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn236www.xunlong.tv交叉编译工具链在中国境内的镜像网址为清华大学的开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/toolchains 下载完后会包含多个版本的交叉编译工具链:test@test:~/orangepi-build$ ls toolchains/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnugcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnugcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabigcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihfgcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabigcc-linaro-aarch64-none-elf-4.8-2013.11_linuxgcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnugcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihfgcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linuxgcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihfgcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnugcc-linaro-arm-none-eabi-4.8-2014.04_linux编译 H618 Linux 内核源码使用的交叉编译工具链为:a. linux5.4gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnub. linux6.1 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn237www.xunlong.tvgcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu编译 H618 u-boot 源码使用的交叉编译工具链为:a. v2018.05gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabib. v2021.07gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu4.2.3. orangepi-build 完整目录结构说明1) orangepi-build仓库下载完后并不包含linux内核、u-boot的源码以及交叉编译工具链,linux内核和u-boot的源码存放在独立的git仓库中a. linux内核源码存放的git仓库如下,注意切换linux-orangepi仓库的分支为a) Linux5.4https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.4-sun50iw9b) Linux6.1https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-6.1-sun50iw9b. u-boot 源码存放的 git 仓库如下,注意切换 u-boot-orangepi 仓库的分支为a) v2018.05https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2018.05-h618b) v2021.07https://github.com/orangepi-xunlong/u-boot-orangepi/tree/v2021.07-sunxi2) orangepi-build 第一次运行的时候会去下载交叉编译工具链、u-boot 和 linux 内核源码,成功编译完一次 linux 镜像后在 orangepi-build 中可以看到的文件和文件夹有a. build.sh: 编译启动脚本b. external: 包含编译镜像需要用的配置文件、特定功能的脚本以及部分程序的源码,编译镜像过程中缓存的 rootfs 压缩包也存放在 external 中c. kernel: 存放 linux 内核的源码d. LICENSE: GPL 2 许可证文件e. README.md: orangepi-build 说明文件f. output: 存放编译生成的 u-boot、linux 等 deb 包、编译日志以及编译生成的镜像等文件g. scripts: 编译 linux 镜像的通用脚本h. toolchains: 存放交叉编译工具链i. u-boot: 存放 u-boot 的源码 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn238www.xunlong.tvj. userpatches:存放编译脚本需要用到的配置文件test@test:~/orangepi-build$ lsbuild.sh external kernel LICENSE output README.md scripts toolchainsu-boot userpatches4.3. 编译 u-boot1)运行build.sh脚本,记得加sudo权限test@test:~/orangepi-build$ sudo ./build.sh2) 选择 U-boot package,然后回车3) 接着选择开发板的型号4) 然后选择 u-boot 的分支类型a. current 分支会编译 linux5.4 镜像需要使用的 u-boot v2018.05 版本的代码b. next 分支会编译 linux6.1 镜像需要使用的 u-boot v2021.07 版本的代码5) 如果选择的 next 分支还会提示需要选择内存的大小,current 分支不需要选择 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn239www.xunlong.tva.如果购买的开发板为1.5GB内存大小的,请选择第一项b.如果购买的开发板为1GB或2GB或4GB内存大小的,请选择第二项6)然后就会开始编译u-boot,编译next分支时提示的部分信息说明如下所示:a. u-boot源码的版本[ o.k. ] Compiling u-boot [ v2021.07 ]b. 交叉编译工具链的版本[ o.k. ] Compiler version [ aarch64-linux-gnu-gcc 11 ]c. 编译生成的 u-boot deb 包的路径[ o.k. ] Target directory [ orangepi-build/output/debs/u-boot ]d.编译生成的u-boot deb包的包名[ o.k. ] File name [ linux-u-boot-next-orangepizero3_x.x.x_arm64.deb ]e. 编译使用的时间[ o.k. ] Runtime [ 1 min ]f. 重复编译 u-boot 的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译 u-boot[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepizero3BRANCH=next BUILD_OPT=u-boot ]7)查看编译生成的u-boot deb包test@test:~/orangepi-build$ ls output/debs/u-boot/linux-u-boot-next-orangepizero3_x.x.x_arm64.deb8) orangepi-bulid 编译系统编译 u-boot 源码时首先会将 u-boot 的源码和 github 服务器的 u-boot 源码进行同步,所以如果想修改 u-boot 的源码,首先需要关闭源码的下载更新功能(需要完整编译过一次 u-boot 后才能关闭这个功能,否则会提示找不到u-boot 的源码),否则所作的修改都会被还原,方法如下:设置 userpatches/config-default.conf 中的 IGNORE_UPDATES 变量为“yes”test@test:~/orangepi-build$ vim userpatches/config-default.conf......IGNORE_UPDATES="yes" range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn240www.xunlong.tv......9) 调试 u-boot 代码时,可以使用下面的方法来更新 linux 镜像中的 u-boot 进行测试a. 首先将编译好的 u-boot 的 deb 包上传到开发板的 linux 系统中test@test:~/orangepi-build$ cd output/debs/u-boottest@test:~/orangepi_build/output/debs/u-boot$ scp \linux-u-boot-next-orangepizero3_x.x.x_arm64.deb root@192.168.1.xxx:/rootb. 再安装刚才上传的新的 u-boot 的 deb 包orangepi@orangepi:~$ sudo dpkg -i linux-u-boot-next-orangepizero3_x.x.x_arm64.debc.然后运行nand-sata-install脚本orangepi@orangepi:~$ sudo nand-sata-installd. 然后选择 5 Install/Update the bootloader on SD/eMMCe. 按下回车键后首先会弹出一个 Warningf. 再按下回车键就会开始更新 u-boot,更新完后会显示下面的信息 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn241www.xunlong.tvg.然后就可以重启开发板来测试u-boot的修改是否生效了4.4. 编译linux内核1) 运行 build.sh 脚本,记得加 sudo 权限test@test:~/orangepi-build$ sudo ./build.sh2)选择Kernel package,然后回车3)然后会提示是否需要显示内核配置界面,如果不需要修改内核配置,则选择第一个即可,如果需要修改内核配置,则选择第二个4)接着选择开发板的型号 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn242www.xunlong.tv5)然后选择内核源码的分支类型a. current分支会编译linux5.4内核源码b. next分支会编译linux6.1内核源码6)如果第3)步选择了需要显示内核配置菜单(第二个选项),则会弹出通过makemenuconfig打开的内核配置的界面,此时可以直接修改内核的配置,修改完后再保存退出即可,退出后会开始编译内核源码。a.如果不需要修改内核的配置选项,在运行build.sh脚本时,传入KERNEL_CONFIGURE=no就可临时屏蔽弹出内核的配置界面了test@test:~/orangepi-build$ sudo ./build.sh KERNEL_CONFIGURE=nob. 也可以设置 orangepi-build/userpatches/config-default.conf 配置文件中的KERNEL_CONFIGURE=no,这样可以永久禁用这个功能c. 编译内核的时候如果提示下面的错误,这是由于 Ubuntu PC 的终端界面太小,导致 make menuconfig 的界面无法显示,请把 Ubuntu PC 的终端调到最大,然后重新运行 build.sh 脚本 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn18www.xunlong.tv2.4. 基于Ubuntu PC将Linux镜像烧写到TF卡的方法注意,这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian或者Ubuntu这样的Linux发行版镜像,Ubuntu PC指的是安装了Ubuntu系统的个人电脑。1)首先准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡2)然后使用读卡器把TF卡插入电脑3)下载balenaEtcher软件,下载地址为https://www.balena.io/etcher/4) 进入 balenaEtcher 下载页面后,点击绿色的下载按钮会跳到软件下载的地方5)然后选择下载Linux版本的软件即可 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn243www.xunlong.tv7)编译next分支内核源码时提示的部分信息说明如下:a. linux内核源码的版本[ o.k. ] Compiling current kernel [ 6.1.31 ]b. 使用的交叉编译工具链的版本[ o.k. ] Compiler version [ aarch64-linux-gnu-gcc 11 ]c. 内核默认使用的配置文件以及它存放的路径如下所示[ o.k. ] Using kernel config file[ orangepi-build/external/config/kernel/linux-6.1-sun50iw9-next.config ]d.编译生成的内核相关的deb包的路径[ o.k. ] Target directory [ output/debs/ ]e. 编译生成的内核镜像 deb 包的包名[ o.k. ] File name [ linux-image-next-sun50iw9_x.x.x_arm64.deb ]f. 编译使用的时间[ o.k. ] Runtime [ 10 min ]g.最后会显示重复编译上一次选择的内核的编译命令,使用下面的命令无需通过图形界面选择,可以直接开始编译内核源码[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepizero3BRANCH=next BUILD_OPT=kernel KERNEL_CONFIGURE=no ]8) 查看编译生成的内核相关的 deb 包a. linux-dtb-next-sun50iw9_x.x.x_arm64.deb 包含有内核使用的 dtb 文件b. linux-headers-next-sun50iw9_x.x.x_arm64.deb 包含内核头文件c. linux-image-next-sun50iw9_x.x.x_arm64.deb 包含内核镜像和内核模块test@test:~/orangepi-build$ ls output/debs/linux-* range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn244www.xunlong.tvoutput/debs/linux-dtb-next-sun50iw9_x.x.x_arm64.deboutput/debs/linux-headers-next-sun50iw9_x.x.x_arm64.deboutput/debs/linux-image-next-sun50iw9_x.x.x_arm64.deb9) orangepi-bulid 编译系统编译 linux 内核源码时首先会将 linux 内核源码和 github服务器的 linux 内核源码进行同步,所以如果想修改 linux 内核的源码,首先需要关闭源码的更新功能(需要完整编译过一次 linux 内核源码后才能关闭这个功能,否则会提示找不到 linux 内核的源码),否则所作的修改都会被还原,方法如下:设置 userpatches/config-default.conf 中的 IGNORE_UPDATES 变量为“yes”test@test:~/orangepi-build$ vim userpatches/config-default.confIGNORE_UPDATES="yes"10) 如果对内核做了修改,可以使用下面的方法来更新开发板 linux 系统的内核和内核模块a. 将编译好的 linux 内核的 deb 包上传到开发板的 linux 系统中test@test:~/orangepi-build$ cd output/debstest@test:~/orangepi-build/output/debs$ scp \linux-image-next-sun50iw9_x.x.x_arm64.deb root@192.168.1.xxx:/rootb.再安装刚才上传的新的linux内核的deb包orangepi@orangepi:~$ sudo dpkg -i linux-image-next-sun50iw9_x.x.x_arm64.debc. 然后重启开发板,再查看内核相关的修改是否已生效orangepi@orangepi:~$ sudo reboot4.5. 编译rootfs1) 运行 build.sh 脚本,记得加 sudo 权限test@test:~/orangepi-build$ sudo ./build.sh2) 选择 Rootfs and all deb packages,然后回车 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn245www.xunlong.tv3)接着选择开发板的型号4)然后选择内核源码的分支类型,不同版本的内核源码维护的rootfs类型有区别a. current分支可以看到debian11、ubuntu20.04、ubuntu22.04三个选项b. next分支可以看到debian11、debian12、ubuntu22.04三个选项5)然后选择rootfs的类型6)然后选择镜像的类型a. Image with console interface (server)表示服务器版的镜像,体积比较小b. Image with desktop environment表示带桌面的镜像,体积比较大7)如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多(没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn246www.xunlong.tv8)如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前只维护XFCE,所以请选择XFCE类型的桌面然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。9)然后就会开始编译rootfs,编译时提示的部分信息说明如下a. rootfs的类型[ o.k. ] local not found [ Creating new rootfs cache for bullseye ]b. 编译生成的 rootfs 压缩包的存放路径[ o.k. ] Target directory [ orangepi-build/external/cache/rootfs ] range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn247www.xunlong.tvc.编译生成的rootfs压缩包的名字[ o.k. ] File name [ bullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4 ]10) 查看编译生成的 rootfs 压缩包a. bullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4 是 rootfs 的压缩包,名字各字段的含义为a) bullseye 表示 rootfs 的 linux 发行版的类型b) xfce 表示 rootfs 为桌面版的类型,如果为 cli 则表示服务器版类型c) arm64 表示 rootfs 的架构类型d) 25250ec7002de9e81a41de169f1f89721 是由 rootfs 安装的所有软件包的包名生成的 MD5 哈希值,只要没有修改 rootfs 安装的软件包的列表,那么这个值就不会变,编译脚本会通过这个 MD5 哈希值来判断是否需要重新编译 rootfsb. bullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4.list 列 出 了rootfs 安装的所有软件包的包名test@test:~/orangepi-build$ ls external/cache/rootfs/bullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4bullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4.currentbullseye-xfce-arm64.5250ec7002de9e81a41de169f1f89721.tar.lz4.list11) 如果需要的 rootfs 在 external/cache/rootfs 下已经存在,那么再次编译 rootfs 就会 直 接 跳 过 编 译 过 程 , 不 会 重 新 开 始 编 译 , 编 译 镜 像 的 时 候 也 会 去external/cache/rootfs 下查找是否已经有缓存可用的 rootfs,如果有就直接使用,这样可以节省大量的下载编译时间4.6. 编译linux镜像1) 运行 build.sh 脚本,记得加 sudo 权限test@test:~/orangepi-build$ sudo ./build.sh2) 选择 Full OS image for flashing,然后回车 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn248www.xunlong.tv3)然后选择开发板的型号4)然后选择内核源码的分支类型,不同版本的内核源码维护的rootfs类型有区别a. current分支可以看到debian11、ubuntu20.04、ubuntu22.04三个选项b. next分支可以看到debian11、debian12、ubuntu22.04三个选项5)如果选择的next分支还会提示需要选择内存的大小,current分支不需要选择a.如果购买的开发板为1.5GB内存大小的,请选择第一项b.如果购买的开发板为1GB或2GB或4GB内存大小的,请选择第二项6)然后选择rootfs的类型 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn249www.xunlong.tv7)然后选择镜像的类型a. Image with console interface (server)表示服务器版的镜像,体积比较小b. Image with desktop environment表示带桌面的镜像,体积比较大8)如果是编译服务器版的镜像,还可以选择编译Standard版本或者Minimal版本,Minimal版本预装的软件会比Standard版本少很多(没特殊需求请不要选择Minimal版本,因为很多东西默认没有预装,部分功能可能用不了)9)如果是编译桌面版本的镜像还需要选择桌面环境的类型,目前只维护XFCE,所以请选择XFCE类型的桌面然后可以选择需要安装的额外的软件包。这里请按下回车键直接跳过。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn250www.xunlong.tv10)然后就会开始编译linux镜像,编译的大致流程如下a.初始化Ubuntu PC的编译环境,安装编译过程需要的软件包b.下载u-boot和linux内核的源码(如果已经缓存,则只更新代码)c.编译u-boot源码,生成u-boot的deb包d.编译linux源码,生成linux相关的deb包e.制作linux firmware的deb包f.制作orangepi-config工具的deb包g.制作板级支持的deb包h.如果是编译desktop版镜像,还会制作desktop相关的deb包i.检查rootfs是否已经缓存,如果没有缓存,则重新制作rootfs,如果已经缓存,则直接解压使用j.安装前面生成的deb包到rootfs中k.对不同的开发板和不同类型镜像做一些特定的设置,如预装额外的软件包,修改系统配置等l.然后制作镜像文件,并格式化分区,默认类型为ext4m.再将配置好的rootfs拷贝到镜像的分区中n.然后更新initramfso.最后将u-boot的bin文件通过dd命令写入到镜像中11)编译完镜像后会提示下面的信息a.编译生成的镜像的存放路径[ o.k. ] Done building[ output/images/orangepizero3_x.x.x_debian_bullseye_linux6.1.xx_xfce_desktop/ora range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn251www.xunlong.tvngepizero3_x.x.x_debian_bullseye_linux6.1.xx_xfce_desktop.img ]b. 编译使用的时间[ o.k. ] Runtime [ 19 min ]c. 重复编译镜像的命令,使用下面的命令无需通过图形界面选择,可以直接开始编译镜像[ o.k. ] Repeat Build Options [ sudo ./build.sh BOARD=orangepizero3BRANCH=next BUILD_OPT=image RELEASE=bullseye BUILD_MINIMAL=noBUILD_DESKTOP=no KERNEL_CONFIGURE=yes ] range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn252www.xunlong.tv5. Orange Pi OS Arch 系统的使用说明5.1. Orange Pi OS Arch 系统功能适配情况功能OPi OS ArchHDMI 视频OKHDMI 音频OKUSB2.0 x 3OKTF卡启动OK千兆网卡OK红外接收OKWIFIOK蓝牙OK耳机音频OKLED灯OK26pin GPIOOK26pin I2COK26pin SPI1OK26pin UARTOKPWMOK温度传感器OK硬件看门狗OKMali GPUNO视频编解码NOTV-OUTNO5.2. Orange Pi OS Arch 系统用户向导使用说明首先请注意,OPi OS Arch 系统是没有设置默认的 orangepi 用户和密码的,所以烧录完系统启动后是无法直接通过串口和 ssh 远程登录的(root 用户也不行)。这一点和 Ubuntu、Debian 系统是有区别的。OPi OS Arch 系统第一次启动时需要接上 HDMI 显示器,然后通过用户向导来初始化系统设置(其中包括新建用户名和设置密码)。用户向导的设置步骤如下所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn19www.xunlong.tv6)从 Orange Pi 的资料下载页面下载想要烧录的Linux操作系统镜像文件压缩包,然后使用解压软件解压,解压后的文件中,以“.img”结尾的文件就是操作系统的镜像文件,大小一般都在1GB以上。7z结尾的压缩包的解压命令如下所示:test@test:~$ 7z x orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.7ztest@test:~$ ls orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.*orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.7zorangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.sha #校验和文件orangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.img #镜像文件7) 解压镜像后可以先用 sha256sum -c *.sha 命令计算下校验和是否正确,如果提示成功说明下载的镜像没有错,可以放心的烧录到 TF 卡,如果提示校验和不匹配说明下载的镜像有问题,请尝试重新下载test@test:~$ sha256sum -c *.shaorangepizero3_1.0.0_ubuntu_focal_desktop_linux6.1.31.img: 成功8) 然后在 Ubuntu PC 的图形界面双击 balenaEtcher-1.14.3-x64.AppImage 即可打开balenaEtcher(无需安装),balenaEtcher 打开后的界面显示如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn253www.xunlong.tva)烧录完系统第一次启动进入桌面后会看到下图所示的用户向导程序b)首先需要选择想要语言c)在选择完语言后,用户向导会立即切换为对应的语言界面,如中文显示如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn254www.xunlong.tvd)然后选择区域e)然后选择键盘型号 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn255www.xunlong.tvf)然后新建用户名和设置密码g)然后确保选择没问题后,再点击安装按钮 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn256www.xunlong.tvh)然后等待安装完成i)安装完成需要点击完成按钮重启系统 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn257www.xunlong.tvj)重启后会自动启动Orange Pi Hello程序,此时需要去掉右下角开机时启动的勾选状态,不然每次启动都需要手动关闭Orange Pi Hello程序此时就可以使用刚才新建的用户名和密码通过串口或者ssh登录OPi OS系统了。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn258www.xunlong.tv5.3. 设置DT overlays的方法开发板 26pin 中的 I2C/SPI/UART/PWM 等复用功能默认在内核的 dts 中都是关闭的,需要手动打开对应的 DT overlays 才能使用。在 OPi OS Arch 系统中打开 DT overlays 的方法如下所示:1) 首先打开/boot/extlinux/extlinux.conf 配置文件[orangepi@orangepi-pc ~]$ sudo vim /boot/extlinux/extlinux.conf2) 然后在/boot/extlinux/extlinux.conf 中通过添加 FDTOVERLAYS/dtbs/allwinner/overlay/xxx.dtbo 来打开对应的配置注意 FDTOVERLAYS /dtbs/allwinner/overlay/xxx.dtbo 中的 xxx.dtbo 需要替换为具体的 dtbo 配置,请不要照抄。[orangepi@orangepi-pc ~]$ sudo vim /boot/extlinux/extlinux.confLABEL Orange PiKERNEL /ImageFDT /dtbs/allwinner/sun50i-h616-orangepi-zero3.dtbFDTOVERLAYS /dtbs/allwinner/overlay/xxx.dtbo #需要添加的配置3) xxx.dtbo 在 OPi OS Arch 镜像中的存放路径如下所示,请注意,此路径下面不是所有的 dtbo 都可以使用的。/boot/dtbs/allwinner/overlay/4)开发板可以使用的DT overlays配置如下所示开发板上的功能对应的 DT overlays 配置26pin - spi1sun50i-h616-spi1-cs1-spidev.dtbo26pin - i2c3sun50i-h616-ph-i2c3.dtbo26pin - uart5sun50i-h616-ph-uart5.dtbo26pin - pwm12sun50i-h616-ph-pwm12.dtbo26pin - pwm34sun50i-h616-ph-pwm34.dtbo禁用 uart0 调试串口sun50i-h616-disable-uart0.dtbo关闭 led 灯sun50i-h616-disable-leds.dtbo设置 type-c usb0 接口为 host 模式sun50i-h616-usb0-host.dtbo range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn259www.xunlong.tv5)如果需要同时打开多个配置,直接在FDTOVERLAYS后面将多个配置的路径加上即可,比如同时打开i2c3和uart5的配置如下所示[orangepi@orangepi-pc ~]$ sudo vim /boot/extlinux/extlinux.confLABEL Orange PiKERNEL /ImageFDT /dtbs/allwinner/sun50i-h616-orangepi-zero3.dtbFDTOVERLAYS /dtbs/allwinner/overlay/sun50i-h616-ph-i2c3.dtbo /dtbs/allwinner/overlay/sun50i-h616-ph-uart5.dtbo6) 设置好后需要重启系统才能让配置生效[orangepi@orangepi-pc ~]$ sudo reboot5.4. 安装软件的方法使用 pacman 包管理工具可以安装 OPi OS 中没有的软件,比如安装 vim 编辑器的命令如下所示,如果想安装其他软件,只需要把 vim 替换想要安装的软件的包名即可。[orangepi@orangepi-pc ~]$ sudo pacman -Syy vim range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn260www.xunlong.tv6. Android 12 TV 系统使用说明6.1. 已支持的 Android 版本Android版本内核版本Android 12 TV 版linux5.46.2. Android 12 TV 功能适配情况功能Android12HDMI 视频OKHDMI 音频OKUSB2.0 x 3OKTF卡启动OK网卡OK红外OKWIFIOKWIFI hotsportOK蓝牙OKBLE蓝牙OK耳机音频OKTV-OUTOKUSB 摄像头OKLED 灯OK温度传感器OKMali GPUOK视频编解码OK6.3. 板载 LED 灯显示说明绿灯红灯u-boot 启动阶段灭亮 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn261www.xunlong.tv内核启动到进入系统亮灭6.4. Android 返回上一级界面的方法1)我们一般都是使用鼠标和键盘来控制开发板的安卓系统,当进入某些界面,需要返回上一级界面或者桌面时,只能通过鼠标右键来返回,键盘是无法返回的2)如果有购买开发板配套的红外遥控(其他遥控不行)和扩展板,将扩展板插入开发板后,还可以通过遥控中的返回键来返回上一级菜单,返回键的位置如下图所示6.5.ADB的使用方法6.5.1. 使用网络连接 adb 调试使用网络 adb 无需 USB Typc C 接口的数据线来连接电脑和开发板,而是通过网络来通信,所以首先请确保开发板的有线或者无线网络已经连接好了,然后获取开发板的 IP 地址,后面要用到。1) 确保 Android 系统的 service.adb.tcp.port 设置为 5555 端口号apollo-p2:/ # getprop | grep "adb.tcp"[service.adb.tcp.port]: [5555]2) 如果 service.adb.tcp.port 没有设置,可以在串口中使用下面的命令设置网络 adb的端口号apollo-p2:/ # setprop service.adb.tcp.port 5555 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn262www.xunlong.tvapollo-p2:/ # stop adbdapollo-p2:/ # start adbd3) 在 Ubuntu PC 上安装 adb 工具test@test:~$ sudo apt-get updatetest@test:~$ sudo apt-get install -y adb4) 然后在 Ubuntu PC 上连接网络 adbtest@test:~$ adb connect 192.168.1.xxx:5555 (需要修改为开发板的 IP 地址)* daemon not running; starting now at tcp:5037* daemon started successfullyconnected to 192.168.1.xxx:5555test@test:~$ adb devicesList of devices attached192.168.1.xxx:5555 device5)然后在Ubuntu PC上通过adb shell就可以登录android系统test@test:~$ adb shellapollo-p2:/ #6.5.2. 使用数据线连接 adb 调试1) 准备一根 USB Typc C 接口的数据线, USB 接口一端插入电脑的 USB 接口中,USB Type C 接口一端插入开发板的电源接口中。在这种情况下是由电脑的 USB 接口给开发板供电,所以请确保电脑的 USB 接口能提供最够的功率驱动开发板2) 在 Ubuntu PC 上安装 adb 工具 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn20www.xunlong.tv9)使用balenaEtcher烧录Linux镜像的具体步骤如下所示a.首先选择要烧录的Linux镜像文件的路径b.然后选择TF卡的盘符c.最后点击Flash就会开始烧录Linux镜像到TF卡中10) balenaEtcher烧录Linux镜像的过程显示的界面如下图所示,另外进度条显示紫色表示正在烧录Linux镜像到TF卡中 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn263www.xunlong.tvtest@test:~$ sudo apt-get updatetest@test:~$ sudo apt-get install -y adb3) 查看识别到 ADB 设备test@test:~$ adb devicesList of devices attached4c00146473c28651dd0 device4) 然后在 Ubuntu PC 上通过 adb shell 就可以登录 android 系统test@test:~$ adb shellapollo-p2:/ $6.6. 查看设置HDMI显示分辨率的方法1) 首先进入 Settings2) 然后选择 Device Preferences3) 然后选择 Display & Sound range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn264www.xunlong.tv4)然后选择Advanced display settings5)然后选择HDMI output mode6)然后就能看到显示器支持的分辨率列表了。此时点击对应的选项就会切换到对应的分辨率。请注意,不同显示器支持的分辨率可能是不同的,如果接到电视上,一般会看到比下图更多的分辨率选项。7)开发板的HDMI输出是支持4K显示的,当接到4K电视时就可以看到4K分辨率的选项 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn265www.xunlong.tv6.7.HDMI转VGA显示测试1) 首先需要准备下面的配件a. HDMI 转 VGA 转换器b. 一根 VGA 线和一根 Micro HDMI 公转 HDMI 母转接线c. 一个支持 VGA 接口的显示器或者电视2) HDMI 转 VGA 显示测试如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn266www.xunlong.tv使用HDMI转VGA显示时,开发板以及开发板的Android系统是不需要做任何设置的,只需要开发板Micro HDMI接口能正常显示就可以了。所以如果测试有问题,请检查HDMI转VGA转换器、VGA线以及显示器是否有问题。6.8.WI-FI的连接方法1) 首先选择 Settings2) 然后选择 Network & Internet3) 然后打开 WI-FI range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn267www.xunlong.tv4)打开WI-FI后在Available networks下面就可以看到搜索到的信号5)选择想连接的WI-FI后会弹出下图所示的密码输入界面6)然后使用键盘输入WI-FI对应的密码,再使用鼠标点击虚拟键盘中的回车按钮就会开始连接WI-FI了7) WI-FI连接成功后的显示如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn268www.xunlong.tv6.9.WI-FI hotspot的使用方法1) 首先请确保以太网口已连接网线,并且能正常上网2) 然后选择 Settings3) 然后选择 Network & Internet4) 然后选择 WIFI hotspot5) 然后打开 Hotspot Enable,下图中还可以看到生成的热点的名字和密码,记住它们,在连接热点的时候要用到(如果需要修改热点的名字和密码,需要先关闭 HotspotEnable,然后才能修改) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn269www.xunlong.tv6)此时可以拿出你的手机,如果一切正常,在手机搜索到的WI-FI列表中就能找到上图Hotspot name下面显示的同名(这里为AndroidAP_7132)的WIFI热点了。然后可以点击AndroidAP_7132连接热点,密码在上图的Hotspot password下面可以看到7)连接成功后显示如下图所示(不同手机界面会有区别,具体界面以你手机显示的为准)。此时就可以在手机上打开一个网页看下能否上网了,如果能正常打开网页,说明开发板的WI-FI Hotspot能正常使用6.10. 查看以太网口IP地址的方法1) 首先请确保开发板的千兆网口连接到了路由器或者交换机 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn270www.xunlong.tv2)然后打开Settings3)然后选择Network & Internet4)然后在下图所示的位置就能看到开发板有线网口的IP地址了6.11. 蓝牙的连接方法1) 首先选择 Settings range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn271www.xunlong.tv2)然后选择Bluetooth3)然后打开Bluetooth Enable4)然后点击Pair new device开始扫描周围的蓝牙设备5)搜索到的蓝牙设备会在Available devices下面显示出来 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn272www.xunlong.tv6)然后点击想要连接的蓝牙设备就可以开始配对了,当弹出下面的界面时,请使用鼠标选择Pair选项7)这里测试的是开发板和安卓手机蓝牙的配置过程,此时在手机上会弹出下面的确认界面,在手机上也点击配对按钮后就会开始配对过程8)配对完成后,再打开Paired devices下面就可以看到已配对的蓝牙设备 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn21www.xunlong.tv11) Linux镜像烧录完后,balenaEtcher默认还会对烧录到TF卡中的镜像进行校验,确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher正在对烧录完成的镜像进行校验12)成功烧录完成后balenaEtcher的显示界面如下图所示,如果显示绿色的指示图标说明镜像烧录成功,此时就可以退出balenaEtcher,然后拔出TF卡插入到开发板的TF卡槽中使用了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn273www.xunlong.tv9)此时可以使用手机蓝牙给开发板发送一张图片,发送后,在开发板的安卓系统中可以看到下面的确认界面,然后点击Accept就可以开始接收手机发过来的图片了10)开发板Android系统蓝牙接收到的图片可以打开Received files中查看6.12.USB摄像头使用方法1) 首先在开发板的 USB 接口中插入 USB(UVC 协议)摄像头2) USB 摄像头如果识别正常,在/dev 下会生成相应的 video 设备节点console:/ # ls /dev/video0/dev/video03)然后确保Ubuntu PC和开发板的adb连接正常,adb的使用方法请参考ADB的使用方法一小节的说明4)在开发板资料下载页面的官方工具中下载USB摄像头测试APP range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn274www.xunlong.tv5)然后使用adb命令安装USB摄像头测试APP到Android系统中,当然也可以使用U盘拷贝的方式进行安装test@test:~$ adb install usbcamera.apk6) 安装完后在 Android 的桌面可以看到 USB 摄像头的启动图标7) 然后双击打开 USB 摄像头 APP 就可以看到 USB 摄像头的输出视频了6.13. Android 系统 ROOT 说明Orange Pi发布的Android系统已经ROOT,可以使用下面的方法来测试。1) 在开发板资料下载页面的官方工具中下载 rootcheck.apk range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn275www.xunlong.tv2)然后确保Ubuntu PC和开发板的adb连接正常,adb的使用方法请参考ADB的使用方法一小节的说明3)然后使用adb命令安装rootcheck.apk到Android系统中,当然也可以使用U盘拷贝的方式进行安装test@test:~$ adb install rootcheck.apk4) 安装完后在 Android 的桌面可以看到 ROOT 测试工具的启动图标5) 第一次打开 ROOT 测试工具后的显示界面如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn276www.xunlong.tv6)然后就可以点击CHECK NOW开始Android系统的ROOT状态的检查,检查完后的显示如下所示,可以看到Android系统已取得ROOT权限6.14. 使用MiracastReceiver将手机屏幕投屏到开发板的方法1) 首先请确保开发板和手机都连接了同一个 WIFI 热点,开发板连接 WIFI 的方法请参考 WI-FI 的连接方法一小节的说明2) 然后打开开发板安卓系统中的 MiracastReceiver 应用3) MiracastReceiver 打开后的界面如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn277www.xunlong.tv4)然后在手机设置中找到投屏功能,这里以小米12S Pro手机为例,其他品牌的手机请自行研究下,如下图所示,点击红色方框位置的按钮即可打开手机的投屏功能5)等待一段时间后在手机上就能看到搜索到的可连接的设备,然后我们选择开发板对应的设备连接即可 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn278www.xunlong.tv6)然后在开发板的MiracastReceiver应用界面会弹出下图所示的选择框,这里我们选择Accept即可7)然后就能在开发板连接的HDMI屏幕上看到手机屏幕的内容了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn279www.xunlong.tv6.15.26pin接口GPIO、UART、SPI测试6.15.1. 26pin 的 GPIO 口测试方法1) 首先在桌面中打开 wiringOP APP2) 然后点击 GPIO_TEST 按钮打开 GPIO 测试界面3) GPIO 测试界面如下图所示,左边的两排 CheckBox 按钮跟 26pin 引脚(左下角 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn280www.xunlong.tv的PC1/PI16/PI6/PH10是13pin引脚中的GPIO口)是一一对应的关系。当勾选CheckBox按钮时,对应的GPIO引脚会被设置为OUT模式,引脚电平设置为高电平;当取消勾选时,GPIO引脚电平设置为低电平;当点击右边的GPIO READALL按钮时,可以获取到wPi号、GPIO模式、引脚电平等信息。4)然后点击GPIO READALL按钮,输出信息如下图所示:5)开发板26pin中总共有17个GPIO口可以使用(如果加上13pin中的4个GPIO口,那么总共就是有21个),下面以7号引脚——对应GPIO为PC9——对应wPi序号为2——为例演示如何设置GPIO口的高低电平。首先点击7号引脚对应的CheckBox按钮,当按钮为选中状态时,7号引脚会设置为高电平,设置完后可以使用万用表测量引脚的电压的数值,如果为3.3v,说明设置高电平成功 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn281www.xunlong.tv6)然后点击GPIO READALL按钮,可以看到当前的7号引脚模式为OUT,引脚电平为高电平7)再次点击下图的CheckBox按钮取消勾选状态,7号引脚会设置为低电平,设置完后可以使用万用表测量引脚的电压的数值,如果为0v,说明设置低电平成功8)然后点击GPIO READALL按钮,可以看到当前的7号引脚模式为OUT,引脚电平为低电平 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn282www.xunlong.tv6.15.2. 26pin 的 UART 测试方法1) Android中默认打开了UART5,对应的设备节点为/dev/ttyAS5apollo-p2:/ # ls /dev/ttyAS5/dev/ttyAS52) 首先在桌面中打开 wiringOP APP3) 然后点击 UART_TEST 按钮打开 UART 测试界面4) wiringOP 的串口测试界面如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn22www.xunlong.tv2.5. 烧写Android镜像到TF卡的方法开发板的 Android 镜像只能在 Windows 平台下使用 PhoenixCard 软件烧录到TF 卡中,PhoenixCard 软件的版本必须为 PhonixCard-4.2.8。请不要用烧录 Linux 镜像的软件,如 Win32Diskimager 或者 balenaEtcher 来烧录安卓镜像。另外 PhoenixCard 这款软件没有 Linux 和 Mac 平台的版本,所以在 Linux 和Mac 平台下是无法烧录安卓镜像到 TF 卡中的。1) 首先请确保 Windows 系统已经安装了 Microsoft Visual C++ 2008 Redistrbutable- x86 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn283www.xunlong.tv5)然后在选择框中选择/dev/ttyAS5节点6)再在编辑框中输入想要设置的波特率,然后点击OPEN按钮打开/dev/ttyAS5节点,打开成功后,OPEN按钮变为不可选中状态,CLOSE按钮和SEND按钮变为可选中状态7)然后使用杜邦线短接uart5的rx和tx引脚uart5tx 引脚对应 26pin 的 8 号引脚rx 引脚对应 26pin 的 10 号引脚 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn284www.xunlong.tv8)然后可以在下面的发送编辑框中输入一段字符,点击SEND按钮开始发送9)如果一切正常,接收框内会显示已接收到的字符串6.15.3. 26pin 的 SPI 测试方法1) 26pin中可以用的SPI为SPI1,对应的设备节点为/dev/spidev1.12)这里演示下通过w25q64模块来测试SPI1接口,首先在SPI1接口接入w25q64模块如果没有w25q64模块也没关系,因为开发板上有一个SPIFlash接在了SPI0上,在安卓中SPI0的配置默认也打开了,所以我们也可以直接使用板载的SPIFlash测试。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn285www.xunlong.tv3)然后在桌面中打开wiringOP APP4)然后点击SPI_TEST按钮打开SPI的测试界面5)然后在左上角选择spi的设备节点,如果直接测试板载的SPIFlash,那么保持默认的/dev/spidev0.0即可,如果在26pin的spi1上接了w25q64模块,那么就请选择/dev/spidev1.16)然后点击OPEN按钮初始化SPI7)然后填充需要发送的字节,比如读取板载SPIFlash的ID信息,在data[0]中填入地址0x9f,然后点击TRANSFER按钮 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn286www.xunlong.tv8)最后APP会显示读取到的板载SPI Flash的ID信息9)如果是读取接在26pin SPI1上的w25q64模块,那么读取到的ID信息如下图所示10) w25q64模块的MANUFACTURER ID为EFh,Device ID为4017h,跟上面读取 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn287www.xunlong.tv到的值是对应的(h代表是16进制)6.15.4. 26pin 的 I2C 测试方法1) Android中默认打开了26pin中的i2c3,对应的设备节点为/dev/i2c-3apollo-p2:/ # ls /dev/i2c-3/dev/i2c-32) 首先在桌面中打开 wiringOP APP3) 然后点击 I2C_TEST 按钮打开 i2c 的测试界面4) wiringOP 的 i2c 测试界面如下图所示,可以看到默认使用的 i2c 为/dev/i2c-3,所以我们无需重新选择了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn288www.xunlong.tv5)然后在26pin的i2c3引脚上接一个i2c设备,这里以ds1307 rtc模块为例RTC 模块的引脚开发板 26pin 对应的引脚5V2 号引脚GND6 号引脚SDA3 号引脚SCL5号引脚6) ds1307 rtc模块的i2c地址为0x68,接好线后,我们可以在串口命令行中使用i2cdetect -y 3命令查看下是否能扫描到ds1307 rtc模块的i2c地址。如下图所示,如果能看到0x68这个地址,说明ds1307 rtc模块接线正确。apollo-p2:/ # i2cdetect -y 37) 然后在 wiringOP 中设置 i2c 的地址为 0x68,再点击 OPEN 按钮打开 i2c3 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn289www.xunlong.tv8)点击OPEN按钮打开i2c3后的显示如下所示:9)然后我们测试下往rtc模块的寄存器中写入一个值,比如往0x1c地址写入0x55a.我们首先设置需要写入的寄存器的地址为0x1cb.然后设置需要写入的值为0x55c.然后点击WRITE BYTE按钮执行写入的动作 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn290www.xunlong.tv10)然后点击READ BYTE按钮读取下0x1c寄存器的值,如果显示为0x55,就说明i2c读写测试通过 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn291www.xunlong.tv7. Android 12 源码的编译方法7.1. 下载 Android 12 的源码1)首先从百度或者谷歌网盘下载Android 12源码的分卷压缩包a.百度网盘b.谷歌网盘2) Android 12源码的分卷压缩包下载完后,请先检查下MD5校验和是否正确,如果不正确,请重新下载源码。检查MD5校验和的方法如下所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn292www.xunlong.tvtest@test:~$ md5sum -c H618-Android12-Src.tar.gz.md5sumH618-Android12-Src.tar.gzaa: OKH618-Android12-Src.tar.gzab: OK......3) 然后需要将多个压缩文件合并成一个,再解压出安卓源码。命令如下所示:test@test:~$ cat H618-Android12-Src.tar.gza* > H618-Android12-Src.tar.gztest@test:~$ tar -xvf H618-Android12-Src.tar.gz7.2. 编译Android 12的源码Android12 的编译是在安装有 Ubuntu 22.04 的 x86_64 电脑上进行的,其它版本的 Ubuntu 系统包依赖可能会有一些区别,Ubuntu 22.04 amd64 版本的镜像下载地址如下所示:https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.2-desktop-amd64.iso编译 Android12 源码的 x86_64 电脑硬件配置建议内存为 16GB 或 16GB 以上,硬盘空间建议预留 200GB 或以上,CPU 核心数越多越好。1)首先安装编译Android12源码需要的软件包test@test:~$ sudo apt-get updatetest@test:~$ sudo apt-get install -y git gnupg flex bison gperf build-essential \zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \libgl1-mesa-dev libxml2-utils xsltproc unzip u-boot-tools python-is-python3 \libssl-dev libncurses5 clang gawk2) 然后编译 longan 文件夹中的代码,里面主要包含 u-boot 和 linux 内核a. 首先运行 ./build.sh config 设置编译选项test@test:~$ cd H618-Android12-Src/longantest@test:~/H618-Android12-Src/longan$ ./build.sh configWelcome to mkscript setup progressAll available platform: range Pi 用户手册 深圳市迅龙软件有限公司版权所有3.2. linux 内核驱动适配情况................................................................................................. 413.3. 本手册 linux 命令格式说明 ............................................................................................ 423.4. linux 系统登录说明......................................................................................................... 433.4.1. linux 系统默认登录账号和密码 ..........................................................433.4.2. 设置 linux 系统终端自动登录的方法 .................................................433.4.3. linux 桌面版系统自动登录说明 ..........................................................443.4.4. Linux 桌面版系统 root 用户自动登录的设置方法 ............................ 453.4.5. Linux 桌面版系统禁用桌面的方法 .....................................................463.5. 板载 LED 灯测试说明...................................................................................................... 463.6. TF 卡中 linux 系统 rootfs 分区容量操作说明................................................................493.6.1. 第一次启动会自动扩容TF卡中rootfs分区的容量......................... 493.6.2. 禁止自动扩容TF卡中rootfs分区容量的方法................................. 513.6.3. 手动扩容TF卡中rootfs分区容量的方法......................................... 523.6.4. 缩小TF卡中rootfs分区容量的方法................................................. 573.7. 网络连接测试 .................................................................................................................. 623.7.1. 以太网口测试....................................................................................... 623.7.2.WIFI连接测试..................................................................................... 633.7.3. 通过create_ap创建WIFI热点的方法............................................... 703.7.4. 设置静态IP地址的方法......................................................................773.7.5. 设置Linux系统第一次启动自动连接网络的方法............................853.8. SSH 远程登录开发板.......................................................................................................883.8.1. Ubuntu 下 SSH 远程登录开发板 .........................................................883.8.2. Windows 下 SSH 远程登录开发板 ......................................................893.9. HDMI 测试 ........................................................................................................................913.9.1. HDMI 显示测试 ................................................................................... 913.9.2. HDMI 转 VGA 显示测试 .....................................................................923.9.3. Linux5.4 系统 HDMI 分辨率设置的方法 ...........................................933.9.4. Linux5.4 系统 Framebuffer 宽度和高度的修改方法 ..........................943.9.5. Framebuffer 光标设置 .......................................................................... 953.10. 蓝牙使用方法................................................................................................................ 953.10.1. 桌面版镜像的测试方法..................................................................... 953.10.2. 服务器版镜像的使用方法................................................................. 98 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn23www.xunlong.tv2)如果没有安装Microsoft Visual C++ 2008 Redistrbutable - x86,使用 PhoenixCard 格式化 TF 卡或者烧录 Android 镜像会提示下面的错误3) Microsoft Visual C++ 2008 Redistrbutable - x86的安装包可以从Orange Pi Zero 3的官方工具中下载到,也可以去微软官网下载 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn293www.xunlong.tv0. android1. linuxChoice [android]: 0All available ic:0. h618Choice [h618]: 0All available board:0. ft1. p12. p23. p74. p7l5. perf16. perf27. perf38. qaChoice [p2]: 2All available flash:0. default1. norChoice [default]: 0All available kern_ver:0. linux-5.4Choice [linux-5.4]: 0All available arch:0. arm1. arm64Choice [arm64]: 1......*** Default configuration is based on 'sun50iw9p1smp_h618_android_defconfig'## configuration written to .config#make[1]: Leaving directory '/home/test/H618-Android12-Src/longan/out/kernel/build'make: Leaving directory '/home/test/H618-Android12-Src/longan/kernel/linux-5.4'INFO: clean buildserver range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn294www.xunlong.tvINFO: prepare_buildserverb. 然后运行./build.sh 脚本就可以开始编译了test@test:~/H618-Android12-Src/longan$ ./build.shc. 编译完成后会看到下面的输出sun50iw9p1 compile Kernel successfulINFO: Prepare toolchain .........INFO: build kernel OK.INFO: build rootfs ...INFO: skip make rootfs for androidINFO: ----------------------------------------INFO: build lichee OK.INFO: ----------------------------------------3)然后使用下面的命令编译安卓源码并生成最终的安卓镜像test@test:~$ cd H618-Android12-Srctest@test:~/H618-Android12-Src$ source build/envsetup.shtest@test:~/H618-Android12-Src$ lunch apollo_p2-userdebugtest@test:~/H618-Android12-Src$ make -j8test@test:~/H618-Android12-Src$ pack4) 编译生成的安卓镜像存放路径为:longan/out/h618_android12_p2_uart0.img range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn295www.xunlong.tv8. 附录8.1. 用户手册更新历史版本日期更新说明v1.02023-07-10初始版本v1.12023-07-14添加 Android 12 源码的编译方法v1.22023-09-05Orange Pi OS Arch 系统的使用说明v1.32023-10-13wiringOP 硬件 PWM 的使用方法8.2. 镜像更新历史日期更新说明2023-07-10Orangepizero3_1.0.0_ubuntu_jammy_server_linux5.4.125.7zOrangepizero3_1.0.0_debian_bullseye_server_linux5.4.125.7zOrangepizero3_1.0.0_ubuntu_focal_desktop_xfce_linux5.4.125.7zOrangepizero3_1.0.0_ubuntu_jammy_desktop_xfce_linux5.4.125.7zOrangepizero3_1.0.0_debian_bullseye_desktop_xfce_linux5.4.125.7zOrangepizero3_1.0.0_ubuntu_jammy_server_linux6.1.31.7zOrangepizero3_1.0.0_debian_bookworm_server_linux6.1.31.7zOrangepizero3_1.0.0_debian_bullseye_server_linux6.1.31.7zOrangepizero3_1.0.0_ubuntu_jammy_desktop_xfce_linux6.1.31.7zOrangepizero3_1.0.0_debian_bookworm_desktop_xfce_linux6.1.31.7zOrangepizero3_1.0.0_debian_bullseye_desktop_xfce_linux6.1.31.7zOrangePi_Zero3_Android12_v1.0.tar.gz* 初始版本2023-07-13Opios-arch-aarch64-xfce-opizero3-23.07-linux6.1.31.img.xz* 初始版本2023-10-07Orangepizero3_1.0.2_ubuntu_jammy_server_linux6.1.31.7z range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn296www.xunlong.tvOrangepizero3_1.0.2_debian_bookworm_server_linux6.1.31.7zOrangepizero3_1.0.2_debian_bullseye_server_linux6.1.31.7zOrangepizero3_1.0.2_ubuntu_jammy_desktop_xfce_linux6.1.31.7zOrangepizero3_1.0.2_debian_bookworm_desktop_xfce_linux6.1.31.7zOrangepizero3_1.0.2_debian_bullseye_desktop_xfce_linux6.1.31.7z* 解决关机后 HDMI 还显示 logo 的问题 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn24www.xunlong.tv4)然后准备一张8GB或更大容量的TF卡,TF卡的传输速度必须为class10级或class10级以上,建议使用闪迪等品牌的TF卡5)然后使用读卡器把TF卡插入电脑6)从 Orange Pi 的资料下载页面下载 Android 镜像和 PhoenixCard 烧写工具,请确保 PhonenixCrad 工具的版本为 PhonixCard-4.2.8,请不要用低于 4.2.8 版本的PhonixCard 软件来烧录 Android 镜像,低于这个版本的 PhonixCard 工具烧写的Android 镜像可能会有问题7) 然后使用解压软件解压下载的Android镜像的压缩包,解压后的文件中,以“.img”结尾的文件就是Android镜像文件,大小在1GB以上。如果不知道怎么解压Android镜像的压缩包,可以安装一个 360 压缩软件来解压镜像。8)然后使用解压软件解压 PhonixCard4.2.8.zip,此软件无需安装,在解压后的文件夹中找到PhoenixCard打开即可 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn25www.xunlong.tv9)打开PhoenixCard后,如果TF卡识别正常,会在中间的列表中显示TF卡的盘符和容量,请务必确认显示的盘符和你想烧录的TF卡的盘符是一致的,如果没有显示可以尝试拔插下TF卡,或者点击PhoenixCard中的“刷新盘符”按钮10) 确认完盘符后,先格式化 TF 卡,点击 PhoenixCard 中“恢复卡”按钮即可(如果“恢复卡”按钮为灰色的无法按下,可以先点击下“刷新盘符”按钮)如果格式化有问题,请尝试拔插下 TF 卡后再测试,如果重新拔插 TF 卡后还是有问题,可以重启下 Window 电脑或者换一台电脑再试下。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn26www.xunlong.tv11)然后开始将Android镜像写入TF卡a.首先在“固件”一栏中选择Android镜像的路径b.在“制作卡的种类”中选择“启动卡”c. 然后点击“烧卡”按钮就会开始烧录12)烧录完后PhoenixCard的显示如下图所示,此时点击“关闭”按钮即可退出PhoenixCard,然后就可以把TF卡从电脑中拔出来插到开发板中启动了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn27www.xunlong.tv烧录完Android系统后在Windows中TF卡只能看到一个128 MB的分区,显示的分区如下图所示(有些电脑可能会弹出二十几个磁盘分区,但也只能打开128 MB的那个分区),请注意,这是正常的,请不要以为TF卡烧坏了。之所以这样,是因为安卓系统总共有二十几个分区,但大部分分区在Windows系统中是无法正常识别的。此时,请放心的拔下TF卡然后插入开发板中启动即可。安卓系统启动后,使用下面的命令可以看到TF卡中的这二十几个分区:使用df -h命令可以看到16GB的TF卡烧录完安卓系统后大概还有11 GB的空间可以用使用(二十几个分区并不会都挂载到安卓系统中,重点关注这些能看到的分区即可)。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn28www.xunlong.tv2.6. 板载SPI Flash中的微型linux系统使用说明开发板上有一个 16MB 大小的 SPI Flash,其所在位置如下图所示:SPI Flash 中默认烧录有一个微型的 linux 系统,此系统主要用于证明开发板是能正常启动的。当拿到开发板后,不用烧录系统到 TF 卡中,只需要给开发板接上Type-C 电源就能启动 SPI Flash 中的微型 linux 系统。此系统的主要功能有:a) u-boot 启动阶段会点亮红色的 led 灯,进入内核后,会关闭红色的 led 灯并设置绿色的 led 灯闪烁;b) 如果开发板接了 HDMI 屏幕,系统启动完成后,在 HDMI 屏幕中能看到微型linux 系统的命令行界面;c) 如果开发板接了 USB 键盘,在命令行中能运行一些简单的 linux 命令,如 ls,cd 等。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn29www.xunlong.tv由于SPI Flash中微型的linux系统功能有限,所以如果想正常使用开发板的所有功能,请烧录linux镜像或者安卓镜像烧录到TF卡中,然后再使用。2.7. 启动香橙派开发板1) 将烧录好镜像的 TF 卡插入香橙派开发板的 TF 卡插槽中2) 开发板有 Micro HDMI 接口,可以通过 Micro HDMI 转 HDMI 连接线把开发板连接到电视或者 HDMI 显示器3) 如果购买了 13pin 的扩展板,可以将 13pin 的扩展板插到开发板的 13pin 接口中4) 接上 USB 鼠标和键盘,用于控制香橙派开发板5) 开发板有以太网口,可以插入网线用来上网6) 连接一个 5V/2A(5V/3A 的也可以)的 USB Type C 接口的高品质的电源适配切记不要插入电压输出大于 5V 的电源适配器,会烧坏开发板。系统上电启动过程中很多不稳定的现象基本都是供电有问题导致的,所以一个靠谱的电源适配器很重要。如果启动过程中发现有不断重启的现象,请更换下电源或者 Type C 数据线再试下。7)然后打开电源适配器的开关,如果一切正常,此时HDMI显示器就能看到系统的启动画面了8)如果想通过调试串口查看系统的输出信息,请使用串口线将开发板连接到电脑,串口的连接方法请参看调试串口的使用方法一节2.8. 调试串口的使用方法2.8.1. 调试串口的连接说明1)首先需要准备一个3.3v的USB转TTL模块,然后将USB转TTL模块的USB接口一端插入到电脑的USB接口中 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn30www.xunlong.tv2)开发板的调试串口GND、TX和RX引脚的对应关系如下图所示3) USB转TTL模块GND、TX和RX引脚需要通过杜邦线连接到开发板的调试串口上a. USB转TTL模块的GND接到开发板的GND上b. USB转TTL模块的RX接到开发板的TX上c. USB转TTL模块的TX接到开发板的RX上4) USB转TTL模块连接电脑和Orange Pi开发板的示意图如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn31www.xunlong.tv串口的TX和RX是需要交叉连接的,如果不想仔细区分TX和RX的顺序,可以把串口的TX和RX先随便接上,如果测试串口没有输出再交换下TX和RX的顺序,这样就总有一种顺序是对的。2.8.2. Ubuntu 平台调试串口的使用方法Linux 下可以使用的串口调试软件有很多,如 putty、minicom 等,下面演示下putty 的使用方法。1) 首先将 USB 转 TTL 模块插入 Ubuntu 电脑的 USB 接口,如果 USB 转 TTL 模块连接识别正常,在 Ubuntu PC 的/dev 下就可以看到对应的设备节点名,记住这个节点名,后面设置串口软件时会用到test@test:~$ ls /dev/ttyUSB*/dev/ttyUSB02) 然后使用下面的命令在 Ubuntu PC 上安装下 puttytest@test:~$ sudo apt updatetest@test:~$ sudo apt install -y putty3)然后运行putty,记得加sudo权限test@test:~$ sudo putty4) 执行 putty 命令后会弹出下面的界面 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn32www.xunlong.tv5)首先选择串口的设置界面6)然后设置串口的参数a.设置Serial line to connect to为/dev/ttyUSB0(修改为对应的节点名,一般为/dev/ttyUSB0)b.设置Speed(baud)为115200(串口的波特率)c.设置Flow control为None range Pi 用户手册 深圳市迅龙软件有限公司版权所有3.11. USB 接口测试...............................................................................................................1013.11.1. 连接 USB 鼠标或键盘测试 ............................................................. 1013.11.2. 连接 USB 存储设备测试 ................................................................. 1023.11.3. USB 以太网卡测试 .......................................................................... 1023.11.4. USB 摄像头测试 .............................................................................. 1043.12. 音频测试...................................................................................................................... 1063.12.1. 使用命令行播放音频的方法........................................................... 1063.12.2. 在桌面系统中测试音频方法........................................................... 1073.13. 红外接收测试.............................................................................................................. 1093.14. 温度传感器.................................................................................................................. 1113.14.1. linux5.4 系统查看温度的方法 ......................................................... 1113.14.2. linux6.1 系统查看温度的方法 .........................................................1123.15. 13 Pin 扩展板接口引脚说明 ....................................................................................... 1123.16. 26 Pin 接口引脚说明................................................................................................... 1143.17. 安装 wiringOP 的方法 ................................................................................................. 1153.18. 26pin 接口 GPIO、I2C、UART、SPI 和 PWM 测试 ....................................................1173.18.1. 26pin GPIO 口测试 ...........................................................................1173.18.2. 26 pin GPIO 口上下拉电阻的设置方法 ..........................................1183.18.3. 26pin SPI 测试 .................................................................................. 1193.18.4. 26pin I2C 测试 ..................................................................................1213.18.5. 26pin 的 UART 测试 ........................................................................ 1243.18.6. 使用/sys/class/pwm/测试 PWM 的方法.......................................... 1263.19. wiringOP 硬件 PWM 的使用方法............................................................................... 1303.19.1. 使用 wiringOP 的 gpio 命令设置 PWM 的方法 .............................1313.19.2. PWM 测试程序的使用方法 .............................................................1353.20. wiringOP-Python 的安装使用方法..............................................................................1363.20.1. wiringOP-Python 的安装方法 ..........................................................1373.20.2. 26pin GPIO 口测试 ...........................................................................1393.20.3. 26pin SPI 测试 .................................................................................. 1413.20.4. 26pin I2C 测试 ..................................................................................1443.20.5. 26pin 的 UART 测试 ........................................................................ 147 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn33www.xunlong.tv7)在串口的设置界面设置完后,再回到Session界面a.首先选择Connection type为Serialb.然后点击Open按钮连接串口8)然后启动开发板,就能从打开的串口终端中看到系统输出的Log信息了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn34www.xunlong.tv2.8.3. Windows 平台调试串口的使用方法Windows下可以使用的串口调试软件有很多,如SecureCRT、MobaXterm等,下面演示MobaXterm的使用方法,这款软件有免费版本,无需购买序列号即可使用。1) 下载 MobaXterma. 下载 MobaXterm 网址如下https://mobaxterm.mobatek.net/b.进入MobaXterm下载网页后点击GET XOBATERM NOW!c.然后选择下载Home版本 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn35www.xunlong.tvd.然后选择Portable便携式版本,下载完后无需安装,直接打开就可以使用2)下载完后使用解压缩软件解压下载的压缩包,即可得到MobaXterm的可执软件,然后双击打开3)打开软件后,设置串口连接的步骤如下a.打开会话的设置界面b.选择串口类型c.选择串口的端口号(根据实际的情况选择对应的端口号),如果看不到端口号,请使用360驱动大师扫描安装USB转TTL串口芯片的驱动d.选择串口的波特率为115200e.最后点击“OK”按钮完成设置 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn36www.xunlong.tv4)点击“OK”按钮后会进入下面的界面,此时启动开发板就能看到串口的输出信息了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn37www.xunlong.tv2.9. 使用开发板26pin或13pin接口中的5v引脚供电说明我们推荐的开发板的供电方式是使用 5V/2A 或者 5V/3A 的 Type C 接口的电源线插到开发板的 Type C 电源接口来供电的。如果需要使用 26pin 或者 13pin 接口中的 5V 引脚来给开发板供电,请确保使用的电源线能满足开发板的供电需求。如果有使用不稳定的情况,请换回 Type C 电源供电。1)首先需要准备一根下图所示的电源线上图所示的电源线在淘宝可以买到,请自行搜索购买。2) 使用 26pin 或者 13pin 接口中的 5V 引脚来给开发板供电,电源线的接法如下所示a. 上图所示的电源线 USB A 口需要插到 5V/2A 或者 5V/3A 的电源适配器接头上(不建议插到电脑的 USB 接口来供电,如果开发板接的外设过多,使用会不稳定)b. 红色的杜邦线需要插到开发板 26pin 或者 13pin 接口的 5V 引脚上c. 黑色的杜邦线需要插到 26pin 或者 13pin 接口的 GND 引脚上d. 26pin 和 13pin 接口 5V 引脚和 GND 引脚在开发板中的位置如下图所示,切记不要接反了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn38www.xunlong.tv2.10. 使用开发板13pin接口扩展USB接口的方法1) 如果有购买 Orange Pi 的 13pin 扩展板,将扩展板插入开发板的 13pin 接口中,就可以扩展 2 个 USB 接口2) 如果没有 13pin 扩展板,可以使用 4pin 2.54mm 杜邦转 USB2.0 母头的线来扩展USB 接口,具体方法如下所示:a. 首先需要准备一根 4pin 2.54mm 杜邦转 USB2.0 母头的线(这种线在淘宝可以买到,请自行搜索购买),如下图所示:b. 13pin 接口的原理图如下所示c. USB2 的接线如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn39www.xunlong.tvd. USB3的接线如下所示e.如果需要在13pin接口上同时接两个USB设备,会发现13pin接口上的5V和GND引脚不够用,此时其中一个USB设备可以使用26pin接口中的5V和GND引脚,位置如下图所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn40www.xunlong.tv3. Debian/Ubuntu Server 和 Xfce 桌面系统使用说明3.1. 已支持的 linux 镜像类型和内核版本Linux镜像类型内核版本服务器版桌面版Ubuntu 20.04 - FocalLinux5.4支持支持Ubuntu 22.04 - JammyLinux5.4支持支持Debian 11 - BullseyeLinux5.4支持支持Ubuntu 22.04 - JammyLinux6.1支持支持Debian 11 - BullseyeLinux6.1支持支持Debian 12 - BookwormLinux6.1支持支持在 Orange Pi 的资料下载页面进入对应开发板的下载页面后可以看到下面的下载选项,在下文的描述中,Ubuntu 镜像和 Debian 镜像一般统称为 Linux 镜像。Linux 镜像的命名规则为:开发板型号_版本号_Linux 发行版类型_发行版代号_服务器或桌面_内核版本a. 开发板的型号:都是 orangepizero3。不同开发板的型号名一般都是不同的,烧录镜像前,请确保所选择镜像的这个型号名和开发板是匹配的。b. 版本号:如 1.x.x,这个版本号会随着镜像功能的更新而递增,另外开发板Linux 镜像的版本号最后一个数字都是偶数。c. Linux 发行版的类型:目前支持 Ubuntu 和 Debian。由于 Ubuntu 源自 Debian,所以两个系统在使用上来说总体区别不大。但部分软件的默认配置和命令的使用上还是有些许区别的,另外 Ubuntu 和 Debian 都各自有维护所支持的软件仓库,在支持的可安装的软件包上也是有些许差异的。这些需要亲自去使用体验才会有比较深刻的认识。有关更多的细节,可以参考下 Ubuntu 和Debian 官方提供的文档。d. 发行版代号:用来区分 Ubuntu 或者 Debian 这样具体的 Linux 发行版的不同版本。其中 focal 和 jammy 都是 Ubuntu 发行版,focal 表示 Ubuntu20.04, range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn41www.xunlong.tvjammy表示Ubuntu22.04,不同版本的最大的区别是新版本的Ubuntu系统维护的软件仓库的中的软件很多都比旧版本的Ubuntu系统中的要新,比如Python和GCC编译工具链等。bullseye是Debian的具体版本代号,bullseye表示Debian11,bookworm表示Debian12。e.服务器或桌面:用来表示系统是否带桌面环境,如果为server就表示系统没有安装桌面环境,镜像占用的存储空间和资源比较小,主要使用命令行来操作控制系统。如果为desktop_xfce就表示系统默认安装有XFCE桌面环境,镜像占用的存储空间和资源比较大,可以接显示器和鼠标键盘通过界面来操作系统。当然desktop版本的系统也可以像server版本的系统一样通过命令行来操作。f.内核版本:用来表示linux内核的版本号,目前支持linux5.4和linux6.1。3.2.linux内核驱动适配情况功能Linux5.4Linux6.1HDMI视频OKOKHDMI 音频OKOKUSB2.0 x 3OKOKTF 卡启动OKOK千兆网卡OKOK红外接收OKOKWIFIOKOK蓝牙OKOK耳机音频OKOKUSB 摄像头OKOKLED 灯OKOK26pin GPIOOKOK26pin I2COKOK26pin SPI1OKOK26pin UARTOKOKPWMOKOK温度传感器OKOK硬件看门狗OKOKMali GPUNONO range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn42www.xunlong.tv视频编解码NONOTV-OUTNONO3.3. 本手册 linux 命令格式说明1) 本手册中所有需要在 Linux 系统中输入的命令都会使用下面的方框框起来如下所示,黄色方框里内容表示需要特别注意的内容,这里面的命令除外。2) 命令前面的提示符类型说明a. 命令前面提示符指的是下面方框内红色部分的内容,这部分内容不是 linux命令的一部分,所以在 linux 系统中输入命令时,请不要把红色字体部分的内容也输入进去。orangepi@orangepi:~$ sudo apt updateroot@orangepi:~# vim /boot/boot.cmdtest@test:~$ ssh root@192.168.1.xxxroot@test:~# lsb. root@orangepi:~$ 提示符表示这个命令是在开发板的 linux 系统中输入的,提示符最后的 $ 表示系统当前用户为普通用户,当执行特权命令时,需要加上 sudoc. root@orangepi:~# 提示符表示这个命令是在开发板的 linux 系统中输入的,提示符最后的 # 表示系统当前用户为 root 用户,可以执行任何想要执行的命令d. test@test:~$ 提示符表示这个命令是在 Ubuntu PC 或者 Ubuntu 虚拟机中输入的,而不是开发板的 linux 系统中。提示符最后的 $ 表示系统当前用户为普通用户,当执行特权命令时,需要加上 sudoe. root@test:~# 提示符表示这个命令是在 Ubuntu PC 或者 Ubuntu 虚拟机中输入的,而不是开发板的 linux 系统中。提示符最后的 # 表示系统当前用户为 root 用户,可以执行任何想要执行的命令3) 哪些是需要输入的命令?a. 如下所示,黑色加粗部分是需要输入的命令,命令下面的是输出的内容(有些命令有输出,有些可能没有输出),这部分内容是不需要输入的 range Pi 用户手册 深圳市迅龙软件有限公司版权所有3.21. 硬件看门狗测试.......................................................................................................... 1493.22. 查看 H618 芯片的 chipid .............................................................................................1503.23. Python 相关说明..........................................................................................................1503.23.1. Python 源码编译安装的方法 ...........................................................1503.23.2. Python 更换 pip 源的方法 ................................................................1513.24. 安装 Docker 的方法.....................................................................................................1523.25. Home Assistant 的安装方法........................................................................................1523.25.1. 通过docker安装.............................................................................. 1523.25.2. 通过python安装..............................................................................1563.26. OpenCV 的安装方法....................................................................................................1583.26.1. 使用apt来安装OpenCV.................................................................1583.27. 宝塔 Linux 面板的安装方法........................................................................................1593.28. face_recognition 人脸识别库的安装和测试方法......................................................1623.28.1. 使用脚本自动安装 face_recognition 的方法 .................................. 1623.28.2. 手动安装 face_recognition 的方法 .................................................. 1633.28.3. face_recognition 的测试方法 ........................................................... 1653.29. 设置中文环境以及安装中文输入法 .......................................................................... 1753.29.1. Debian 系统的安装方法 ..................................................................1753.29.2. Ubuntu 20.04 系统的安装方法 ........................................................1823.29.3. Ubuntu 22.04 系统的安装方法 ........................................................1863.30. 远程登录 Linux 系统桌面的方法................................................................................1923.30.1. 使用 NoMachine 远程登录 .............................................................. 1923.30.2. 使用 VNC 远程登录 .........................................................................1953.31. QT 的安装方法.............................................................................................................1973.32. ROS 安装方法...............................................................................................................2053.32.1.Ubuntu20.04安装ROS 1 Noetic的方法.........................................2053.32.2.Ubuntu20.04安装ROS 2 Galactic的方法......................................2093.32.3.Ubuntu22.04安装ROS 2 Humble的方法...................................... 2123.33. 安装内核头文件的方法 .............................................................................................. 2143.34. Linux 系统支持的部分编程语言测试 .........................................................................216 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn43www.xunlong.tvroot@orangepi:~# cat /boot/orangepiEnv.txtverbosity=7bootlogo=falseconsole=serialb. 如下所示,有些命令一行写不下会放到下一行,只要黑色加粗的部分就都是需要输入的命令。当这些命令输入到一行的时候,每行最后的“\”是需要去掉的,这个不是命令的一部分。另外命令的不同部分都是有空格的,请别漏了orangepi@orangepi:~$ echo \"deb [arch=$(dpkg --print-architecture) \signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \https://download.docker.com/linux/debian \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null3.4.linux系统登录说明3.4.1. linux 系统默认登录账号和密码账号密码rootorangepiorangepiorangepi注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。当输入密码提示错误,或者 ssh 连接有问题,请注意,只要使用的是 Orange Pi提供的 Linux 镜像,就请不要怀疑上面的密码不对,而是要找其它的原因。3.4.2. 设置 linux 系统终端自动登录的方法1) linux 系统默认就是自动登录终端的,默认登录的用户名是 orangepi range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn44www.xunlong.tv2)使用下面的命令可以设置root用户自动登录终端orangepi@orangepi:~$ sudo auto_login_cli.sh root3) 使用下面的命令可以禁止自动登录终端orangepi@orangepi:~$ sudo auto_login_cli.sh -d4) 使用下面的命令可以再次设置 orangepi 用户自动登录终端orangepi@orangepi:~$ sudo auto_login_cli.sh orangepi3.4.3. linux 桌面版系统自动登录说明1)桌面版系统启动后会自动登录进入桌面,无需输入密码 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn45www.xunlong.tv2)运行下面的命令可以禁止桌面版系统自动登录桌面orangepi@orangepi:~$ sudo disable_desktop_autologin.sh3) 然后重启系统就会出现登录对话框,此时需要输入密码才能进入系统3.4.4. Linux 桌面版系统 root 用户自动登录的设置方法1) 执行下面的命令可以设置桌面版系统使用 root 用户自动登录 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn46www.xunlong.tvorangepi@orangepi:~$ sudo desktop_login.sh root2) 然后重启系统,就会自动使用 root 用户登录桌面了注意,如果使用 root 用户登录桌面系统,是无法使用右上角的 pulseaudio 来管理音频设备的。另外请注意这并不是一个 bug,因为 pulseaudio 本来就不允许在 root 用户下运行。3)执行下面的命令可以再次设置桌面版系统使用orangepi用户自动登录orangepi@orangepi:~$ sudo desktop_login.sh orangepi3.4.5. Linux 桌面版系统禁用桌面的方法1) 首先在命令行中输入下面的命令,请记得加 sudo 权限orangepi@orangepi:~$ sudo systemctl disable lightdm.service2) 然后重启 Linux 系统就会发现不会显示桌面了orangepi@orangepi:~$ sudo reboot3)重新打开桌面的命令如下所示,请记得加sudo权限orangepi@orangepi:~$ sudo systemctl start lightdm.serviceorangepi@orangepi:~$ sudo systemctl enable lightdm.service3.5. 板载 LED 灯测试说明1)开发板上有两个LED灯,一个绿灯,一个红灯,系统启动时LED灯默认显示情况如下所示:绿灯红灯 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn47www.xunlong.tvu-boot 启动阶段灭亮内核启动到进入系统闪烁灭GPIO 口PC13PC12开发板上的两个LED灯都是通过软件来控制的。当拿到开发板后,您可能会发现开发板上就算没有插入烧录有系统的TF卡,给开发板接上电源后,这两个LED灯也会亮,这是因为开发板上的16MB SPI Flash出厂默认会烧录一个微型的linux系统,此系统在u-boot启动阶段会点亮红灯,进入内核后会关闭红灯,设置绿灯闪烁。如果SPI Flash中的linux系统被清空了,那么不插入烧录有系统的TF卡,接通电源后,开发板上的两个LED灯就不会亮了。2)设置绿灯亮灭和闪烁的方法如下所示:注意,下面的操作请在 root 用户下进行。a. 首先进入绿灯的设置目录root@orangepi:~# cd /sys/class/leds/green_ledb.设置绿灯停止闪烁的命令如下root@orangepi:/sys/class/leds/green_led# echo none > triggerc. 设置绿灯常亮的命令如下root@orangepi:/sys/class/leds/green_led# echo default-on > triggerd. 设置绿灯闪烁的命令如下root@orangepi:/sys/class/leds/green_led# echo heartbeat > trigger3)设置红灯亮灭和闪烁的方法如下所示:注意,下面的操作请在 root 用户下进行。a. 首先进入红灯的设置目录root@orangepi:~# cd /sys/class/leds/red_ledb.设置红灯常亮的命令如下root@orangepi:/sys/class/leds/red_led# echo default-on > triggerc. 设置红灯闪烁的命令如下root@orangepi:/sys/class/leds/red_led# echo heartbeat > triggerd. 设置红灯停止闪烁的命令如下root@orangepi:/sys/class/leds/red_led# echo none > trigger range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn48www.xunlong.tv4)如果开机后不需要LED灯闪烁,可以使用下面的方法来关闭绿灯闪烁a.首先运行下orangepi-config,普通用户记得加sudo权限orangepi@orangepi:~$ sudo orangepi-configb. 然后选择 Systemc. 然后选择 Hardwared. 然 后 使 用 键 盘 的 方 向 键 定 位 到 下 图 所 示 的 位 置 , 再 使 用 空 格 选 中disable-ledse. 然后选择<Save>保存f. 然后选择<Back> range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn49www.xunlong.tvg.然后选择<Reboot>重启系统使配置生效h.重启后进入系统就可以看到开发板上的两个LED灯都不会亮了3.6.TF卡中linux系统rootfs分区容量操作说明3.6.1. 第一次启动会自动扩容 TF 卡中 rootfs 分区的容量1) 将开发板的 Linux 镜像烧录到 TF 卡中后,可以在 Ubuntu 电脑中查看下 TF 卡容量的使用情况,步骤如下所示:注意,这一步不操作是不影响开发板的 Linux 系统自动扩容的。这里只是想说明 TF 卡烧录完 Linux 镜像后,怎么查看 TF 卡容量的方法。a. 首先在 Ubuntu 电脑中安装下 gparted 这个软件test@test:~$ sudo apt install -y gpartedb. 然后打开 gpartedtest@test:~$ sudo gpartedc.打开gparted后在右上角可以选择TF卡,然后就可以看到TF卡容量的使用情况 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn50www.xunlong.tvd.上图显示的是烧录完Linux桌面版系统后TF卡的情况,可以看到,虽然TF卡的总容量是16GB的(在GParted中显示为14.84GiB),但是rootfs分区(/dev/sdc1)实际只分配了4.05GiB,还剩下10.79GiB未分配2)然后可以将烧录好Linux系统的TF卡插入开发板中启动,TF卡第一次启动linux系统时会通过orangepi-resize-filesystem.service这个systemd服务来调用orangepi-resize-filesystem脚本自动进行rootfs分区的扩容,所以无需再手动扩容3)登录系统后可以通过df -h命令来查看rootfs的大小,如果和TF卡的实际容量一致,说明自动扩容运行正确orangepi@orangepi:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 430M 0 430M 0% /devtmpfs 100M 5.6M 95M 6% /run/dev/mmcblk0p1 15G 915M 14G 7% /tmpfs 500M 0 500M 0% /dev/shm4) 第一次启动完 Linux 系统后,我们还可以将 TF 卡从开发板中取下来重新插入Ubuntu 电脑,然后再次使用 gparted 查看下 TF 卡的情况,如下图所示,rootfs 分区(/dev/sdc1)的容量已经扩展到了 14.69GiB 了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn51www.xunlong.tv需要注意的是,linux系统只有一个ext4格式的分区,没有使用单独的BOOT分区来存放内核镜像等文件,所以也就不存在BOOT分区扩容的问题。3.6.2. 禁止自动扩容 TF 卡中 rootfs 分区容量的方法1) 首先在 Ubuntu 电脑(Windows 不行)中将开发板的 linux 镜像烧录到 TF 卡中,然后重新拔插下 TF 卡2) 然后 Ubuntu 电脑一般会自动挂载 TF 卡的分区,如果自动挂载正常,使用 ls 命令可以看到下面的输出test@test:~$ ls /media/test/opi_root/bin boot dev etc home lib lost+found media mnt opt proc root runsbin selinux srv sys tmp usr var3)然后在Ubuntu电脑中将当前用户切换成root用户test@test:~$ sudo -i[sudo] test 的密码:root@test:~#4) 然后进入 TF 卡中的 linux 系统的 root 目录下新建一个名为.no_rootfs_resize 的文件root@test:~# cd /media/test/opi_root/root@test:/media/test/opi_root/# cd rootroot@test:/media/test/opi_root/root# touch .no_rootfs_resizeroot@test:/media/test/opi_root/root# ls .no_rootfs*.no_rootfs_resize range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn52www.xunlong.tv5)然后就可以卸载TF卡,再拔出TF卡插到开发板中启动,linux系统启动时,当检测到/root目录下有.no_rootfs_resize这个文件就不会再自动扩容rootfs了6)禁止rootfs自动扩容后进入Linux系统可以看到rootfs分区的总容量只有4GB(这里测试的是桌面版本的镜像),远小于TF卡的实际容量,说明禁止rootfs自动扩容成功orangepi@orangepi:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 925M 0 925M 0% /devtmpfs 199M 3.2M 196M 2% /run/dev/mmcblk0p1 4.0G 3.2G 686M 83% /7) 如果需要重新扩容 TF 卡中 rootfs 分区的容量,只需要执行下面的命令,然后重新启动开发板的 Linux 系统即可注意,请在 root 用户下执行下面的命令。root@orangepi:~# rm /root/.no_rootfs_resizeroot@orangepi:~# systemctl enable orangepi-resize-filesystem.serviceroot@orangepi:~# sudo reboot重启后再次进入开发板的 Linux 系统就可以看到 rootfs 分区已经扩展为 TF 卡的实际容量了root@orangepi:~# df -hFilesystem Size Used Avail Use% Mounted onudev 925M 0 925M 0% /devtmpfs 199M 3.2M 196M 2% /run/dev/mmcblk0p1 15G 3.2G 12G 23% /3.6.3. 手动扩容 TF 卡中 rootfs 分区容量的方法如果 TF 卡的总容量很大,比如为 128GB,不想 Linux 系统 rootfs 分区使用 TF卡所有的容量,只想分配一部分容量,比如 16GB,给 Linux 系统使用,然后 TF卡的剩余容量就可以用作其他用途。那么可以使用此小节介绍的内容来手动扩容TF 中 rootfs 分区的容量。1) 首先在 Ubuntu 电脑(Windows 不行)中将开发板的 linux 镜像烧录到 TF 卡中, range Pi 用户手册 深圳市迅龙软件有限公司版权所有3.34.1.Debian Bullseye系统........................................................................2163.34.2.Debian Bookworm系统....................................................................2173.34.3.Ubuntu Focal系统............................................................................ 2193.34.4.Ubuntu Jammy系统..........................................................................2213.35. 上传文件到开发板 Linux 系统中的方法....................................................................2233.35.1. 在 Ubuntu PC 中上传文件到开发板 Linux 系统中的方法 ............2233.35.2. 在 Windows PC 中上传文件到开发板 Linux 系统中的方法 ........ 2263.36. 开关机 logo 使用说明................................................................................................. 2303.37. 关机和重启开发板的方法 .......................................................................................... 2314. Linux SDK——orangepi-build 使用说明 ..................................................................2324.1. 编译系统需求 ................................................................................................................ 2324.2. 获取 linux sdk 的源码....................................................................................................2344.2.1. 从github下载orangepi-build............................................................ 2344.2.2. 下载交叉编译工具链......................................................................... 2354.2.3.orangepi-build完整目录结构说明.....................................................2374.3. 编译 u-boot .................................................................................................................... 2384.4. 编译 linux 内核.............................................................................................................. 2414.5. 编译 rootfs ......................................................................................................................2444.6. 编译 linux 镜像.............................................................................................................. 2475. Orange Pi OS Arch 系统的使用说明 ......................................................................... 2525.1. Orange Pi OS Arch 系统功能适配情况 ..........................................................................2525.2. Orange Pi OS Arch 系统用户向导使用说明..................................................................2525.3. 设置 DT overlays 的方法 ................................................................................................2585.4. 安装软件的方法 ............................................................................................................ 2596. Android 12 TV 系统使用说明 ....................................................................................2606.1. 已支持的 Android 版本 ................................................................................................. 2606.2. Android 12 TV 功能适配情况........................................................................................ 2606.3. 板载 LED 灯显示说明.................................................................................................... 2606.4. Android 返回上一级界面的方法.................................................................................. 261 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn53www.xunlong.tv然后重新拔插下TF卡2)然后Ubuntu电脑一般会自动挂载TF卡的分区,如果自动挂载正常,使用ls命令可以看到下面的输出test@test:~$ ls /media/test/opi_root/bin boot dev etc home lib lost+found media mnt opt proc root runsbin selinux srv sys tmp usr var3) 然后在 Ubuntu 电脑中将当前用户切换成 root 用户test@test:~$ sudo -i[sudo] test 的密码:root@test:~#4) 然后进入 TF 卡中的 linux 系统的 root 目录下新建一个名为.no_rootfs_resize 的文件root@test:~# cd /media/test/opi_root/root@test:/media/test/opi_root/# cd rootroot@test:/media/test/opi_root/root# touch .no_rootfs_resizeroot@test:/media/test/opi_root/root# ls .no_rootfs*.no_rootfs_resize5)然后在Ubuntu电脑中安装下gparted这个软件test@test:~$ sudo apt install -y gparted6) 然后打开 gpartedtest@test:~$ sudo gparted7) 打开 gparted 后在右上角可以选择 TF 卡,然后就可以看到 TF 卡容量的使用情况。下图显示的是烧录完 Linux 桌面版系统后 TF 卡的情况,可以看到,虽然 TF 卡的总容量是 16GB 的(在 GParted 中显示为 14.84GiB),但是 rootfs 分区(/dev/sdc1)实际只分配了 4.05GiB,还剩下 10.79GiB 未分配 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn54www.xunlong.tv8)然后选中rootfs分区(/dev/sdc1)9)再点击鼠标右键就可以看到下图所示的操作选项,如果TF卡已经挂载了,首先需要Umount掉TF卡的rootfs分区 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn55www.xunlong.tv10)然后再次选中rootfs分区,再点击鼠标右键,然后选择Resize/Move开始扩容rootfs分区的大小11) Resize/Move选项打开后会弹出下面的设置界面12)然后可以直接拖动下图所示的位置来设置容量的大小,也可以通过设置Newsize(MiB)中的数字来设置rootfs分区的大小 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn56www.xunlong.tv13)设置好容量后,再点击右下角的Resize/Move即可14)最后确认无误后,再点击下图所示的绿色√15)然后选择Apply,就会正式开始扩容rootfs分区的容量 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn57www.xunlong.tv16)扩容完成后点击Close关闭即可17)然后就可以把TF卡拔下来,再插到开发板中启动,进入开发板的Linux系统中后如果使用df -h命令可以看到rootfs分区的大小和前面设置的大小一致的话就说明手动扩容成功root@orangepi:~# df -hFilesystem Size Used Avail Use% Mounted onudev 925M 0 925M 0% /devtmpfs 199M 3.2M 196M 2% /run/dev/mmcblk0p1 7.7G 3.2G 4.4G 42% /3.6.4. 缩小 TF 卡中 rootfs 分区容量的方法在 TF 卡的 Linux 系统中配置好应用程序或者其他的开发环境后,如果想备份下 TF 卡中的 Linux 系统,可以使用此小节的方法先缩小下 rootfs 分区的大小,然后再开始备份。1)首先在Ubuntu电脑(Windows不行)中插入想要操作的TF卡2)然后在Ubuntu电脑中安装下gparted这个软件test@test:~$ sudo apt install -y gparted range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn58www.xunlong.tv3)然后打开gpartedtest@test:~$ sudo gparted4) 打开 gparted 后在右上角可以选择 TF 卡,然后就可以看到 TF 卡容量的使用情况5) 然后选中 rootfs 分区(/dev/sdc1)6) 再点击鼠标右键就可以看到下图所示的操作选项,如果 TF 卡已经挂载了,首先需要 Umount 掉 TF 卡的 rootfs 分区 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn59www.xunlong.tv7)然后再次选中rootfs分区,再点击鼠标右键,然后选择Resize/Move开始设置rootfs分区的大小8) Resize/Move选项打开后会弹出下面的设置界面 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn60www.xunlong.tv9)然后可以直接拖动下图所示的位置来设置容量的大小,也可以通过设置Newsieze(MiB)中的数字来设置rootfs分区的大小10)设置好容量后,再点击右下角的Resize/Move即可11)最后确认无误后,再点击下图所示的绿色√ range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn61www.xunlong.tv12)然后选择Apply,就会正式开始扩容rootfs分区的容量13)扩容完成后点击Close关闭即可14)然后就可以把TF卡拔下来,再插到开发板中启动,进入开发板的Linux系统中后如果使用df -h命令可以看到rootfs分区的大小和前面设置的大小一致的话就说明缩小容量成功root@orangepi:~# df -hFilesystem Size Used Avail Use% Mounted onudev 925M 0 925M 0% /devtmpfs 199M 3.2M 196M 2% /run range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn62www.xunlong.tv/dev/mmcblk0p1 7.7G 3.2G 4.4G 42% /3.7. 网络连接测试3.7.1. 以太网口测试1)首先将网线的一端插入开发板的以太网接口,网线的另一端接入路由器,并确保网络是畅通的2)系统启动后会通过DHCP自动给以太网卡分配IP地址,不需要其他任何配置3)在开发板的Linux系统中查看IP地址的命令如下所示:下面的命令请不要照抄,比如debian12中的网络节点名为end0,下面的命令就需要修改为ip a s end0。orangepi@orangepi:~$ ip a s eth03: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast stateUP group default qlen 1000link/ether 5e:ac:14:a5:93:b3 brd ff:ff:ff:ff:ff:ffinet 192.168.1.16/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0valid_lft 259174sec preferred_lft 259174secinet6 240e:3b7:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamicnoprefixroutevalid_lft 259176sec preferred_lft 172776secinet6 fe80::957d:bbbd:4928:3604/64 scope link noprefixroutevalid_lft forever preferred_lft forever开发板启动后查看IP地址有三种方法:1.接HDMI显示器,然后登录系统使用ip a s eth0命令查看IP地址2.在调试串口终端输入ip a s eth0命令来查看IP地址3.如果没有调试串口,也没有HDMI显示器,还可以通过路由器的管理界面来查看开发板网口的IP地址。不过这种方法经常有人会无法正常看到开发板的IP地址。如果看不到,调试方法如下所示:A)首先检查Linux系统是否已经正常启动,如果开发板的绿灯闪烁了,一般是正常启动了,如果只亮红灯,或者红灯绿灯都没亮,说明系统都没正常启动;B)检查网线有没有插紧,或者换根网线试下; range Pi 用户手册 深圳市迅龙软件有限公司版权所有6.5. ADB 的使用方法............................................................................................................ 2616.5.1. 使用网络连接 adb 调试 ..................................................................... 2616.5.2. 使用数据线连接 adb 调试 ................................................................. 2626.6. 查看设置 HDMI 显示分辨率的方法.............................................................................2636.7. HDMI 转 VGA 显示测试 .................................................................................................2656.8. WI-FI 的连接方法...........................................................................................................2666.9. WI-FI hotspot 的使用方法.............................................................................................2686.10. 查看以太网口 IP 地址的方法..................................................................................... 2696.11. 蓝牙的连接方法.......................................................................................................... 2706.12. USB 摄像头使用方法...................................................................................................2736.13. Android 系统 ROOT 说明 .............................................................................................2746.14. 使用 MiracastReceiver 将手机屏幕投屏到开发板的方法 ........................................ 2766.15. 26pin 接口 GPIO、UART、SPI 测试.........................................................................2796.15.1.26pin的GPIO口测试方法..............................................................2796.15.2.26pin的UART测试方法................................................................ 2826.15.3.26pin的SPI测试方法..................................................................... 2846.15.4.26pin的I2C测试方法.....................................................................2877. Android 12源码的编译方法......................................................................................2917.1. 下载 Android 12 的源码................................................................................................ 2917.2. 编译 Android 12 的源码................................................................................................ 2928. 附录 ............................................................................................................................ 2958.1. 用户手册更新历史 ........................................................................................................ 2958.2. 镜像更新历史 ................................................................................................................ 295 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn63www.xunlong.tvC)换个路由器试下(路由器的问题有遇到过很多,比如路由器无法正常分配IP地址,或者已正常分配IP地址但在路由器中看不到);D)如果没有路由器可换就只能连接HDMI显示器或者使用调试串口来查看IP地址。另外需要注意的是开发板DHCP自动分配IP地址是不需要任何设置的。4) 测试网络连通性的命令如下,ping 命令可以通过 Ctrl+C 快捷键来中断运行下面的命令请不要照抄,比如 debian12 中的网络节点名为 end0,下面的命令就需要修改为 ping www.baidu.com -I end0。orangepi@orangepi:~$ ping www.baidu.com -I eth0PING www.a.shifen.com (14.215.177.38) from 192.168.1.12 eth0: 56(84) bytes of data.64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=56 time=6.74 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=56 time=6.80 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=56 time=6.26 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=56 time=7.27 ms^C--- www.a.shifen.com ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3002msrtt min/avg/max/mdev = 6.260/6.770/7.275/0.373 ms3.7.2. WIFI 连接测试请不要通过修改/etc/network/interfaces 配置文件的方式来连接 WIFI,通过这种方式连接 WIFI 网络使用会有问题。3.7.2.1. 服务器版镜像通过命令连接 WIFI当开发板没有连接以太网,没有连接 HDMI 显示器,只连接了串口时,推荐使用此小节演示的命令来连接 WIFI 网络。因为 nmtui 在某些串口软件(如 minicom)中只能显示字符,无法正常显示图形界面。当然,如果开发板连接了以太网或者HDMI 显示屏,也可以使用此小节演示的命令来连接 WIFI 网络的。1) 先登录 linux 系统,有下面三种方式a. 如果开发板连接了网线,可以通过 ssh 远程登录 linux 系统 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn64www.xunlong.tva.如果开发板连接好了调试串口,可以使用串口终端登录linux系统b.如果连接了开发板到HDMI显示器,可以通过HDMI显示的终端登录到linux系统2)首先使用nmcli dev wifi命令扫描周围的WIFI热点orangepi@orangepi:~$ nmcli dev wifi3) 然后使用 nmcli 命令连接扫描到的 WIFI 热点,其中:a. wifi_name 需要换成想连接的 WIFI 热点的名字b. wifi_passwd 需要换成想连接的 WIFI 热点的密码orangepi@orangepi:~$ sudo nmcli dev wifi connect wifi_name password wifi_passwdDevice 'wlan0' successfully activated with 'cf937f88-ca1e-4411-bb50-61f402eef293'.4) 通过 ip addr show wlan0 命令可以查看 wifi 的 IP 地址orangepi@orangepi:~$ ip a s wlan011: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_faststate UP group default qlen 1000link/ether 23:8c:d6:ae:76:bb brd ff:ff:ff:ff:ff:ffinet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0valid_lft 259192sec preferred_lft 259192secinet6 240e:3b7:3240:c3a0:c401:a445:5002:ccdd/64 scope global dynamicnoprefixroutevalid_lft 259192sec preferred_lft 172792secinet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroute range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn65www.xunlong.tvvalid_lft forever preferred_lft forever5) 使用 ping 命令可以测试 wifi 网络的连通性,ping 命令可以通过 Ctrl+C 快捷键来中断运行orangepi@orangepi:~$ ping www.orangepi.org -I wlan0PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes ofdata.64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms^C--- www.orangepi.org ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4006msrtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms3.7.2.2. 服务器版镜像通过图形化方式连接 WIFI1) 先登录 linux 系统,有下面三种方式a. 如果开发板连接了网线,可以通过 ssh 远程登录 linux 系统b. 如果开发板连接好了调试串口,可以使用串口终端登录 linux 系统(串口软件请使用 MobaXterm,使用 minicom 无法显示图形界面)c. 如果连接了开发板到HDMI显示器,可以通过 HDMI显示的终端登录到 linux系统2) 然后在命令行中输入 nmtui 命令打开 wifi 连接的界面orangepi@orangepi:~$ sudo nmtui3) 输入 nmtui 命令打开的界面如下所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn66www.xunlong.tv4)选择Activate a connect后回车5)然后就能看到所有搜索到的WIFI热点6)选择想要连接的WIFI热点后再使用Tab键将光标定位到Activate后回车 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn67www.xunlong.tv7)然后会弹出输入密码的对话框,在Pssword内输入对应的密码然后回车就会开始连接WIFI8) WIFI连接成功后会在已连接的WIFI名称前显示一个“*”9)通过ip a s wlan0命令可以查看wifi的IP地址 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn68www.xunlong.tvorangepi@orangepi:~$ ip a s wlan011: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_faststate UP group default qlen 1000link/ether 24:8c:d3:aa:76:bb brd ff:ff:ff:ff:ff:ffinet 192.168.1.11/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0valid_lft 259069sec preferred_lft 259069secinet6 240e:3b7:3240:c4a0:c401:a445:5002:ccdd/64 scope global dynamicnoprefixroutevalid_lft 259071sec preferred_lft 172671secinet6 fe80::42f1:6019:a80e:4c31/64 scope link noprefixroutevalid_lft forever preferred_lft forever10) 使用 ping 命令可以测试 wifi 网络的连通性,ping 命令可以通过 Ctrl+C 快捷键来中断运行orangepi@orangepi:~$ ping www.orangepi.org -I wlan0PING www.orangepi.org (182.92.236.130) from 192.168.1.49 wlan0: 56(84) bytes ofdata.64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=1 ttl=52 time=43.5 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=2 ttl=52 time=41.3 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=3 ttl=52 time=44.9 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=4 ttl=52 time=45.6 ms64 bytes from 182.92.236.130 (182.92.236.130): icmp_seq=5 ttl=52 time=48.8 ms^C--- www.orangepi.org ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4006msrtt min/avg/max/mdev = 41.321/44.864/48.834/2.484 ms3.7.2.3. 桌面版镜像的测试方法1) 点击桌面右上角的网络配置图标(测试 WIFI 时请不要连接网线) range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn69www.xunlong.tv2)在弹出的下拉框中点击More networks可以看到所有扫描到的WIFI热点,然后选择想要连接的WIFI热点3)然后输入WIFI热点的密码,再点击Connect就会开始连接WIFI4)连接好WIFI后,可以打开浏览器查看是否能上网,浏览器的入口如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn70www.xunlong.tv5)打开浏览器后如果能打开其他网页说明WIFI连接正常3.7.3. 通过 create_ap 创建 WIFI 热点的方法create_ap是一个帮助快速创建Linux上的WIFI热点的脚本,并且支持bridge和NAT模式,能够自动结合hostapd, dnsmasq和iptables完成WIFI热点的设置,避免了用户进行复杂的配置,github地址如下:https://github.com/oblique/create_apOPi发布的Linux镜像已经预装了create_ap脚本,可以通过create_ap命令来创建WIFI热点,create_ap的基本命令格式如下所示: range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn71www.xunlong.tvcreate_ap [options] <wifi-interface> [<interface-with-internet>][<access-point-name> [<passphrase>]]* options:可以通过该参数指定加密方式、WIFI热点的频段、频宽模式、网络共享方式等,具体可以通过create_ap -h获取到有哪些option* wifi-interface:无线网卡的名称* interface-with-internet:可以联网的网卡名称,一般是eth0* access-point-name:热点名称* passphrase:热点的密码3.7.3.1. create_ap 以 NAT 模式创建 WIFI 热点的方法1)输入下面的命令以 NAT 模式创建名称为 orangepi、密码为 orangepi 的 WIFI 热点注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --no-virt2)如果有下面的信息输出,说明 WIFI 热点创建成功orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --no-virtConfig dir: /tmp/create_ap.wlan0.conf.TQkJtsz1PID: 26139Network Manager found, set wlan0 as unmanaged device... DONESharing Internet using method: nathostapd command-line interface: hostapd_cli -p/tmp/create_ap.wlan0.conf.TQkJtsz1/hostapd_ctrlwlan0: interface state UNINITIALIZED->ENABLEDwlan0: AP-ENABLEDwlan0: STA ce:bd:9a:dd:a5:86 IEEE 802.11: associatedwlan0: AP-STA-CONNECTED ce:bd:9a:dd:a5:86wlan0: STA ce:bd:9a:dd:a5:86 RADIUS: starting accounting sessionD4FBF7E5C604F169wlan0: STA ce:bd:9a:dd:a5:86 WPA: pairwise key handshake completed (RSN)wlan0: EAPOL-4WAY-HS-COMPLETED ce:bd:9a:dd:a5:86 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn72www.xunlong.tv3)此时拿出手机,在搜索到的WIFI列表中就能找到开发板创建的名为orangepi的WIFI热点,然后可以点击orangepi连接热点,密码就是上面设置的orangepi4)连接成功后的显示如下图所示5)在NAT模式下,连接到开发板热点的无线设备是向开发板的DHCP服务请求IP地址的,所以会有两个不同的网段,如这里开发板的IP是192.168.1.X注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ sudo ifconfig eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::938f:8776:5783:afa2 prefixlen 64 scopeid 0x20<link>ether 4a:a0:c8:25:42:82 txqueuelen 1000 (Ethernet)RX packets 25370 bytes 2709590 (2.7 MB)RX errors 0 dropped 50 overruns 0 frame 0TX packets 3798 bytes 1519493 (1.5 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 83而开发板的DHCP服务默认会给接入热点的设备分配192.168.12.0/24的IP地址,这时点击已经连接的WIFI热点orangepi,然后就可以看到手机的IP地址是192.168.12.X。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn1www.xunlong.tv1. Orange Pi Zero 3 的基本特性1.1. 什么是Orange Pi Zero 3香橙派是一款开源的单板卡片电脑,新一代的arm64开发板,它可以运行AndroidTV 12、Ubuntu 和 Debian 等操作系统。香橙派开发板(Orange Pi Zero 3)使用全志H618 系统级芯片,同时拥有 1GB 或 1.5GB 或 2GB 或 4GB LPDDR4 内存。1.2. Orange Pi Zero 3 的用途我们可以用它实现: 一台小型的 Linux 桌面计算机 一台小型的 Linux 网络服务器 安装 Klipper 上位机控制 3D 打印机 Android TV 电视盒子当然还有其他更多的功能,依托强大的生态系统以及各式各样的扩展配件,Orange Pi 可以帮助用户轻松实现从创意到原型再到批量生产的交付,是创客、梦想家、业余爱好者的理想创意平台。1.3. Orange Pi Zero 3 是为谁设计的Orange Pi 开发板不仅仅是一款消费品,同时也是给任何想用技术来进行创作创新的人设计的。它是一款简单、有趣、实用的工具,你可以用它去打造你身边的世界。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn73www.xunlong.tv6)如果想要为接入的设备指定不同的网段,可以通过-g参数指定,如通过-g参数指定接入点AP的网段为192.168.2.1注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi -g 192.168.2.1 --no-virt此时通过手机连接到热点后,点击已经连接的WIFI热点orangepi,然后可以看到手机的IP地址是192.168.2.X。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn74www.xunlong.tv7)在不指定--freq-band参数的情况下,默认创建的热点是2.4G频段的,如果想要创建5G频段的热点可以通过--freq-band 5参数指定,具体命令如下注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --freq-band 5 --no-virt8)如果需要隐藏SSID,可以指定--hidden参数,具体命令如下注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ sudo create_ap -m nat wlan0 eth0 orangepi orangepi --hidden --no-virt此时手机是搜索不到WIFI热点的,需要手动指定WIFI热点名称,并输入密码来连接WIFI热点3.7.3.2. create_ap 以 bridge 模式创建 WIFI 热点的方法1)输入下面的命令以 bridge 模式创建名称为 orangepi、密码为 orangepi 的 WIFI热点注意,下面的命令中,Debian12 需要修改 eth0 为 end0。orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --no-virt2)如果有下面的信息输出,说明 WIFI 热点创建成功orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --no-virtConfig dir: /tmp/create_ap.wlan0.conf.zAcFlYTxPID: 27707Network Manager found, set wlan0 as unmanaged device... DONE range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn75www.xunlong.tvSharing Internet using method: bridgeCreate a bridge interface... br0 created.hostapd command-line interface: hostapd_cli -p/tmp/create_ap.wlan0.conf.zAcFlYTx/hostapd_ctrlwlan0: interface state UNINITIALIZED->ENABLEDwlan0: AP-ENABLEDwlan0: STA ce:bd:9a:dd:a5:86 IEEE 802.11: associatedwlan0: AP-STA-CONNECTED ce:bd:9a:dd:a5:86wlan0: STA ce:bd:9a:dd:a5:86 RADIUS: starting accounting session937BF40E51897A7Bwlan0: STA ce:bd:9a:dd:a5:86 WPA: pairwise key handshake completed (RSN)wlan0: EAPOL-4WAY-HS-COMPLETED ce:bd:9a:dd:a5:863)此时拿出手机,在搜索到的 WIFI 列表中就能找到开发板创建的名为 orangepi的 WIFI 热点,然后可以点击 orangepi 连接热点,密码就是上面设置的 orangepi4)连接成功后的显示如下图所示5)在 bridge 模式下,连接到开发板热点的无线设备也是向主路由(开发板连接的路由器)的 DHCP 服务请求 IP 地址的,如这里开发板的 IP 是 192.168.1.Xorangepi@orangepi:~$ sudo ifconfig eth0 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn76www.xunlong.tveth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::938f:8776:5783:afa2 prefixlen 64 scopeid 0x20<link>ether 4a:a0:c8:25:42:82 txqueuelen 1000 (Ethernet)RX packets 25370 bytes 2709590 (2.7 MB)RX errors 0 dropped 50 overruns 0 frame 0TX packets 3798 bytes 1519493 (1.5 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 83而接入 WIFI 热点的设备的 IP 也是由主路由分配的,所以连接 WIFI 热点的手机和开发板处于相同的网段,这时点击已经连接的 WIFI 热点 orangepi,然后就可以看到手机的 IP 地址也是 192.168.1.X。6)在不指定--freq-band 参数的情况下,默认创建的热点是 2.4G 频段的,如果想要创建 5G 频段的热点可以通过--freq-band 5 参数指定,具体命令如下注意,下面的命令中,Debian12 需要修改 eth0 为 end0。orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --freq-band 5 --no-virt7)如果需要隐藏 SSID,可以指定--hidden 参数,具体命令如下注意,下面的命令中,Debian12 需要修改 eth0 为 end0。orangepi@orangepi:~$ sudo create_ap -m bridge wlan0 eth0 orangepi orangepi --hidden --no-virt range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn77www.xunlong.tv此时手机是搜索不到WIFI热点的,需要手动指定WIFI热点名称,并输入密码来连接WIFI热点3.7.4. 设置静态 IP 地址的方法请不要通过修改/etc/network/interfaces配置文件的方式来设置静态IP地址。3.7.4.1. 使用 nmtui 命令来设置静态 IP 地址1) 首先运行 nmtui 命令orangepi@orangepi:~$ sudo nmtui2) 然后选择 Edit a connection 并按下回车键3) 然后选择需要设置静态 IP 地址的网络接口,比如设置 Ethernet 接口的静态 IP 地址选择 Wired connection 1 就可以了 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn78www.xunlong.tv4)然后通过Tab键选择Edit并按下回车键5)然后通过Tab键将光标移动到下图所示的<Automatic>位置进行IPv4的配置6)然后回车,通过上下方向键选择Manual,然后回车确定 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn79www.xunlong.tv7)选择完后的显示如下图所示8)然后通过Tab键将光标移动到<Show> range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn80www.xunlong.tv9)然后回车,回车后会弹出下面的设置界面10)然后就可以在下图所示的位置设置IP地址(Addresses)、网关(Gateway)和DNS服务器的地址(里面还有很多其他设置选项,请自行探索),请根据自己的具体需求来设置,下图中设置的值只是一个示例 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn81www.xunlong.tv11)设置完后将光标移动到右下角的<OK>,然后回车确认12)然后点击<Back>回退到上一级选择界面13)然后选择Activate a connection,再将光标移动到<OK>,最后点击回车 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn82www.xunlong.tv14)然后选择需要设置的网络接口,比如Wired connection 1,然后将光标移动到<Deactivate>,再按下回车键禁用Wired connection 115)然后请不要移动光标,再按下回车键重新使能Wired connection 1,这样前面设置的静态IP地址就会生效了16)然后通过<Back>和Quit按钮就可以退出nmtui range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn2www.xunlong.tv1.4.Orange Pi Zero 3的硬件特性硬件特性介绍CPU全志 H618 四核 64 位 1.5GHz 高性能 Cortex-A53 处理器GPUMali G31 MP2Supports OpenGL ES 1.0/2.0/3.2、OpenCL 2.0内存1GB/1.5GB/2GB/4GB LPDDR4 (与GPU共享)板载存储TF 卡插槽、16MB SPI Flash以太网支持 10/100M/1000M 以太网WIFI+蓝牙• 20U5622芯片、支持IEEE 802.11 a/b/g/n/ac、BT5.0视频输出• Micro HDMI 2.0a• TV CVBS output, 支持 PAL/NTSC(通过 13pin 扩展板)音频输出• Micro HDMI输出• 3.5mm音频口(通过13pin扩展板)电源USB Type C 接口输入USB 2.0端口3个USB 2.0 HOST(其中两个通过13pin扩展板)26pin接头带有I2Cx1、SPIx1、UARTx1以及多个GPIO口13pin接头带有USB 2.0 HOSTx2、TV-OUT、LINE OUT、IR-RX、以及3个GPIO口调试串口UART-TX、UART-RX 以及 GNDLED 灯电源指示灯和状态指示灯红外接收支持红外遥控器(通过13pin扩展板)支持的操作系统Android12 TV、Ubuntu、Debian等外观规格介绍PCB 尺寸85mm×56mm重量30grange Pi™是深圳市迅龙软件有限公司的注册商标 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn83www.xunlong.tv17)然后通过ip a s eth0就能看到网口的IP地址已经变成前面设置的静态IP地址了注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ ip a s eth03: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast stateUP group default qlen 1000link/ether 5e:ac:14:a5:92:b3 brd ff:ff:ff:ff:ff:ffinet 192.168.1.177/24 brd 192.168.1.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 241e:3b8:3240:c3a0:e269:8305:dc08:135e/64 scope global dynamicnoprefixroutevalid_lft 259149sec preferred_lft 172749secinet6 fe80::957d:bbbe:4928:3604/64 scope link noprefixroutevalid_lft forever preferred_lft forever18)然后就可以测试网络的连通性来检查IP地址是否配置OK了,ping命令可以通过Ctrl+C快捷键来中断运行注意,下面的命令中,Debian12需要修改eth0为end0。orangepi@orangepi:~$ ping 192.168.1.177 -I eth0PING 192.168.1.47 (192.168.1.47) from 192.168.1.188 eth0: 56(84) bytes of data.64 bytes from 192.168.1.47: icmp_seq=1 ttl=64 time=0.233 ms64 bytes from 192.168.1.47: icmp_seq=2 ttl=64 time=0.263 ms64 bytes from 192.168.1.47: icmp_seq=3 ttl=64 time=0.273 ms64 bytes from 192.168.1.47: icmp_seq=4 ttl=64 time=0.269 ms range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn84www.xunlong.tv64 bytes from 192.168.1.47: icmp_seq=5 ttl=64 time=0.275 ms^C--- 192.168.1.47 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4042msrtt min/avg/max/mdev = 0.233/0.262/0.275/0.015 ms3.7.4.2. 使用 nmcli 命令来设置静态 IP 地址1)如果要设置网口的静态IP地址,请先将网线插入开发板,如果需要设置WIFI的静态IP地址,请先连接好WIFI,然后再开始设置静态IP地址2)然后通过nmcli con show命令可以查看网络设备的名字,如下所示a. orangepi为WIFI网络接口的名字(名字不一定相同)b. Wired connection 1为以太网接口的名字orangepi@orangepi:~$ nmcli con showNAME UUID TYPE DEVICEorangepi cfc4f922-ae48-46f1-84e1-2f19e9ec5e2a wifi wlan0Wired connection 1 9db058b7-7701-37b8-9411-efc2ae8bfa30 ethernet eth03) 然后输入下面的命令,其中a. "Wired connection 1" 表示设置以太网口的静态 IP 地址,如果需要设置WIFI 的静态 IP 地址,请修改为 WIFI 网络接口对应的名字(通过 nmcli conshow 命令可以获取到)b. ipv4.addresses 后面是要设置的静态 IP 地址,可以修改为自己想要设置的值c. ipv4.gateway 表示网关的地址orangepi@orangepi:~$ sudo nmcli con mod "Wired connection 1" \ipv4.addresses "192.168.1.110" \ipv4.gateway "192.168.1.1" \ipv4.dns "8.8.8.8" \ipv4.method "manual"4) 然后重启 linux 系统orangepi@orangepi:~$ sudo reboot5)然后重新进入linux系统使用ip addr show eth0命令就可以看到IP地址已经设置 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn85www.xunlong.tv为想要的值了orangepi@orangepi:~$ ip addr show eth03: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast stateUP group default qlen 1000link/ether 5e:ae:14:a5:91:b3 brd ff:ff:ff:ff:ff:ffinet 192.168.1.110/32 brd 192.168.1.110 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 240e:3b7:3240:c3a0:97de:1d01:b290:fe3a/64 scope global dynamicnoprefixroutevalid_lft 259183sec preferred_lft 172783secinet6 fe80::3312:861a:a589:d3c/64 scope link noprefixroutevalid_lft forever preferred_lft forever3.7.5. 设置 Linux 系统第一次启动自动连接网络的方法开发板有以太网口,如果想通过以太网口来远程登录开发板的 Linux 系统,只需要给以太网口插上能正常上网的网线,在启动完 Linux 系统后会自动通过 DHCP给以太网口分配一个 IP 地址,然后我们通过 HDMI 屏幕、串口或者查看路由器后台的方式就可以获取以太网口的 IP 地址,然后就能远程登录 Linux 系统。开发板也有无线 WIFI,如果想通过 WIFI 来远程登录开发板的 Linux 系统,则需要通过以太网口的 IP 地址 ssh 远程登录 Linux 系统后通过命令来连接 WIFI,或者在 HDMI 屏幕或串口中通过命令来连接 WIFI。但如果 HDMI 屏幕和串口模块都没有,虽然有网线,但无法通过路由器后台查看到开发板的 IP 地址。或者 HDMI 屏幕、串口模块和网线都没有,只有 WIFI 可以连接,则可以使用此小节介绍的方法来自动连接 WIFI 并且还能设置 WIFI 的静态 IP 地址或者自动设置以太网口的静态 IP 地址。要使用此小节的方法,首先需要准备一台Linux系统的机器。比如一台安装有Ubuntu系统的电脑或者虚拟机。为什么需要Linux系统的机器,因为TF卡中烧录的开发板Linux系统的根文件系统是ext4格式的,Linux系统的机器可以正常的挂载它,然后对其中的配置文件进行修改。如果想要在 Windows 系统中来修改,可以使用 Paragon ExtFS for Windows 这款软件,由于此软件需要付费,而目前又没有比较好用的类似的免费软件,这里就不具体演示了。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn86www.xunlong.tv另外如果尝试Paragon ExtFS for Windows这款软件使用有问题请自行解决,我们不答疑。1) 首先烧录想使用的开发板的 Linux 镜像到 TF 卡中,然后使用读卡器,将烧录好开发板 Linux 镜像的 TF 卡插入安装有 Linux 系统的机器中(比如安装有 Ubuntu 系统的电脑,下面都以 Ubuntu 电脑为例来演示)2) 当 TF 卡插入 Ubuntu 电脑后,Ubuntu 电脑一般会自动挂载 TF 卡中的 Linux 根文件系统的分区,由下面的命令可以知道,/media/test/opi_root 即为 TF 卡中的 Linux根文件系统挂载的路径test@test:~$ df -h | grep "media"/dev/sdd1 1.4G 1.2G 167M 88% /media/test/opi_roottest@test:~$ ls /media/test/opi_rootbin boot dev etc home lib lost+found media mnt opt proc root runsbin selinux srv sys tmp usr var3)然后进入TF卡中烧录的Linux系统的/boot目录中test@test:~$ cd /media/test/opi_root/boot/4) 然后将其中的 orangepi_first_run.txt.template 复制为 orangepi_first_run.txt,通过 orangepi_first_run.txt 配置文件可以设置开发板 Linux 系统第一次启动时自动连接某个 WIFI 热点,也可以设置 WIFI 或者以太网口的静态 IP 地址test@test:/media/test/opi_root/boot$ sudo cp orangepi_first_run.txt.template orangepi_first_run.txt5) 通过下面的命令可以打开 orangepi_first_run.txt 文件,然后就可以查看修改其中的内容test@test:/media/test/opi_root/boot$ sudo vim orangepi_first_run.txt6) orangepi_first_run.txt文件中的变量使用说明a. FR_general_delete_this_file_after_completion变量用来设置第一次启动完后是否删除orangepi_first_run.txt这个文件,默认为1,也就是删除,如果设置为0,第一次启动后会将orangepi_first_run.txt重命名为orangepi_first_run.txt.old,一般保持默认值即可b. FR_net_change_defaults变量用于设置是否改变默认网络设置,这个必须要设置为1,否则所有的网络设置都不会生效 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn87www.xunlong.tvc. FR_net_ethernet_enabled变量用来控制是否使能以太网口的配置,如果需要设置以太网口的静态IP地址,请设置为1d. FR_net_wifi_enabled变量用来控制是否使能WIFI的配置,如果需要设置开发板自动连接WIFI热点,则必须将其设置为1,另外请注意,如果此变量设置为1,则以太网口的设置就会失效。也就是说WIFI和以太网口不能同时设置(为什么,因为没必要...)e. FR_net_wifi_ssid变量用于设置想要连接的WIFI热点的名字f. FR_net_wifi_key变量用于设置想要连接的WIFI热点的密码g. FR_net_use_static变量用于设置是否需要设置WIFI或者以太网口的静态IP地址h. FR_net_static_ip变量用于设置静态IP的地址,请根据自己的实际情况设置i. FR_net_static_gateway变量用于设置网关,请根据自己的实际情况设置7)下面演示几个具体的设置示例:a.比如想要开发板的Linux系统第一次启动后自动连接WIFI热点,可以这样设置:a)设置FR_net_change_defaults为1b)设置FR_net_wifi_enabled为1c)设置FR_net_wifi_ssid为想要连接的WIFI热点的名字d)设置FR_net_wifi_key为想要连接的WIFI热点的密码b.比如想要开发板的Linux系统第一次启动后自动连接WIFI热点,并且设置WIFI的IP地址为特定的静态IP地址(这样当Linux系统启动后,可以直接使用设置的静态IP地址ssh远程登录开发板,无需通过路由器后台来查看开发板的IP地址),可以这样设置:a)设置FR_net_change_defaults为1b)设置FR_net_wifi_enabled为1c)设置FR_net_wifi_ssid为想要连接的WIFI热点的名字d)设置FR_net_wifi_key为想要连接的WIFI热点的密码e)设置FR_net_use_static为1f)设置FR_net_static_ip为想要的IP地址g)设置FR_net_static_gateway为对应的网关地址c.比如想要开发板的Linux系统第一次启动后自动设置以太网口的IP地址为想要的静态IP地址,可以这样设置:a)设置FR_net_change_defaults为1 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn88www.xunlong.tvb)设置FR_net_ethernet_enabled为1c)设置FR_net_use_static为1d)设置FR_net_static_ip为想要的IP地址e)设置FR_net_static_gateway为对应的网关地址8)修改完orangepi_first_run.txt文件后,就可以退出TF卡中开发板Linux系统的/boot目录,再卸载TF卡,然后就可以将TF卡插入开发板中启动了9)如果没有设置静态IP地址,则还是需要通过路由器后台来查看IP地址,如果设置了静态IP地址,则可以在电脑上ping下设置的静态IP地址,如果能ping说明系统已经正常启动,并且网络也已设置正确,然后就可以使用设置的IP地址ssh远程登录开发板的Linux系统了开发板的Linux系统第一次启动完后,orangepi_first_run.txt会被删除或者重命名为orangepi_first_run.txt.old,此时就算重新设置orangepi_first_run.txt配置文件,然后重新启动开发板的Linux系统,orangepi_first_run.txt中的配置也不会再次生效,因为此配置只在烧录完Linux系统后第一次启动才会有作用,这点请特别注意。3.8.SSH远程登录开发板Linux 系统默认都开启了 ssh 远程登录,并且允许 root 用户登录系统。ssh 登录前首先需要确保以太网或者 wifi 网络已连接,然后使用 ip addr 命令或者通过查看路由器的方式获取开发板的 IP 地址。3.8.1. Ubuntu 下 SSH 远程登录开发板1)获取开发板的IP地址2)然后就可以通过ssh命令远程登录linux系统test@test:~$ ssh orangepi@192.168.1.xxx (需要替换为开发板的 IP 地址)orangepi@192.168.1.xx's password: (在这里输入密码,默认密码为 orangepi)注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn89www.xunlong.tv如果提示拒绝连接,只要使用的是Orange Pi提供的镜像,就请不要怀疑orangepi这个密码是不是不对,而是要找其他原因。3) 成功登录系统后的显示如下图所示如果 ssh 无法正常登陆 linux 系统,首先请检查下开发板的 IP 地址是否能 ping通,如果 ping 通没问题的话,可以通过串口或者 HDMI 显示器登录 linux 系统然后在开发板上输入下面的命令后再尝试是否能连接:root@orangepi:~# reset_ssh.sh如果还不行,请重烧系统试下。3.8.2. Windows 下 SSH 远程登录开发板1) 首先获取开发板的 IP 地址2) 在 windows 下可以使用 MobaXterm 远程登录开发板,首先新建一个 ssh 会话a. 打开 Sessionb. 然后在 Session Setting 中选择 SSHc. 然后在 Remote host 中输入开发板的 IP 地址d. 然后在 Specify username 中输入 linux 系统的用户名 root 或 orangepie. 最后点击 OK 即可 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn90www.xunlong.tv3)然后会提示输入密码,默认root和orangepi用户的密码都为orangepi注意,输入密码的时候,屏幕上是不会显示输入的密码的具体内容的,请不要以为是有什么故障,输入完后直接回车即可。4) 成功登录系统后的显示如下图所示 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn91www.xunlong.tv3.9.HDMI测试3.9.1. HDMI 显示测试1) 使用 Micro HDMI 转 HDMI 线连接 Orange Pi 开发板和 HDMI 显示器2) 启动 linux 系统后如果 HDMI 显示器有图像输出说明 HDMI 接口使用正常注意,很多笔记本电脑虽然带有 HDMI 接口,但是笔记本的 HDMI 接口一般只有输出功能,并没有 HDMI in 的功能,也就是说并不能将其他设备的 HDMI 输出 range Pi 用户手册 深圳市迅龙软件有限公司版权所有www.orangepi.cn92www.xunlong.tv显示到笔记本的屏幕上。当想把开发板的HDMI接到笔记本电脑HDMI接口时,请先确认清楚您的笔记本是支持HDMI in的功能。当 HDMI 没有显示的时候,请先检查下 HDMI 线有没有插紧,确认接线没问题后,可以换一个不同的屏幕试下有没有显示。3.9.2. HDMI 转 VGA 显示测试1) 首先需要准备下面的配件a. HDMI 转 VGA 转换器b. 一根 VGA 线和一根 Micro HDMI 公转 HDMI 母转接线c. 一个支持 VGA 接口的显示器或者电视2) HDMI 转 VGA 显示测试如下所示
★★★3分
  • 贡献者:上岸
  • 售价:1
  • 时间:2024-03-23 20:03:50
  • 大小:17739 KB
  • 格式:pdf
  • 页数:303页
  • 下载:0
下载文档
编辑推荐
OrangePi_Zero3_H618_用户手册_v1.3 108
Android 概述 57
暂无广告
文档格式: pdf,价格: 1下载文档
返回顶部