嵌入式开发板移植ubuntu base系统的方法

一、环境
PC端ubuntu18.04
嵌入式ARM开发板
二、移植过程
1、下载镜像 ubuntu-base-18.04.5-base-arm64.tar.gz

2、创建目录
mkdir ubuntu_rootfs

3、解压文件
sudo tar xfvp ubuntu-base-18.04.5-base-arm64.tar.gz -C ubuntu_rootfs

4、安装 qemu 工具
sudo apt-get install qemu-user-static
然后:
sudo cp /usr/bin/qemu-arm-static ./ubuntu_rootfs/usr/bin/
sudo cp /usr/bin/qemu-aarch64-static ./ubuntu_rootfs/usr/bin/

5、设置配置文件
sudo cp -av /run/systemd/resolve/stub-resolv.conf ./ubuntu_rootfs/etc/resolv.conf

6、编写挂载和卸载脚本
(1)编写一个mount.sh脚本
#!/bin/bash
echo “MOUNTING”
sudo mount -t proc /proc ./ubuntu_rootfs/proc
sudo mount -t sysfs /sys ./ubuntu_rootfs/sys
sudo mount -o bind /dev ./ubuntu_rootfs/dev
sudo mount -o bind /dev/pts ./ubuntu_rootfs/dev/pts
sudo chroot /home/**/ubuntu_rootfs

(2)编写一个umount.sh脚本
#!/bin/bash
echo “UNMOUNTING”
sudo umount ./ubuntu_rootfs/proc
sudo umount ./ubuntu_rootfs/sys
sudo umount ./ubuntu_rootfs/dev
sudo umount ./ubuntu_rootfs/dev/pts

设置 shell 脚本可执行权限,
sudo chmod 777 mount.sh umount.sh

7、执行
./mount.sh

8:安装常用的命令和软件
#apt update
#apt install -y sudo vim kmod net-tools ethtool ifupdown language-pack-en-base rsyslog htop
#apt-get install vim git openssh-server sudo net-tools iputils-ping wireless-tools udev
#apt-get install htop rsyslog network-manager ifupdown ethtool
#apt-get install florence apt-get install ubuntu-session xubuntu-desktop
#update-alternatives --config x-session-manager
#dpkg-reconfigure lightdm

#echo auto eth0 > etc/network/interfaces.d/eth0
#echo iface eth0 inet dhcp >> etc/network/interfaces.d/eth0
#echo auto wlan0 > etc/network/interfaces.d/wlan0
#echo allow-hotplug wlan0 > etc/network/interfaces.d/wlan0
#echo iface wlan0 inet dhcp >> etc/network/interfaces.d/wlan0
9、增加用户
#vim /ect/hostname
useradd -s ‘/bin/bash’ -m -G adm,sudo userxx
passwd userxx(自己用户,自定义)
passwd 123

10、设置权限
vi /etc/sudoers
root ALL=(ALL:ALL) ALL
userxx ALL=(ALL:ALL) ALL
11、增加日志
touch /var/log/rsyslog
chown syslog:adm /var/log/rsyslog
chmod 666 /var/log/rsyslog
systemctl unmask rsyslog
systemctl enable rsyslog
12、主机名
echo “xxx” > /etc/hostname
echo “127.0.0.1 localhost” > /etc/hosts
echo “127.0.1.1 xxx” >> /etc/hosts
13、串口终端和网络dhcp
ln -s /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@ttyPS0.service
echo “auto eth0” > /etc/network/interfaces
echo “iface eth0 inet dhcp” >> /etc/network/interfaces
13、退出
exit
./umount.sh
14、文件拷贝,这部分操作根据板子来做,有差异性。
我这边是以一个sd卡启动的镜像为例子。
sd卡分为root(fat32)和rootfs(ext4)两个区域,将生成的系统拷贝到sd卡rootfs区。
常用指令
sudo mkfs.vfat -F 32 -n BOOT /dev/sdb1
sudo mkfs.ext4 -L ROOTFS /dev/sdb2

sudo chmod 755 /media/jcl/ROOTFS
sudo chmod 755 /media/jcl/ROOTFS/*

sudo chown root:root /media/jcl/ROOTFS
sudo chown root:root /media/jcl/ROOTFS/*

sudo rm -rfd /media/jcl/ROOTFS/*
sudo cp -a -r -v ./ubuntu_rootfs/* /media/jcl/ROOTFS/
最后执行 sync
然后弹出卡。
15、上板子运行,无界面版本Ubuntu启动,后续可以安装xfce4、weston。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值