Cree un sistema de archivos raíz basado en ubuntu-base y trasplántelo a la placa de desarrollo RK3568

prefacio

1. Use ubuntu-base para construir el sistema de archivos raíz

1. Obtenga ubuntu-base-18.04.5-base-arm64.tar.gz del sitio web oficial de ubuntu

2. Copie el archivo obtenido en la máquina virtual de ubuntu, cree un nuevo directorio y descomprímalo.

3. Instalar qemu-usuario-estático

4. Establecer la fuente del software

5. Configurar DNS

6. Monte el sistema de archivos basado en ubuntu

7. Instala el software necesario

8. Instalar el entorno de escritorio

9. Modificar la contraseña de usuario root

10. Agregar nuevo usuario

11. Los nuevos usuarios usan el comando sudo

12. Configure el nombre de host y la IP

13. Configurar DHCP

14. Modificar el tiempo de espera predeterminado para el reinicio del sistema

15. Configure el inicio de sesión sin contraseña de arranque en la interfaz gráfica

16. Deshabilitar la hibernación del sistema

2. Empaquete el archivo de imagen

1. Cree un archivo de imagen vacío con un tamaño de 6144 MB

2. Formatee el archivo en el sistema de archivos ext4

3. Monte el archivo de imagen en una carpeta vacía y luego copie el archivo ubuntu_rootfs en la carpeta vacía.

4. Después de copiar, use e2fsck para reparar y detectar el sistema de archivos espejo y resize2fs para reducir el tamaño del archivo espejo.

3. Grabe el sistema de archivos en la placa de desarrollo

referencia:


prefacio

Los parámetros de configuración de la placa de desarrollo doméstica Rockchip RK3568 son llamativos y rentables.

Pero la ecología blanda oficial basada en buildroot no es ideal, y personalmente me gusta la interfaz oficial de ubuntu, así que consulté la literatura, construí el sistema de archivos de ubuntu y finalmente lo ejecuté con éxito en la placa de desarrollo. ¡alegría! espolvorear flores~~~

En este proceso, hay innumerables pozos, por lo que haré un registro aquí, para poder seguir mejorándolo en el futuro.

entorno de laboratorio:

Placa de desarrollo: Xunwei RK3568

Sistema de archivos: ubuntu-base-18.04.5-base-arm64

1. Use ubuntu-base para construir el sistema de archivos raíz

1. Obtenga ubuntu-base-18.04.5-base-arm64.tar.gz del sitio web oficial de ubuntu

Dirección de descarga: ubuntu-base-18.04.5-base-arm64.tar.gz

2. Copie el archivo obtenido en la máquina virtual de ubuntu, cree un nuevo directorio y descomprímalo.

mkdir ubuntu_rootfs
sudo tar -xpf ubuntu-base-18.04.5-base-arm64.tar.gz -C ubuntu_rootfs/

3. Instalar qemu-usuario-estático

qemu-user-static es un emulador, que puede seleccionar el archivo de configuración arm64 para simular el entorno operativo de la placa de desarrollo y luego montar el archivo ubuntu-base descargado para construir el sistema de archivos ubuntu.

sudo apt install qemu-user-static

Dado que la base de ubuntu descargada es de arquitectura aarch64, debe copiar qemu-aarch64-static en ubuntu_rootfs/usr/bin/.

sudo cp /usr/bin/qemu-aarch64-static ubuntu_rootfs/usr/bin

4. Establecer la fuente del software

Cabe señalar que la fuente ARM se usa aquí y la fuente de nuestra máquina no se puede copiar.

sudo vim ./ubuntu_rootfs/etc/apt/sources.list

Aquí elegimos la fuente de descarga doméstica de Huawei.

deb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-proposed main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-proposed main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ bionic-updates main multiverse restricted universe

Elimine el texto original y reemplace el contenido.

5. Configurar DNS

Para actualizar el software en línea, copiamos el archivo de configuración de dns local al sistema de archivos raíz

sudo cp /etc/resolv.conf ubuntu_rootfs/etc/resolv.conf

Luego agregue dns en el archivo /etc/resolv.conf

sudo vim ./ubuntu_rootfs/etc/resolv.conf

Agregue contenido de la siguiente manera

nameserver 8.8.8.8
nameserver 114.114.114.114

6. Monte el sistema de archivos basado en ubuntu

Escribir un script de montaje

#!/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

Aumentar los permisos de ejecución de scripts

sudo chmod +x mount.sh

Montar el sistema de archivos

bash mount.sh -m ubuntu_rootfs/

desmontar el sistema de archivos

bash mount.sh -u ubuntu_rootfs/

Aviso:

Después del montaje, ingresará al entorno de simulación de la placa de desarrollo, puede instalar el software y cambiar la configuración del sistema;

Después de compilar el sistema de archivos, ingrese exit para salir del entorno de simulación, luego ejecute el script para desinstalar el sistema de archivos ubuntu_base;

Finalmente, empaquete la imagen.

7. Instala el software necesario

apt-get update

apt-get install net-tools
apt-get install ethtool
apt-get install ifupdown
apt-get install psmisc
apt-get install nfs-common
apt-get install htop
apt-get install vim
apt-get install rsyslog
apt-get install iputils-ping
apt-get install language-pack-en-base
apt-get install sudo
apt-get install network-manager

8. Instalar el entorno de escritorio

apt-get install ubuntu-desktop

9. Modificar la contraseña de usuario root

Para mayor comodidad, también podemos configurar la contraseña como root.

10. Agregar nuevo usuario

Aquí debe ingresar cierta información de usuario, o puede presionar directamente Entrar para mantener el valor predeterminado.

11. Los nuevos usuarios usan el comando sudo

