使用nfs启动tiny4412开发板根文件系统

LoTGu LoTGu     2022-09-04     808

关键词:

 

1Ubuntu14.04上搭建NFS服务

1.1、安装NFS服务

         $ sudo apt-get install nfs-kernel-server    //安装NFS服务

1.2 创建Tiny4412开发板根文件系统

    这部分内容参考《Busybox构建根文件系统和制作Ramdisk》部分。

    假设Tiny4412开发板根文件系统路径为/home/felix/nfs  

1.3. 配置NFS服务器

    配置NFS主要涉及配置文件/etc/exports,它用于NFS服务器端,其中列出了NFS服务器中要导出的目录、可以访问这些目录的NFS客户机及其访问权限。

    /etc/exports文件的格式如下:

    dir_to_export  NFS_client (permissions)  [NFS_client (permissions)…]

例如:

      /tmp       192.168.100.0/24(ro)     localhost(rw)     *(ro,sync)  

    [分享目录]  [第一个客户端(权限)]   [可用主机名]   [可用通配符]

  因此,需要在/etc/exports文件中添加如下内容:     

    /home/felix/nfs  *(rw,sync,no_root_squash,no_subtree_check)

    /home/felix/nfs刚才创建的共享文件夹

    *:允许所有的网段访问,也可以使用具体的IP

    rw挂接此目录的客户端对该共享目录具有读写权限

    sync资料同步写入内存和硬盘

    no_subtree_check不检查父目录的权限。

    no_root_squashroot用户具有对根目录的完全管理访问权限。

1.4、启动NFS服务器。

    在命令行终端输入如下命令:

    $ sudo exportfs –rv                 //使exports 文件生效

       $ sudo /etc/init.d/rpcbind restart          //重启rpcbind 服务

       $ sudo /etc/init.d/nfs-kernel-server restart      //重启nfs服务

Ubuntu上执行:

    $ showmount -e    

显示出共享的目录说明搭建成功。

2.配置tiny4412开发板内核,板子启动自动挂载NFS文件系统

2.1、配置tiny4412开发板内核支持NFS

         输入 make ARCH=arm menuconfig 命令进入 linux 内核配置界面,

进入[*] Networking support  --->

                                                 Networking options  --->

                                                        选中[*]   IP: kernel level autoconfiguration

clip_image002

再进入File systems  --->

                     [*] Network File Systems  --->

选中如下选项:

       <*>   NFS client support

              <*>     NFS client support for NFS version 2

              <*>     NFS client support for NFS version 3

              [*]       NFS client support for the NFSv3 ACL protocol extension

              <*>     NFS client support for NFS version 4

              [*]     Provide swap over NFS support

              [*]   NFS client support for NFSv4.1

              [*]     NFS client support for NFSv4.2

              [*]     NFSv4.1 client support for migration

              [*]   Root file system on NFS

clip_image004

再进入General setup  --->

              设置Initial RAM filesystem and RAM disk (initramfs/initrd) support项为

              [ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

clip_image006

配置完成后,保存退出并编译内核。

2.2、配置U-boot启动参数

    2.2.1、设置U-bootbootargs参数:

    # setenv bootargs  'root=/dev/nfs  rw  nfsroot=192.168.1.102:/home/felix/nfs  ethmac=00:00:ff:ff:00:00 ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off  console=ttySAC0,115200 init=/linuxrc'

    # saveenv

       其中关键是对ip参数的设置:

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>

       bootargs中关于nfs的参数解释如下:

root=/dev/nfs  rw  nfsroot=192.168.1.102:/home/felix/nfs 表示挂载的 nfs 服务器 ip

192.168.1.102,挂载的目录是/home/felix/nfs(注意:/home/felix/nfs是前面搭建 nfs 服务器设置的);

       ethmac=00:00:ff:ff:00:00表示网卡的地址是00:00:ff:ff:00:00,该地址在网卡驱动加载成功后会打印出来;

       ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off192.168.1.103是我们开发板的ip地址,192.168.1.102nfs服务器的ip192.168.1.1是开发板的网关,255.255.255.0 是子网掩码,eth0是网卡设备的名称。

       bootargs的设置可以放在设备树中或者u-boot中,并且u-bootbootargs的优先级更高,会将设备树中的bootargs覆盖了。具体请参考内核文档:

              Documentation/kernel-parameters.txt

              Documentation/filesystems/nfs/nfsroot.txt

2.2.2、设置U-bootbootcmd参数:

       如果用NFS启动根文件系统的话,使用bootm启动内核的时候,就不需要传递ramdisk的地址了(如:bootm 0x40000000 – 0x4200000 ),否则根文件系统还是ramdiskU-bootbootcmd参数设置如下:

       # setenv bootcmd 'usb start; usb reset;tftp 0x40007000 uImage; tftp 0x42000000 exynos4412-tiny4412sdk.dtb;bootm 0x40007000 - 0x42000000; boot'

    # tiny4412u-boot烧写及根文件系统制作(不进入终端问题)

...可以参考。现在就把我给arm的emmc烧写过程开始说。用sd卡启动,开发板的右下角有个开关控制启动方式,往下是sd卡启动,往上是mm 查看详情

tiny4412开发板支持linux吗

...核能支撑起某个版本的Android系统,那么它们就可以组合使用。内核就不多说了,它在Android中的作用跟在其它Linux发行版中的作用没什么区别,我们简单介绍一下Android文件系统的结构。Linux系统的启动过程:bootloader(GRUB)---->zImag... 查看详情

tiny4412开发板支持linux吗

...核能支撑起某个版本的Android系统,那么它们就可以组合使用。内核就不多说了,它在Android中的作用跟在其它Linux发行版中的作用没什么区别,我们简单介绍一下Android文件系统的结构。Linux系统的启动过程:bootloader(GRUB)---->zImag... 查看详情

tiny4412学习杂记

1.Android挂载NFS使用busyboxmount来替代mount命令2.修改Uboot中fastboot最大buff 使用U-boot烧写Android5.0的时候出现remote:datatoolarge将 include/configs/tiny4412.h 改大一点3.tiny4412内核中trustzone配置开关tiny4412 trust 查看详情

tiny4412busybox制作根文件系统rootfsnfs挂载ubuntu14.04

...作。 一,ubuntu上先设置好nfs服务1.新建一个要挂载的文件[email protected]:~/share$pwd/home/liudiji 查看详情

tiny4412-1312__uboot移植(代码片段)

...trats、trats2,但是只有origen支持spl配置,根据exynos4412芯片启动的特点,选择origen作为参考比较合适。   cp-rorigen/tiny4412  1)修改./board/samsung/tiny4412/tiny4412.c     直接修改文件名即可;  2)修改 ./board/sams 查看详情

