根文件系统移植

合集下载

UBIFS文件系统的移植

UBIFS文件系统的移植

UBI文件系统的移植作者:piaozhiye86@首次做UBIFS的移植,不足之处欢迎批评指正。

2010-7-15自从linux2.6.27以后的内核版本都支持UBI文件系统了,新版本的uboot已经支持UBIFS了。

软件平台VMwareFedora-10使用源码:linux-2.6.30.4.tar.bz2u-boot-2010.06-rc1.tar.bz2硬件环境mini2440—64M NAND关于uboot的移植可以参考《嵌入式Linux之我行》中uboot的移植,那里写得比较详细。

我也是参考了其中的文章。

1、uboot的UBI的移植关于uboot的UBI的移植几乎没有说明介绍,移植首先要保证你的flash驱动能够跑起来,我是在nand flash 上跑的UBI。

刚开始的时候我也没有什么头绪,只能够从uboot的readme开始查找一些蛛丝马迹。

- MTD Support (mtdparts command, UBI support)CONFIG_MTD_DEVICEAdds the MTD device infrastructure from the Linux kernel.Needed for mtdparts command support.CONFIG_MTD_PARTITIONSAdds the MTD partitioning infrastructure from the Linuxkernel. Needed for UBI support.因此呢,要UBI支持首先得要MTD支持,因此在配置文件中要添加以上两项的定义。

要移植UBI还要添加:#define CONFIG_CMD_UBIFS#define CONFIG_CMD_UBI总的关于UBI的部分是以下几个宏/****MTD Support (mtdparts command, UBI support)****/#if 1#define CONFIG_MTD_DEVICE 1#define CONFIG_MTD_PARTITIONS 1#define CONFIG_CMD_MTDPARTS#define CONFIG_CMD_UBIFS#define CONFIG_CMD_UBI#define CONFIG_LZO 1#define CONFIG_RBTREE 1#endif同时呢要给NAND建立个默认的分区。

ARM Linux在TE2410开发板上的移植

ARM Linux在TE2410开发板上的移植

Po tng A RM nu t ri Li x o TE24 0 ar 1 Bo d
Y u — ig Z NGj k u AN G o y HA ~ o n i
( b i i r t, a d g0 0 , ia He e Unv s y B o i 7 2 Chn) ei n 1 0
du e n hi p pe .Al t e w o k c sssoft ui ng t r sc m pi n r nm e t t c d i t s a r l h r on it he b l di he cos o l e vio e n ,hePori M nu r e nd t tng t ng ofAR Li x ke la hePori n ofr tFi s t m .Afe ns d he pori uc esu l t y tm un sa e n he boad.W e c n dei n a p iai p og a oo l yse e tr f ihe t i t ng s c sf ly,he s se r tbl o t r a sg p lc ton r r mm e t O
Ab t a t Th a d r r p r e f T 4 0 s r c : e h r wae p o e t s o E2 1 o r r rs n e . e tc nq e o ot g AR M i u O T 4 0 b ad ae ito i i L n x t E2 1 o r r n r —
闫 英. 吉 国 张 寇
( 北 大 学 , 北 保 定 0 10 ) 河 河 7 0 2
摘要 : 简要 介 绍 了 T 2 1 E 40开发 板 的 硬 件 特 性 , 点 阐述 了 Ln x 内核 在 A M 9上 的 移植 过 程 。其 中 包括 : 立 交 叉编 译 环 境 、 重 iu R 建 系统 内核 的 移植 和根 文件 系统 的 移 植 等 。 移 植后 的操 作 系统 在 开发 板 上 运 行 稳 定 , 并且 可 以根 据 需要 编 写 应 用 程序 , 该 开 发 板 用 于 工 将

根文件系统的移植

根文件系统的移植

