泰山派开辟之—Ubuntu24.04下Linux开辟情况搭建

[复制链接]
发表于 2025-10-15 22:05:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
简介

迩来翻到了吃灰已久的泰山派,是刚出来的时间用优惠券买的,当时代价挺自制的,迩来给它翻出来了,计划试试做个项目。买的泰山派容量是2G+16G,SOC芯片利用的是RK3566,搭载1TOP算力的NPU,而且具有丰富的接口,详细参数如下:

官方的参考文档如下:https://wiki.lckfb.com/zh-hans/tspi-rk3566/
由于官方给的是基于Ubuntu18.04的开辟情况搭建步调,然而Ubuntu现在稳固版已经出到了24.04,重新专门为它安装一个18.04版本的体系显然不符合。因此,在这里记载了一下基于Ubuntu24.04举行泰山派Linux开辟情况搭建的步调。
情况准备


  • Ubuntu24.04
  • 泰山派
  • tspi_linux_sdk_repo_20240131.tar.gz
  • buildroot_dl_4c7c9df616fb.tar.gz
python2安装

由于python2现在官方已经竣事支持,Ubuntu24.04中已经不再默认安装python2了。然而泰山派的SDK编译依然要用到python2,因此我们这里起首举行python2的安装。
安装python2.7


起首运行如下下令,举行体系的更新。
  1. sudo apt update && sudo apt upgrade
复制代码
之后安装相干依赖
  1. sudo apt install -y build-essential checkinstall libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev
复制代码
然后我们下载python2的安装包,这里我选择的是2.7.18版本,也是python2的末了一个版本。
下载页面:https://www.python.org/downloads/release/python-2716/
下载链接:https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
下载完成后,我们对压缩包举行解压
  1. tar -xvf Python-2.7.18.tgz
复制代码
之后,我们进入解压后的目次,查抄依赖项和编译器设置,利用configure下令天生 Makefile 文件,而且利用CFLAGS=-fPIC设置编译器天生位置无关的代码,否则大概会报错
  1. cd Python-2.7.18
  2. ./configure --enable-optimizations CFLAGS=-fPIC
复制代码
在完成上述准备后,我们就可以大概实行如下下令举行编译安装了
  1. sudo make altinstall
复制代码
此中altinstall可以包管不会覆盖体系默认的 python 下令,从而制止影响体系自带的python3。
末了,我们利用whereis下令,检察安装好的pyhon2.7的路径
  1. whereis python2.7
复制代码

可以看到我们的python2.7
已经乐成安装到了/usr/local目次下。
下面我们运行如下下令,进入到python情况中,测试python2.7
是否可以大概正常利用
  1. python2.7
复制代码

可以看到我们的python2.7
已经可以大概正常运行。
pip安装

现在我们仅仅是安装了python2.7
本体,尚有许多python的功能包须要利用pip工具举行安装。接下来我们就来安装python2.7
的pip工具,运行下令如下:
  1. sudo apt install curlcurl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.pysudo python2.7
  2. get-pip.py
复制代码
安装完成后,我们运行如下下令举行测试
  1. pip2.7 --version
复制代码
添加python2软链接

固然我们上面完成了python2.7
的安装,但是体系默认依然还是python3。

我们还须要利用如下下令添加软毗连,使得python3和python2分别对应差异版本的python
  1. sudo ln -s /usr/local/bin/python2.7
  2. python2
复制代码
此中的/usr/local/bin/python2.7
对应于你自己实际的python2.7
安装路径
SDK编译

解压SDK

起首运行如下下令,解压下载的SDK压缩包
  1. tar -xvzf tspi_linux_sdk_repo_20240131.tar.gz
复制代码
之后运行如下下令,举行同步
  1. .repo/repo/repo sync -l -j88
复制代码
同步完成后,会出现如下successfully界面

dl库替换

由于buildroot编译时须要下载许多库,而如果网络不好的话,大概会出现buildroot的库下载失败报错的标题,因此我们利用了立创提供的已经下载好的库,直接举行更换即可。
起首将buildroot_dl_4c7c9df616fb.tar.gz复制到SDK目次中,并运行如下下令,解压buildroot_dl_4c7c9df616fb文件到buildroot/dl目次下
  1. tar -xzf buildroot_dl_4c7c9df616fb.tar.gz
