您尚未登录。

楼主 # 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 ./ 即可。

离线

#2 2021-11-13 17:33:28

tigger
Moderator
注册时间: 2021-06-18
已发帖子: 172
积分: 111

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

强大!

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

离线

#3 2021-11-14 09:30:35

dreamer
会员
注册时间: 2021-08-26
已发帖子: 11
积分: 8.5

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

ubuntu 18.04 安装这个包: http://ftp.br.debian.org/debian/pool/main/q/qemu/qemu-user-static_3.1+dfsg-8+deb10u8_amd64.deb

安装:

sudo apt-get install qemu-user-static_3.1+dfsg-8+deb10u8_amd64.deb

https://github.com/jubinson/debian-rootfs

好像是这个, 看起来不错。

但是

Get:1 http://ftp.ports.debian.org/debian-ports unstable InRelease [24.2 kB]
Err:1 http://ftp.ports.debian.org/debian-ports unstable InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A88D659DCB811BB
Reading package lists... Done
W: GPG error: http://ftp.ports.debian.org/debian-ports unstable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A88D659DCB811BB
E: The repository 'http://ftp.debian-ports.org/debian unstable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
apt update failed. Exit value: 100
mutltistrap with configuration file multistrap_debian-ports.conf failed

按照楼主提供的方法, 不知道怎么修改

--- multistrap	2018-11-21 11:00:46.000000000 -0300
+++ multistrap_mod	2019-05-16 15:11:44.157699994 -0300
@@ -320,7 +320,8 @@
 $config_str .= " -o Apt::Get::AllowUnauthenticated=true"
 	if (defined $noauth);
 $config_str .= " -o Apt::Get::Download-Only=true";
-$config_str .= " -o Apt::Install-Recommends=false"
+$config_str .= " -o Apt::Install-Recommends=false";
+$config_str .= " -o Acquire::AllowInsecureRepositories=yes"
 	if (not defined $allow_recommends);
 $config_str .= " -o Dir=" . shellescape($dir);
 $config_str .= " -o Dir::Etc=" . shellescape("${dir}${etcdir}");

离线

#4 2021-11-14 10:22:39

dreamer
会员
注册时间: 2021-08-26
已发帖子: 11
积分: 8.5

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

_20211114102114.png

搞定! 是patch这个文件: /usr/sbin/multistrap

离线

#5 2021-11-14 10:43:13

dreamer
会员
注册时间: 2021-08-26
已发帖子: 11
积分: 8.5

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

$ sudo chroot build/riscv64/riscv64-rootfs/
root@ubuntu:/#
root@ubuntu:/# whoami
root
root@ubuntu:/# du -sh /
364M    /
root@ubuntu:/#

折腾半小时后,终于搞定,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,部分程序运行时会报非法指令然后退出。最好用高一点的版本。

离线

#7 2021-11-14 22:41:04

sy373466062
会员
注册时间: 2018-11-12
已发帖子: 130
积分: 116

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

有何有效国内源,让apt下载的时候快一点?

离线

页脚

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

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