在此基础上制作可用的根文件系统:https://www.cnblogs.com/hengqiu/p/15908597.html

1.ubuntu搭建nfs服务器

sudo apt-get install nfs-kernel-server rpcbind

sudo apt-get install nfs-common

编辑 /etc/exports文件,添加

/root/porting_x210/rootfs/rootfs *(rw,sync,no_root_squash,no_subtree_check)

chmod 777 -R /root/porting_x210/rootfs/rootfs

touch linuxrc

sudo exportfs -r   //更新

sudo showmount localhost -e   //显示

出现

Export list for localhost:
/root/porting_x210/rootfs/rootfs *

即搭建成功,且目录设置如上

2.开发板内核编译前通过menuconfig设置支持nfs启动方式

配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项
Networking support
  Networking options
    TCP/IP networking
      IP: kernel level autoconfiguration
        [*] IP: DHCP support
        [*] IP: BOOTP support

配置开启nfs服务
File systems --->
  Network File Systems --->
    <*> NFS client support
    [*] NFS client support for NFS version 3 [*] NFS client support for the NFSv3 ACL protocol extension
    [*] NFS client support for NFS version 4 (EXPERIMENTAL)
    [*] NFS client support for NFSv4.1 (DEVELOPER ONLY)
    [*] Root file system on NFS

编译得到zImage镜像下载到板子

3.uboot环境变量设置

  bootargs=root=/dev/nfs nfsroot=192.168.1.30:/root/porting_x210/rootfs/rootfs ip=192.168.1.20:192.168.1.30:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200
  bootcmd=movi read kernel 0x30008000; bootm 0x30008000

  设置时

  setenv bootargs root=/dev/nfs nfsroot=192.168.1.30:/root/porting_x210/rootfs/rootfs ip=192.168.1.10:192.168.1.30:192.168.1.1:255.255.255.0::eth0:off  init=/linuxrc console=ttySAC2,115200

4.开机测试开发板能否搭载nfs上的根文件系统

5.ubuntu上根文件系统完善

  搭建好最简单的根文件系统后,需要对其进行完善。大致思路是通过busybox在主文件夹下添加各种文件和文件夹

  (1)下载busybox    https://busybox.net/downloads/ ,下载1.24.1的版本解压

  (2)配置busybox  修改makefile

ARCH = arm
CROSS_COMPILE =arm-linux-

  (3)安装到根文件系统主文件夹

    先设置目标文件夹,make menuconfig ->busyboxseting->Install ...,粘贴目标文件夹

  (4)make ,make install,此时根文件目录下最重要的文件夹已经产生

  (5)开机观察现象,一直刷屏不能进入,进一步完善

  (6)添加一个典型的inittab到/etc文件夹下,再次开机,已经可以进入到控制台

  (7)添加fstab文件,init.d文件夹和和rcS文件,sysconfig文件夹和HOSTNAME文件,复制ubuntu的passwd和shadow文件到/etc文件夹下

       在根目录下新建sys等文件夹作为挂载点,对文件系统进行完善

  (8)最终开发板可以运行该文件系统

  (9)拷贝动态链接库

      即拷贝

    /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib  中的内容到根文件系统的lib目录下

  (10)制作镜像以备烧录

