东湖之滨 发表于 2025-4-10 13:10:26

RK3566-移植5.10内核&Ubuntu22.04

说明

        记录了本人利用泰山派(RK3566)作为平台并且成功移植5.10.160版本kernel和ubuntu22.04,并且成功配置&毗连网络的完备过程。
本文章所用ubuntu下载地点:ubuntu-cdimage-ubuntu-base-releases-22.04-release安装包下载_开源镜像站-阿里云
本文章所用内核下载地点:
Rockchip Kernel - Rockchip open source Document
文件体系

配置Ubuntu

解压文件体系(ubuntu22.04)
root@ubuntu:/home/zq/Desktop# mkdir ubuntu
root@ubuntu:/home/zq/Desktop# mv ubuntu-base-22.04-base-arm64.tar.gzubuntu
root@ubuntu:/home/zq/Desktop# cd ubuntu/
root@ubuntu:/home/zq/Desktop/ubuntu# tar -xzvf ubuntu-base-22.04-base-arm64.tar.gz cd 到kernel目录,复制WIFI固件到ubuntu
root@ubuntu:/home/zq/Desktop/ubuntu# cp -p ../external/rkwifibt/firmware/broadcom/all/wifi/ lib/firmware/ 查看固件 
root@ubuntu:/home/zq/Desktop/Release/kernel# ls lib/firmware/
clm_bcm43752a2_ag.blob       fw_bcm43455c0_ag.bin         nvram_ap6212a_ap.txtnvram_AP6493.txt
clm_bcm43752a2_pcie_ag.blobfw_bcm43455c0_ag_mfg.bin       nvram_ap6212a_cy.txtnvram_awnb108.txt
fw_awnb108_ap.bin            fw_bcm43456c5_ag.bin         nvram_ap6212a.txt   nvram_azw256.txt
fw_awnb108.bin               fw_bcm43456c5_ag_mfg.bin       nvram_ap6212.txt      nvram_azw372.txt
fw_bcm40181a2.bin            fw_bcm4354a1_ag.bin            nvram_ap6233f.txt   nvram_B23.txt
fw_bcm40181a2_mfg.bin      fw_bcm4354a1_ag_mfg.bin      nvram_AP6234.txt      nvram_cyw43438.txt
fw_bcm40183b2_ag.bin         fw_bcm4356a2_ag.bin            nvram_ap6236.txt      nvram_cyw43455.txt
fw_bcm40183b2.bin            fw_bcm4356a2_ag_mfg.bin      nvram_ap6255.txt      nvram_RK901.txt
fw_bcm43013c1_ag.bin         fw_bcm4359c0_ag.bin            nvram_ap6256.txt      nvram_RK903_26M.cal
fw_bcm43013c1_ag_mfg.bin   fw_bcm4359c0_ag_mfg.bin      nvram_AP6275P.txt   nvram_RK903.cal
fw_bcm43241b4_ag.bin         fw_bcm43752a2_ag.bin         nvram_ap6275s.txt   nvram_RK903.txt
fw_bcm4330.bin               fw_bcm43752a2_ag_mfg.bin       nvram_ap62x2.txt      rk912_fw.bin
fw_bcm43341b0_ag.bin         fw_bcm43752a2_pcie_ag.bin      nvram_AP6330.txt      rk912_patch.bin
fw_bcm4334b1_ag.bin          fw_bcm43752a2_pcie_ag_mfg.binnvram_AP6335.txt      rk912_patch_cal.bin
fw_bcm4339a0_ag.bin          fw_cyw43438.bin                nvram_ap6354.txt      wifi_efuse_8189e.map
fw_bcm4339a0_ag_mfg.bin      fw_cyw43455.bin                nvram_ap6356s.txt   wifi_efuse_8723bs-vq0.map
fw_bcm43436b0.bin            nvram_4330_oob.txt             nvram_ap6356.txt      wifi_efuse_8723cs.map
fw_bcm43436b0_mfg.bin      nvram_4330.txt               nvram_ap6398s.txt   wifi_efuse_8723ds.map
fw_bcm43438a0.bin            nvram_ap6181.txt               nvram_AP6441.txt
fw_bcm43438a1.bin            nvram_AP6210_24M.txt         nvram_ap6452.txt
fw_bcm43438a1_mfg.bin      nvram_AP6210.txt               nvram_AP6476.txt
给ubuntu22.04_base arm64版本换源,只须要把对应的20.04的版本代号变为22.04即可
参考我前面的博客为ARM64架构移植Ubuntu20.04换源的发现_ubuntu20 arm源-CSDN博客https://blog.csdn.net/qq_65198598/article/details/145145101?spm=1001.2014.3001.5501https://blog.csdn.net/qq_65198598/article/details/145145101?spm=1001.2014.3001.5501https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83Ahttps://blog.csdn.net/qq_65198598/article/details/145145101?spm=1001.2014.3001.5501
   Ubuntu各版本代号版本号代号23.10mantic23.04lunar22.10kinetic22.04jammy21.10impish21.04hirsute20.10groovy20.04focal19.10eoan19.04disco18.10cosmic18.04bionic
为Ubuntu更新软件

