内核与文件系统的烧写

合集下载

linux内核裁剪、编译与烧写

linux内核裁剪、编译与烧写

linux内核裁剪、编译与烧写实验日志实验题目:linux内核裁剪、编译与烧写实验目的:1、了解linux内核移植的相关知识2、熟练掌握linux内核裁剪的一般过程3、完成一个自己linux内核裁剪4、熟练掌握内核烧写实验步骤及结果:1、硬件连接连接好实验箱电源线、串口线、网线,并打开实验箱电源。

2、打开桌面上的超级终端arm打开超级终端后,并敲回车键,直到出现开发板的启动界面[/mnt/yaffts]3、测试自带avi文件[/mnt/yaffts] cd mplayer。

mplayer test.avi这时可以看得见在lcd上有图像显示,并且伴有声音没有声音出现。

4、内核裁剪从linux终端到/arm2410cl/kernel/linux-2.4.18-2410cl/目录,输入命令make memuconfig 回车,即可打开裁剪的主界面,根据自己情况对裁剪选项进行选择,不清楚的选项就选择默认选项。

在裁剪选择时,上下箭头可以上下选择,进入某一层用回车键,用空格键对其进行选择切换。

我们这里至少要把满足根文件系统的linux内核要求选项选上:(1) 配置MTD·要使用Cramfs和YAFFS文件系统,首先需要配置MTD.在Memory Technology Devices (MTD) --->选项中选中如下选项(图略):<*> Memory Technology Device (MTD) support MTD支持[*] MTD partitioning support MTD分区支持<*> Direct char device access to MTD devices 字符设备的支持<*> Caching block device access to MTD devices 块设备支持NAND Flash Device Drivers ---> 对NAND Flash的支持<*> SMC Device Support<*> Simple Block Device for Nand Flash(BON FS)<*> SMC device on S3C2410 SMDK[*] Use MTD From SMC(2) 配置文件系统(图略)。

JZ2440内核与文件烧录

JZ2440内核与文件烧录

一、设置ip:ifconfig eth0 192.168.9.106二、内核1.打开D:\S3C2440开发板资料\资料\windows\tools\tftpboot tftpboot服务;2.选择文件地址与pc上的IP;3.在CRT 中输入print设置IP;4.开发板重启后在CRT中按空格;5.选择Q,出现OPENJTAGE6.设置开发板IP:set ipaddr 192.168.9.106;7.设置PC IP: set serverip 192.168.9.1008.保存save;9.下载uImage内核Tftp 30000000 uImage10.显示分区mtdpart11.擦除kernel分区nand erase kernel12.烧录内核:nand write.jffs2 30000000 kernel三、文件系统1.下载文件:Tftp 30000000 fs_mini.yaffs2 (文件名字)2.擦除root分区:nand erase root3.查看分区地址mtdpart:4.3烧录文件:nand write.yaffs 30000000 260000 8607c0说明:从30000000(下载文件地址)write.yaffs(文件格式yaffs与jffs2)烧录文件到260000的地址下载8607c0的大小四、根文件系统busybox1.解压busybox-1.7.0.tar.bz2文件;2.Tar Xjf busybox-1.7.0.tar.bz2;3.make menuconfig4.创建一个文件夹mkdir -p /work/nfs_root/first_ds //在work/nfs_root下创建first_ds文件夹5.安装到文件夹:make CONFIG_PREFIX=/work/nfs_root/first_ds install6.五、创建1.book@book-desktop:/work/nfs_root/first_ds$ mkdir dev2.book@book-desktop:/work/nfs_root/first_ds/dev$ sudo mknod console c 5 13.[sudo] password for book:4.book@book-desktop:/work/nfs_root/first_ds/dev$ sudo mknod null c 1 35.book@book-desktop:/work/nfs_root/first_ds/dev$ ls -l6.total 07.crw-r--r-- 1 root root 5, 1 2016-11-25 15:57 console8.crw-r--r-- 1 root root 1, 3 2016-11-25 15:58 null9.book@book-desktop:/work/nfs_root/first_ds/dev$六、。

