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.rhkb.cn/news/12328.html

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

相关文章

实现基础的shell程序

1. 实现一个基础的 shell 程序&#xff0c;主要完成两个命令的功能 cp 和 ls 1.1.1. cp 命令主要实现&#xff1a; ⽂件复制⽬录复制 1.1.2. ls 命令主要实现&#xff1a; ls -l 命令的功能 1.1. 在框架设计上&#xff0c;采⽤模块化设计思想&#xff0c;并具备⼀定的可扩…

计算机网络 应用层 笔记 (电子邮件系统,SMTP,POP3,MIME,IMAP,万维网,HTTP,html)

电子邮件系统&#xff1a; SMTP协议 基本概念 工作原理 连接建立&#xff1a; 命令交互 客户端发送命令&#xff1a; 服务器响应&#xff1a; 邮件传输&#xff1a; 连接关闭&#xff1a; 主要命令 邮件发送流程 SMTP的缺点: MIME&#xff1a; POP3协议 基本概念…

Java 数据库连接池:HikariCP 与 Druid 的对比

Java 数据库连接池&#xff1a;HikariCP 与 Druid 的对比 数据库连接池&#xff1a;HikariCP 1. 卓越的性能表现 HikariCP 在数据库连接池领域以其卓越的性能脱颖而出。 其字节码经过精心优化&#xff0c;减少了不必要的开销&#xff0c;使得连接获取和释放的速度极快。 在…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化

1.25 视觉风暴&#xff1a;NumPy驱动数据可视化 目录 #mermaid-svg-i3nKPm64ZuQ9UcNI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i3nKPm64ZuQ9UcNI .error-icon{fill:#552222;}#mermaid-svg-i3nKPm64ZuQ9UcNI …

【实践案例】基于大语言模型的海龟汤游戏

文章目录 项目背景提示词构建海龟汤主持人真相判断专家 具体实现流程文心一言大语言模型“海龟汤”插件参考 项目背景 “海龟汤”作为一种聚会类桌游&#xff0c;又称情境推理游戏&#xff0c;是一种猜测情境还原事件真相的智力游戏。其玩法是由出题者提出一个难以理解的事件&…

Spring PropertyPlaceholderConfigurer多配置问题

本文重点是通过例子代码的debug了解PropertyPlaceholderConfigurer的原理 更多可阅读&#xff1a;placeholderconfigurer文档 了解 目录 测试程序如下PropertyPlaceholderConfigurerplaceholderConfigurer1 & placeholderConfigurer2的执行userbean的BeanDefinition应用Pr…

PVE纵览-解锁 PVE 的潜力:配置显卡直通

PVE纵览-解锁 PVE 的潜力&#xff1a;配置显卡直通 文章目录 PVE纵览-解锁 PVE 的潜力&#xff1a;配置显卡直通摘要显卡直通的优势准备工作硬件要求软件要求 启用 IOMMU修改 BIOS 设置配置 PVE 系统 配置显卡直通识别设备编辑配置文件安装必要驱动 常见问题及解决方案显卡直通…

线性调整器——耗能型调整器

线性调整器又称线性电压调节器&#xff0c;以下是关于它的介绍&#xff1a; 基本工作原理 线性调整器的基本电路如图1.1(a)所示,晶体管Q1(工作于线性状态,或非开关状态)构成一个连接直流源V和输出端V。的可调电气电阻,直流源V由60Hz隔离变压器&#xff08;电气隔离和整流&#…

Unity 2D实战小游戏开发跳跳鸟 - 计分逻辑开发

上文对障碍物的碰撞逻辑进行了开发,接下来就是进行跳跳鸟成功穿越过障碍物进行计分的逻辑开发,同时将对应的分数以UI的形式显示告诉玩家。 计分逻辑 在跳跳鸟通过障碍物的一瞬间就进行一次计分,计分后会同步更新分数的UI显示来告知玩家当前获得的分数。 首先我们创建一个用…

机器学习中的关键概念:通过SKlearn的MNIST实验深入理解

