数码之家

 找回密码
 立即注册
搜索
查看: 1171|回复: 9

[ARM] rk3288编译记录贴2024

[复制链接]
发表于 2024-9-26 13:33:07 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
RK3288编译
我安装的系统为ubuntu18X64虚拟机
首先百度网盘下载linux  sdk,相关操作按照wiki操作
安装必要依赖库
sudo apt update
sudo apt install -y repo git python


# 解压
mkdir ~/proj/
cd ~/proj/
将下载下来的sdk放入proj文件夹
输入以下命令
cat rk3288_linux_release_v2.5.0a_20230510_split_dir/*firefly_split* | tar -xzv

然后cd ~/proj/rk3288_linux_release_v2.5.0a_20230510/
# 导出数据
.repo/repo/repo sync -l
sudo apt-get install gawk

# 同步
.repo/repo/repo sync -c --no-tags
.repo/repo/repo start firefly --all


后续可以使用如下命令更新 SDK:

.repo/repo/repo sync -c --no-tags


安装必要依赖。其中必须要安装gawk,不然uboot编译不过

sudo apt-get install repo git gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools \
parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools libssl-dev \
autotools-dev libsigsegv2 m4 libdrm-dev curl sed make binutils build-essential gcc g++ bash \
patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev \
openssh-client lib32stdc++6 gcc-aarch64-linux-gnu libncurses5-dev lzop libssl1.0.0 libssl-dev \
libglade2-dev cvs mercurial subversion asciidoc w3m dblatex graphviz python-matplotlib \
libc6:i386 texinfo liblz4-tool genext2fs expect autoconf intltool libqt4-dev libgtk2.0-dev gawk


修改device/rockchip/rk3288/firefly-rk3288-ubuntu.mk
将dts修改为aio,可开启串口0-1-3
# Kernel dts rk3288-firefly-aio rk3288-firefly-vga
export RK_KERNEL_DTS=rk3288-firefly-aio


下面进入编译流程
链接必要文件
./build.sh firefly-rk3288-ubuntu.mk
编译Uboot
./build.sh uboot
编译 kernel
./build.sh kernel
编译 recovery
./build.sh recovery

1.2.1.3. 下载 Ubuntu 根文件系统
下载根文件系统:Ubuntu 根文件系统(32位),放到 SDK 路径下

解压文件,这一步一定要下载百度网盘内的18rootfs,()当然也可以替换其他的32位rootfs,我尝试替换hinas的rootfs,可以正常运行,可以做个nas用。)文件,官网的有问题。

更新各部分镜像链接到 rockdev/ 目录:
./mkfirmware.sh

打包固件,生成的完整固件会保存到 rockdev/pack/ 目录。

./build.sh updateimg

1.2.1.5. 全自动编译
全自动编译会执行上述编译、打包操作,生成完整固件。
./build.sh



这样就会生成可刷鞋的img镜像

另外单独压缩内核,需要修改
二、安装交叉编译工具链
    纯Linux开发的朋友可以通过Github单独下载交叉编译工具链,内核编译用到arm-eabi-4.6交叉编译工具链,下载链接为:

    下载好放到指定目录~/proj/rk3288_linux_release_v2.5.0a_20230510/toolchain后解压:
mkdir ~/UbuntuDev/toolchain
cd ~/UbuntuDev/toolchain
tar -xvf arm-eabi-4.6.tar.gz

打开目录
cd ~/proj/rk3288_linux_release_v2.5.0a_20230510/kernel$

需要将生成boot镜像用到了一个新工具mkbootimg,大家可通过 附件下载,放至kernel根目录,直接右键提取到当前文件夹就可以。生成镜像的命令如下,记得给mkbootimg增加可执行属性:
其实只要正确运行sdk,该有的文件都已经生成了,单独打包内核只需要打包就可以了。打包完成后,kernel根目录会有boot。img文件,打包完成会变成18.3m左右,未成功是30M


./mkbootimg --kernel arch/arm/boot/zImage --ramdisk ramdisk.img --second resource.img  -o boot.img

接下来就可以写入boot,tool设置boot位置0xA000

参考网址
https://dev.t-firefly.com/thread-10916-1-1.html
https://dev.t-firefly.com/thread-10907-1-1.html
https://wiki.t-firefly.com/zh_CN ... /linux_compile.html
https://github.com/whsgzcy/rk3288_debug_kengs


打赏

参与人数 1家元 +30 收起 理由
家睦 + 30

查看全部打赏

发表于 2024-9-26 16:01:44 | 显示全部楼层
firefly的开发板?Android的好久没更新了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-26 16:36:55 | 显示全部楼层
xueyuking 发表于 2024-9-26 16:01
firefly的开发板?Android的好久没更新了。

是的  我用的linux,正好学习 找个地方记录一下,官方论坛太扯淡了
回复 支持 反对

使用道具 举报

发表于 2024-9-27 11:52:27 | 显示全部楼层
没玩过linux,linux是不是全英文的?
回复 支持 反对

使用道具 举报

发表于 2024-9-27 15:33:30 | 显示全部楼层
自己做镜像很麻烦,太多需要设置了。
回复 支持 反对

使用道具 举报

发表于 2024-9-29 12:20:16 来自手机浏览器 | 显示全部楼层
这个太复杂了
回复 支持 反对

使用道具 举报

发表于 2024-9-29 17:55:54 | 显示全部楼层
很详细,学习了,请问从编译到打包,总共大约要多长时间
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-30 10:06:39 | 显示全部楼层
asmer 发表于 2024-9-29 17:55
很详细,学习了,请问从编译到打包,总共大约要多长时间

我的是13450h,笔记本。大概不到2分钟吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-30 10:07:37 | 显示全部楼层
网络孤客 发表于 2024-9-27 15:33
自己做镜像很麻烦,太多需要设置了。

确实  目前还是在学习阶段 不过最好学的话找各家都有的芯片 比如rk3399,我目前用的这个3288过气了用的人也少  
回复 支持 反对

使用道具 举报

发表于 2024-11-15 09:02:27 | 显示全部楼层
大佬,我为了内核支持Docker需要开一个 CGROUP_BPF 老是开不成功,你知道是哪一个吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-3 05:22 , Processed in 0.218401 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表