香橙派orangepi 4 lts使用nfs挂载文件系统

一、设置uboot启动命令
在uboot console中使用printenv查看环境变量。
其中下面的几项是关于启动的命令:

distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
boot_targets=mmc1 mmc0 usb0 pxe dhcp sf0
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot

参照bootcmd_mmc0增加nfs启动项:

setenv boot_targets 'nfs mmc1 mmc0 usb0 pxe dhcp sf0'
setenv bootcmd_nfs 'tftp 0x2080000 Image;tftp 0x1f00000 rk3399-orangepi-4-lts.dtb;booti 0x2080000 - 0x1f00000'
saveenv

增加uboot启动参数:

setenv bootargs 'console=ttyS2,1500000 root=/dev/nfs nfsroot=192.168.2.9:/home/frank/data/top/fs_opi,proto=tcp rw ip=192.168.2.88:192.168.2.9:192.168.2.1:255.255.255.0::eth0:off'
saveenv

经过上面的设置之后,uboot启动时就会通过tftp加载kernel和dtb,并通过nfs挂载文件系统了。
注:uboot和主机之间的ip设置参考网上的教程。

二、将文件系统解压到nfs共享目录
uboot中我们看到nfs共享目录在/home/frank/data/top/fs_opi,这个目录需要加到nfs配置中,步骤网上有很多教程,这里就不赘述了。
这里我们将orangepi的Orangepi4-lts_3.0.8_ubuntu_focal_minimal_linux5.10.43.img解压到nfs共享目录中。当然你也可以使用busybox编译一个rootfs,同样可以挂载。使用orangepi编译的img是因为它的功能更完善。
1、挂载 img 镜像

frank@debian:~$ sudo losetup -f
/dev/loop0
把文件虚拟成块设备
frank@debian:~$ sudo losetup -f --show Orangepi4-lts_3.0.8_ubuntu_focal_minimal_linux5.10.43.img
/dev/loop0
接着同步该分区 sudo kpartx -av /dev/loopX
frank@debian:~$ sudo kpartx -av /dev/loop0 
add map loop0p1 (254:0): 0 2035712 linear 7:0 61440
接下来根据kpartx同步分区的信息把分区进行挂载
sudo mount /dev/mapper/loop0p1 /mnt
frank@debian:~$ ls /mnt/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var

2、将/mnt中的文件系统拷贝到nfs共享目录

cp /mnt/* /home/frank/data/top/fs_opi -raf

3、开启kernel中nfs和net相关选项
orangepi 4lts内核中有线网卡是以module的方式加载,需要改成内核启动加载,否则nfs加载的时候没有网络。
编译img的时候,开启内核配置选项:

Device Drivers  --->
  [*] Network device support  --->
    -*-   PHY Device support and infrastructure  --->
      <*>   Motorcomm PHYs

内核中添加nfs对根文件系统的支持:

File systems  --->
  [*] Network File Systems  --->
    [*]   Root file system on NFS

配置后编译内核。

启动orangepi,nfs挂载成功:

......
[    6.210209] VFS: Mounted root (nfs filesystem) on device 0:18.
[    6.236549] devtmpfs: mounted
[    6.247257] Freeing unused kernel memory: 6592K
[    6.252741] Run /sbin/init as init process
......
Orange Pi 3.0.8 Focal ttyS2 

orangepi4-lts login: orangepi
Password: 
  ___  ____ ___   _  _     _   _____ ____  
 / _ \|  _ \_ _| | || |   | | |_   _/ ___| 
| | | | |_) | |  | || |_  | |   | | \___ \ 
| |_| |  __/| |  |__   _| | |___| |  ___) |
 \___/|_|  |___|    |_|   |_____|_| |____/ 
                                           
Welcome to Orange Pi 3.0.8 Focal with Linux 5.10.43

System load:   23%              Up time:       1 min
Memory usage:  4% of 3.77G      IP:            192.168.2.88
CPU temp:      60°C             Usage of /:    67% of 916G   

[ 52 security updates available, 87 updates total: apt upgrade ]
Last check: 2024-03-31 03:58

Last login: Sun Mar 31 02:51:49 UTC 2024 from 192.168.2.9 on pts/0
orangepi@orangepi4-lts:~$ mount
192.168.2.9:/home/frank/data/top/fs_opi on / type nfs (rw,relatime,vers=2,rsize=4096,wsize=4096,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.2.9,mountvers=1,mountproto=tcp,local_lock=all,addr=192.168.2.
9)
......
orangepi@orangepi4-lts:~$ uname -a
Linux orangepi4-lts 5.10.43 #3.0.8 SMP Sun Mar 31 10:53:44 CST 2024 aarch64 aarch64 aarch64 GNU/Linux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值