【香橙派4B】6、测试串口
目录
引脚图
下载 orangepi-build
校验压缩包
解压 orangepi-build.tar.gz
同步源码
编译内核
更换linux-rk3399-legacy.config文件
运行 build.sh
选择 Kernel package
选择开发板的型号(orangepi4)
选择"< Exit >"
关闭内核源码的更新功能
更改内核源码
禁用 spi1
打开 uart4
重装开发板内核
上传新的内核
卸载旧的 Linux 内核
安装新的 Linux 内核
重启开发板
更换rk3399-orangepi-4.dtb文件
修改测试程序
编译测试程序
运行测试程序
引脚图
OragnePi 4B 的 SPI 和 UART4 复用相同的引脚,在 dts 中默认打开了 40pin 中的 SPI1,关闭了 UART4 控制器,如果需要使用 UART4,首先需要在内核的 dts 中打开UART4 的配置并关闭 SPI1 的配置。
下载 orangepi-build
orangepi-build有几个G,不推荐从GitHub下载,推荐从百度云下载。
链接:https://pan.baidu.com/s/1vWQmCmSYdH7iCDFyKpJtVw
提取码:zero
百度云盘的 orangepi-build 文件夹下有两个文件:
- orangepi-build.tar.gz 为 orangepi-build 源码的压缩包
- orangepi-build.tar.gz.md5sum 为 orangepi-build 源码的压缩包的 MD5 校验和文件
下载完成后,将这两个文件拉进虚拟机或者Linux系统的PC机。
注意:Linux的版本需为Ubuntu18
校验压缩包
md5sum -c orangepi-build.tar.gz.md5sum
出现“成功”,说明源码没有问题。
解压 orangepi-build.tar.gz
test@test:~$ tar -zxf orangepi-build.tar.gz
test@test:~$ cd orangepi-build/
test@test:~/orangepi-build$ ls
tar -zxf orangepi-build.tar.gz
cd orangepi-build/
ls
同步源码
确保源码为最新的
//test@test:~/orangepi-build$ git pull
git pull
编译内核
注意:须使用客服给的文件才能编译成功
更换linux-rk3399-legacy.config文件
更换为客服给的linux-rk3399-legacy.config文件
运行 build.sh
//test@test:~/orangepi-build$ sudo ./build.sh
sudo ./build.sh
选择 Kernel package
选择开发板的型号(orangepi4)
选择"< Exit >"
关闭内核源码的更新功能
orangepi-bulid 编译系统编译 linux 内核源码时首先会将 linux 内核源码和 github 服务器的 linux 内核源码进行同步,所以如果想修改 linux 内核的源码,首先需要关闭源码的更新功能(需要完整编译过一次 linux 内核源码后才能关闭这个功能,否则会提示找不到linux 内核的源码),否则所作的修改都会被还原。
设置 userpatches/config-default.conf 中的 IGNORE_UPDATES 变量为“yes”
//test@test:~/orangepi-build$ vim userpatches/config-default.conf
vim userpatches/config-default.conf
更改内核源码
test@test:~# cd orangepi-build
test@test:~# vim kernel/orange-pi-4.4-rockchip64/arch/arm64/boot/dts/rockchip/rk3399-orangepi-common.dtsi
cd orangepi-build
vim kernel/orange-pi-4.4-rockchip64/arch/arm64/boot/dts/rockchip/rk3399-orangepi-common.dtsi
禁用 spi1
&spi1 {
status = "okay"; //将 okay 改为 disabled
打开 uart4
&uart4 {
status = "disabled"; //将 disabled 改为 okay
再次编译内核,编译完成后的内核版本不一定会一样。
重装开发板内核
启动开发板,进入root模式
上传新的内核
test@test:~/orangepi-build$ cd output/debs
test@test:~/orangepi-build/output/debs$ scp linux-image-legacy-rk3399_2.1.0_arm64.deb root@192.168.xx.xx:/root
cd output/debs
scp linux-image-legacy-rk3399_2.1.0_arm64.deb root@192.168.xx.xx:/root
卸载旧的 Linux 内核
//root@orangepi:~# apt purge -y linux-image-legacy-rk3399
apt purge -y linux-image-legacy-rk3399
安装新的 Linux 内核
//root@orangepi:~# dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb
dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb
重启开发板
更换rk3399-orangepi-4.dtb文件
仍然是需要使用客服给的文件
- 进入开发板的/boot/dtb/rockchip目录
- 更换rk3399-orangepi-4.dtb文件
- 重启开发板
修改测试程序
//root@orangepi4:~/wiringOP/examples# vim serialTest.c
vim serialTest.c
编译测试程序
//root@orangepi4:~/wiringOP/examples# make serialTest
make serialTest
运行测试程序
将19,21号引脚进行短接
//root@orangepi4:~/wiringOP/examples# ./serialTest
./serialTest
出现下面的效果,即启用串口成功