欢迎来到我的主页&#xff1a;【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 sklearn相关介绍 Scikit-learn 是一个广泛使用的开源机器学习库&#xff0c;提供了简单而高效的数据挖掘和数据分析工具。它建立在 NumPy、SciPy 和 matplotlib 等科学计算库之上&#xff0c;支持…

vim-plug的自动安装与基本使用介绍

vim-plug介绍 Vim-plug 是一个轻量级的 Vim 插件管理器&#xff0c;它允许你轻松地管理 Vim 插件的安装、更新和卸载。相较于其他插件管理器&#xff0c;vim-plug 的优点是简单易用&#xff0c;速度较快&#xff0c;而且支持懒加载插件&#xff08;即按需加载&#xff09; 自动…

pytorch图神经网络处理图结构数据

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是一类能够处理图结构数据的深度学习模型。图结构数据由节点&#xff08;vertices&#xff09;和边&#xff08;edges&#xff09;组成&a…

[mmdetection]fast-rcnn模型训练自己的数据集的详细教程

本篇博客是由本人亲自调试成功后的学习笔记。使用了mmdetection项目包进行fast-rcnn模型的训练&#xff0c;数据集是自制图像数据。废话不多说&#xff0c;下面进入训练步骤教程。 注&#xff1a;本人使用linux服务器进行展示&#xff0c;Windows环境大差不差。另外&#xff0…

对比uart iic spi 三种总线的使用

1.uart串口通信 1.1uart的通信总线方式 1.2查询开发板和数据手册对需要进行修改的串口进行设置 例如STM32MP157aaa 1.设置8bit数据位 2.设置无校验位 3.设置1bit停止位 4.设置波特率为115200 5.设置16倍过采样 7.使能发送器 TE 8.使能接收器 RE 9.使能串口 UE10.发送数据&…

【玩转 Postman 接口测试与开发2_016】第13章:在 Postman 中实现契约测试(Contract Testing)与 API 接口验证(上)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十三章 契约测试与 API 接口验证1 契约测试的概念2 契约测试的工作原理3 契约测试的分类4 DeepSeek 给出的契约测试相关背景5 契约测试在 Postman 中的创建方法6 API 实例的基本用法7 API 实例的类型实…

java-(Oracle)-Oracle,plsqldev,Sql语法,Oracle函数

卸载好注册表,然后安装11g 每次在执行orderby的时候相当于是做了全排序,思考全排序的效率 会比较耗费系统的资源,因此选择在业务不太繁忙的时候进行 --给表添加注释 comment on table emp is 雇员表 --给列添加注释; comment on column emp.empno is 雇员工号;select empno,en…

尚硅谷课程【笔记】——大数据之Shell【一】

课程视频&#xff1a;【【尚硅谷】Shell脚本从入门到实战】 一、Shell概述 为什么要学习Shell&#xff1f; 1&#xff09;需要看懂运维人员的Shell程序 2&#xff09;偶尔编写一些简单的Shell程序来管理集群、提高开发效率 什么是Shell&#xff1f; 1&#xff09;Shell是一…

pytorch实现长短期记忆网络 (LSTM)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 LSTM 通过 记忆单元&#xff08;cell&#xff09; 和 三个门控机制&#xff08;遗忘门、输入门、输出门&#xff09;来控制信息流&#xff1a; 记忆单元&#xff08;Cell State&#xff09; 负责存储长期信息&…

CDDIS从2025年2月开始数据迁移

CDDIS 将从 2025 年 2 月开始将我们的网站从 cddis.nasa.gov 迁移到 earthdata.nasa.gov&#xff0c;并于 2025 年 6 月结束。 期间可能对GAMIT联网数据下载造成影响。

【Redis】主从模式,哨兵,集群

主从复制 单点问题&#xff1a; 在分布式系统中&#xff0c;如果某个服务器程序&#xff0c;只有一个节点&#xff08;也就是一个物理服务器&#xff09;来部署这个服务器程序的话&#xff0c;那么可能会出现以下问题&#xff1a; 1.可用性问题&#xff1a;如果这个机器挂了…