【玩泰山派】4、制作ubuntu镜像-(6)使用鲁班猫的sdk去制作镜像

文章目录

前言

之前一直是使用立创泰山派官网的sdk去制作的镜像,它里面默认没有ubuntu镜像的制作,而且也默认只有4.19的内核版本。所以我使用了鲁班猫的几个仓库去构建ubuntu的rootfs,然后拷贝了lubancat的5.10内核仓库去生成5.10内核,然后还是使用泰山派的sdk去做updateimg的构建(看之前的文章:【玩泰山派】4、制作ubuntu镜像-(5)总结制作ubuntu22.04镜像+5.10内核流程)。

后面看鲁班猫的文档,发现鲁班猫的github项目中也是直接提供了sdk的,而且他们的sdk好像更牛逼,在Rockchip sdk的基础上魔改的更多,不仅支持各种发行版(debian10、11、12,ubuntu20.04、22.04);而且貌似还改了镜像的格式,可以不重新制作镜像的情况下,换设备树和内核,看起来很牛逼。必须玩玩鲁班猫的sdk。

参考:《 嵌入式Linux镜像构建与部署------基于LubanCat-RK系列板卡 》

获取鲁班猫sdk

我使用的是LubanCat_Gen_SDK

我使用的在线现在的sdk,大概命令如下,详细可以参考鲁班猫的文档

复制代码
cd ~/LubanCat_SDK

# 拉取LubanCat_Linux_Generic_SDK
repo init -u https://github.com/LubanCat/manifests.git -b linux -m lubancat_linux_generic.xml

#如果运行以上命令失败,提示:fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
#则可以在以上命令中添加选项 --repo-url https://mirrors.tuna.tsinghua.edu.cn/git/git-repo

.repo/repo/repo sync -c -j4

使用鲁班猫sdk制作5.10内核+ubuntu22.04镜像

同样,我是使用docker作为构建环境

编写dockerfile

根据鲁班猫的文件去写的安装的软件,但是实测发现居然不全,我这里把需要的补全了

复制代码
#基础镜像
FROM ubuntu:20.04

#维护者
MAINTAINER luck

# RUN sed -i -r 's#http://(archive|security).ubuntu.com#http://mirrors.tuna.tsinghua.edu.cn#g' /etc/apt/sources.list \
  RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone

RUN apt update \
  && apt install --no-install-recommends -y sudo git ssh make gcc libssl-dev \
  liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo chrpath \
  diffstat binfmt-support qemu-user-static live-build bison flex fakeroot \
  cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev \
  libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \
  libmpc-dev bc python-is-python3 python3-pip python2 u-boot-tools curl \
  python3-pyelftools dpkg-dev rsync build-essential devscripts debhelper dh-exec

制作镜像

docker build -t lubancat_gen_sdk:20.04 .

起容器

复制代码
docker run --privileged -d \
--name lubancat_gen_sdk \
--hostname lubancat_gen_sdk \
-v /root/new_workspace/LubanCat_GEN_SDK:/LubanCat_GEN_SDK \
-it lubancat_gen_sdk:20.04 /bin/bash

这样环境就搭好了

进入容器执行

首先把repo对应的git仓库更新到对应的分支

这一点鲁班猫文档有说明

修改LubanCat_rk3566_ubuntu_xfce_defconfig配置文件

我是准备构建5.10内核+ ubuntu22.04的xfce桌面环境。所以我准备使用LubanCat_rk3566_ubuntu_xfce_defconfig配置,但是鲁班猫的默认的配置文件LubanCat_rk3566_ubuntu_xfce_defconfig不是5.10内核+ ubuntu22.04版本的,需要改一下LubanCat_rk3566_ubuntu_xfce_defconfig配置文件,主要是:

1、注释RK_UBUNTU_FOCAL=y,FOCAL是ubuntu20.04版本,这里=y的话,就是要构建ubuntu22.04,所以注释它,这样就是构建ubuntu22.04

2、RK_KERNEL_PREFERRED="5.10",它默认是6.1内核版本。

完整的内容如下

复制代码
# RK_BUILDROOT is not set
# RK_YOCTO is not set
# RK_UBUNTU_FOCAL=y
RK_ROOTFS_SYSTEM_UBUNTU=y
RK_ROOTFS_TARGET_XFCE=y
RK_ROOTFS_IMAGE="ubuntu-rk356x-${RK_ROOTFS_TARGET}-rootfs.img"
RK_KERNEL_PREFERRED="5.10"
RK_KERNEL_CFG="lubancat_linux_rk356x_defconfig"
RK_KERNEL_DTS_NAME="rk356x-lubancat-generic"
RK_KERNEL_EXTBOOT=y
# RK_RECOVERY is not set
RK_EXTRA_PARTITION_NUM=0
RK_PARAMETER="parameter-extboot.txt"
RK_USE_FIT_IMG=y
RK_PACKAGE_FILE_CUSTOM=y
RK_PACKAGE_FILE="package-file-extboot"

参考文档执行命令

复制代码
# 在ubuntu目录下执行以下命令
sudo dpkg -i ubuntu-build-service/packages/*
sudo apt-get install -f

# 选择SDK配置文件
./build.sh chip
选rk3566_rk3568,选LubanCat_rk3566_ubuntu_xfce_defconfig

# 一键编译
./build.sh

这样就直接在output/firmware目录下成了update文件,简直牛逼。

TODO

1、由于这个我还没适配泰山派博通网卡固件,(安装网卡固件)

2、还没有改内核的配置,比如博通网卡的驱动,以及一些别的配置,到时候拷贝过来,

3、还有泰山派的设备树(拷贝对应的内核的提交)

所以还没烧录生成的update.img验证,待之后验证

相关推荐
阿狗童鞋28 分钟前
Nginx反向代理与负载均衡实战指南
运维·nginx·负载均衡
IT大白鼠31 分钟前
彭大帅的AI运维助手——自然语言管理 Linux 集群与网络设备——第 2 篇 · 安全守规矩的 AI:分级安全管控是灵魂
linux·运维·人工智能
闭包不眠33 分钟前
端侧AI能省多少服务器钱:把账换成字节算
运维·服务器·图像处理·人工智能·计算机视觉
风华同学35 分钟前
免密SSH登录Ubuntu
linux·运维·ubuntu
꯭自꯭闭꯭36 分钟前
达梦守护集群手工切换及故障切换
linux·运维·服务器·数据库
哈__36 分钟前
日志散在多台服务器怎么查?用 Promtail + Loki + Grafana 搭一套集中检索平台
运维·服务器·grafana
CHENKONG_CK38 分钟前
恶劣工况下 RFID 赋能喷涂产线自动化分拣与作业
运维·网络·人工智能·自动化·汽车·rfid·rfid
wdfk_prog1 小时前
Wi-Fi Direct 教程 04:Interface 协议子系统初始化——WPA/EAPOL、WPS、DPP/NAN、GAS 与 P2P callback
android·运维·服务器·ubuntu·p2p·wps·wifi-direct
云飞云共享云桌面1 小时前
有个10人的SolidWorks设计团队,服务器什么配置合适,如何落地
运维·服务器·3d·自动化·电脑·制造
逆向编程1 小时前
VMware仅主机(Host‑Only,VMnet1)物理机‑虚拟机文件共享完整实操
运维