根文件系统的移植1.下载busybox-1.13.4.tar.bz2网址:/2.解压busybox-1.13.4.tar.bz2到桌面[root@localhost Desktop]# tar-xjvf busybox-1.13.4.tar.bz2-C./[root@localhost Desktop]# cd busybox-1.13.4[root@localhost busybox-1.13.4]#3.编辑Makefile文件[root@localhost busybox-1.13.4]# gedit Makefile将CROSS_COMPILE ?=改为CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-将ARCH ?= $(SUBARCH)改为ARCH ?= arm4.进行默认配置[root@localhost busybox-1.13.4]# make defconfig //恢复默认配置5.对配置信息进行修改[root@localhost busybox-1.13.4]# make menuconfigHOSTLD scripts/kconfig/mconfHOSTCC scripts/kconfig/lxdialog/checklist.oHOSTCC scripts/kconfig/lxdialog/inputbox.oHOSTCC scripts/kconfig/lxdialog/lxdialog.oHOSTCC scripts/kconfig/lxdialog/menubox.oHOSTCC scripts/kconfig/lxdialog/msgbox.oHOSTCC scripts/kconfig/lxdialog/textbox.oHOSTCC scripts/kconfig/lxdialog/util.oHOSTCC scripts/kconfig/lxdialog/yesno.oHOSTLD scripts/kconfig/lxdialog/lxdialogscripts/kconfig/mconf Config.in在弹出的TUI界面中进行如下配置:检查Miscellaneous Utilities--->taskset 是否去除同时设置如下:Busybox Settings --->Build Options --->[*]Build BusyBox as a static binry (no shared libs) //选用静态连接[*]Build with Large File Support (for accessing files > 2 GB)(/usr/local/arm/3.4.1/bin/arm-linux-) Cross Compiler prefixInstallation Options --->[*] Don't use /usr(./_install) BusyBox installation prefix //安装路径Busybox Library Tuning --->(6) Minimum password length(2) MD5: Trade Bytes for Speed[*] Faster /proc scanning code (+100 bytes)[ ] Support for /etc/networks[*] Command line editing(1024) Maximum length of input[*] vi-style line editing commands(15) History size[*] History saving[*] Tab completion[*] Username completion[*] Fancy shell prompts //Setting this option allows for prompts to use things like \w and// \$ and escape codes.[ ] Give more precise messages when copy fails (cp, mv etc)(4) Copy buffer size, in kilobytes[ ] Use clock_gettime(CLOCK_MONOTONIC) syscall[*] Use ioctl names rather than hex values in error messages[*] Support infiniband HW设置完毕后,保存、退出。

嵌入式Linux中CramFS根文件系统的移植实现

嵌入式Linux中CramFS根文件系统的移植实现

嵌入式Linux中CramFS根文件系统的移植实现刘俊霞;盛文婷【摘要】首先研究了嵌入式Linux系统以及CramFS文件系统的移植,然后分析了嵌入式Linux系统及CramFS文件系统的特性,其次,详细说明了移植最小Linux系统的制作过程,最后,对制作出来的Linux系统镜像进行测试.最终的测试结果显示,系统移植成功且能够实现Linux系统的基本命令.【期刊名称】《数字技术与应用》【年(卷),期】2016(000)005【总页数】2页(P59-60)【关键词】Linux;CramFS;isoLinux【作者】刘俊霞;盛文婷【作者单位】新疆工程学院电气与信息工程系新疆乌鲁木齐 830023;新疆农业大学科学技术学院新疆乌鲁木齐 830091【正文语种】中文【中图分类】TP316.81随着电子产业的不断发展,基于ARM技术的系统设计和开发平台越来越多地在控制类、消费类、通信类等电子产品中广泛应用。

从软件角度上看,构建基于ARM 技术的Linux系统要涉及到引导加载程序、Linux内核、文件系统、用户应用程序几部分的设计。

由于存储空间有限,如何有效地使用有限的存储空间是嵌入式开发者必须考虑的,合适的文件系统格式是解决这一问题的关键所在。

CramFS是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩。

它并不需要一次性地将文件系统中的所有内容都解压缩到内存之中,而只是在系统需要访问某个位置的数据的时候,马上计算出该数据在CramFS中的位置,将它实时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据。

CramFS文件系统的基本组成:初始化程序、Shell程序以及其他Linux常用工具、配置文件、链接库、图形界面程序和用户应用程序,文件系统是紧跟Linux内核放置,由内核加载,主要存放用户应用程序和配置信息。

在嵌入式的环境之下,内存和外存资源都需要节约使用。

ARM开发教程之ARM Linux系统移植步骤

ARM开发教程之ARM Linux系统移植步骤
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之ARM LINUX系统移植步骤 ARM开发教程之ARM LINUX系统移植步骤 开发教程之
ARM简介 Linux简介 系统的制作移植建立交叉编译环境 引导程序 内核 修改内核 内核的配置编译 根文件系统 结束语

