开发环境
实验平台:实验平台:正点原子的imx6ull-mini开发板
开发环境:正点原子RK3568的ubuntu20镜像
注意:不要用正点原子imx6ull的ubuntu16镜像,会有一些软件版本依赖问题,这个ubuntu16的有些旧了,由于imx6ull性能有限,这里移植的是没有桌面环境的debian10。
构建debian10文件系统
1.新建文件存放dedian10的源码:
mkdir debian10
cd debian10/
2.更新ubuntu的镜像源:
sudo apt update
3.安装构建debian10的工具软件:
sudo apt-get install binfmt-support qemu qemu-user-static debootstrap
4.切换root用户(切换回原来用户可以用su alientek指令)
sudo su
5.拉取debian10源码
debootstrap --arch=armhf --foreign buster root https://mirrors.tuna.tsinghua.edu.cn/debian/
命令解释:
命令参数解析:
debootstrap 是一个工具,用于在本地创建一个 Debian 或 Ubuntu 根文件系统,而不依赖目标硬件或目标环境
--arch=armhf指定目标架构为 armhf(ARM硬浮点架构)
--foreign 告诉 debootstrap 执行 分阶段安装
buster 是 Debian 10 的代号
root:要存放文件系统的文件夹
Index of /debian/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror是下载源
6.复制构建工具到源码目录
cp /usr/bin/qemu-arm-static root/usr/bin
qemu 用于模拟 arm 的环境
7.初始化debian文件系统
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot root debootstrap/debootstrap --second-stage
8.进入到初始化好的文件系统
chroot root
9.创建以下内容:
echo "proc /proc proc defaults 0 0" >> etc/fstab
mkdir -p usr/share/man/man1/
mknod dev/console c 5 1
10.更换debian10的源:
使用vi /etc/apt/sources.list 命令打开vi /etc/apt/sources.list ,替换下面的源:
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
#deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
#deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
#deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
#deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
保存后,使用apt update更新源:
apt update
使用apt install vim下载vim软件
可以发现下载vim软件,会报errors错误,这个是一些库依赖问题
11.解决库依赖问题
下载libcrypt库
apt-get download libcrypt1
安装库:
dpkg -i --force-all libcrypt1*.deb
修复依赖:
apt-get --fix-broken install
再一次使用apt-get update更新源:
重新使用apt install vim下载vim软件
可以看到没有报错了
12.添加用户名和密码
添加一个普通用户,使用命令 adduser liang(liang为我自己设置的用户),输入密码为 123
设置 root 密码,使用命令 passwd root,输入密码为 123
13.设置以太网
echo "auto eth0" > /etc/network/interfaces.d/eth0
echo "iface eth0 inet dhcp" >> /etc/network/interfaces.d/eth0
14.exit退出qemu环境
15.打包文件系统与烧录
tar -cjf rootfs.tar.bz2 ./*
替换正点原子的烧录工具里面的文件系统,然后烧录
启动与配置
1.现象
这个网口需要用网线到路由器,否则网络下载不了软件
可以看到debian10的字样,alientek-virtual-machine是主机名
2.修改主机名
先用su 指令切换到root用户,先安装一个窗口工具,解决终端窗口满了,只在最后一行显示的问题
apt install xterm 安装完后,再使用resize指令
然后使用vi /etc/hostname命令修改hostname文件内容,这里我改成了Debian10
同时使用vi /etc/hosts指令在/etc/hosts文件添加这一行127.0.1.1 Debian10(上面自己设置用户名)
然后执行/usr/sbin/reboot重启(要用绝对路径,否则找不到指令,要想解决这个问题需要在/root/.bashrc文件末行添加export PATH=$PATH:/sbin:/usr/sbin这个内容)
重启之后可以发现主机名显示Debian10
3.安装一些常用的软件(需要用su指令先切换到root用户)
su //切换root用户
apt install v4l-utils //查看摄像头配置信息的工具
apt install sudo //权限相关的
apt install net-tools //ifconfig相关的
apt install openssh-server //ssh服务,值得注意的是debian禁止ssh root用户
4.修改普通用户sudo权限相关的.
/etc/sudoers一个只读文件,需要执行chmod u+w /etc/sudoers指令给一个写权限,后面再添加liang ALL=(ALL:ALL) ALL这个内容,之后再chmod u-w /etc/sudoers恢复权限
5.修改普通用户PATH环境相关的
用su liang切换回普通用户,在~/.bashrc文件末尾添加export PATH=$PATH:/sbin:/usr/sbin这个内容,修改完后使用source 指令使能一下
6.修改ssh服务相关
开启ssh服务,开发板重启之后,debian10文件系统的网络服务会改网卡名字,将eth0改成end1,同时还能看到没有网络ip.
要想重新获取ip需要执行sudo ifconfig end1 up 和sudo dhclient end1这两个指令,注意的是debian系统要操作外设接口都要root权限的,比较频繁操作外设可以直接用sudo su 指令切换root用户
ssh链接
7.查看一下5640摄像头信息
至此简单移植debian10就测试完,笔者这里就没测其他的功能,有兴趣的读者可以自行测试其他功能。
debian10文件系统链接
链接:https://pan.baidu.com/s/1dKLn_o-AfHH-BfO0oa4yxg
提取码:1234