烧写ARM开发板系统教程-----uboot、内核以及文件系统

烧写ARM开发板系统教程-----uboot、内核以及文件系统

烧写ARM开发板系统教程-----uboot、内核以及⽂件系统⼀、sd启动将u-boot镜像写⼊SD卡,将SD卡通过读卡器接上电脑(或直接插⼊笔记本卡槽),通过"cat /proc/partitions"找出SD卡对应的设备,我的设备节点是/dev/sdb.(内存卡的节点)。

当有多个交叉编译器是,不⽅便设置环境变量时,可以在编译命令中指定交叉编译器,具体如下:在源码中操作以下步骤:make distcleanmake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- mrpropermake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- tiny210_configmake ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- all spl编译出tiny210-uboot.bin,注意交叉编译⼯具路径执⾏下⾯的命令$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1把内存卡插⼊开发板,使⽤串⼝⼯具设置环境变量:setenv gatewayip 192.168.1.1(电脑⽹关)setenv ipaddr 192.168.1.102(开发板ip,不要与虚拟机和电脑ip冲突)setenv netmask 255.255.255.0setenv serverip 192.168.1.10(虚拟机ip)saveenv⼆、nand启动烧写Uboot:通过SD卡启动的u-boot for tiny210 将u-boot镜像写⼊nandflash在虚拟机下重启tftp sudo service tftpd-hpa restart开发板终端下执⾏下⾯的命令:[FriendlyLEG-TINY210]# tftp 21000000 tiny210-uboot.bin[FriendlyLEG-TINY210]# nand erase.chip[FriendlyLEG-TINY210]# nand write 21000000 0 3c1f4 (写⼊长度)内核的烧写位置是0x600000开始的区域,⽂件系统烧写位置为0xe00000开始的区域。

通过tftpd网络挂载内核和文件系统

通过tftpd网络挂载内核和文件系统

通过tftpd网络挂载内核和文件系统通过tftpd网络挂载内核和文件系统说实话,这个比fastboot好用多了,不过这个必须在有uboot,且uboot已经搭建好了网络的情况下才能使用1.连接好板子的串口线和网线,打开软件tftpd32.exe第一个框是存放要烧写的文件目录第二个框是pc机(服务端)的ip地址2.打开putty,给板子上电启动,待进入uboot模式,设置好ip 后,尝试能不能ping通服务器3.如果可以ping通,就可以通过tftp开始挂载了(1)烧写uboot:如果已经有uboot,不需要重新烧写的话,可以跳过第一个步骤,注意uboot文件的名字 sf probe 0mw.b 82000000 ff 100000tftp 0x82000000 u-boot_hi3520d.binsf probe 0sf erase 0 100000sf write 82000000 0 100000reset(2)烧写内核:注意修改uImage的名字mw.b 82000000 ff 400000tftp 82000000 uImage_hi3520d_fullsf probe 0sf erase 100000 400000sf write 82000000 100000 400000(3)烧写文件系统:注意修改rootfs的名字,b00000表示用来存放烧写rootfs的空间大小(包括剩余空间),如11m=b,59m=3bmw.b 82000000 ff b00000tftp 0x82000000 rootfs_hi3520d_64k.jffs2sf probe 0sf erase 500000 b00000sf write 82000000 500000 b00000(4)设置启动参数:注意修改rootfs的空间大小(包括剩余空间),11M=16-1-4,59M=64-1-4,sa是保存配置命令的简写形式setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000'sa4.重启板子,完成烧写,可以直接在终端输入 reset来完成重启。

烧写内核代码及tftp及bootfs的挂载

烧写内核代码及tftp及bootfs的挂载

