泰山派编译记录(buildroot和Debian)

最近买了一个泰山派来玩玩,本来以为由官方的教程编译起来会满简单的,没想到还是出现了好多问题,下面记录一下编译过程和踩过的坑。

一、SDK下载和开发环境搭建。

1.sdk下载

在下载sdk的时候就犯了一个严重的的错误,没有仔细看官方的下载前必读的文件,结果只下载了repo的压缩包,编译buildroot需要的一些bl下的文件没有下载,导致后续在编译buildroot时耽误了将近半天的时间,吸取教训吸取教训
,具体的sdk下载过程可以去看官网文档。

2.开发环境搭建

由于最近想要更深入的接触一下linux,所以搭建了一个ubuntu22.04的双系统,
一开始是打算在22.04的主机上进行编译的,但是由于在编译debian系统时live-build版本过于高级,
和其他的一些工具链不能使用,所以用官方的docker开启了一个容器。
但是在部署docker时也遇到了一个问题:

docker run --privileged --mount type=bind,source=/home/wucaicheng/gw_work/EX_DISK_A,target=/home/lckfb --name="lckfb_android11_sdk" -h lckfb -it lckfb_android11_sdk_cmp

使用这条命令在使用镜像建立容器的时候报了一个警告,大概意思就是在该系统的默认用户有问题,无法主动登陆,这个问题导致后续
无法开启容器

zgc@zgc-Nitro-AN515-58:~/data/docker_taishan$ sudo docker run --privileged --mount type=bind,source=/home/zgc/data/taishan,target=/home/  --name="lckfb_android11_sdk"  -h lckfb -it lckfb_android11_sdk_cmp
docker: Error response from daemon: unable to find user lckfb #设置docker工作目录为/home/lckfb: no matching entries in passwd file.

后续在AI的求助下增加 --user root,以root用户登陆就好了,后续就可以使用默认普通用户登陆了,
很奇怪,每怎么用过docker,不是很理解,但就是这样解决了

后续docker就没有遇到什么问题了

二、系统编译

1.buildroot系统编译,烧录

本来只是想着玩一下Debian系统的,但是由于是个新手不是很了解编译过程和配置,所以就按着官方的教程一点一点编译,先编译好buildroot系统
,然后再编译deibian,把文件系统换成Debian就好了,但是貌似我只需要先单独编译好各个模块,在编译好Debian文件系统,就可以拿到Debian
操作系统了。
在使用22.04主机编译的时候遇到了一个很奇葩的错误,使用sudo以root去编译的时候会遇到

configure 不允许以 root 用户运行

这个问题

然后不以root运行的话,会报错没有权限删除两个文件,直接就是两头冲突了,然后我就主动把两个文件删掉了,然后就可以继续编译了,
但是后续还是编译失败,然后后续换成在docker里面编译就没有这个问题了,编译buildroot也没有再遇到过什么错误了,就是正常编译烧录了

这时候烧录是把镜像拷贝到U盘上,然后切换windows烧录,很麻烦,尤其是在我没有解决ubuntu休眠的问题情况下,导致每次ubuntu都相当于重启
,很恶心。烧录过程就找着官方的教程做就好了

2. Debian系统编译,烧录

由于上面已经编译过了buidlroot系统,一些单独的模块已经编译好了,所以直接运行一下

./build.sh debian

就可以编译Debian系统了,然后正常打包起来,生成镜像。

然后运行

./build.sh updateimg

生成update镜像。
考虑到每次切换win系统都很麻烦,所以这里就使用linux下的烧录工具,官方资料里面有,也有使用文档。

这里遇到了一个问题,在使用

//烧录升级固件并重启设备
upgrade_tool uf update.img

该命令去烧录的时候会报错

Program Log will save in the /home/zgc/upgrade_tool/log/
Loading firmware...
Support Type:RK3568	FW Ver:1.0.00	FW Time:2025-01-11 13:35:27
Loader ver:1.01	Loader Time:2025-01-11 12:42:24
Segmentation fault (core dumped)

(不知道为什么3566,检测出来3568)
这个是没有权限的问题,我就直接简单粗暴的提升权限

sudo chmod -R 777 /dev/bus/usb/

然后就可以烧录啦。
这个在结束后的一段时间内笔记本的风扇还是一直在转,使用top命令,发现该工具依然占据cpu 99,5%,不知道为什么它没有结束,还是在
一直运行,很奇怪,但是使用kill杀死它就好了

后续在linux使用ADB进行测试的时候又出现了一个错误

insufficient permissions for device: user in plugdev group; are your udev rules wrong?

经过查询貌似也是权限,和udev的问题,使用查询到的解决方案

在/etc/udev/rules.d/下建立一个文件android.rules
然后在文件中输入以下内容

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

正常使用adb,然后进入adb之后执行

apt install g++

发现是有正常反映的,那么就证明Debian系统编译完成了。

完结,撒花。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值