参考:基于 RK3588 构建 Ubuntu 22.04 根文件体系_rk3588 ubuntu-CSDN博客https://blog.csdn.net/qq_34117760/article/details/130909986https://blog.csdn.net/qq_34117760/article/details/130909986https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83Ahttps://blog.csdn.net/qq_34117760/article/details/130909986
配置好网络过后,安装须要软件:我安装的有:
#必要
apt install vim bash-completion net-tools iputils-ping ifupdown ethtool ssh rsync udev htop rsyslog curl openssh-server apt-utils dialog nfs-common psmisc language-pack-en-base sudo kmod apt-transport-https -y
#开发
apt install gcc g++ make cmake ninja-build build-essential ffmpeg libopencv-dev libv4l-dev v4l-utils yavta -y
#网络
apt install bluetooth* bluez* blueman* wireless-tools network-manager -y 内核

配置内核

修改kernel中的Makefile为自己的编译器(kernel/Makefile里)
https://i-blog.csdnimg.cn/direct/cb506cbb4c024d7bb23f182226fc18b8.png
 利用rockchip的默认config开始配置,这里只演示配置wifi
root@ubuntu:/home/zq/Desktop/Release/kernel# make menuconfig rockchip_linux_defconfig 进入menuconfig,搜索“ap6”,如图选择/输入路径
https://i-blog.csdnimg.cn/direct/aeb43b7ae9044e858b8c421479095cf9.png
注意须要选择的是SDIO接口并且 编辑精确的固件路径(ap6212a的固件),若固件路径不精确会导致wlan0开启失败从而不显示接口。
别的一个点是虽然在DTS里面写的模块是AP6212并且原理图上也是AP6212,但是现实上的固件加载的是AP6212A才可以正常运行,加载AP6212的固件无法运行!
编译内核&模块

开始编译内核
root@ubuntu:/home/zq/Desktop/Release# ./build.shkernel
等待七七四十九天之后编译好了内核
然后开始编译模块
make modules 等待七七四十九天之后把编译好的模块安装到即将烧录到的文件体系rootfs中 
make ARCH=arm64 modules_install INSTALL_MOD_PATH=../ubuntu 安装modules过后可以看到目录下有对应内核的模块目录
https://i-blog.csdnimg.cn/direct/c013695188c342d7a20630aeff4aa9a7.png
烧录&测试

调解内存分区(选做)

烧录本次文件体系&内核后利用立创原提供的内存分区文件(parameter.txt)烧录后的巨细
https://i-blog.csdnimg.cn/direct/417d11d6e64548638a888254cc7180a0.png
 可以看到这里的空间已经是相当极限了,基本上除了烧录文件体系什么都干不了
为了使得烧录过后的文件体系内存大一些,可以参考
泰山派调解分区巨细 - 哔哩哔哩
调解分区并且下载(记得利用 以下命令调解)过后可以看到
resize2fs /dev/mmcblk0p6 https://i-blog.csdnimg.cn/direct/18a566e39db746e4a14a6db0286cfbef.png
内存实现了质的飞跃
烧录过后进入体系

查询版本

显示文件体系版本利用
lsb_release -a  显示内核版本利用
unema -r 网络测试

查抄网络接口是否检测到
root@localhost:/home/zq# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>mtu 65536
      inet 127.0.0.1netmask 255.0.0.0
      inet6 ::1prefixlen 128scopeid 0x10<host>
      looptxqueuelen 1000(Local Loopback)
      RX packets 276bytes 24350 (24.3 KB)
      RX errors 0dropped 0overruns 0frame 0
      TX packets 276bytes 24350 (24.3 KB)
      TX errors 0dropped 0 overruns 0carrier 0collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500
      inet6 2409:8a0c:221f:a80:338e:d9d2:50c0:8a95prefixlen 64scopeid 0x0<global>
      inet6 2409:8a0c:221f:a80:d14a:5f82:9b6c:1485prefixlen 64scopeid 0x0<global>
      inet6 fe80::e8df:7d96:1f6:14e1prefixlen 64scopeid 0x20<link>
      ether b8:13:32:b0:47:90txqueuelen 1000(Ethernet)
      RX packets 47bytes 6071 (6.0 KB)
      RX errors 0dropped 3overruns 0frame 0
      TX packets 65bytes 8910 (8.9 KB)
      TX errors 0dropped 0 overruns 0carrier 0collisions 0
检测网络过后搜索wifi
root@localhost:/home/zq# nmcli dev wifi list 可以看到雷同于
https://i-blog.csdnimg.cn/direct/6a77c99fbcdf4aa297ac22a3d0cc9aa7.png
 然后毗连WIFI
sudo nmcli dev wifi connect "WIFI名字" password "密码" ifname wlan0 然后就可以看到wlan0下面有了IP地点,说明已经毗连上了
https://i-blog.csdnimg.cn/direct/09afb5e3d738402baaa641feb143dcd5.png
尝试安装一下 neofetch
root@localhost:/home/zq# sudo apt install neofetch
 WUHU成功
https://i-blog.csdnimg.cn/direct/556996ed3b30456593708645d62f7344.png
配置过程还有一些比力好的参考文章:
泰山派移植Ubuntu22.04 - Zhh Blog基于 RK3588 构建 Ubuntu 22.04 根文件体系_rk3588 ubuntu-CSDN博客立创泰山派学习01--ubuntn体系的WIFI配置及SSH的安装 - zbl1118 - 博客园make modules 和 make modules_install-CSDN博客 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: RK3566-移植5.10内核&Ubuntu22.04