Fedora14下烧写uboot到sd卡,烧写内核代码到nangflash ,挂载ntfs文件系统到s5pv210前几天在老师的指导下完成了s5pv210的u-boot及内核代码的烧写和挂载netfs文件系统,今天抽时间再总结一下,主要是对中间出现的问题及解决方案。

希望对有需要的人有所帮助。

环境:fedora 14 s5pv210开发板vwarm9.0需要准备的:uImage 、tiny210v2-uboot.bin 、rootfs_qtopia_qt4.img一.首先先把u-boot 烧到sd卡里面代码:dd iflag= dsync oflag=dsync if= tiny210v2-uboot.bin of=/dev/sdb seek=1说明:这一步比较简单,没什么问题烧写完毕后,开发板上电,以root权限进入minicom进入u-boot 界面。

二、准备烧写内核代码1、配置TFTP服务器为了安装TFTp服务器及客户端,需要连接网络,为方便起见,本人建议,开启虚拟机之前首先调节网络模式为NET模式,这样主机只要能连上网,虚拟机就能上网,可以通过YUN 工具进行TFTP服务器的安装代码:#yum install tftp-server //安装TFTP服务器# yum install –y tftp //安装TFTP客户端–y 参数表示同意下载配置TFTP环境创建共享目录:#mkdir /var/lib/tftpboot打开修改配置文件:#vim /etc/xinetd.d/tftp修改如下:server-args = -s /var/lib/tftpboot –c启动TFTP服务器:#service xinetd restart测试是否启动TFTP服务器:# netstat –a | grep tftp如果没有打开:#chkconfig tftp on# /etc/init.d /xinetd restart关闭防火墙:Setup 进入设置(这里不在多说)注意:接下来虚拟机下必须设置网络模式为桥接模式(烧写uImage时候的网络模式),我曾经试过在NET模式下和HOST-ONLY模式都没有成功。

Linux 系统的烧写

Linux 系统的烧写

Linux 系统的烧写Uboot的烧写***烧写内核***烧写文件系统1> Uboot的烧写(把Uboot写入NAND-FLASH中地址0x30000000)步骤:把开发板与PC机连接好打开H-JTAG中的H-Flasher·在1.Flash-Selection中的NAND-FLASH中选择S3C2440+K9F1G08·在2.Configuration中的RAN Start Address中写入0x30000000·在5.Programming中选择Check(擦除),Reset(复位)·在Program中选择目标文件最后选择Program进行烧写。

2>在超级终端中操作:指定内存中内核地址为0x33000000,内核在Nand起始地址为0x60000 ,大小为0x3a0000.内存中文件系统地址为0x30008000,文件系统在Nand起始地址为0x500000 ,大小为0x3e00000.串口烧写:命令步骤:1>烧写内核loadb 0x33000000 //通过串口下载内核//同时在超级终端的发送框中以kermit协议发送uImage文件nand erase 0x60000 0x3a0000 //擦除指定的flash区域nand write 0x33000000 0x60000 0x3a0000//将指定的内存区域内容写至flash指定位置2>烧写文件系统loadb 0x30008000 //通过串口下载文件系统//同时在超级终端的发送框中以kermit协议发送root.cramfs文件nand erase 0x500000 0x3e00000 //擦除指定的flash区域nand write 0x30008000 0x500000 0x3e00000//将指定的内存区域内容写至flash指定位置3>设置环境变量setenv bootargs root=/dev/mtdblock2 console=ttySAC0 init=/linuxrc saveenv //保存变量设置reset //重启4>开启Linux系统nand read 0x33000000 0x60000 0x3a0000//从指定的flash区域读到内存指定位置bootm 0x33000000 //引导uImage内核5>进入系统网络烧写:命令步骤:先用printfenv查看一下设备的server IP把PC机IP修改成server IP 打开tftp服务器1>烧写内核tftp 0x33000000 uImage//通过网口下载内核发送uImage文件nand erase 0x60000 0x3a0000 //擦除指定的flash区域nand write 0x33000000 0x60000 0x3a0000//将指定的内存区域内容写至flash指定位置2>烧写文件系统tftp 0x30008000 root.cramfs//通过网口下载文件系统发送root.cramfs文件nand erase 0x500000 0x3e00000 //擦除指定的flash区域nand write 0x30008000 0x500000 0x3e00000//将指定的内存区域内容写至flash指定位置3>设置环境变量setenv bootargs root=/dev/mtdblock2 console=ttySAC0 init=/linuxrc saveenv //保存变量设置reset //重启4>开启Linux系统nand read 0x33000000 0x60000 0x3a0000//从指定的flash区域读到内存指定位置bootm 0x33000000 //引导uImage内核5>进入系统。

