使用bitbake构建Yocto core-image-minimal时遇权限错误求助
Yocto构建core-image-minimal常见问题排查方案
一、linux-yocto源码获取失败警告的排查
- 核对
local.conf中的SRC_URI配置:确认linux-yocto的git源地址正确,可替换为官方稳定源:SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH}" - 配置网络代理:若处于受限网络环境,在终端执行
export http_proxy=http://your-proxy:port和export https_proxy=https://your-proxy:port后启动构建,或在local.conf中添加BB_ENV_EXTRAWHITE += "http_proxy https_proxy"让bitbake识别代理变量 - 修复源码目录权限:执行
sudo chown -R $USER:$USER build/downloads,确保当前用户对下载目录有读写权限,且禁止用root用户执行bitbake - 清理缓存重试:执行
bitbake -c cleanall linux-yocto删除组件缓存后重新构建
二、do_package阶段PermissionError(Errno 13)的解决
针对netbase、update-rc.d、base-files等组件的权限问题:
- 切换至普通用户构建:绝对避免用root身份运行bitbake,Yocto构建依赖特定用户权限的文件系统操作,root会导致权限链混乱
- 修复临时目录权限:执行
sudo chown -R $USER:$USER build/tmp,确保build/tmp/deploy等包输出目录可被当前用户读写 - 强制构建使用当前用户身份:在
local.conf中添加EXTRA_OEMAKE = "USER=$USER",让打包阶段以当前用户执行操作 - 清理出错组件状态:执行
bitbake -c cleanall netbase update-rc.d base-files,清除组件的构建残留后重新运行bitbake core-image-minimal - 检查SELinux限制:若系统开启SELinux,临时执行
sudo setenforce 0关闭后重试,或添加SELinux规则允许bitbake的文件操作
内容的提问来源于stack exchange,提问作者Taurwain
相关产品推荐
相关产品推荐