千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之引导程序 引导程序
对于计算机系统来说,从开机上电到操作系统启动需要一个引导程 序。嵌入式linux系统同样离不开引导程序,这个引导程序叫做 Bootloader[1]。通过这段小程序,可以初始化硬件设备、建立内存 空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系 统内核做好准 备。 vivi[4]是韩国MIZI公司为其arm9系列产品而研发的Bootloader, 小而灵巧,这里选用它作为小型Linux系统的Bootloader。 首先要修改vivi源代码中的Flash分区信息,新的分区信息如表1 所示。 根据表1,在vivi源码arch/s3c2410/smdk.c文件中作出相应的 修改。 然后在配置菜单中导入smdk2410的默认配置,编译成功将在 vivi源代码目录下生成所需的Bootloader文件,文件名为vivi。 接着,便可把vivi下载到目标板Flash的相应位置。

千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之ARM简介
Arm9S3C2410微处理器与Linux的结合越来越紧密,逐 渐在嵌入式领域得到广范的应用。目前,在便携式消 费类电子产品、无线设备、汽车、网络、存储产品等 都可以看到S3C2410与Linux相结合的身影。 S3C2410微处理器是一款由Samsung公司为手持 终端设计的低价格、低功耗、高性能,基于arm920T 核的微处理器。它带有内存管理单元 (MMU),采用 0.18mm工艺和AMBA新型总线结构,主频可达203MHz。 同时,它支持Thumb 16位压缩指令集,从而能以较小 的存储空间获得32位的系统性能。

嵌入式Linux中CramFS根文件系统的移植实现

嵌入式Linux中CramFS根文件系统的移植实现

嵌入式Linux中CramFS根文件系统的移植实现在嵌入式Linux系统开发中,根文件系统是一个重要的组成部分。

而CramFS是一种专门针对嵌入式系统应用的文件系统格式,其最大的优势是占用空间小,是一种压缩方式的文件系统,可大幅度减小系统的存储容量,因此在嵌入式系统开发中经常使用。

本文将介绍嵌入式Linux中CramFS根文件系统的移植实现。

一、CramFS的特点CramFS是Linux下的一种轻量级只读文件系统,以一种特殊的方式进行压缩,并且数据文件被强制以固定大小的块存储。

与其他文件系统不同,CramFS在挂载时不需要解压缩,因为它已经被预先压缩了。

CramFS还具有以下特点:(1)支持文件系统压缩,可大幅度降低系统存储空间占用。

(2)只读的文件系统,可以保证文件系统的完整性和安全性。

(3)支持嵌入式系统的启动和挂载。

二、CramFS根文件系统移植实现在嵌入式系统开发中,CramFS根文件系统的移植实现步骤如下:1、准备文件系统首先需要构建CramFS文件系统。

可以在Linux环境下创建CramFS文件系统,也可以将现有的文件系统转换为CramFS 格式。

构建好CramFS文件系统后,需要将其打包成initramfs 格式。

2、配置内核将打包好的initramfs文件放到内核源码根目录下,并在内核配置文件中进行相关配置:```CONFIG_INITRAMFS_SOURCE="<path>/initramfs.cramfs" CONFIG_RD_GZIP=yCONFIG_RD_XZ=yCONFIG_RD_LZMA=yCONFIG_RD_BZIP2=y```其中,INITRAMFS_SOURCE是initramfs所在的路径。

3、编译内核对内核进行编译,生成内核和相关驱动。

4、烧录将生成的内核和相关驱动烧录到目标设备中,然后重启设备。

三、总结CramFS是一种专门针对嵌入式系统应用的文件系统格式,它具有压缩率高、只读文件系统、支持启动和挂载等优点。

linux系统移植常用文件夹路径

linux系统移植常用文件夹路径

linux系统移植常用文件夹路径在Linux系统中,有许多常用的文件夹路径,它们扮演着不同的角色,为用户提供了便利和管理文件的方式。

下面我将为您介绍一些常见的文件夹路径。

1. / :根目录根目录是整个Linux文件系统的起点,所有其他文件和文件夹都位于根目录之下。

它类似于Windows系统中的C盘。

2. /home :用户主目录每个用户都有一个主目录,该目录位于/home下,以用户名命名。

例如,用户Alice的主目录路径为/home/Alice。

在主目录下,用户可以存储个人文件和配置。

3. /etc :系统配置文件系统配置文件存放在/etc目录下,这些文件包含了操作系统的配置和设置信息,如网络配置、用户账户信息等。

4. /var :可变数据/var目录用于存放经常变化的文件,如日志文件、临时文件等。

例如,网络日志文件存放在/var/log下。

5. /tmp :临时文件夹/tmp目录用于存放临时文件,这些文件在重启后会被删除。

它通常用于存放临时下载文件、解压缩文件等。

6. /usr :用户程序/usr目录用于存放用户安装的软件和应用程序。

其中,/usr/bin存放可执行文件,/usr/lib存放库文件,/usr/share存放共享数据等。