Por defecto, los nuevos usuarios no pueden usar el comando sudo, necesitamos modificar el archivo /etc/sudoers.

El archivo /etc/sudoers es de solo lectura de forma predeterminada, por lo que primero debe modificar el permiso de escritura de este archivo con el siguiente comando:

chmod u+w /etc/sudoers

Luego use vim para abrir /etc/sudoers, busque la línea "root ALL=(ALL:ALL) ALL" y agregue debajo de esta línea:

vim /etc/sudoers

ssismm	ALL=(ALL:ALL) ALL

Una vez completada la modificación, guarde y salga, y restaure el atributo de solo lectura de /etc/sudoers, usando el siguiente comando:

chmod u-w /etc/sudoers

12. Configure el nombre de host y la IP

echo "rk3568" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.0.1 rk3568" >> /etc/hosts

13. Configurar DHCP

Configuremos el DHCP de la red, de modo que la red se configure automáticamente después de que se inicie el sistema.

RK3568 tiene dos tarjetas de red por defecto.

NIC eth0:

echo auto eth0 > /etc/network/interfaces.d/eth0
echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0

NIC eth1:

echo auto eth1 > /etc/network/interfaces.d/eth1
echo iface eth1 inet dhcp >> /etc/network/interfaces.d/eth1

En la prueba real, el puerto de red debe estar conectado al sistema de cable de red para iniciar normalmente. Es decir, en el caso de no estar conectado a Internet, tarda mucho en iniciarse cada vez, y la tarjeta se atasca en la conexión de red durante 5 minutos. Aquí podemos modificar el siguiente archivo:

vim /lib/systemd/system/networking.service

 Cambie el TimeoutStartSec=5min dentro a:

TimeoutStartSec=10sec

14. Modificar el tiempo de espera predeterminado para el reinicio del sistema

Al reiniciar la placa de desarrollo, si hay un proceso que no ha finalizado, el sistema esperará. El tiempo de espera predeterminado es muy largo, lo que resulta en un reinicio lento.

Podemos modificar el tiempo de espera predeterminado:

vim /etc/systemd/system.conf

Encuentra estas líneas:

 #DefaultTimeoutStartSec=90s
 #DefaultTimeoutStopSec=90s
 #DefaultTRestartSec=100ms

Descomente y cambie DefaultTimeoutStopSec=90s a:

 DefaultTimeoutStopSec=1s

Guardar y Salir.

15. Configure el inicio de sesión sin contraseña de arranque en la interfaz gráfica

Modificamos el archivo 50-ubuntu.conf con el siguiente comando:

vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

Agregue el siguiente contenido al final del archivo, como se muestra en la siguiente figura después de agregar:

greeter-show-manual-login=true

all-guest=false

Guarde y salga después de completar la modificación, y luego ingrese el siguiente comando para modificar el contenido del archivo gdm-autologin, como se muestra en la siguiente figura después de la modificación:

vim /etc/pam.d/gdm-autologin

Luego ingrese el siguiente comando para modificar el contenido del archivo gdm-password, y la modificación se completa como se muestra en la siguiente figura:

vim /etc/pam.d/gdm-password

Luego ingrese el siguiente comando para modificar el archivo /root/.profile:

vim /root/.profile

Cambie la última línea del archivo al siguiente contenido y la modificación se completa como se muestra en la siguiente figura:

tty -s && mesg n || true

Luego ingrese el siguiente comando para modificar el archivo custom.conf:

vim /etc/gdm3/custom.conf

Agregue el siguiente contenido al final del archivo, como se muestra en la siguiente figura:

[daemon]
AutomaticLoginEnable=true
AutomaticLogin=root
TimedLoginEnable=true
TimedLogin=root
TimedLoginDelay=10

16. Deshabilitar la hibernación del sistema

Controlar:

sudo systemctl status sleep.target

desactivar:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

¡Hasta ahora, el sistema de archivos que construimos puede abrir la interfaz visual para el inicio de sesión sin contraseña del usuario raíz!

2. Empaquete el archivo de imagen

1. Cree un archivo de imagen vacío con un tamaño de 6144 MB

dd if=/dev/zero of=ubuntu_rootfs.img bs=1M count=6144

2. Formatee el archivo en el sistema de archivos ext4

mkfs.ext4 ubuntu_rootfs.img

3. Monte el archivo de imagen en una carpeta vacía y luego copie el archivo ubuntu_rootfs en la carpeta vacía.

mkdir ubuntu_base_rootfs
sudo mount ubuntu_rootfs.img ubuntu_base_rootfs
sudo cp -rfp ubuntu_rootfs/* ubuntu_base_rootfs/

4. Después de copiar, use e2fsck para reparar y detectar el sistema de archivos espejo y resize2fs para reducir el tamaño del archivo espejo.

sudo umount ubuntu_base_rootfs/
e2fsck -p -f ubuntu_rootfs.img
resize2fs -M ubuntu_rootfs.img

Al final, obtuvimos el archivo de imagen del sistema de archivos con un tamaño de 4,9 GB. 

3. Grabe el sistema de archivos en la placa de desarrollo

Para simplificar, primero grabe la imagen buildroot oficial en la placa de desarrollo y luego grabe el sistema de archivos por separado.

En este punto, ¡ya está! ¡Debería haber aplausos aquí! ! ! espolvorear flores~~~

referencia:

[ARM] Use Ubuntu-base para construir el sistema de archivos raíz

Cree un sistema de archivos raíz basado en ubuntu-base y trasplántelo a la placa de desarrollo RK3568

Supongo que te gusta

Origin blog.csdn.net/ssismm/article/details/129612239
Recomendado
Clasificación