经过几天的折腾,在Manjaro下使用chroot成功构建了正点原子的imx6ull开发板编译环境,全志D1s麻雀开发板的buildroot构建环境(韦东山老师的那个),运行良好。
chroot构建相比虚拟机构建的好处主要有
1.速度更快,直接用的本机内核。
2.没有烦人的依赖关系,一个chroot镜像只为一个构建环境工作。
3.使用方便,不用像docker那样专门学命令,只需要一句sudo chroot xxx就行,而且是用的本机文件系统,更加方便,编译完成直接mv/cp出来或者建立符号链接就行。
4.资源占用少,只需要base版的系统以及为构建安装依赖软件,其他统统不需要,git、wget以及tar等都可以直接用本机的。
需要注意的有以下几点
1.ubuntu-base从18.04开始/dev下目录需要自建,可以直接复制ubuntu-base16.04的/dev目录用。
2.ubuntu-base默认检测chroot环境,非ubuntu系统使用ubuntu-base作为chroot-rootfs导致丢失path变量,需要自己设置(一个解决方案是在chroot-rootfs的/etc/bash.bashrc文件默认追加以下命令)
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
3.ubuntu-base默认没设置dns服务器,apt没法用,需要自己设置/etc/resolv.conf文件
4.别的似乎也没有什么,就是缺少一些基础软件,需要自己安装,这个建议直接用脚本记下来,装好之后直接把chroot-rootfs打包备用
记录完毕。