7. /bin :基本系统命令/bin目录包含了一些基本的系统命令,这些命令在系统启动时就可以使用。

例如,ls、cp、rm等命令都位于/bin目录下。

8. /sbin :系统管理命令/sbin目录包含了一些系统管理命令,这些命令通常只有管理员才有权限使用。

例如,ifconfig、shutdown等命令都位于/sbin目录下。

9. /opt :可选软件包/opt目录用于存放可选的软件包,这些软件包通常是第三方提供的,不属于操作系统的核心组件。

10. /boot :启动文件/boot目录包含了启动系统所需的文件,如内核文件、引导程序等。

这些文件在系统启动时被加载。

11. /dev :设备文件/dev目录包含了系统中的设备文件,如硬盘、光驱、键盘等。

操作系统移植

操作系统移植

操作系统移植在当今的科技世界中,操作系统移植是一项至关重要的技术活动。

它就像是给计算机系统进行一场“大搬家”,把一个操作系统从一种硬件平台或环境迁移到另一种不同的硬件平台或环境中,让其能够在新的“家”里正常运行。

要理解操作系统移植,我们先得清楚什么是操作系统。

操作系统就像是计算机的大管家,负责管理计算机的各种资源,比如内存、处理器、输入输出设备等,同时还为应用程序提供一个稳定、高效的运行环境。

常见的操作系统有 Windows、Linux、Android 等等。

那为什么要进行操作系统移植呢?原因有很多。

首先,随着技术的不断发展,新的硬件平台不断涌现。

比如,当一家公司研发出了一款性能更强大、功耗更低的芯片,为了让现有的操作系统能够在这个新芯片上运行,就需要进行移植。

其次,有时候出于特定的应用需求,需要把操作系统从一种设备移植到另一种设备上。

比如,将原本在个人电脑上运行的操作系统移植到智能手机或平板电脑上。

操作系统移植可不是一件简单的事情,它是一个复杂而具有挑战性的过程。

在移植之前,需要对目标硬件平台进行深入的了解。

这包括了解其处理器架构、内存管理方式、中断处理机制、总线结构等等。

只有清楚地掌握了这些硬件特性,才能为后续的移植工作打下坚实的基础。

然后就是对操作系统本身的分析和修改。

操作系统通常由内核、驱动程序、系统服务等多个部分组成。

在移植过程中,可能需要对内核进行调整,以适应新的硬件环境。

比如,修改内存分配算法、优化任务调度策略等。

对于驱动程序,往往需要重新编写或修改,以使其能够与目标硬件进行正确的交互。

系统服务也可能需要进行相应的调整,以确保其在新平台上的正常运行。

在实际的移植工作中,还需要解决一系列的兼容性问题。

不同的硬件平台可能具有不同的指令集、寄存器设置、存储布局等。

这就需要在移植过程中进行相应的转换和适配,以确保操作系统能够正确地执行指令、访问内存和处理数据。

另外,测试也是操作系统移植中不可或缺的环节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五根文件系统移植实验目的:通过本次实验,使大家学会根文件系统移植的具体步骤,并对根文件系统有更近一步的感官认识。

让同学理解由于根文件系统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括Linux启动时所必须的目录和关键性的文件,任何包括这些Linux 系统启动所必须的文件都可以成为根文件系统。

实验硬件条件:1、实验PC机一台,TINY6410开发板一台2、电源线,串口线,数据线。

实验软件条件:1、VMware Workstation,2、Ubuntu10.043、mktools-20110720.tar.gz4、busybox-1.13.3-mini2440.tgz,5、SecureCRT以及dnw烧写工具实验步骤:一、实验步骤1.进入rootfs目录,查看压缩文件,具体操作指令如下:2.发现有两个压缩文件夹,分别进行解压:3.tar xvzf busybox-1.13.3-mini2440.tgz,4.tar xvzf mktools-20110720.tar.gz,解压完成后,5.查看文件夹#ls二、实验步骤1.修改架构,编译器#cd busybox-1.13.3/2.进入后查看#ls3.#gedit Makefile4.修改 164行 CROSS_COMPILE ?=arm-linux-5.修改190行 ARCH ?= arm6.保存后,退出!三、实验步骤1.修改配置 #make menuconfig2.若出现如下提示3.需调整到最大化。

4.把Busybox Settings-----→>Build Option------→>Build BusyBox as astatic binary (no shared libs) 选择上,其他的默认即可。

然后一直退出,保存即可5.接着执行 make接着执行 make install6.最终生成的文件在_install 中#cd _install#ls存在这四个文件,即编译成功。

