目标

上文中我们成功编译并启动了内核,内核和文件系统的关系感兴趣的可以查查,这里不多BB了。
通过烧入文件系统,我们实现在香橙派上正常运行使用Linux。

步骤

  1. 在x86 Linux主机上使用qemu模拟器设置下载好的debian根系统
  2. 添加用户,修改root密码
  3. 配置/etc/fstab 完成挂载的配置
  4. 修改 /etc/network/interfaces 完成对ETH0网卡的设置
  5. 拷贝之前编译好的内核外部模块到 /lib/modules/下
  6. 拷贝做好的根文件系统到TF卡的分区2、

先插上TF卡并且mount挂载

下载Debian根文件系统和模拟器

sudo apt install qemu-user-static -y
sudo apt install debootstrap -y

在home/下mkdir rootfs并且 cd rootfs

sudo debootstrap --foreign --verbose --arch=armhf buster rootfs http://ftp2.cn.debian.org/debian
buster是Debian 10的代号
stretch是Debian 9的代号
我们这里下载的是Debian 10的根文件系统

最少执行两遍,因为网路问题很可能第一次下载不完全。

挂载根文件系统到主机上

sudo mount --bind /dev rootfs/dev/
sudo mount --bind /sys rootfs/sys/
sudo mount --bind /proc rootfs/proc/
sudo mount --bind /dev/pts rootfs/dev/pts/

注意路径,具体路径可根据实际进行修改

进入qemu虚拟机

sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo chmod +x rootfs/usr/bin/qemu-arm-static
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs

注意路径,具体路径可根据实际进行修改

解压debian 10

sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose

出现 Base system installed successfully.代表成功
进行下一步

替换源

可以不替换,非必须

先备份
sudo cp rootfs/etc/apt/sources.list rootfs/etc/apt/sources.list.bak
再改
vi /rootfs/etc/apt/sources.list
改成这个:http://ftp2.cn.debian.org/debian buster main

依次执行:

apt update
apt upgrade
apt install net-tools
apt install python3
apt install python2
apt install gcc     (编译用)
apt install bc		(编译用)
apt install libncurses5-dev		(编译用)
apt install libssl-dev     (编译用)
apt install u-boot-tools	(编译用)
apt install meson
apt install vim
apt install ssh
apt install nginx
apt install meson

.............
可根据自己的需求安装,也可到时候再安装

配置ssh服务器

vim /etc/ssh/sshd_config
按/PermitRootLogin 回车
找到#PermitRootLogin xxxxx
改成PermitRootLogin yes 
记得是要去掉#符号
然后保存

配置 /etc/fstab 挂载

vim /etc/fstab
复制进去
/dev/mmcblk0p2	/	ext4	defaults	0 1
/dev/mmcblk0p1	/boot/uboot	vfat	defaults	0 0
保存
先把这两个最重要的挂上去再说,其他的sys文件系统到时候再说

添加一个普通用户和修改root密码

useradd -s '/bin/bash' -m -G adm,sudo Your_name
`Your_name`你自己指定
passwd imx6ul
设置密码
passwd root
设置root的密码

设置网络

vim  /etc/network/interfaces 
复制进去
auto eth0
iface eth0 inet dhcp
保存

拷贝外部模块

还记得内核编译输入的:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/mainline/mainline_kernel/output modules_install

该命令生成了不编译在内核里的模块,这些得全部放在根文件系统里去
首先在根文件系统中创建 /lib/modules文件夹
接着复制 模块 到 /lib/modules里去

如:cp -r /home/mainline/mainline_kernel/output/modules/.   /lib/modules

拷贝内核源码

紧接着上一步,为了能在arm上完成对后期模块的编译,提高效率,我们需要把内核源码也复制进分区2
找到X86主机上内核源码所在目录。

我这里是 /home/mainline/mainline_kernel
先删除 /mnt/m2/lib/modules/5.3.5+/build
原build是一个空链接
再mkdir build

接着

cp -r /home/mainline/mainline_kernel/. /mnt/m2/lib/modules/5.3.5+/build

完成
之后在香橙派上进入该build目录,执行一下make clean make modules
重新编译ARM上可以运行的内核所需组件

退出虚拟器

apt-get clean
exit
sudo umount rootfs/sys/
sudo umount rootfs/proc/
sudo umount rootfs/dev/pts/
sudo umount rootfs/dev/
sudo rm rootfs/usr/bin/qemu-arm-static

注意路径,具体路径可根据实际进行修改

写入根系统

怎么写都知道了把,rootfs下所有的文件 cp在TF卡的分区2
然后插入香橙派即可启动系统

所有东西都正常了,Linux正常启动。

图形界面不用着急,后面我们手动编译才能启用硬件加速,后面再说
下一篇:《修改内核的一些配置》

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