【玩泰山派】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验证,待之后验证

相关推荐
夏日听雨眠25 分钟前
LInux(逻辑地址与物理地址的区别,文件描述符,lseek函数)
linux·运维·网络
哲霖软件1 小时前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
qq_542515412 小时前
Ubuntu 22.04.4 LTS安装ToDesk最新版打不开,无响应?旧版本4.7.2_277版本分享
linux·ubuntu·todesk
火车叼位2 小时前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
小麦嵌入式2 小时前
FPGA入门(四):时序逻辑计数器原理与 LED 闪烁实现
linux·驱动开发·stm32·嵌入式硬件·fpga开发·硬件工程·dsp开发
皮卡蛋炒饭.3 小时前
传输层协议UDP
linux·网络协议·udp
大明者省4 小时前
宝塔开了端口,Ubuntu 还得开相应端口才能打通
服务器·数据库·ubuntu
syagain_zsx4 小时前
Linux指令初识(实用篇)
linux·运维·服务器
OYangxf4 小时前
Git Commit Message
运维·git
Alter12304 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能