Corrector: TinyCorrect v0.2-rc2 - [tounix spaces header]
Author: 柴子轩 [email protected]
Date: 2024/09/27
Revisor: falcon falcon@tinylab.org
Project: RISC-V Linux 内核剖析
Sponsor: PLCT Lab, ISCAS
本周继续连载 TinyBPT 系列文章,记得收藏分享+关注,合集:https://tinylab.org/riscv-linux
零门槛转战 RISC-V + 嵌入式 Linux,跟上泰晓科技的 B 站公开课,备一支 RISC-V 实验箱走起:https://tinylab.org/tiny-riscv-box
TinyBPT 和面向 buildroot 的二进制包管理服务(3):服务端说明
前言
TinyBPT (Tiny Buildroot Packaging Tool) 是一个 buildroot 的包管理工具,主要处理 buildroot 的包依赖关系,提供包的安装、卸载等功能。
本文档主要介绍为了向 TinyBPT 提供服务,服务端的配置和使用。
在服务器端配置 buildroot 源码
使用工具 tsumugu 来更新源
wget https://github.com/taoky/tsumugu
配置运行脚本:
RUST_LOG=Error /usr/local/bin/tsumugu sync --parser lighttpd http://sources.buildroot.net /mnt/tank2/buildroot
在网页设置中添加定时任务,每天更新一次,并将其路径展示在网页上,以 nginx 为例:
server {
···
location ~* ^/(bmclapi|ubuntu|centos|debian-security|debian|archlinux|archlinuxcn|debian-nonfree|gentoo|manjaro|opensuse|ubuntukylin|wepe|cygwin|debian-cd|debian-multimedia|deepin-cd|openeuler|rpmfusion|ubuntukylin-cdimage|almalinux|buildroot|buildroot-pkgs|epel|rocky|radxa-apt|debian-ports) {
include /etc/nginx/config.d/backend.conf;
include /etc/nginx/config.d/cache.conf;
}
···
二进制包
二进制包源
目前,二进制包在 https://mirrors.lzu.edu.cn/buildroot-pkgs
已经开始提供。
目录结构
buildroot/ -- 源码镜像,直接镜像 buildroot 官方所有包的源码库
buildroot-pkgs/ -- 二进制包发布目录
riscv64/ -- 处理器架构,独立的话方便第三方镜像
main/2024.02.6/ -- main 用于存放所有 buildroot lts 版本的二进制包(动态编译)
tools/v6.10/ -- tools 用于存放 Linux lts 内核版本下的 tools 二进制包(以静态编译)
rootfs/<version>/ -- rootfs 用于存放 rootfs 包,以及相应的编译配置文件
- rootfs-xxx.tar.gz
- rootfs-xxx.config
tinybpt/
tinybpt-v0.1.0.tar.gz -- tinybpt 二进制包
aarch64/
main/2024.02.6/
tools/v6.10/
x86_64/
main/2024.02.6/
tools/v6.10/
编译选项
如果要自行编译,编译配置在 TinyBPT 仓库的 /web/settings/.config
中(后续计划连同 rootfs 一起发布),使用编译配置替换原有配置,或使用 make menuconfig
自行勾选需要编译的包。
cd buildroot
make -j$(nproc)
二进制包的发布
完成后,进入 output/build
目录,运行 web/script/install.sh
脚本,将编译好的二进制包打包到 /mnt/tinybpt
目录下。
将打包目录下的所有文件名列出到 deploy-pkgs-version.txt
文件中,确保已有依赖文件 packages.json
也在运行目录下,运行 web/script/compare.py
脚本和 web/script/del.py
脚本,对比和删除不必要的包,更新依赖文件。
注意:二进制包的编译和发布方式会导致某些包无法编译,原因在于目录结构不同等。
提醒事项
为了解决编译中的问题,我们需要在编译前进行一些配置,例如目前已发现的:
-
Buildroot 无法编译 host-heimdal ,问题是 heimdal 的配置脚本使用了已被删除的变量,需要手动修改,在 buildroot-2024.02.6/package/heimdal/heimdal.mk
文件中,将ac_cv_sys_large_files=1 ac_cv_sys_file_offset_bits=64
添加到HOST_HEIMDAL_CONF_ENV
变量中。
软件源码包大小约为 468 GB。
编译后的 RISC-V 二进制包大小约为 12 GB。
参考资料
-
TinyBPT
首发地址:https://tinylab.org/tinybpt-server-usage
技术服务:https://tinylab.org/ruma.tech
左下角 阅读原文 可访问外链。都看到这里了,就随手在看+分享一下吧
原文始发于微信公众号(泰晓科技):TinyBPT 和面向 buildroot 的二进制包管理服务(3):服务端说明
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论