Yocto配置KERNEL_SRC从本地Git服务器拉取源码遇权限问题
Yocto拉取本地Git内核源码权限拒绝问题解决
问题根源
你在终端用当前用户能正常拉取,但Yocto构建时bitbake是用构建专用用户(比如默认的build用户)运行的——你给当前用户配置的SSH公钥,对这个构建用户无效,所以触发权限拒绝。
解决步骤
切换到构建用户
如果你用的是Yocto默认的build用户,执行:su - build要是你用自己的用户做构建,跳过这步,但得确认
bitbake运行时的用户身份。给构建用户配置SSH免密登录
在构建用户的会话里,生成公钥并同步到Git服务器:ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa ssh-copy-id git@192.168.30.58执行完测试下:
ssh git@192.168.30.58确保不用输密码就能连上。
确认配方里的
KERNEL_SRC配置
保持SSH格式的写法即可:KERNEL_SRC = "git@192.168.30.58:/home/git/linux-imx"需要指定分支的话,再加一行:
KERNEL_BRANCH = "你的分支名"清理缓存后重新构建
之前的失败缓存可能残留,先清掉再重试:bitbake -c cleansstate virtual/kernel bitbake virtual/kernel
额外检查项
- 查看构建用户的
~/.ssh/config,别让里面的配置覆盖了Git服务器的SSH规则 - 确认Git服务器上
/home/git/linux-imx仓库的权限,保证git用户有读取权限
内容的提问来源于stack exchange,提问作者Bybit360
相关产品推荐
相关产品推荐