四、实验步骤1、编写脚本文件,生成文件系统基本框架。

mkdir /home/tom/source/rootfs/arm-rootfs cd /home/tom/source/rootfs/arm-rootfs2、#gedit mkrootfs.sh将如下内容复制到mkrootfs.sh中#!/bin/shecho "------Create rootfs directons start...--------" mkdir rootfscd rootfsecho "--------Create root,dev....----------"mkdir root dev etc boot tmp var sys proc lib usr mnt home mkdir etc/init.d etc/rc.d etc/sysconfigmkdir usr/sbin usr/bin usr/lib usr/modulesecho "make node indev/console dev/null"mknod -m 600 dev/console c 5 1mknod -m 600 dev/null c 1 3mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/run var/tmpchmod 1777 tmpchmod 1777 var/tmpecho "-------make direction done---------"保存并退出3、修改mkrootfs.sh权限。

password for tom:123456然后执行 #./mkrootfs.sh,会生成rootfs文件。

#cd rootfs看到上述文件框架已经做好。

接着将busybox生成四个文件(_install下)4、拷贝到/home/tom/source/rootfs/arm-rootfs/rootfs目录下。

选择Merge All全部替换五、实验步骤1、添加文件系统的配置信息和启动项进入etc目录#cd etc(rootfs下的etc文件)#cd sysonfig#gedit HOSTNAMES-601(内容随意输入,这里只为了规范)保存并退出!2、增加如下文件:从主机根目录/etc中复制group,passwd,shadow到/home/tom/source/rootfs/arm-rootfs/rootfs/etc具体步骤如下:cp /etc/grouphome/tom/source/rootfs/arm-rootfs/rootfs/etc/cp /etc/passwdhome/tom/source/rootfs/arm-rootfs/rootfs/etc/sudo cp /etc/shadowhome/tom/source/rootfs/arm-rootfs/rootfs/etc/密码:123456注:也可手动拖拽;复制后etc文件内容如下:3、 #gedit profile复制如下内容:#Ash profile#vim:syntax=sh#No core file by defaults#ulimit -S -c 0>/dev/null 2>&1 USER="id -un"LOGNAME=$USERPS1='[\u@\h=W]#'PATH=$PATHHOSTNAME='/bin/hostname' export USER LOGNAME PS1 PATH4、 #gedit inttab复制如下内容:#etc/inittab::sysinit:/etc/init.d/rcS ::askfirst:-/bin/sh::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a –r5、#gedit fstab复制如下内容:#device mount-point type option dump fsck order proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0sysfs /sys sysfs defaults 0 0mdev /dev ramfs defaults 0 0接下来进入etc/init.d文件6、 #gedit rcS复制如下内容:#!/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binrunlevel=Sprevlevel=Numask 022export PATH runlevel prevlevelecho "----------munt all----------------"mount -aecho /sbin/mdev>/proc/sys/kernel/hotplugmdev -secho "****************Studying ARM*********************" echo "Kernel version:linux-2.6.38"echo "Student"echo "Date:2012.12.10"echo "***********************************************"/bin/hostname -F /etc/sysconfig/HOSTNAME 并修改权限#sudo chmod 777 rcS设置设备节点:进入rootfs下的dev文件#sudo mknod –m 600 console c 5 1#sudo mknod –m 600 null c 1 3然后退到上级目录#cd ..解除dev文件下所有文件权限:Sudo chmod 777 dev –R到这里,恭喜你,文件系统基本搭建起来了。

六、实验步骤编译:我要把文件系统编译成为ubi文件系统格式将/home/tom/source/rootfs/usr/sbin下的mkubimage和mkubimage-slc文件拷贝到/home/tom/source/rootfs/arm-rootfs下接下来#sudo ./mkubimage-slc rootfs rootfs.ubi 并解除rootfs.ubi权限#sudo chmod 777 rootfs.ubi到这里实验就全部结束,生成的根文件系统rootfs.ubi在/home/tom/source/rootfs/arm-rootfs下,可用DNW将其烧到开发板上进行测试。

实验结果:在本次试验中我们涉及到的知识很多,理解起来比较难,老师讲的很详细但有些地方还不是很理解,本次试验我们是做根文件系统的移植,通过多个命令的执行和修改最后搭建起了文件系统,在这个过程中我们遇到了很多问题,主要是没有对根文件系统移植有很好的理解,还好在老师的帮助下完成了,我学到了很多知识,对以后的学习很有帮助。

相关文档
最新文档