在前面的文章中, 我们使用sbuild创建schroot搭建riscv64的交叉编译环境,其实是ok的。但是在测试sip这个deb时遇到一点麻烦,现象是schroot只有build这个riscv arch的deb有问题,其他的deb没有问题。但是,为了修复这个问题,schroot暂时还没有找到 如何在编译进行中查看的具体的编译产物 的方法,故这里根据 john的提示,记录下如何创建 基于qemu的sbuild.
当然,还需要参考这个教程
步骤
安装依赖环境
执行命令:
创建riscv的chroot->rootfs
执行这一步时,一定把路径cd 到/srv/chroots
下面,当然,不进入那里面问题也不大,只能在当前目录使用吧。
参数解析:
--foreign
有的机器需要,有的机器不需要;
--arch
: Set the target architecture
--include=alpha,beta
: Comma separated list of packages which will be added to download and extract lists.
上面的命令得执行一段时间,然后最后就可以看见如下的提示:
这个时候就会在 /srv/chroots 目录下创建了一个 名为sid-riscv64-sbuild
的rootfs。
添加用户成为sbuild的一员:
将qemu的静态可执行程序移动到对应的rootfs中:
进入chroot进行验证:
修改配置文件
修改(riscv)和sid的源
然后就可以chroot这里面做相应的打包测试了。
编译riscv debian packages
chroot下build
因为整个arch为riscv所以可以直接在chroot中直接使用相关的编译命令。
如果source code已经有了完整了 debian/
目录,我们可以直接使用以下命令:
这个过程中,提示缺少啥就安装啥就可以。
在chroot内部执行编译命令,哪里都好就是速度太慢,巨慢的那种。
使用sbuild
上面的基本环境搭建好之后,就可以进行相关的测试了。
首先使用apt source
命令,下载你要移植的包,比如这个 tbb