Fireflyrk3288 ubuntu18.04添加Qt开发环境、安装mysql-server

1、创建一台同版本的ubuntu18.04的虚拟机

2、下载rk3288_ubuntu_18.04_armhf_ext4_v2.04_20201125-1538_DESKTOP.img

3、创建空img镜像容器

bash 复制代码
dd if=/dev/zero of=ubuntu_rootfs.img bs=1M count=10240

4、将该容器格式化成ext4文件系统

bash 复制代码
mkfs.ext4 ubuntu_rootfs.img

5、将该镜像文件挂载到一个rootfs文件夹上,然后将ubuntu_base_rootfs的文件复制到rootfs文件夹中

bash 复制代码
mkdir rootfs
sudo mount ubuntu_rootfs.img rootfs
mkdir ubuntu_base_rootfs
sudo mount rk3288_ubuntu_18.04_armhf_ext4_v2.04_20201125-1538_DESKTOP.img ubuntu_base_rootfs
sudo cp -rfp ubuntu_base_rootfs/* rootfs/

6、安装 qemu,对任何机器运行操作系统的全系统仿真。

qemu 是一个通用的、开源的机器仿真器和虚拟机,拷贝它是为了可以模拟 arm cpu 进行文件系统的配置。

bash 复制代码
sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/

7、复制虚拟机的dns文件到rootfs系统内

bash 复制代码
echo 'nameserver 114.114.114.114' >> rootfs/etc/resolv.conf
echo 'nameserver 8.8.8.8' >> rootfs/etc/resolv.conf
echo 'DNS=114.114.114.114 8.8.8.8' >> rootfs/etc/systemd/resolved.conf

8、挂载ubuntu-base

编写挂载脚本

bash 复制代码
#!/bin/bash
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 mount -o bind /dev/pts ${2}dev/pts
	sudo chroot ${2}
}
umnt() {
	echo "UNMOUNTING"
	sudo umount ${2}proc
	sudo umount ${2}sys
	sudo umount ${2}dev/pts
	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

9、增加脚本执行权限

bash 复制代码
sudo chmod +x mount.sh

10、运行脚本挂载根文件系统

bash 复制代码
bash mount.sh -m rootfs/

11、装软件

bash 复制代码
mkdir /tmp
chmod 777 /tmp

apt update
apt install -y gcc-7
apt install -y build-essential

apt install -y git

apt install -y libgmp-dev libudev-dev
apt install -y libusb-1.0-0 libusb-1.0-0-dev libhidapi-dev libhidapi-libusb0

apt install -y qt5-default
apt install -y libqt5* qtmultimedia5-dev qtcreator qtconnectivity5-dev 

apt install -y mysql-client mysql-common mysql-server

ln -s /usr/lib/arm-linux-gnueabihf/libMali.so /usr/lib/arm-linux-gnueabihf/libmali.so.1  

12、配置SSH允许root用户登录

bash 复制代码
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
passwd root

13、设置NTP服务器

bash 复制代码
echo "NTP=ntp1.aliyun.com ntp.neu.edu.cn" >> /etc/systemd/timesyncd.conf

14、设置中文

bash 复制代码
 echo 'LANG="zh_CN.utf8"' > /etc/default/locale
 apt install -y language-pack-zh-hans

15、修改状态栏在底部,修改/usr/share/lxpanel/profile/Lubuntu/panels/panel,把edge=top改为

bash 复制代码
Global {
    edge=bottom

16、卸载镜像

bash 复制代码
bash mount.sh -u rootfs/

17、替换桌面背景和图标

bash 复制代码
 cp desktop_imgs/lubuntu-ff-logo.png rootfs/usr/share/lubuntu/images/lubuntu-ff-logo.png
 cp desktop_imgs/firefly-default-wallpaper.png rootfs/usr/share/lubuntu/wallpapers/firefly-default-wallpaper.png

18、用e2fsck修复及检测镜像文件系统,resize2fs 减小镜像文件的大小

bash 复制代码
sudo umount rootfs
bash 复制代码
e2fsck -p -f ubuntu_rootfs.img
resize2fs -M ubuntu_rootfs.img
相关推荐
哈哈浩丶8 分钟前
存储相关知识②—eMMC协议
linux·驱动开发·emmc
geshifei9 分钟前
Sched_ext 回调深度解析(一):init_task —— 每个任务走进调度器的第一道门(6.18.26)
linux·ebpf
没文化的阿浩21 分钟前
【Linux系统】Ext系列文件系统
linux·运维·电脑
红茶要加冰26 分钟前
九、文本处理三剑客——sed
linux·运维·服务器·正则表达式·shell
落羽的落羽31 分钟前
【项目】C++从零实现JsonRpc框架——项目引入
linux·服务器·开发语言·c++·人工智能·算法·机器学习
菜_小_白41 分钟前
tcpdump
linux·网络·测试工具·http·tcpdump
zzzsde1 小时前
【Linux】线程概念与控制(3):线程ID&&C++封装线程
linux·运维·服务器·开发语言·算法
yqcoder1 小时前
TypeScript 进阶:如何精准获取对象的所有 Key?
javascript·ubuntu·typescript
消失的旧时光-19431 小时前
C 语言如何实现“面向对象”?—— 从 struct + 函数指针,到 Linux 内核设计思想
linux·c语言·开发语言
不做无法实现的梦~1 小时前
Linux 新手到日常运维操作指南
linux·运维·服务器