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.gz  ubuntu
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.txt  nvram_AP6493.txt
clm_bcm43752a2_pcie_ag.blob  fw_bcm43455c0_ag_mfg.bin       nvram_ap6212a_cy.txt  nvram_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.bin  nvram_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://blog.csdn.net/qq_65198598/article/details/145145101?spm=1001.2014.3001.5501

Ubuntu各版本代号
版本号代号
23.10mantic
23.04lunar
22.10kinetic
22.04jammy
21.10impish
21.04hirsute
20.10groovy
20.04focal
19.10eoan
19.04disco
18.10cosmic
18.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://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里)

 使用rockchip的默认config开始配置,这里只演示配置wifi

root@ubuntu:/home/zq/Desktop/Release/kernel# make menuconfig rockchip_linux_defconfig

进入menuconfig,搜索“ap6”,如图选择/输入路径

注意需要选择的是SDIO接口并且 编辑正确的固件路径(ap6212a的固件),若固件路径不正确会导致wlan0开启失败从而不显示接口。

另外一个点是虽然在DTS里面写的模块是AP6212并且原理图上也是AP6212,但是实际上的固件加载的是AP6212A才可以正常运行,加载AP6212的固件无法运行!

编译内核&模块

开始编译内核

root@ubuntu:/home/zq/Desktop/Release# ./build.sh  kernel

等待七七四十九天之后编译好了内核

然后开始编译模块

make modules

等待七七四十九天之后把编译好的模块安装到即将烧录到的文件系统rootfs中 

make ARCH=arm64 modules_install INSTALL_MOD_PATH=../ubuntu

安装modules过后可以看到目录下有对应内核的模块目录

烧录&测试

调整内存分区(选做)

烧录本次文件系统&内核后使用立创原提供的内存分区文件(parameter.txt)烧录后的大小

 可以看到这里的空间已经是相当极限了,基本上除了烧录文件系统什么都干不了

为了使得烧录过后的文件系统内存大一些,可以参考

泰山派调整分区大小 - 哔哩哔哩

调整分区并且下载(记得使用 以下命令调整)过后可以看到

resize2fs /dev/mmcblk0p6

内存实现了质的飞跃

烧录过后进入系统

查询版本

显示文件系统版本使用

lsb_release -a

 显示内核版本使用

unema -r

网络测试

检查网络接口是否检测到

root@localhost:/home/zq# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 276  bytes 24350 (24.3 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 276  bytes 24350 (24.3 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 2409:8a0c:221f:a80:338e:d9d2:50c0:8a95  prefixlen 64  scopeid 0x0<global>inet6 2409:8a0c:221f:a80:d14a:5f82:9b6c:1485  prefixlen 64  scopeid 0x0<global>inet6 fe80::e8df:7d96:1f6:14e1  prefixlen 64  scopeid 0x20<link>ether b8:13:32:b0:47:90  txqueuelen 1000  (Ethernet)RX packets 47  bytes 6071 (6.0 KB)RX errors 0  dropped 3  overruns 0  frame 0TX packets 65  bytes 8910 (8.9 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

检测网络过后搜索wifi

root@localhost:/home/zq# nmcli dev wifi list

可以看到类似于

 然后连接WIFI

 sudo nmcli dev wifi connect "WIFI名字" password "密码" ifname wlan0

然后就可以看到wlan0下面有了IP地址,说明已经连接上了

尝试安装一下 neofetch

root@localhost:/home/zq# sudo apt install neofetch

 WUHU成功

配置过程还有一些比较好的参考文章:

泰山派移植Ubuntu22.04 - Zhh Blog基于 RK3588 构建 Ubuntu 22.04 根文件系统_rk3588 ubuntu-CSDN博客立创泰山派学习01--ubuntn系统的WIFI配置及SSH的安装 - zbl1118 - 博客园make modules 和 make modules_install-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记day7

文章目录 1 分页功能实现2 分页器的展示需要哪些数据&#xff08;条件&#xff09;&#xff1f;3 自定义分页器4 分页器存在问题5 分页器动态展示6 开发某一个商品的详情页面 1 分页功能实现 为什么很多项目采用分页功能&#xff0c;比如电商平台同时展示的数据有很多&#xf…

【starrocks学习】之将starrocks表同步到hive

目录 方法 1&#xff1a;通过HDFS导出数据 1. 将StarRocks表数据导出到HDFS 2. 在Hive中创建外部表 3. 验证数据 方法 2&#xff1a;使用Apache Spark同步 1. 添加StarRocks和Hive的依赖 2. 使用Spark读取StarRocks数据并写入Hive 3. 验证数据 方法 3&#xff1a;通过…

stm32点灯 GPIO的输出模式

目录 1.选择RCC时钟 2.SYS 选择调试模式 SW 3.GPIO 配置 4.时钟树配置&#xff08; 默认不变&#xff09;HSI 高速内部时钟8Mhz 5.项目配置 6.代码 延时1s循环LED亮灭 1.选择RCC时钟 2.SYS 选择调试模式 SW 3.GPIO 配置 4.时钟树配置&#xff08; 默认不变&#xff09…

Docker基础以及单体实战

Docker 一、Docker1.1 Docker组成1.2 Dcoker运行图1.3 名称空间Namepace 1.4 docker、Docker compose、kubermetes 二、Docker安装2.1 在线Docker安装2.2 使用官方通用安装脚本2.3 二进制安装Docker三、Docker基础命令3.1 启动类3.2 镜像类3.3 容器类3.4 网络类3.5 Docker comp…

搭建Python环境:为量化交易做准备

