联系管理员

开通文章发布权限

扫码 添加微信
微信图片
电话: QQ:1602036736

立创泰山派linux sdk在Ubuntu22.04上构建报错解决方法记录

遇到第一个错误。缺少python2。
图片#B #S #R #60% #auto

先看下python2这个命令是否存在。然后看下python命令默认调用的哪个。再看下python3是否存在。最后确认下系统内和python相关的命令都有哪些。

python2 --version
python --version
python3 --version
ls /usr/bin/python*

这里的ls命令是列出目录下的子目录和文件,/usr/bin/python* 是指以python为前缀的所有文件和目录,* 在这里表示通配符。/usr目录是通常我们安装软件的默认路径,bin表示二进制可执行文件目录。

这里可以看到,ubuntu22.04系统里,默认装的是python3,且不存在一个名叫python的可执行文件。但是我们的构建脚本需要用它,所以就报错了。

图片#B #S #R #60% #auto

手动装一个吧。就用python2.7版本吧。然后创建名为python的软链接,类似于Windows下的快捷方式。软链接指向python2.7。
在/usr/bin下创建文件需要root权限。ln表示创建链接文件,-s 软链接。前面那个路径是目标文件,后面那个路径是新文件。

sudo apt install python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python2

图片#B #S #R #60% #auto

现在python2命令已经默认代表python2.7了。

图片#B #S #R #60% #auto

继续构建。遇到第二个问题。缺少bc命令。

图片#B #S #R #60% #auto

直接装,装完继续构建。

sudo apt install bc
./build.sh all

图片#B #S #R #60% #auto

 

遇到第三个问题,这次是python命令找不到了。
这里就像第一个问题一样,创建名为python的新软链接,这次指向python3。

sudo ln -s /usr/bin/python3.10 /usr/bin/python

这里问题的原因是,tspi文档中是以Ubuntu18.04为例的,18.04中默认的python是python2.7,而我们现在用的python22.04默认用的是python3.10。python2到python3有大改动。部分语法不兼容。tspi的sdk是由多个不同的项目组合而成的,比如这里用于构建根文件系统和标准库文件的buildroot项目、用于构建引导启动程序的uboot项目、用于Linux核心支持的Linux-kernel项目。这里面python主要作脚本,不同模块需要的python版本可能不一致,所以脚本编写者用python2和python(指python3)来做区分。

图片#B #S #R #60% #auto

搞完继续构建。遇到第四个报错。还是缺命令。装。装完继续构建。

./build.sh all
sudo apt install time
./build.sh all

图片#B #S #R #60% #auto
图片#B #S #R #60% #auto

好。这里遇到了第一个稍微复杂点的错误。

图片#B #S #R #60% #auto

从这里看不出什么明显痕迹,往上翻,找到第一行标红的地方。

图片#B #S #R #60% #auto

打开这个日志文件,看下详细报错。

图片#B #S #R #60% #auto

缺个文件,下载。下完继续编。

sudo apt install file
./build.sh all

图片#B #S #R #60% #auto
图片#B #S #R #60% #auto
又说缺rsync,下,下完继续编。

sudo apt install rsync -y
./build.sh all

图片#B #S #R #60% #auto

然后报错:

configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check

解决方案:
既然root下make不行,那就不用sudo make,直接用make。直接make遇到dl目录下创建目录失败报mkdir: cannot create directory ‘…’: Permission denied。命令行执行sudo chmod -R 777 你的目录/dl,然后make即可解决。

出现这样的画面就是正在下载三方库(软件)源码了。这个过程会很漫长。
图片#B #S #R #60% #auto

又报错了,还是缺命令。下,下完继续。查了下,这命令是bzip2里的,不是bzcat。

sudo apt instal bzip2 -y
./build.sh all

图片#B #S #R #60% #auto
图片#B #S #R #60% #auto

唉......有报错,浏览器搜一下,有现成的解决方法。
Ubuntu22编译rk3566 buildroot报错 multiple definition of `fwriter_buffer‘; mksquashfs.o:(.bss+0x200180):_unbantu22 mksquashfs.o在哪-CSDN博客

 

图片#B #S #R #60% #auto


照着做吧。下面diff开头的复制到这个patch文件里。然后把里面的host-squashfs目录删了。
然后继续编。

vim buildroot/package/squashfs/0001-multiple-definition.patch
rm buildroot/output/rockchip_rk3566/build/host-squashfs-3de1687d7432ea9b302c2db9521996f506c140a3 -rf
./build.sh all
diff -ruN squashfs-3de1687d7432ea9b302c2db9521996f506c140a3/squashfs-tools/mksquashfs.h squashfs-3de1687d7432ea9b302c2db9521996f506c140a3-patch/squashfs-tools/mksquashfs.h
--- squashfs-3de1687d7432ea9b302c2db9521996f506c140a3/squashfs-tools/mksquashfs.h       2015-12-07 09:42:03.000000000 +0800
+++ squashfs-3de1687d7432ea9b302c2db9521996f506c140a3-patch/squashfs-tools/mksquashfs.h 2025-01-02 16:59:52.994326895 +0800
@@ -133,7 +133,7 @@
 #define BLOCK_OFFSET 2
 
 extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
-struct cache *bwriter_buffer, *fwriter_buffer;
+extern struct cache *bwriter_buffer, *fwriter_buffer;
 extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
        *to_frag, *locked_fragment, *to_process_frag;
 extern struct append_file **file_mapping;

图片#B #S #R #60% #auto

图片#B #S #R #60% #auto
这样就是编好了。
图片#B #S #R #60% #auto

评论

快捷导航

把好文章收藏到微信

打开微信,扫码查看

关闭

还没有账号?立即注册