基于tiny4412的andorid开发-------简单的led灯控制

...考资料:《Andriod系统源代码情景分析》《嵌入式Linux系统开发完全手册_基于4412_上册》  作者:彭东林邮箱:[email protected]  平台介绍:主机:Win732位虚拟机:VM 查看详情

tiny4412--uboot移植时钟(代码片段)

...要10mΩ的并联电阻XXTI:12MHZ--50MZH,APLL、MPLL、VPLL和EPLL可使用此时钟作为适当模块的电源。可以仅用于测试,不用时接地XUSBXTI:24MZH。因为IROM设计基于24兆赫输入时钟。有XUSBXTI、XUSBXTO两个引脚,且之间需要5mΩ的并联电阻在友善... 查看详情

tiny4412--uboot移植串口(代码片段)

...查看tiny4412SDK-1312B-Schematic.pdf   可看出,底板使用UART0作为外接串口 2、uart0初始化步骤选择UART的时钟源将所涉及的UART通道管脚设为UART功能设置波特率:UBRDIVn寄存器(UARTBAUDRATEDIVISOR)、UFRACVALn寄存器设置传输格式:UL... 查看详情

itop-4412开发板-qte4.7-uvc摄像头使用例程

本文档主要介绍迅为iTOP-4412开发板QtE4.7系统下UVC摄像头的使用过程。工程文件是:“iTOP-4412-QtE4.7-UVC_V1.0”(注意版本更新)。用户可以直接运行工程文件中的“qtcamera”可执行文件。具体过程如下。1.1 运行测试通过U盘、tftp&... 查看详情

tiny4412led之buildjni实现(代码片段)

...ff1a;Tiny4412led之NDKJNI实现,介绍的是通过NDK工具进行JNI开发,*.so文件是通过NDK工具进行编译生成的,这次就介绍如何通过arm-linux-gcc编译生成对应的*.so文件,深入了解JNI底层的开发流程;驱动代码、JNI接口、andr... 查看详情

exynos4412从sd卡启动的简单网络文件系统制作(代码片段)

Exynos4412从SD卡启动的简单网络文件系统制作1.简介嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootfs,appfs。这几部分在ARM板Flash上的位置关系如下图所示... 查看详情

友善之臂tiny4412linux系统怎么跑qt

参考技术A试试在shell中输入:alsamixer,里面有调节系统音量大小的选项。。。 查看详情

tiny4412uboot

1.Builduboota)安装好toolchain(arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好环境变量PATH,保证可以正常使用。b)解压uboot_tiny4412-20130729.tgz并进入相应的目录tarxzfuboot_tiny4412-20130729.tgzc)配置uboot并编译cduboot_tiny4412maketiny441 查看详情

tiny4412u-boot分析u-boot启动流程

从大方面来说,u-boot的启动分成两个阶段,第一个阶段主要的职责是准备初始化的环境,主要有以下几点①设置异常向量表②把CPU的工作模式设置为SVC32模式③关闭中断、MMU和cache④关闭看门狗⑤初始化内存、时钟、串口⑥设置... 查看详情

armcortex-a9(tiny4412)(代码片段)

要求移植linux增加系统调用并烧写至开发板详细步骤一、搭建linux编译环境1、GCC编译器的安装:tarxzvfarm-linux-gcc-4.5.1-v6-vfp-20120301.tgz-C/arm-linux-gcc-v//查看GCC版本2、gedit~/.bashrcexportPATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin3、rebo 查看详情

第二章tiny4412u-boot移植二启动分析

...明:本文为博主原创文章,未经博主允许不得转载。一、启动过程说明      讲解启动过程,首先的源头就是打开电源,这个相信没人人不知道。CPU上电后,此时SP指针指向0x0000_0000,从这个地址取第一条指... 查看详情

tiny4412开机动画开机界面的定制原创

...sp;linux开机logo开机动画 平台信息:内核:linux3.0.68 系统:android/android5.1平台:tiny4412作者:庄泽彬(欢迎转载,请注明作者)邮箱:[email protected]摘要:最近晚上回到宿舍有点无聊,搞一下打发时间,如有不对之处欢迎指... 查看详情