搭建Python环境&#xff1a;为量化交易做准备 在量化交易的世界里&#xff0c;一个稳定且高效的Python环境是成功的关键。本文将指导您如何从零开始搭建适用于量化交易的本地Python环境&#xff0c;并介绍一些常用的代码编辑器和工具。 Python环境安装指南 官网安装&#xf…

Vue.js组件开发

Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架&#xff0c;组件化开发是 Vue.js 的核心特性之一&#xff0c;它允许你将页面拆分成多个小的、可复用的组件&#xff0c;从而提高代码的可维护性和可复用性。以下是关于 Vue.js 组件开发的详细介绍&#xff1a; 1. 组件…

备考蓝桥杯嵌入式7——ADC电压采集

目录 ADC电压采集 代码书写 ADC电压采集 ADC的含义就是将一个范围内的电压映射成为数字传入进来。举个例子&#xff0c;当我们想要做一个非常简单的电压测量计的时候&#xff0c;使用ADC就会将我们的模拟电压信号转化为数字电压信号。 我们的板子上有两个电压采集旋钮&#…

【大模型实战】0代码基于DeepSeek-R1搭建本地知识库,打造专属智能助手

【大模型实战】0代码基于DeepSeek-R1搭建本地知识库,打造专属智能助手 一、ollama下载与安装二、部署deepseek私有模型三、部署embedding模型四、可视化操作工具(1)下载与安装工具(2)部署安装的模型(3) 添加知识库(4)添加智能体助手(5) 助手问答一、ollama下载与安装…

Java进阶(vue基础)

目录 1.vue简单入门 ?1.1.创建一个vue程序 1.2.使用Component模板(组件&#xff09; 1.3.引入AXOIS ?1.4.vue的Methods&#xff08;方法&#xff09; 和?compoted&#xff08;计算&#xff09; 1.5.插槽slot 1.6.创建自定义事件? 2.Vue脚手架安装? 3.Element-UI的…

Java 面试真题

本题适合一到三年 Java 开发 &#xff0c;以下问题都是按照原面试官提问记录 文章目录 我要进大厂系列面试题二面 我要进大厂系列面试题 全部真题&#xff0c;欢迎投稿你的面试经验。 本篇涉及基础较多&#xff0c;但要耐性看完。 JVM内存模型垃圾回收器用的哪个gc各个算法…

前端组件标准化专家Prompt指令的最佳实践

前端组件标准化专家Prompt 提示词可作为项目自定义提示词使用&#xff0c;本次提示词偏向前端开发的使用&#xff0c;如有需要可适当修改关键词和示例 推荐使用 Cursor 中作为自定义指令使用Cline 插件中作为自定义指令使用在力所能及的范围内使用最好的模型&#xff0c;可以…

windows环境下安装Python3.13.2

1. 下载 Python 3.13.2 访问 Python 官方网站。 在下载页面中&#xff0c;找到 Python 3.13.2 的版本。如果下载其他版本&#xff0c;可以点击页面底部的“Previous releases”链接&#xff0c;查找旧版本。 选择适合 Windows 的安装包&#xff08;通常是 .exe 文件&#xff…

专业学习|通过案例了解蒙特卡罗模拟实操步骤与含义

一、蒙特卡罗模拟介绍 蒙特卡罗模拟&#xff08;Monte Carlo Simulation&#xff09;是一种基于随机采样的数值计算方法&#xff0c;用于解决具有不确定性或复杂概率分布的问题。其核心思想是通过多次随机抽样来逼近系统的行为或目标函数的真实值&#xff0c;进而对系统进行评估…

全面解析文件上传下载删除漏洞:风险与应对

在数字化转型的时代&#xff0c;文件上传、下载与删除功能已经成为各类应用程序的标准配置&#xff0c;从日常办公使用的协同平台&#xff0c;到云端存储服务&#xff0c;再到社交网络应用&#xff0c;这些功能在给用户带来便捷体验、显著提升工作效率的同时&#xff0c;也隐藏…

常用的ADC芯片有哪些

硬件工程师在设计电路时经常需要用到模数转换器&#xff08;Analog-to-Digital Converter, ADC&#xff09;芯片来将模拟信号转换为数字信号。市场上有许多不同品牌和型号的ADC芯片可供选择。以下是一些知名品牌的ADC芯片及其特点&#xff1a; 1.Texas Instruments (TI) •特点…

Redis的通用命令

⭐️前言⭐️ 本文主要介绍Redis的通用命令 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主日常练习代码均已上传GitHub &#x1f4cd;内容导…

「全网最细 + 实战源码案例」设计模式——策略模式

核心思想 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;用于定义一系列算法或策略&#xff0c;将它们封装成独立的类&#xff0c;并使它们可以相互替换&#xff0c;而不影响客户端的代码&#xff0c;提高代码的可维护性和扩展性。 结构 …

k8m 是一款轻量级、跨平台的 Kubernetes 仪表板

k8m 是一款轻量级、跨平台的 Kubernetes 仪表板&#xff0c;专注于简化集群管理与 AI 功能的集成。其最新版本 v0.0.28 于 2025 年 2 月 4 日发布&#xff0c;包含多项功能优化和安全增强。以下是该版本的核心更新内容&#xff1a; 1. 安全性与认证优化1 动态 JWT 密钥配置&…

【大模型】AI 辅助编程操作实战使用详解

目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…

python开发:爬虫示例——GET和POST请求处理

一、Get请求 import json import requests#输入示例&#xff1a;urlhttps://www.baidu.com #RequestHeader:F12标头-请求标头-原始-复制到这&#xff08;忽略第一句&#xff09; def GetRequest(url,RequestHeader""):try:dic{}RequestHeaderList RequestHeader.s…