您尚未登录。

楼主 # 2021-11-13 17:13:18

SdtElectronics
会员
注册时间: 2020-07-27
已发帖子: 101
积分: 379.5
个人网站

一键生成可定制的Debian rootfs,支持riscv64

论坛之前已经有一个使用debootstrap生成Debian rootfs的教程了,但我一直使用的是一个Github上的自动生成脚本来生成,优势主要是:

  • 更方便,跑一个脚本生成直接可用的rootfs,无需更多设置

  • 包括版本和预装包都完全可定制

  • 生成的rootfs可以直接chroot进去,所需的依赖自动安装

最近给D1s定制rootfs,为了支持riscv64,我对原作者的脚本进行了一定的魔改,在此分享一下使用方法:

首先clone仓库到本地:

git clone https://github.com/SdtElectronics/debian-rootfs.git

然后安装相关依赖

apt-get install multistrap binfmt-support qemu-user-static

最后运行一条命令即可生成:

./make-rootfs.sh ARCHITECTURE

支持的ARCHITECTURE有:

amd64
arm64
armel
armhf
i386
mips
mipsel
powerpc
powerpcspe
ppc64el
s390x
riscv64

注意要是想生成riscv64的rootfs,需要改用如下命令(因为risc-v目前还在Debian port源下):

sudo ./make-rootfs.sh riscv64 multistrap_debian-ports.conf

生成的rootfs在build/目录下。
若脚本运行时出现类似错误信息:

The following signatures couldn't be verified because the public key is not available

需要手动给multistrap的文件打上这个补丁

更多信息,可以参考原仓库:
https://github.com/SdtElectronics/debian-rootfs

离线

楼主 #1 2021-11-13 17:21:26

SdtElectronics
会员
注册时间: 2020-07-27
已发帖子: 101
积分: 379.5
个人网站

Re: 一键生成可定制的Debian rootfs,支持riscv64

一些进阶用法:
更改预装包:
修改multistrap.conf中的packages字段即可。注意要生成riscv64的rootfs,需要修改的是multistrap_debian-ports.conf。
更改版本:
修改multistrap.conf中的suite字段即可。合法的值可以是版本名,或者是stable, testing和sid。注意要生成riscv64的rootfs,需要修改的是multistrap_debian-ports.conf。
异构chroot:
异构chroot所需的qemu等依赖,脚本都已经自动装好,直接chroot ./ 即可。

离线

楼主 #6 2021-11-14 19:14:26

SdtElectronics
会员
注册时间: 2020-07-27
已发帖子: 101
积分: 379.5
个人网站

Re: 一键生成可定制的Debian rootfs,支持riscv64

tigger 说:

强大!

对 qemu-user-static 版本有要求吗? 有些低版本的Ubuntu没有 riscv。

没有专门对多个qemu版本进行测试,但已知Ubuntu16.04源中的qemu在模拟aarch64平台的时候有bug,部分程序运行时会报非法指令然后退出。最好用高一点的版本。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn