Linux系统移植步骤
根文件系统移植

实验五根文件系统移植实验目的:通过本次实验,使大家学会根文件系统移植的具体步骤,并对根文件系统有更近一步的感官认识。
让同学理解由于根文件系统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括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存在这四个文件,即编译成功。
Linux的移植_实验8_镜像下载实验

实验8 镜像下载实验【实验目的】掌握Bootloader的下载过程.掌握Linux内核和文件系统的下载过程.【实验步骤】第一步: JFLASH工具安装Jflash 工具放在Jflashmm目录下,文件名为Jflash-Xsbase270.tar.gz,将该文件复制到WINDOWS与LINUX系统的共享目录。
然后将其减压即可。
在减压之前我们在根目录下建立一个WORK目录(我们后续操作的所有实验文件都会放在该目录,这样方便管理,为了统一,请大家都按照实验文档操作)。
建立好后切换到我们的JFLASH工具目录,用tar -zxvf Jflash-Xsbase270.tar.gz -C /work/ 命令将JFLASH 工具减压到work目录下。
【图8-1】第二步: 烧写BOOTLOADER到嵌入式平台如果是安装的虚拟机,必须先确认虚拟机中并口是否加进来,在VM->Setting…项,如下图所示,如果没有加进来,请关闭系统,将并口加载到虚拟机中,再重新启动系统。
【图8-2】将image目录下的boot复制到Jflash/Jflash-XSBase270下,然后切换到Jflash/Jflash-XSBase270,执行./jflashmm boot 命令将boot烧写到平台的NOR FLASH 中。
(注:如果不把boot拷贝过来也可以烧写,只是需要添加boot所在的目录)【图8-3】烧写好Bootloader后,在linux的终端中打开minicom,开启平台后在2秒延时界面中按任意键,进入Bootloader的加载模式。
如【图8-4】所示:【图8-4】第三步: 通过BOOTLOADER烧写内核烧写前的准备工作:1、确保BOOTP与TFTP配置成功(具体操作请看前面实验说明)2、确保嵌入式的MAC地址与bootptab设置的地址一样,检查方法:在终端输入0,进入命令行模式,可以用set命令查看,如下图所示,如果不一样,可以用set命令设置MAC地址,比如按照bootptab的内容,该MAC地址该为:12:34:56:78:9A:00,则可以使用set myhaddr 12:34:56:78:9a:00 命令来设置MAC地址。
实验5-3 Linux 内核移植实验

实验 5-3 Linux-2.6.28移植实验【实验目的】熟悉Linux-2.6.28移植过程。
【实验步骤】第一步:从/pub/linux/kernel/v2.6下载linux-2.6.28.tar.bz2压缩文件(或光盘中提供);【图5-3-1】第二步:将linux-2.6.28.tar.bz2压缩文件复制到Linux工作目录;第三步:在Linux下利用tar jxvf linux-2.6.28.tar.bz2命令解压linux-2.6.28.tar.bz2压缩文件。
第四步:进入解压后的linux-2.6.28目录下,利用vi编辑工具修改linux-2.6.28目录下的顶层Makefile文件。
第五步:修改linux-2.6.28目录下的顶层Makefile文件,设置编译linux操作系统的CPU体系架构变量ARCH 和所使用的交叉编译工具链变量CROSS_COMPILE(注:实验使用arm-linux交叉编译工具链 4.2.1版本,可从/pub/snapgear/tools/arm-linux/下载arm-linux-tools-20070808.tar.gz压缩文件,解压到/OPT目录下)。
改为ARCH ?= armCROSS_COMPILE ?=/opt/usr/local/bin/arm-linux-【图5-3-2】第六步:将linux-2.6.28目录下的arch/arm/configs/mainstone_defconfig文件复制为xsbase270_defconfig文件。
第七步:在linux-2.6.28/arch/arm/mach-pxa目录下增加一个xsbase270.c文件(实际上从该目录下的mainstone.c复制而来.也可以直接复制实验代码中的文件),然后根据实际平台进行修改。
第八步:修改linux-2.6.28\arch\arm\mach-pxa目录下的Makefile文件,增加编译xsbase270.c 的编译选项,即:obj-$(CONFIG_MACH_XSBASE270) += xsbase270.o。
嵌入式μCLinux系统移植(全文)

嵌入式μCLinux系统移植XX:1007-9416(20XX)04-0086-01嵌入式Linux系统在开发过程中需要对Linux内核进行重新定制,所以熟悉内核配置、编译和移植是非常重要的。
掌握一定的Linux内核的内容,是对Linux进行手动内核移植前必须要做的。
1 Linux内核移植Linux内核移植,通俗讲马上内核由一种硬件平台移植到另一种硬件平台上运行的方式。
虽然大部分的处理器和硬件平台,嵌入式Linux系统都可以支持,但最好还是以自己定制的硬件板为主,移植工作也可通过硬件平台的变化进行调整。
本文以Linux2.6.32.4版本内核为例,过程是如何将其移植到RM内核S3C2440处理器上,该处理器是Smsung公司出产的。
1.1 内核修改(1)解压内核源码。
加压命令:tr jxvf linux-2.6.32.4.tr.bz2。
(2)修改Mkefile。
Mkefile是贯穿整Linux内核的生命线,并以此完成编译和链接。
具体过程为:内核源码目录――进入一级目录(通过编译工具)――找到Mkefile文件――修改相关变量。
(3)修改目标板输入时钟。
内核源目录――找到文件rch/rm/mch-s3c2440/mch-smdk2440.c并打开(通过编译工具)――找到函数mini2440_mp_io(void)的实现代码:s3c24xx_init_clocks(12000000)。
此代码单位是Hz,是目标板中处理器晶振的频率的意思。
依照目标板实际晶振震荡器的大小进行修改,本文以12MHz晶振为例。
(4)修改MTD分区。
MTD驱动程序在Linux下,其接口分为用户模块和硬件模块两种。
将MTD子系统编译到内核中,是为了访问特定的闪存设备,并在它上面放置文件系统,这包括选择适当的MTD硬件和用户模块。
MTD子系统就目前而言,支持绝大多数的闪存设备,且不断的有更多的驱动程序添加进来,以用于不同的闪存芯片。
ARM开发教程之ARM Linux系统移植步骤

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位的系统性能。
Linux2.6内核移植系列教程

Linux2.6内核移植系列教程第一:Linux 2.6内核在S3C2440平台上移植此教程适合2.6.38之前的版本,其中2.6.35之前使用同一yaffs补丁包,2.6.36--2.6.28 yaffs文件系统有所改变,2.6.39之后的暂时不支持,源码下载请到:/1.解压linux-2.6.34.tar.bz2源码包#tar jxvf linux-2.6.34.tar.bz22.修改linux-2.6.34/Makefile文件,在makefile中找到以下两条信息并做修改ARCH ? =armCROSS_COMPILE?=/usr/local/arm/4.3.2/bin/arm-linux-注意:交叉编译器的环境变量也需要改为4.3.2#export PATH=/usr/local/arm/4.3.2/bin/:$PATH其中ARCH变量用来决定:配置、编译时读取Linux源码arch目录下哪个体系结构的文件PATH 用来决定交叉编译器版本3.修改机器类型ID号Linux源码中支持多种平台的配置信息,内核会根据bootloader传进来的mach-types决定那份平台的代码起作用,本人手里的板子是仿照三星公司官方给出的demo板改版而来,所以采用arch/arm/mach-s3c2440/mach-smdk2440.c此配置文件,打开此文件,翻到最后,有以下信息:MACHINE_START(S3C2440, "SMDK2440")/* Maintainer: Ben Dooks <ben@> */.phys_io= S3C2410_PA_UART,.io_pg_offst= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,.boot_params= S3C2410_SDRAM_PA + 0x100,.init_irq= s3c24xx_init_irq,.map_io= smdk2440_map_io,.init_machine= smdk2440_machine_init,.timer= &s3c24xx_timer,MACHINE_ENDMACHINE_START(S3C2440, "SMDK2440")决定了此板子的mach-types,可以在以下文件中找到S3C2440对应的具体数字,"arch/arm/tools/mach-types"文件查找S3C2440,362,这里刚好与我们的bootloader相同,所以不用做修改,直接保存退出即可,如果不同则根据bootloader的内容修改此文件,或根据此文件修改boorloader的内容(在vivi中可通过param show查看,u-boot在Y:\test\u-boot_src\u-boot_edu-2010.06\board\samsung\unsp2440\unsp2440.c文件:gd->bd->bi_arch_number = MACH_TYPE_S3C2440;中决定)。
PetaLinux操作系统在MicroBlaze系统中的移植解析

