【泰山派_RK3566学习记录】之Linux系统sdk编译——Ubuntu

**

一.前言

**
入手拿到rk3566这块板子后,默认是Android系统,程序存储在emmc(ROM)中。
开机可自检功能是否正常等等。
下载相关资料SDK等等,再安装虚拟机编译(建议使用虚拟机,双系统用了后比较麻烦,但编译速度较快)按照官方流程编译基本不会出错。
关于buildroot,debian,Ubuntu。这三个都是Linux的发行版本。
1.差异
既然都是发行版本那么其差异呢,在于rootfs根文件系统,三者区别就在于此,可以通过单独烧录rootfs来切换版本。如下图所示:
在这里插入图片描述

那么问题来了,根据官方的文档,我们是没有Ubuntu系统编译的,该怎么做呢?
通常的方法是这样的:
1.下载要移植的发行版本bash包对于Ubuntu来说通常可以从国内各个镜像源找到对应的版本或者从官网下载
地址 > http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/
2.在足够空间(至少10G)的位置创建文件夹
mk dir XXX
这里用temp来代替

mkdir temp

3.解压到Linux PC端中刚创建的文件(不是泰山派/目标机),
命令如下:

tar -xpf ubuntu-base-18.04.5-base-arm64.tar.gz -C temp/

4.安装模拟器
主要思路是用性能强的电脑PC模拟出开发板系统,挂载Ubuntu,再进行客制化修改(如下载桌面版,vim等等)。
这里安装的是qemu模拟器,无法安装的同学记得换源与更新,这里就不教学了

sudo apt-get install qemu-user-static

5.准备网络
我们的模拟器是没有网络的,所以我们要复制系统网络配置,来让模拟器能够上网

cp -b /etc/resolv.conf temp/etc/resolv.conf

6.配置模拟器

 cp /usr/bin/qemu-aarch64-static temp/usr/bin/

7.准备挂载脚本
创建一个sh文件,以方便我们挂载要移植的系统
vim能够创建没有的文件

vim rootfs-mount.sh

将下方代码按I复制进去 然后ESC,之后输入:wq保存退出.

#!/bin/bash
 
function mnt() {
    echo "MOUNTING"
    sudo mount -t proc /proc ${2}/proc
    sudo mount -t sysfs /sys ${2}/sys
    sudo mount -o bind /dev ${2}/dev
 
    sudo chroot ${2}
}
 
function umnt() {
    echo "UNMOUNTING"
    sudo umount ${2}/proc
    sudo umount ${2}/sys
    sudo umount ${2}/dev
 
}
 
 
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
    mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
    umnt $1 $2
else
    echo ""
    echo "Either 1'st, 2'nd or both parameters were missing"
    echo ""
    echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
    echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
    echo ""
    echo "For example: ch-mount -m /media/sdcard/"
    echo ""
    echo 1st parameter : ${1}
    echo 2nd parameter : ${2}
fi

8。添加权限
脚本运行需要诸多权限

 sudo chmod +x rootfs-mount.sh

9.挂载系统

sudo bash rootfs-mount.sh -m temp

9.1补充:若是加下来报错就输入下方代码,具体作用作者目前还不清楚,也是入门的记录教程


Get:4 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease [88.7 kB]
0% [1 InRelease gpgv 242 kB]gpgv: Signature made Thu Apr 26 23:38:40 2018 UTC
gpgv:                using RSA key 3B4FE6ACC0B21F32
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key (2012) 
autolinkftpmaster@ubuntu.comautolink
"
terminate called after throwing an instance of 'std::runtime_error'
  what():  random_device::random_device(const std::string&)
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted (core dumped)

10.更新
记得换源,操作教程都很多

 apt-get update
apt upgrade

11.客制化安装功能:
若是无法安装记得 sudo提供权限
推荐必安:

apt install vim
apt install git
apt-get install  ssh
apt-get install  ethtool
apt-get install  rsyslog
apt-get install  bash-completion
apt-get install  htop
apt-get install  net-tools
apt-get install  wireless-tools
apt-get install  network-manager
apt-get install  iputils-ping

 Ubuntu桌面版本:
 apt-get install xubuntu-desktop
 
--------下面建议必须装---------
apt-get install  vim
#语言包
apt-get install  language-pack-en-base
#这个必须要否则无法生成/etc/network/interfaces配网文件
apt-get install  ifupdown
#ping
apt-get install inetutils-ping
#串口
apt-get install cutecom
#录音
apt-get install audacity
#摄像头
apt-get install v4l-utils
apt-get install cheese
#浏览器
apt-get install chromium-browser
wifi
apt-get install wpasupplicant

