http://cdimage.ubuntu.com/ubuntu-base/releases/18.04.4/release/ubuntu-base-18.04.5-base-arm64.tar.gz
解压Ubuntu Coretar xvzf ubuntu-base-18.04.5-base-amd64.tar.gz -C OK8MM-linux-fs
安装qemusudo apt-get install qemu-user-static sudo cp -a /usr/bin/qemu-aarch64-static usr/bin/安装linux内核模块
编译linux内核,在内核源码目录output/lib/中拷贝modules目录中的所有内容到Core根文件系统/lib目录。
设置DNS解析器配置文件echo "nameserver 127.0.1.1" > /etc/resolv.conf # 虚拟机里 echo "nameserver 8.8.8.8" > /etc/resolv.conf从服务器获取最新的包列表
cp -b /etc/resolv.conf rootfs/etc/resolv.conf cp /etc/apt/sources.list ./OK8MM-linux-fs/etc/apt/sources.list # 错误: # Couldn't create temporary file /tmp/apt.conf.DLMht3 for passing config to apt-key chmod 777 /tmp切换根文件系统
sudo chroot ../rootfs
或者
#!/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 mount -o bind /dev/pts ${2}dev/pts
sudo chroot ${2}
}
function 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
sudo chmod +x ch-mount.sh
#挂载
./ch-mount.sh -m OK8MM-linux-fs/
#卸载
./ch-mount.sh -u OK8MM-linux-fs/
设置root密码
passwd root添加ubuntu管理员账号
可以添加一个pi的管理员账号并修改密码。
useradd -G sudo -m -s /bin/bash pi passwd pi设置主机名
可以为目标板设置一个主机名。
echo Ubuntu > /etc/hostname echo "127.0.0.1 localhost.localdomain localhost" > /etc/hosts echo "127.0.0.1 Ubuntu" >> /etc/hosts设置串口登录
ln -s /lib/systemd/system/serial-getty@.service/etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service安装相关工具
chmod 777 /tmp apt update apt install language-pack-en-base sudo ssh net-tools network-manager iputils-ping rsyslog bash-completion htop resolvconf dialog vim nano v4l-utils alsa-utils git gcc less resolvconf autoconf autopoint libtool bison flex gtk-doc-tools glib-2.0 libglib2.0-dev libpango1.0-dev libatk1.0-dev kmod pciutils -y sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev
如果make遇到
mkfs.ext4: loadlocale.c:129: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))’ failed.
Aborted (core dumped)
Makefile:70: recipe for target ‘sdcard’ failed
make: *** [sdcard] Error 134
命令行执行以下命令再试试
export LC_ALL=C
./configure -xplatform linux-aarch64-gnu-g++ -prefix /opt/imx8mini-qt5.11.3 -release -opensource -/confirm/i-license -sysroot /home/chen/imx8mini/OK8MM-linux-sdk/OK8MM-linux-fs/OK8MM-linux-fs



