在此基础上制作可用的根文件系统: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. 使用Kubernetes中的Nginx来改善第三方服务的可靠性和延迟

    使用Kubernetes中的Nginx来改善第三方服务的可靠性和延迟 译自:How we improved third-party availability and latency with Ngin ...

  2. 主题样式选择效果代码及css样式

    先上效果图: 主要页面代码及样式: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> ...

  3. Elasticsearch Mapping类型修改

    背景 通常数据库进行分库分表后,目前比较常规的作法,是通过将数据异构到Elasticsearch来提供分页列表查询服务:在创建Elasticsearch索引时,基本都是会参考目前的业务需求.关系数据库 ...

  4. 认识Spring MVC-概念-小demo

    二:SpringMVC 异常码: 405:请求不允许 404:资源不存在 400:参数有问题 500:代码有问题 SpringMvc是Spring FrameWork提供的WEB组件,是目前的主流的实 ...

  5. 【CTO变形记】整体系统思维-从现象到本质

    前言:我们的⼤脑⾥的认知不是⼀块⽩板,⽽是写满着密密麻麻对这个世界形成的各种观念.信念.塞满了对事物的各个表象,我们脑中的表象世界,对应着外部世界的各种事物. 如果感觉本篇看起来有点不适应,可以看看之 ...

  6. el-select 获取change点击index

    <el-select> <el-option v-for="(item, index) in optionlist" @click.native ="h ...

  7. Postgresql执行计划浅析与案例

    一.前言 PostgreSQL为每个收到查询产生一个查询计划. 选择正确的计划来匹配查询结构和数据的属性对于好的性能来说绝对是最关键的,因此系统包含了一个复杂的规划器来尝试选择好的计划. 你可以使用E ...

  8. Postgresql动态共享内存类型

    一.简介 linux为多个进程通信提供了不同的IPC机制,如:System V , POSIX 和 MMAP,所以Postgresql共享内存管理也支持以上类型. 在Postgresql中可以使用dy ...

  9. KingbaseES R6集群误删除备节点的集群目录恢复方式

    一.场景 一主一备环境 主节点:192.168.17.9 备节点:192.168.17.10 故障:备节点安装目录/home/kingbase/cluster备删除 二.恢复方式 1.备节点集群目录备 ...

  10. 分析总结一下所有有关打印题目的套路和思路:pat乙级:1109 擅长C, 1008元素循环右移,1050 螺旋矩阵,1027 打印沙漏等等

    分析: 首先你要明白第一件事:所有要打印东西的题目打印都是从第一行到最后一行,从第一列到最后一列,你是没办法跳着打印的.可以看看其他几个打印题目1008元素循环右移,1050 螺旋矩阵1027 打印沙 ...