PetaLinux操作系统在MicroBlaze系统中的移植解析PetaLinux操作系统在MicroBlaze系统中的移植解析大多使用linux的人都对WINE程序比较熟悉,WINE程序是可以在不需要Windows的情况下使用Windows的软件。
下面是店铺整理的关于PetaLinux操作系统在MicroBlaze系统中的移植,希望大家认真阅读!FPGA生产商Xilinx公司提供了全面的嵌入式处理器解决方案,包括PowerPC、MicroBlaze和PicoBlaze三款RISC结构的处理器核。
其中,MicroBlaze是32位嵌入式软核处理器解决方案,支持CoreConnect总线的标准外设集合,具有兼容性、可配置性以及重复利用性,能够根据成本和性能要求提供高性价比的处理性能。
支持MicroBlaze处理器的嵌入式操作系统很多,比如uc/os—II、BuleCat ME Linux、RTA MB、ThreadX、PetaLinux等等。
本文介绍了PetaLogix公司发布的PetaLinux操作系统,并分析了Xilinx公司所使用BSP自动生成技术。
最后总结出PetaLinux操作系统在MicroBlaze平台上的移植方法和步骤。
1 PetaLinux操作系统介绍PetaLinux操作系统是面向MicroBlaze软核处理器的全功能嵌入式Linux操作系统。
其发布采用了“all inone”的整合方式,将针对MicroBlaze处理器定制的Linux2.4/z.6内核源码、U—boot源码、相关的开发工具以及开发板参考硬件平台配置,集成在一个压缩包内发行,极大地方便了开发人员的使用。
该操作系统主要具有以下几大特点:①针对FPGA嵌入式开发的特点采用了板级支持包。
②自动生成工具,可以根据用户定义的嵌入式硬件平台信息自动生成板级支持包,简化了操作系统的移植。
③PetaLinux发布的源码树中包含了部分常用IP核的驱动程序(如GPIO、EthernetLite、UartLite等),减少了用户移植、编写驱动程序的工作量。
第4章 Linux内核裁剪与移植 Linux系统移植(第2版) 教学课件

4.1 Linux内核结构 4.2 内核配置选项 4.3 内核裁剪及编译 4.4 内 核 升 级
4.1.2 内核源码目录介绍
Linux内核代码以源码树的形式存放,如 果在安装系统的时候已经安装了源码树, 其源码树就在/usr/src/linux下。
1.arch目录
禁用随机heap(heap堆是一个应用层的概念,即堆对CPU是不可见的,它 的实现方式有多种,可以由OS实现,也可以由运行库实现,也可以在一个 栈中来实现一个堆)
Choose SLAB allocator Profiling support Kprobes
选择内存分配管理器,建议选择 支持系统评测,建议不选 探测工具,开发人员可以选择,建议不选
5.init目录
init子目录包含核心的初始化代码(注意, 不是系统的引导代码)。它包含两个文件 main.c和version.c,这是研究核心如何工 作的一个非常好的起点。
6.ipc目录
ipc子目录包含核心进程间的通信代码。 Linux下进程间通信机制主要包括管道、 信号、消息队列、共享内存、信号量、套 接口。
Physical 选择XIP后,内核存放的物理地址
Kexec system call
Kexec系统调用
4.2.4 网络协议支持相关选项
菜单选项(Networking Support)的子菜 单中包含一些网络协议支持的选项。
选项名 Networking options Amateur Radio support
arch子目录包括了所有和体系结构相关的 核心代码。它的每一个子目录都代表一种 支持的体系结构,例如arm子目录是关于 ARM平台下各种芯片兼容的代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux系统移植步骤
Linux系统移植步骤
arm9 S3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。
目前,在便携式消费类电子产品、无线设备、汽车、网络、存储产品等都可以看到S3C2410与Linux相结合的身影。
S3C2410微处理器是一款由Samsung公司为手持终端设计的低价格、低功耗、高性能,基于arm920T核的微处理器。
它带有内存管理单元(MMU),采用0.18mm工艺和AMBA新型总线结构,主频可达203MHz。
同时,它支持Thumb 16位压缩指令集,从而能以较小的存储空间获得32位的系统性能。
在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛[1]。
性能优良、源码开放的Linux具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非常适合作为嵌入式操作系统。
一个最基本的Linux操作系统应该包括:引导程序、内核与根文件系统三部分。
与Linux2.4内核相比,2.6内核吸收了最新的技术,在性能、可测量性、器件支持和可用性方面有了大幅度提高;支持更多的体系结构、处理器、总线、接口和设备;标准化了内部接口;简化了扩展或添加新设备的步骤等。
本文着重介绍如何制作一个基于linux-2.6.19内核的小型Linux操作系统,并将它移植到S3C2410开放板上。
内容包括交叉编译环境的
建立,引导程序、2.6.19内核、根文件系统的修改、配置、编译、移植等。
系统的制作移植
建立交叉编译环境
要移植、开发小型Linux系统,首先要在安装了RedHat9或更高版本Linux操作系统的主机上配置交叉开发环境。
交叉开发是指在开发主机上安装开发工具,编辑、编译目标板的引导程序、内核和文件系统,使其能在目标板上运行。
针对本次开发,需要安装arm-linux-gcc-3.4.1以及armv4l-tools工具链。
在安装完毕后,切记要将两者的路径分别添加到系统路径$PATH 中。
引导程序
对于计算机系统来说,从开机上电到操作系统启动需要一个引导程序。
嵌入式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的相应位置。
内核。