配置网络:

vim /etc/network/interfaces
source-directory /etc/network/interfaces.d
#以太网
auto eth0
iface eth0 inet dhcp
#wifi
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_config.conf
vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114

12.添加用户

添加用户XXX为普通用户名自己改

 useradd -s '/bin/bash' -m -G adm,sudo XXX 

添加密码

 passwd tspi

很重要!!涉及到可能的bug 要记得密码

/# passwd root

退出

exit
sudo bash rootfs-mount.sh -u temp

13.制作根文件系统
查看ROOTFS(根文件系统)大小

sudo du -h --max-depth=1

通常设为6g+,但如果是带桌面建议设置为10g
制作自己的根文件系统,大小依据自己的根文件系统而定,注意依据 temp 文件夹的大小来修改 count 值,因为我们这里的大小为3.5G所以count=5000*bs=1M保证大于我们的temp

mkdir  rootfs
dd if=/dev/zero of=linuxroot.img bs=1M count=6000
mkfs.ext4 linuxroot.img
sudo mount linuxroot.img rootfs/
sudo cp -rfp temp/*  rootfs/
sudo umount rootfs/
e2fsck -p -f linuxroot.img
resize2fs  -M linuxroot.img

linuxroot.img就是最终的镜像文件了
烧录时单独替换根文件系统就行了,即rootfs
在这里插入图片描述

可能出现的bug:
开机后输入用户与密码后无限循环:
可通过切换登录root用户后删除原用户更改修复。
最后来个关注吧,用爱发电,造福世界!!!

<think>好的,用户想为泰山RK3566芯片编译Buildroot,我需要根据提供的引用资料来整理步骤。首先,引用1提到需要编译SDK,而引用2和3也涉及到了编译和烧录的过程。用户的问题集中在Buildroot的编译方法,所以我需要结合这些信息。 首先,我需要确认泰山SDK是否包含Buildroot部分。根据引用2中的步骤,解压buildroot文件可能是SDK的一部分,所以可能需要先同步或下载SDK。引用1提到直接下载系统镜像,但开发需要编译SDK,所以用户需要先获取SDK源码。 然后,步骤可能包括环境配置、同步代码库、解压依赖包(比如buildroot_dl的tar包),然后进行全编译。引用2提到权限问题,需要提醒用户注意解压后的权限设置,可能使用chmod命令。另外,板子的文档(引用3)可能提供了具体的配置方法,比如网络连接或镜像烧录,但用户现在关注的是编译Buildroot,所以重点放在编译步骤。 需要注意的是,用户可能需要安装一些依赖工具,比如git、tar、make等。同时,编译过程中可能遇到权限问题,需要按照引用2中的方法处理。最后,生成镜像后可能需要烧录到板子上,但用户的问题主要是编译,所以这部分可能作为后续步骤提及。 总结步骤应该是:准备环境、获取SDK、解压buildroot依赖、处理权限、配置Buildroot、编译,最后生成镜像。同时,需要提醒用户参考官方文档(引用3)获取详细配置。可能还需要注意路径是否正确,以及编译命令的具体参数。</think>以下是基于泰山RK3566芯片使用Buildroot进行系统编译的步骤指南,结合了官方文档和社区实践经验: 1. **环境准备** - 安装Ubuntu 20.04/22.04系统(推荐物理机或虚拟机) - 安装必要依赖项: ```bash sudo apt-get install git make gcc g++ bison flex libssl-dev ``` 2. **获取SDK源码** - 通过repo工具同步代码仓库: ```bash repo init -u https://gitlab.com/t-chip-sdk/rockchip/manifests.git -b master repo sync -j$(nproc) ``` 该操作会获取包含Buildroot配置的完整SDK[^1] 3. **解压Buildroot依赖包** - 进入SDK目录后解压预编译组件: ```bash cd buildroot tar -xzf buildroot_dl_4c7c9df616fb.tar.gz chmod -R 755 buildroot_dl # 解决后续可能出现的权限问题[^2] ``` 4. **配置编译选项** - 选择RK3566默认配置: ```bash make rockchip_rk3566_defconfig ``` - 可通过`make menuconfig`自定义软件包(需熟悉Buildroot配置体系) 5. **执行全量编译** - 启动多线程编译: ```bash make -j$(nproc) all ``` - 编译完成后,镜像文件生成在`output/images/`目录下 6. **镜像烧录验证** - 使用RKDevTool将生成的`rockchip.img`写入开发板[^3] - 通过串口终端验证系统启动情况
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值