arm_Linux系统烧写

arm_Linux系统烧写

MC9260-EK Linux系统烧写方法(最后修改时间:2011年3月21日)内容提要:介绍NandFlashBoot、U-boot、内核、文件系统的烧写方法说明:本主板设计为从NandFlash启动,linux内核采用linux-2.6.30版本,文件系统采用jffs2根文件系统。

我们提供的主板已经烧写好了所有的系统,如果希望自己尝试烧写系统,您需要依次烧写NandFlashBoot、U-boot、内核、文件系统。

使用SAM-BA软件烧写NandFlashBoot和U-boot。

并通过网络烧写内核和文件系统,还需要用到tftpd 软件。

整个过程都需要使用终端软件来查看和配置相关信息,您可以使用您习惯的终端软件,如超级终端、minicomm等。

本文档所涉及的软件和镜像文件在光盘的相关文件夹中。

内存地址与烧写程序对应如下:0--0x4096 NandFlashBoot0x20000--0x100000 U-boot0x100000--0x300000 内核0x300000--All 文件系统和用户空间1、安装SAM-BA V2.10首先需要安装我们光盘中工具软件目录附带的软件sam-ba_2.10.exe。

双击按照软件提示即可正确完成安装。

安装过程中杀毒软件可能会提示是否允许修改,请允许。

安装完成后,用我们提供的A-B型USB线将板子USB Device接口与电脑相连,断开核心板上跳线J4(确保核心板跳线J3也是断开的),上电。

此时,电脑会提示找到新的硬件,选择自动安装驱动程序。

2、烧写启动引导程序保证主板断电,拔下J4跳帽,然后上电。

运行SAM-BA V2.10,若PC与主板正常连接,会出现如下界面:Select the connection 选择\usb\ARM0,Select the board 选择at91sam9260-ek点Connect,耐心等待数秒后,进入SAM-BA主界面插上跳帽。

内核与设备树的编译和烧写

内核与设备树的编译和烧写

内核与设备树的编译和烧写上⼀篇⽂章我记录了,现在学习内核与设备树的编写与烧写,也就是zImage和.dbt⽂件。

看过我之前写的这边⽂章的朋友应该都⽐较熟悉,在通过nfs挂载根⽂件系统时,需要在tftp服务器中放⼊zImage和.dbt⽂件,之前是⽤开发板已经编译好的⽂件,现在尝试着⾃⼰编译⼀下。

⼀、准备材料可以根据⾃⼰的需要准备相应材料,以下是我⾃⼰使⽤的:开发环境:VMware操作系统:ubuntu开发版:湃兔i2S-6UB⼆、下载Linux内核⽂件之前下载过UBoot⽂件的朋友应该知道,在每个开发版的资料⾥都有相应的⽂件,没有的可以找购买开发版的店家要。

这⾥是湃兔的下载地址下载完成后将⽂件拷贝到linux系统下进⾏解压,解压后会的⽬录如下图所⽰:注意:编译时⼀定要在当前路径下才能编译三、编译1.清理项⽬⼯程make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean2.设置默认配置⽂件make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6_defconfig编译完成后会⽣成“.config”,如下图所⽰:注意:湃兔的默认配置⽂件是“i2som_imx6_defconfig”,不同⼚商的默认配置⽂件有所不同,可与根据相应的资料查看。

