在此基础上制作可用的根文件系统: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. MySQL中的函数使用

    有三张表,学生表(t_student),班级表(t_class),成绩表(t_grade),三张表的字段设计如下                                        查询大竹 ...

  2. JS 计算两个时间戳相差年月日时分秒

    // JS 计算两个时间戳相差年月日时分秒 calculateDiffTime(startTime, endTime, type) { var runTime = parseInt(endTime - ...

  3. ECharts 饼图指定颜色显示

    一.通过setOption的color属性分配颜色范围 先介绍这里提到的color属性 color:调色盘颜色列表.如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色. 默认为: ['#5 ...

  4. JZOJ 1073. 【GDOI2005】山海经

    \(\text{Solution}\) 非常经典的求区间最大字段和 不难想到线段树,考虑处理区间答案的合并 维护前缀后缀最大和与区间答案,合并考虑跨中点贡献即可 代码打得非常恶心... \(\text ...

  5. JZOJ 4216.平方和

    \(\text{Problem}\) 维护一个序列 支持插入一个数,区间加,询问区间平方和 \(\text{Solution}\) 平衡树很模板的题了 考场打 \(fhq-treap\) 毫无悬念过了 ...

  6. Os-hackNos-3

    Os-hackNos-3 目录 Os-hackNos-3 1 信息收集 1.1 端口扫描 1.2 后台目录扫描 1.2.1 目录分析 2 爆破后台登录页面 2.1 BP爆破 2.2 hydra爆破 3 ...

  7. CSS3--点击弹出菜单动画

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  8. Vue js引用警告 “export ‘default‘ (imported as ‘xxx‘) was not found

    问题原因:ES6 编译器识别问题 如果在public.js这样写会有警告export 'default' (imported as 'xxx') was not found export const ...

  9. 初学 Canvas

    画布的概念 Canvas(画布)可以用于动画.游戏画面.数据可视化.图片编辑以及实时视频处理等方面.画布在 HTML5 中是通过canvas标签来表现,通过 JavaScript 提供的画布 API, ...

  10. YML

    一.YML语法 1.约定 k: v 表示键值对关系,冒号后面必须有一个空格 使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的 大小写敏感 缩进时不允许使用Tab键, ...