Page 1 of 1

第一次使用编译rootfs失败

Posted: 2024-03-30 13:10
by xiaoqian
下载的github仓库代码,没有成功执行 git 更新子模块的命令,在mk里面修改了文件系统为buildroot,编译rootfs的时候提示,请问怎么解决。编译ubuntu的时候出现问题才改为编译buildroot的
make[3]: Leaving directory '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/ncurses-6.4-20230429/misc'
make[2]: Leaving directory '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/ncurses-6.4-20230429'
rm -f -rf /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/target/usr/share/terminfo /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/target/usr/share/tabset
/usr/bin/install -D -m 0644 /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/share/terminfo/a/ansi /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/target/usr/share/terminfo/a/ansi
/usr/bin/install: cannot stat '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/share/terminfo/a/ansi': No such file or directory
make[1]: *** [package/pkg-generic.mk:388: /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/ncurses-6.4-20230429/.stamp_target_installed] Error 1
make[1]: Leaving directory '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6'
make: *** [Makefile:524: buildroot] Error 2
make: Leaving directory '/home/luckfox-pico/sysdrv'
[build.sh:error] Running build_rootfs failed!
[build.sh:error] exit code 2 from line 549:
[build.sh:info] make rootfs -C ${SDK_SYSDRV_DIR}

Re: 第一次使用编译rootfs失败

Posted: 2024-04-01 1:31
by Crocodile
xiaoqian wrote: 2024-03-30 13:10 下载的github仓库代码,没有成功执行 git 更新子模块的命令,在mk里面修改了文件系统为buildroot,编译rootfs的时候提示,请问怎么解决。编译ubuntu的时候出现问题才改为编译buildroot的
make[3]: Leaving directory '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/ncurses-6.4-20230429/misc'
make[2]: Leaving directory '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/ncurses-6.4-20230429'
rm -f -rf /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/target/usr/share/terminfo /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/target/usr/share/tabset
/usr/bin/install -D -m 0644 /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/share/terminfo/a/ansi /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/target/usr/share/terminfo/a/ansi
/usr/bin/install: cannot stat '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/share/terminfo/a/ansi': No such file or directory
make[1]: *** [package/pkg-generic.mk:388: /home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/ncurses-6.4-20230429/.stamp_target_installed] Error 1
make[1]: Leaving directory '/home/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6'
make: *** [Makefile:524: buildroot] Error 2
make: Leaving directory '/home/luckfox-pico/sysdrv'
[build.sh:error] Running build_rootfs failed!
[build.sh:error] exit code 2 from line 549:
[build.sh:info] make rootfs -C ${SDK_SYSDRV_DIR}
您好,根据您提供的打印信息,发生错误的原因是文件 “<buildroot 文件夹>/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/share/terminfo/a/ansi” 在复制到其他路径时无法找到,可能时编译过程中没有生成。
没有编译生成的原因我个人的推测是 buildroot在编译ncurses的过程中没有编译成功但是依旧在 <buildroot 文件夹>/buildroot-2023.02.6/output/build/ncurses-6.4-20230429中添加了.stamp_built标志 ,最后打算进行安装时发现缺少生成的文件,所以目前有两种方案来解决这个问题:
1.删除/buildroot-2023.02.6/output/build/ncurses-6.4-20230429中的.stamp_build 文件,重新执行./build.sh rootfs 指令,但是考虑到ncurses-6.4-20230429可能有其它库的依赖,编译失败的原因可能不是因为它,所以推荐使用第二种方案。
2.直接删除buildroot中的output文件再执行./build.sh rootfs指令,重新进行rootfs的编译

此外:考虑到您是在编译ubuntu失败后尝试进行buildroot的编译,ubuntu的编译需要使用sudo而buildroot的编译不需要,所以我觉得还存在权限不足的可能性,使用sudo来执行会导致部分生成的文件(比如描述分区信息的.env.txt)的权限无法被普通用户操作,可以尝试直接使用sudo ./build.sh 来进行整个编译过程。
如果在编译ubuntu时遇到 git 更新子模块问题可以尝试修改一下mk文件中的 git 源为 gitee,在国内使用相比 git 对网络条件的要求更低。