转自:http://qiuye.iteye.com/blog/543595 这类问题很常见,先总体介绍一下解决思路. 能出现让人激动的的控制台,那么系统移植已经接近完成:但是不少人在最后一步出现问题. 要点如下: 1. 在正确的位置烧写正确格式的文件系统映象: 2. 内核支持这种文件系统格式 3. 文件系统的内容要完备 上面说得简单,一个个介绍. 1. 在正确的位置烧写正确的文件系统映象: (a). 正确的位置 嵌入式开发中,常通过bootloader烧写文件系统映象,假设写在flash的地址A…
环境介绍 Win7 64 + Vmware 11 + ubuntu14.04 32 u-boot 版本:u-boot-2015-04 Linux kernel版本:linux-3.16.y busybox版本:1_24_stable 交叉编译工具链:arm-linux-gnueabi- qemu版本:stable-2.4 目的 这篇博文的目的是实现NFS根文件系统的挂载.具体步骤如下. 步骤 1.参照上一篇博文,以保证Qemu的网络是可以用的. 2.配置u-boot的环境变量bootargs s…
目标板挂载根文件系统的方法有两种(这里所说的服务端就是ubuntu,Ubuntu已经成功安装了nfs服务,并且保证服务端与目标板ping 通) 第一种:等待开发板启动之后去挂载,此时文件系统从Flash中启动,然后手动的通过命令去挂载服务端的文件系统 首先修改配置文件/etc/export,在export文件中最后一行加入:[文件系统的目录]  *(rw,sync,no_subtree_check,no_root_squash) /home/linux/root_fs/first_fs/ *(r…
问:挂载自己制作的文件系统卡在这里: NET: Registered protocol family 1 NET: Registered protocol family 17 VFS: Mounted root (cramfs filesystem) readonly. Freeing init memory: 116K Failed to execute /linuxrc. Attempting defaults... Kernel panic - not syncing: No init f…
最近打算从头开始制作根文件系统,下面是开发过程. 一.根文件系统的制作 0.FHS(Filesystem Hierarchy Standard)标准介绍 该标准规定了根目录下各个子目录的名称及其存放的内容: 目录名 存放的内容 /bin 必备的用户命令,例如ls.cp等 /sbin 必备的系统管理员命令,例如ifconfig.reboot等 /dev 设备文件,例如mtdblock0.tty1等 /etc 系统配置文件,包括启动文件,例如inittab等 /lib 必要的链接库,例如C链接库.内…
环境:ubuntu14.04(非虚拟机),OK6410 环境搭建: (1) #sudo apt-get install nfs-kernel-server 如果已经是最新版本了,无需安装 (2) 建立nfs文件夹,在ubuntu命令行中输入, $ mkdir /nfs $ chmod 777 /nfs $ chmod  777  /nfs/* (3) 打开/etc/exports文件,在末尾加入: /nfs *(rw,sync,no_root_squash) 注:nfs允许挂载的目录及权限,在文…
一.背景 1.1 笔者机器的内核错误信息如下: UBIFS error (ubi0:0 pid 1): ubifs_read_superblock: min. I/O unit mismatch: 2048 in superblock, 8 real (逻辑块大小与实际大小不符) 1.2 笔者为ubi文件提供的flash分区大小为32MiB 二.解决方法 修改在制作ubi文件系统时的页面大小参数 mkfs.ubifs的-m是用来指定页面大小参数的,当然其它参数也是需要适当调整的 如笔者原来的参数…
linux-2.6.36内核 start       arch/arm/boot/compressed/head.S arch/arm/kernel/head.S start_kernel()    init/main.c linux通用内核启动代码在init/main.c中: 汇编执行完后跳转到start_kernel()开始C 执行. ... setup_arch(&command_line);      //把.config中配置的CONFIG_CMDLINE赋予command_line输…
当NFS跟文件系统挂载不上的时候原因很多,但有一个原因不可忽略,那就是目标板内核支持的NFS版本以及默认版本,我吃过亏,特意做个笔记: setenv bootargs console=ttySAC0 root=/dev/nfs rw nfsroot=192.168.1.103:/home/guoguo/root_qtopia,nfsvers=3 rootdelay=10 ip=192.168.1.226:192.168.1.103:192.168.1.1:255.255.255.0:SMDK24…
当开发板启动以后可以通过在超级终端发送命令来配置NFS. 首先得给开发板一个IP地址,用下面的命令配置即可: #ifconfig 192.168.0.10 经过上面的配置以后在各自的终端中应该都能PING同对方. 执行如下命令来进行NFS 共享目录挂载: # mkdir nfs //建立Linux 服务器输出共享目录的挂载点: # mount –t nfs –o nolock 192.168.0.50:/MY2410/nfs /nfs # cd /nfs # ls 此时,嵌入式目标系统端所显示的…
背景: 文件系统的调试也建议在 网络中进行. 概念: NFS是Network File System的缩写及网络文件系统. 要功能是通过局域网络让不同的主机系统之间可以共享文件或目录. NFS系统和Windows网络共享.网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS nfs实现原理: 当用户读写有关的nfs下的目录, 最终由内核解析完成后驱动硬件,完成相应的操作. 1.用…
1. 通过error -6得到: #define ENXIO            6      /* No such device or address */ 2. 解决办法 使能CONFIG_BLK_DEV_RAM选项: CONFIG_BLK_DEV_RAM=y 同时请注意以下选项: CONFIG_BLK_DEV_RAM_COUNT=16 (默认值为16) CONFIG_BLK_DEV_RAM_SIZE=4096 (默认值为4096, 单位为KB(kilobytes))…
由于工作需要,在做app开发或系统移植时,经常需要编辑系统后重新烧写异常麻烦.通过NFS挂载根文件系统就不需要每次更改系统后再进行编译和烧写,等开发完成后一次烧写即可完成. 一.准备材料 可以根据自己的需要准备相应材料,以下是我自己使用的 开发环境:VMware 操作系统:ubuntu 开发版:100dsk_imx6ull 二.环境配置 需要在ubuntu系统上安装配置NFS和TFTP,具体教程看我之前的笔记连接如下,也可以在百度上直接搜索NFS和TFTP的安装教程. TFTP安装配置https…
配置编译好内核之后,将生成的内核文件uImage拷贝到/tftpboot/下,通过tftp服务器将内核下载到开发板,使用命令:tftp 31000000 uImage.下载完成之后配置bootargs环境变量:setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.118:/home/rootfs,proto=tcp,nfsvers=3 ip=192.168.1.1…
转载:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076655.html 1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统:为了挂载(mount)文件系统,您必须指定一个挂载点. 注:对于我们应用开发来说,购买开发板的时候,厂家会提供好现成的根文件系统和BootLoader等…
Hi!大家好,我是CrazyCatJack.又和大家见面了.今天给大家带来的是构建Linux下的根文件系统.希望大家看过之后都能构建出符合自己需求的根文件系统^_^ 1.内容概述 1.构造过程 今天给大家展示的根文件系统构造过程如下图所示: 正如大家看到的,这是一个环环相扣的过程.因为在这四个方面的内容其实相互包含,有很多交集的地方,所以我用环图给大家展示.在第一部分,我会给大家讲解如何在etc/目录下编写相应的配置文件,包含etc/init.d/rcS和etc/fstab等:在第二部分,将会教…
Linux内核与根文件系统的关系开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具.这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件.” 一.什么是文件系统文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构.Linux文件系统中的文件是数据的集合,文件系统不仅包含着文…
开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!         一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具.这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件.” 一.什么是文件系统         文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构.Linux文件系统中的文件是数据的集合,文件系统不仅包含…
前言: 在这篇文章中S3C6410公版的Linux BSP和U-Boot为了分析,名词和数据文件的所有内容本文是基于环境为例,所有的代码是在设置的示例进行分析的过程中.哈. 假设有不对或者不完好的地方,欢迎前来拍砖留言或者发邮件到guopeixin@126.com进行讨论,先行谢过. 简单的来说,根文件系统包含虚拟根文件系统和真实根文件系统. 在Kernel启动的初始阶段,首先去创建虚拟的根文件系统,接下来再去调用do_mount来载入真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实…
本章学习如何启动第一个应用程序 1.在前面的分析中我们了解到,在init进程中内核挂接到根文件系统之后,会开始启动第一个应用程序: kernel_init函数代码如下: static int __init kernel_init(void * unused) //进入init进程 { prepare_namespace() //挂载根文件系统 { ... ... / /通过解析出来的命令行参数" root=/dev/mtdblock3"来挂接根文件系统 mount_root(); //…
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLE…
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其 中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5…
http://www.linuxidc.com/Linux/2012-09/70510.htm  来源:Linux社区  作者:赵春江 uboot最主要的功能就是能够引导内核启动.本文就介绍如何实现该功能,并组成一个最简单的系统,这不仅要移植uboot,还要移植linux内核及创建一个根文件系统. 首先我们对nandflash进行分区,规划好每个文件存放在nandflash的位置.下面是nandflash的分区: 第0分区:0x000000000000-0x000000080000为uboot区…
一.回顾 1.如何获取使用帮助 help,--help,man,info 官方文档,自带文档(README,CHANGELOG,INSTALL),官方文档 发行版的文档 Google Linux Kerenl:官方的Documentation manual:使用手册 whatis keyword man # KEYWORD SECTION: [],<>,|,{} 控制命令: Space,b Enter,k Ctrl+d,Ctrl + u q #G /keyword ?keyword 2.基础命…
Linux文件系统:    内核并不真正负责具体的工作,这些工作是应用程序来负责的    Linux glibc    程序的编译方式:        动态链接式编译:        静态链接式编译: 进程的类型:        终端:硬件设备国,关联一个用户接口 与终端相关:通过终端启动        与终端无关:操作引导启动过程当中自动启动 操作系统的组成:        静态:kernel,application 文件系统:以层级结构划分,倒置的树状结构        https://bl…
我在之前的uboot通过NFS挂载ubuntu根文件系统中也有实现过根文件系统的制作,那只是在ubuntu官网已经做好的根文件基础上安装一些自己所需的软解而已.而使用busybox制作根文件系统可以自定义选项,加深自己对linux的系统理解,方便后期学习根文件系统的裁剪. 一.下载busybox制作制作工具 官网下载地址https://busybox.net/,进入"Download Source"下载连接 根据自己的需要下载相应的版本,我下载的是"busybox-1.33.…
开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3点此可下载 BusyBox版本:busybox-1.13.3  点此可下载 yaffs制作工具:mkyaffsimage yaffs2制作工具:mkyaffs2image(适合64M).mkyaffs2image-128(适合128M以上) 写之前的罗嗦 这几天制作根文件系统整得我够呛,毕竟是初学制作,各种不会,各种谷歌百度,害的…
上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-boot类似,普通Linux内核的启动过程也能够分为两个阶段,但针对压缩了的内核如uImage就要包含内核自解压过程了.本文以linux-2.6.37版源代码为例分三个阶段来描写叙述内核启动全过程.第一阶段为内核自解压过程,第二阶段主要工作是设置ARM处理器工作模式.使能MMU.设置一级页表等,而第三阶段则主要为…
续博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令.就进入Linux内核启动阶段,与u-boot类似,普通Linux内核的启动过程也能够分为两个阶段,但针对压缩了的内核如uImage就要包含内核自解压过程了.本文以linux-2.6.37版源代码为例分三个阶段来描写叙述内核启动全过程. 第一阶段为内核自解压过程.第二阶段主要工作是设置ARM处理器工作模式.使能MMU.设置一级页表等.而第三阶段则主要为…
title: 根文件系统之init tag: arm date: 2018-11-12 18:53:23 --- 引入 在Kernel源码分析中,了解到init_post是在挂载根文件系统之后执行应用程序 打开标准输入/输出/错误 Linux首先打开标准输入scanf,标准输出printf,标准错误err if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) printk(KERN_WARNING &…