dd if=/dev/zero of=rootfs.ext2 bs=1024 count=10240
losetup /dev/loop1 rootfs.ext2
mke2fs -m 0 /dev/loop1 10240
mount -t ext2 /dev/loop1 ./ext2_rootfs/
(2)向./rootfs中复制内容,用cp ../rootfs/* ./ -rf
(3)umount /dev/loop1
losetup -d /dev/loop1
(4)完成后得到的rootfs.ext2就是我们做好的rootfs镜像。拿去烧录即可。

【根文件系统 】开发板通过nfs挂载ubuntu上的根文件系统的更多相关文章

  1. 把Linux目录挂载到开发板、设置开发板从NFS启动、取消开发板从NFS启动

    声明:文中"PC虚拟机Linux"是指在PC上安装了虚拟机,然后在虚拟机中装的Linux. 关于NFS的详细介绍可参考:http://www.cnblogs.com/nufangr ...

  2. iTOP-6818开发板设置NFS共享目录的实现

    NFS 共享目录的制作过程.主要分为两个步骤:1.搭建 NFS 服务器2.配置内核. NFS 是 Network FileSystem 的缩写,是由 SUN 公司研制的 UNIX 表示层协议(pres ...

  3. tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04

    http://blog.csdn.net/liudijiang/article/details/50555429(转) 首先得要有制作好的uboot和linux内核镜像zImage,先烧录到sd卡里, ...

  4. uboot通过NFS挂载ubuntu根文件系统

    由于工作需要,在做app开发或系统移植时,经常需要编辑系统后重新烧写异常麻烦.通过NFS挂载根文件系统就不需要每次更改系统后再进行编译和烧写,等开发完成后一次烧写即可完成. 一.准备材料 可以根据自己 ...

  5. 【分享】4412开发板POP烧写ubuntu出错,如何挂载emmc分区解决方法

    本文转自:http://bbs.topeetboard.com 平台:4412精英版系统:ubuntu系统 按照教程烧写ubuntu文件系统,TF卡和EMMC分区都完成(总之之前的操作试了几遍都是没问 ...

  6. debian下为arm开发板创建基于debian或emdebian的根文件系统

    Debian系统本身包含对arm的支持,其包含的软件包最多,但是最终的文件系统要大一些. emdebian 是一个非常好用的嵌入式linux操作系统,其基于debian的特点对于熟悉debian系统的 ...

  7. 【转载】4412开发板、PC、ubuntu通过网线连接

    今天看到使用TFTP方式,开发板直接从ubuntu下载程序,不需要一直通过烧写文件系统下载,我试了一下,虚拟机.开发板.pc三者老是互相ping不通.纠结了很久终于解决了. 写下这个小笔记,供大家参考 ...

  8. ARM开发板搭建NFS网络文件共享方法

    前边 已经提到过吧vmare的IP改成了静态IP,对于上网来说,这个是个麻烦的事.现在重新配置Vmware的IP VMware-Edit-Virtual network editor 选择PC机的无线 ...

  9. [分享] IMX6嵌入式开发板linux QT挂载U盘及TF卡

    本文转自迅为开发板:http://www.topeetboard.com 开发平台:iMX6开发板 linux QT 系统下挂载 u 盘如下图所示,qt 启动之后,在超级终端中使用命令“mknod / ...

  10. 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...

随机推荐

  1. 解决centos7 yum和wget都不能使用

    1.前言 因为卸载了centos 7.9.2009 内置自带的python2.7.5,导致yum无法使用,但是又没有安装wget,两者不能相互安装导致死循环 2.安装wget 找到自己对应的系统版本, ...

  2. 2023 年 dotnet 仓库社区年度调查已经开始

    准备好今年对 dotnet 指手画脚了吗,平常在群里我忍气吞声,今天我必须重拳出击,快来参与吧. 我直接一个参的加 .NET 是一个跨平台的开发框架,支持多种语言和应用场景,如 C#.F#.VB.NE ...

  3. STM32F4寄存器初始化:编码器

    RCC->APB1ENR|=1<<0; //TIM2时钟使能 RCC->APB1ENR|=1<<1; //TIM3时钟使能 RCC->APB1ENR|=1&l ...

  4. JZOJ 3992.Christmas

    题目大意 给定一个数列,支持区间加一个数和区间取 \(max\),询问单点询问数值和它被更改的次数 思路 模板的吉司机线段树 维护区间最小值和严格次小值以及最小值的个数 针对询问维护区间和以及区间修改 ...

  5. 【SDOI2015】排序

    #include<cstdio> #include<iostream> using namespace std; typedef long long LL; const int ...

  6. JZOJ 【2020.11.30提高组模拟】剪辣椒(chilli)

    题目大意 给出一棵 \(n\) 个节点的树,删去其中两条边 使得分出的三个子树大小中最大与最小的差最小 分析 先一边 \(dfs\) 预处理出以 \(1\) 为根每个点的 \(size\) 然后按 \ ...

  7. C语言初学习

    首先我们先看一下什么是编译型语言和解释型语言: 解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行 编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂得语言--机器语言 ...

  8. LeetCode-911 在线选举

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/online-election 题目描述 给你两个整数数组 persons 和 times .在选 ...

  9. LeetCode-2104 子数组范围和

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-subarray-ranges 题目描述 给你一个整数数组 nums .nums 中 ...

  10. 域名_服务器_IP之间的关系

    目的: 近期在搞A服务器和云服务器,以及正式环境的B服务器的时候,多次搞不清楚域名,IP的关系. 现在理解看来: IP 分为内网和外网的,以A为例,A是内网的IP,然后申请下来的外网IP是B(还真忘了 ...