如湃兔官⽹的说明,如下图所⽰3.编译⽣成kernrl⽂件make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage4.编译⽣成.dtb⽂件make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs注意:到这⾥内核与设备树的编译就算完成了,如果细⼼的⼩伙伴就会发现,为啥我的命令会长⼀些。

每个指令中都⽤“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,这是设置编译器为交叉编译器。

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

安阳师范学院计算机与信息工程学院《嵌入式系统》课程设计实践选题:内核与文件系统的烧写专业班级:指导教师:姓名学号:成绩评定:题目:内核与文件系统的烧写一、问题描述及分析把 Linux 操作系统针对具体的目标平台做必要改写之后,安装到该目标平台使其正确的运行起来。

建立根文件系统的初始文件,并且把生成的zImage以及rootfs.img文件和自己编写的测试程序烧录到pxa70开发板上。

因此,我们首先要进行内核裁剪生成所需的zImge文件,然后建立跟文件目录,并运用交叉编译arm-linux-gcc生成可执行的测试程序文件移动入建立的跟文件目录,然后运用mkfs.jffs2工具生成文件系统镜像文件。

二、课程设计内容1、系统结构与软件设计流程2、任务分工XXX:编写测试程序以及烧录文件到开发板XXX:进行内核裁剪XXX:进行根文件系统建立3、软件操作说明SecureCRT 5.1操作说明:打开界面:配置端口:连接:Tftp32操作说明:见详细步骤tftp32配置4、主要实现方法包括开发环境、编译环境、运行环境描述,主要技术要点等内容。

开发环境:硬件:UP-TECHPXA270A 嵌入式实验仪,PC 机 pentumn500 以上, 硬盘10G 以上软件:PC机操作系统 REDHAT LINUX 9.0 +MINICOM + AMRLINUX 开发环境编译环境:arm-linux-gcc交叉编译环境运行环境:PXA270开发板详细步骤:(1)裁剪内核进入内核所在目录,键入 make menuconfig 您就会看到配置菜单根据需要进行配置,完成后:make cleanmake depmake bzImage生成的二进制文件为 zImage 存储在./arch/arm/boot/zImage。

把生成的 zImage 文件拷贝到 PC 机的 tftp 服务目录/tftpboot/下。

(2)建立根文件系统1、建立目录bin、dev、etc、lib、proc、sbin、usr、home、mnt等;2、移植命令和配置文件。

解压busybox配置busybox运行make menuconfig,进行到这一步时注意:General Configuration →[*] Use the devpts filesystem for Unix98 PTYsBuild Options →[*] Build BusyBox as a static binary (no shared libs)[*] Do you want to build BusyBox with a Cross Compiler?选择交叉编译(/usr/local/arm-linux/bin/arm-linux-) Cross Compiler prefix回车将路径改为arm-linux-Installation Options → [ ] Don't use /usrInit Utilities →全都不要Login/Password Management Utilities →全都不要Networking Utilities → [ ] route安装busyboxmakemake install移植文件进入busybox根目录,找到_install目录,将其中的bin、usr、sbin目录拷贝至开发板根文件系统,并覆盖其中的同名目录。

然后打开目录examples/bootfloppy,将其中的etc目录拷贝至开发板根文件系统,并覆盖其中的同名目录3、移植设备文件。

进入Linux系统的dev设备文件目录,拷贝console、null、tty、tty0、tty1、tty2、ttyS0、ttyS1文件至我们建立的开发板根文件系统的dev目录中,命令如下:cd /devcp -a console null tty tty0 tty1 tty2 ttyS0 ttyS1 /home/me/dev4、移植库文件。

由于Linux系统lib目录中的库文件是支持x86构架的,而不是开发板上的arm构架,因此不能直接从中拷贝库文件,因此我们需要从交叉编译器的lib目录中拷贝文件。