复制代码
解压完成后,buildroot/dl目次下的部分文件展示如下:

编译准备

在完成上述步调后,我们就可以大概举行编译情况的安装了。
安装情况依赖

起首运行如下下令,安装编译情况所须要的依赖。
  1. sudo apt install -y git make openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libgl1-mesa-dev gcc-multilib g++-multilib libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libxml2-utils xsltproc unzip bc imagemagick ccache schedtool libssl-dev clang
  2. sudo apt-get install whiptail ssh libssl-dev liblz4-tool expect patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev
复制代码
板级设置

运行如下下令举行泰山派SDK的板级设置,并在弹出来的选项卡中选择BoardConfig-rk3566-tspi-v10.mk
  1. ./build.sh lunch
复制代码

编译buildroot体系

在完成以上准备后,我们就可以大概编译buildroot体系了。
由于buildroot中利用的python3.8.6,因此我们在编译时也必须利用python3.8情况才华正常举行,否则在编译时大概会报错

这里我们利用pyenv工具,安装python3.8.19并使其见效。
  1. pyenv install 3.8.19
  2. pyenv local 3.8.19  # 仅当前目录生效
复制代码
之后须要设置情况变量RK_ROOTFS_SYSTEM为buildroot
  1. export RK_ROOTFS_SYSTEM=buildroot
复制代码
为制止编译buildroot时报错multiple definition of bwriter_buffer,可以将如下代码添加到buildroot/package/squashfs/0001-include-sysmacros.patch文件的末了(未验证是否为必须步调)
  1. diff -ruN squashfs-3de1687d7432ea9b302c2db9521996f506c140a3/squashfs-tools/mksquashfs.h squashfs-3de1687d7432ea9b302c2db9521996f506c140a3-patch/squashfs-tools/mksquashfs.h
  2. --- squashfs-3de1687d7432ea9b302c2db9521996f506c140a3/squashfs-tools/mksquashfs.h       2015-12-07 09:42:03.000000000 +0800
  3. +++ squashfs-3de1687d7432ea9b302c2db9521996f506c140a3-patch/squashfs-tools/mksquashfs.h 2025-01-02 16:59:52.994326895 +0800
  4. @@ -133,7 +133,7 @@
  5. #define BLOCK_OFFSET 2
  6. extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
  7. -struct cache *bwriter_buffer, *fwriter_buffer;
  8. +extern struct cache *bwriter_buffer, *fwriter_buffer;
  9. extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
  10.         *to_frag, *locked_fragment, *to_process_frag;
  11. extern struct append_file **file_mapping;
复制代码
末了运行如下下令,举行全编译。
  1. ./build.sh all
复制代码
如果只编译(u-Boot,kernel,Rootfs,Recovery),则在编译完成以后还须要再执⾏./mkfirmware.sh
进⾏固件打包,与./build.sh updateimg
天生镜像,否则rockdev目次下天生img镜像不是最新的。
电源设置

在初次举行编译时,会碰到电源设置选项。这里除了VCCIO4和VCCIO6选1.8V其他都选3V3。如果没有弹出电源选择框,则须要安装sudo apt install whiptail后再重新举行编译。






在Ubuntu24.04情况下,大概会在编译完kernel或buildroot后制止而且无报错信息,这时只须要重新实行build下令即可。
编译乐成后的输出如下:

打包固件

之后运行如下下令举行固件打包
  1. ./mkfirmware.sh
复制代码

运行如下下令检察固件,可以看到固件已经是最新的了。
  1. ls ./rockdev -l
复制代码

打包镜像

天生的固件是零散的,而且未便于下载,因此我们可以利用如下下令将打包好的固件天生一个update.img镜像,便于后续的镜像下载。
  1. ./build.sh updateimg
复制代码

实行完毕后,就可以大概在rockdev天生update.img镜像文件了。
小结

至此,我们就完成了Ubuntu24.04情况下泰山派的SDK搭建。此中最值得注意的是在Ubuntu24.04情况下实行build下令大概会不测制止,如果未出现error报错,则无需实行clean操纵,只需直接重新实行build下令即可。如许可以制止全量编译,从而大幅收缩构建时间,尤其是buildroot根文件体系的编译过程,由于它须要对全部功能包逐一编译,极为耗时。下一博客中,我们将先容如安在linux下举行固件的烧录。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表