目录
更换linux-rk3399-legacy.config文件

OragnePi 4B 的 SPI 和 UART4 复用相同的引脚,在 dts 中默认打开了 40pin 中的 SPI1,关闭了 UART4 控制器,如果需要使用 UART4,首先需要在内核的 dts 中打开UART4 的配置并关闭 SPI1 的配置。
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
出现“成功”,说明源码没有问题。

- 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文件
- //test@test:~/orangepi-build$ sudo ./build.sh
- sudo ./build.sh



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 {
- status = "okay"; //将 okay 改为 disabled
- &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
- //root@orangepi:~# apt purge -y linux-image-legacy-rk3399
- apt purge -y linux-image-legacy-rk3399
- //root@orangepi:~# dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb
- dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb
仍然是需要使用客服给的文件

- 进入开发板的/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
出现下面的效果,即启用串口成功
