initial ram filesystem】的更多相关文章

1 制作最简单的initramfs 1.1 创建init #include <stdio.h> int main() { printf ("\n"); printf ("hello world from %s!\n", __FILE__); while (1) {} return 0; } gcc -static myinit.c -l myinit 1.2 创建initramfs.cpio mkdir initramfs mv myinit initr…
1 什么是initial ram disk 它就是一个做好了的文件系统,其存储空间是ram.在kernel启动的第一个阶段,会被mount成根文件系统. 2 为什么需要initial ram disk 第一,为了保证kernel image的大小,因此把modules放在initial ram disk中存放.在系统启动的时候再动态加载: 第二,为了对真正装载了根文件系统的外部存储设备进行初始化,等其完全可用了,再把根文件系统切换过去.要让根文件系统能够正常工作起来,必须要准备好环境,然后mou…
作者:彭東林 郵箱:pengdonglin137@163.com QQ:405728433 開發板 TQ2440 + 64MB 內存 + 256MB Nand 軟件 Linux: Linux-4.9 (https://github.com/pengdonglin137/linux-4.9 ) u-boot:U-Boot 2015.04  (http://www.cnblogs.com/pengdonglin137/p/4541705.html 以及 https://github.com/peng…
内核:              linux-3.0 u-boot:          2010.09 开发板:         fl2440(s3c2440主芯片) 交叉编译器:   2011.11 我们在上面移植了initramfs文件系统,并且已经成功运行了.下面我们开始移植nfs,之前开启PC上的nfs服务功能 确认并安装NFS服务依赖软件包 一般NFS服务器要提供服务,必须启动inet,nfs, mount,portmap或rpcbind这些守护进程并保持在后台状态运行. 这里需要提示…
在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误. 那么根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/linuxrc.等其执行完后.切换根目录,再挂载具体的根文件系统.根文件系统执行完之后,也就是到了Start_kernel()函数的最后,执行init的进程,也就第一个用户进程.对系统进行各种初始化的操作. 根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没…
漏洞来源这个安全问题来源于Cryptsetup存在的一个漏洞(CVE-2016-4484).Cryptsetup是在Linux统一密钥设置(Linux Unified Key Setup, LUKS)中用来加密磁盘的软件,而LUKS则是Linux系统中标准的磁盘加密.   漏洞其实是出现在系统后Cryptsetup处理密码输入错误的时候,它会允许用户多次重试输入密码.而当用户输入错误93次后,程序就会给用户一个带root权限的shell(busybox).也就是说,如果你重复93次输错密码,或者…
环境: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允许挂载的目录及权限,在文…
NFS挂载Android文件系统 [日期:2012-02-14] 来源:Linux社区  作者:cjok376240497 [字体:大 中 小]     1.安装NFS服务 $sudo apt-get install nfs-kernel-serverportmap $sudo mkdir /nfsboot $sudo vim /etc/exports / *(rw,no_root_squash,sync) 然后重启NFS服务 $sudo /etc/init.d/nfs-kernel-serve…
一,Ramdisk简介: Ramdisk是一种基于内存的虚拟文件系统(并非一个实际的文件系统),它将一部分固定大小(这个大小在编译内核的make menuconfig时配置)的内存当作硬盘一个分区来使用.ramdisk是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统,通常我们会使用ext2或ext3文件系统来格式化它.由于ramdisk是在内存中进行操作的,所以我们可以对里面的文件进行添加,修改,删除等等操作,但是一掉电,就什么也没有了.由于这个特性,我们可以将一些经常被访问而又不会…
linux内核最小系统,使用内核版本:https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.8.1.tar.bz2 1,FL2440板子的基本硬件:晶振12MHZ CPU 型号为S3C2440,基于ARM920T,指令集ARMV4,时钟主频400MHz SDRAM H57V2562GTR-75C 2片*32MB=64MB,挂载于nGCS6 (0x3000 0000) NANDFLASH 型号:K9F2G08U0B  大小:256MB Netwo…
转自Linux中国 这一部分我们讲配置内核IRQ子系统.中断请求(IRQ)是硬件发给处理器的一个信号,它暂时停止一个正在运行的程序并允许一个特殊的程序占用CPU运行. 这个目录中的第一个问题属于内核特性(Expose hardware/virtual IRQ mapping via debugfs (IRQ_DOMAIN_DEBUG))(通过debugfs来显示硬件/虚拟的IRQ映射),它询问是否可以使用虚拟的调试文件系统来映射硬件及Linux上对应的IRQ中断号.这个用作调试目的,大多数用户不…
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 General setup常规设置 Local version - append to kernel release 在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到 Automaticall…
Linux内核移植与启动 Target borad:FL2440 Bootloader:U-boot-2010.09 交叉编译器:buildroot-2012.08 1.linux内核基础知识 首先,磨刀不误砍柴工.在动手进行linux内核移植之前,我们有必要对linux内核进行一定的了解. 1.1 Linux内核启动过程概述 一个嵌入式Linux系统从软件角度看可以分为四个部分:  引导加载程序(Bootloader),Linux内核,文件系统,应用程序. 其中Bootloader是系统启动或…
下面两篇文章是ARM9论坛上的讲解ramdisk文件系统的很不错的文章 今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下. 其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆).开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:2.6.29.4-FriendlyARM.昨天写贴子的时候具体记不清了,今天起来启动开发板用uname -r查一下,就是…
今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下.其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆). 开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:2.6.29.4-FriendlyARM.昨天写贴子的时候具体记不清了,今天起来启动开发板用uname -r查一下,就是叫做2.6.29.4-FriendlyARM,帖子已经改好了.本文就是友…
这几天参考国嵌的实验手册和网上的资料完成了u-boot定制.内核定制.ramdisk根文件系统的制作,并成功.趁热打铁,总结一下.本文引用了很多网络上的文章,就不一一注明了.感谢各大侠的帮助,如有雷同,望见谅. 开发环境:红帽企业版5 交叉编译工具链:arm-linux-gcc4.3.2 嵌入式Linux内核版本:友善之臂的mini2440开发板光盘自带的内核linux-2.6.32.2 开发板:mini2440-64MNand Flash Bootloader:u-boot-1.20 具体步骤…
开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:2.6.29.4-FriendlyARM.昨天写贴子的时候具体记不清了,今天起来启动开发板用uname -r查一下,就是叫做2.6.29.4-FriendlyARM,帖子已经改好了.本文就是友善之臂的2.6.29.4-FriendlyARM的那个版本的内核的基础上改的.其它版本的应该也类似,仅供参考.开发板:mini2440-128M Nand FlashBootload…
2012-05-15 1.ARM开发板环境的搭建,nor启动,通过suppervivi,下载vivi---下载Kernel----下载文件系统,然后Nandflash启动即可. 2.在/etc/init.d/rcS 中注释开机启动qtopid, #/bin/qtopid;需要启动的就是用命令 #/bin/qtopid & 如果此命令不行,就进入bin目录中执行 #./qtopid & //&符号是表示后台运行 2012-05-16 1.git clone /e/git/.git …
#为了提高性能,文件系统一般都是以 relatime形式挂载进来的,见:/etc/fstab #更新一下mtime,这样,编译过程中用到的文件的atime都会被更新 find . -exec touch -m {} \; && touch ../tag make mrproper && make allnoconfig && make menuconfig #在allnoconfig的基础下,通过menuconfig加入如下配置,以方便调试 ********…
作者信息 作者: 彭东林 邮箱: pengdonglin137@163.com QQ: 405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linux内核版本: Linux-4.10 Busybox版本:busybox-1.24.2 工具链: gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux 参考博文: 用Qemu模拟vexpress-a9 --- 配置 qemu 的网络功能 用Qemu模拟vexpr…
关于initramfs initramfs在编译内核的同时被编译并与内核连接成一个文件,它被链接到地址__initramfs_start处,与内核同时被加载到ram中.initramfs被解析处理后原始的cpio包(压缩或非压缩)所占的空间(&__initramfs_start- &__initramfs_end)是作为系统的一部分直接保留在系统中,不会被释放掉. 由于initramfs使用cpio包格式,所以很容易将一个单一的文件.目录.node编译链接到系统中去,这样很简单的系统中使用…
开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi 要移植的kernel版本:linux-4.4 Tiny4412开发板硬件版本为:   底板:  Tiny4412SDK 1312B   核心板:Tiny4412 - 1306   1.下载.解压内核 linux-4.4.tar.gz 2.配置 1)配置开发板类型及指定交叉编译链 dif…
buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot.kernel.rootfs以及rootfs中的各种库和应用程序). 使用buildroot搭建基于qemu的虚拟开发平台,参考<通过buildroot+qemu搭建ARM-Linux虚拟开…
转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地址 ,有些做的效果网页上没了,感兴趣建议去上面地址下载pdf版的 下载地址 http://download.csdn.net/detail/shichaog/8054005   shichaog@126.com启动流程概述也许你会好奇Linux是如何启动的?本文围绕Linux如何启动起来展开一些介绍…
span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }.cm-searchi…
转自:http://blog.csdn.net/gaoyuanlinkconcept/article/details/8810468 介绍make menuconfig中的每个选项含义 Linux 2.6.19.x 内核编译配置选项简介作者:金步国 版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件.您可以自由链接.下载.传播此文档…
作者 彭东林 pengdonglin137@163.com 软件 Host: Ubuntu14.04 64 Qemu 2.8.0 Linux 2.6.24 busybox 1.24.2 gcc 4.4.7 概述 为了尽量还原<深入Linux内核架构>这本书的环境,我下载了Linux 2.6.24,由于这个内核版本比较老,所以用最新的gcc编译会有问题,所以需要安装一个比较老的gcc,从该内核的README得知,gcc的版本最少应该是3.2. 正文 一.安装GCC 使用apt-cache sea…
作者信息 作者:彭东林 邮箱:pengdonglin137@163.com QQ:405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linux内核版本: Linux-4.10 Busybox版本:busybox-1.24.2 工具链: gcc 具备的功能 模拟一个双核或者单核的x86_64架构的系统,根文件系统用ramdisk的形式,跟Host之间采用NFS的方式实现文件共享. 正文 1.Qemu的编译安装 请参考博文用qemu搭建aarch…
作者信息 作者:彭东林 邮箱:pengdonglin137@163.com QQ:405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linux内核版本: Linux-4.10 Busybox版本:busybox-1.24.2 工具链: gcc 具备的功能 模拟一个双核或者单核的x86架构的系统,根文件系统用ramdisk的形式,跟Host之间采用NFS的方式实现文件共享. 正文 1.Qemu的编译安装 请参考博文用qemu搭建aarch64学…
目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http://infohacker.blog.51cto.com/6751239/1203635 Device Drivers设备驱动程序 Generic Driver Options 驱动程序通用选项 Select only drivers that don't need compile-time ext…