在我们这门课程中,我们统一将交叉编译器安装至/up-techpxa270/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-li nux,因此移植库文件的过程为cd/up-techpxa270/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib cp libc.so.6 ld-linux.so.2 /home/me/lib(2)编写测试程序#include<stdio.h>int main(){int i;//定义变量iint j;//定义变量jint k;//定义变量k//打印由*号组成的正三角for(i=1;i<8;i++){for(k=8-i;k>0;k--)//循环打印空格{printf(" ");}for(j=1;j<=2*i-1;j++)//循环打印星号{printf("*");}printf("\n");}//打印由*号组成的倒三角for(i=1;i<8;i++){for(k=0;k<=i;k++)//循环打印空格{printf(" ");}for(j=2*(7-i)-1;j>=1;j--)//循环打印星号{printf("*");}printf("\n");}return 0;}(3)烧录到开发板1、配置服务器IP2、配置tftp服务器如下图:3、烧录zImage到开发板将zImage下载到Ram:blob> tdownload kernelfile: zImage, part kerneldownloading zImage to 0xa0200000done烧写zImage到flash:blob> flash kernelSaving kernel to flashfwrite 0xa0200000 0x100000 1548672Erasing 12 blocks at 0x00100000:............doneFlashing 0x0017a180 bytes at 0x00100000:............done 4、烧录rootfs.img到开发板将 rootfs.img 下载到 Ram:blob> tdownload ramdiskfile: rootfs.img, part ramdiskdownloading rootfs.img to 0xa0600000done烧写 rootfs.img 到 flash:blob> flash ramdiskSaving ramdisk to flashfwrite 0xa0600000 0x300000 13631488Erasing 104 blocks at 0x00300000:.................................. ...........................doneFlashing 0x00d00000 bytes at 0x00300000:........................... ..............................doneblob>如下图:(4)测试运行三、课程设计总结通过本次课程设计,我对嵌入式有了实质性的认识,也有了一定的实践经验,让我学会了很多以前没有接触过的有趣的知识,进一步的掌握了linux环境下的一些shell命令和对vi的运用。

但是在里面也遇到了一些问题,比如编完程序由于没有用交叉编译导致无法在开发板上运行等。

由于对知识的缺乏和掌握的不牢固,总会遇到各种的问题...遇到问题时,首先要找出问题所在,努力自己解决,然后可以利用方便的网络资源,寻求答案。

当最终完成这次课程设计,自己编写的程序能运行显示结果是,无疑是令人欣喜的。

四、存在问题及改进措施①开发板上无法运行程序解决:用交叉编译arm-linux-gcc重新编译程序②tftp服务无法配置成功解决:数据线接口不正确,重新连接数据线五、源代码进入目录::cd /home建立目录:mkdir mecd /home /memkdir bin dev etc lib proc sbin usr home mnt解压配置内核文件:tar –xf up-linux-2.6.9-release-2007-01-31.tar.bz2cd busybox-1.00make menuconfig解压配置busybox文件:tar –xf busybox-1.00-2005-5-20.tar.bz2cd up-linux-2.6.9-release-2007-01-31/linux-2.6.9make menuconfigmakemake install移动文件:cp -a console null tty tty0 tty1 tty2 ttyS0 ttyS1 /home/me/dev cp libc.so.6 ld-linux.so.2 /home/me/lib编译程序:Vi wel.cArm-linux-gcc –o wel wel.c生成文件系统镜像文件:./mkfs.jffs2 -r /home/me -o rootfs.img -e 0x20000 --pad=0xd00000程序代码:#include<stdio.h>int main(){int i,j,k;/打印由*号组成的正三角for(i=1;i<8;i++){for(k=8-i;k>0;k--){printf(" ");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}//打印由*号组成的倒三角for(i=1;i<8;i++){for(k=0;k<=i;k++)//循环打印空格{printf(" ");}for(j=2*(7-i)-1;j>=1;j--)//循环打印星号{printf("*");}printf("\n");}return 0;}。

相关文档
最新文档