【泰山派_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用户后删除原用户更改修复。
最后来个关注吧,用爱发电,造福世界!!!

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在RK3588平台上进行Android SDK编译,你可以按照以下步骤进行操作: 1. 首先,获取RK3588的Android源代码。你可以从Rockchip官方的开发者网站或者其他可靠的来源获取到源代码。 2. 安装所需的编译工具链。RK3588平台使用ARM架构,因此你需要安装相应的ARM交叉编译工具链。你可以从ARM官方网站下载并安装适用于你的操作系统的工具链。 3. 设置环境变量。将编译工具链的路径添加到系统的环境变量中,以便能够在终端中直接使用交叉编译工具。 4. 进入Android源代码目录,并运行以下命令初始化编译环境: ``` source build/envsetup.sh ``` 5. 选择要编译的目标设备。RK3588平台有多个设备配置文件可供选择,你可以使用以下命令选择其中一个: ``` lunch ``` 6. 配置编译选项。你可以通过运行以下命令来配置编译选项: ``` make menuconfig ``` 在这个菜单中,你可以选择要编译的模块、启用或禁用特定功能等。 7. 开始编译。运行以下命令开始编译Android SDK: ``` make -j4 ``` 这里的`-j4`表示使用4个线程进行编译,你可以根据你的系统配置进行调整。 8. 等待编译完成。编译过程可能需要一些时间,具体时间取决于你的系统性能和编译选项。 9. 编译完成后,在输出目录中可以找到生成的Android SDK镜像文件。你可以把这个镜像烧录到RK3588设备上进行测试和使用。 请注意,以上步骤仅提供了一个大致的编译流程,具体步骤可能因为不同的Android源代码版本和开发环境而有所差异。在实际操作中,你可能需要参考更详细的文档或向相关的开发者社区寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值