试验5linux内核的裁剪移植.docx

上传人:scccc 文档编号:13074245 上传时间:2021-12-13 格式:DOCX 页数:13 大小:213.97KB
返回 下载 相关 举报
试验5linux内核的裁剪移植.docx_第1页
第1页 / 共13页
试验5linux内核的裁剪移植.docx_第2页
第2页 / 共13页
试验5linux内核的裁剪移植.docx_第3页
第3页 / 共13页
试验5linux内核的裁剪移植.docx_第4页
第4页 / 共13页
试验5linux内核的裁剪移植.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《试验5linux内核的裁剪移植.docx》由会员分享,可在线阅读,更多相关《试验5linux内核的裁剪移植.docx(13页珍藏版)》请在三一文库上搜索。

1、实验5 linux内核的裁剪移植一、实验目的学习利用menuconfig配置文件进行裁减内核,编译内核并移植到开发板上。二、实验内容一、开发环境宿主机:ubuntu10.04开发板:tiny6410编译器:4.3.2二、内核移植1. 下载源码ftp:/ftp.kernel.Org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2此实验所需的文件放到/home/embedded/11目录下:linux-2.6.38.tar.bz2, yaffs2.tar.bz2s3c_nand.c , s3c_nand_mlc.fo ,nand_base.c ,Kconfig

2、 ,regs-nand.h2. 解压(进入根目录下的/home/poplar/expr4/kernel 目录,解压源码)# cd /home# mkdir poplar/expr4/kernel-p# cd /home/poplar/expr4/kernel# cp /home/embedded/11/linux-2.6.38.tar.bz2 ./tar xvfj /home/poplar/expr4/kernel/linux-2.6.38.tar.bz2, rootubuntu: File Edit Vi。取 Terminal Helprootubuntui-# cd /home/popla

3、r/expr4/kernel* 9 G root>ubuntu: /honie/poplar/expr4-/kernelFile Edit View Terminal Helprootubuntu:# cd /honje/poplar/expr4/kernelroatubuntu:/home/poplar/expr4/kerneI# IsKconf ignand_basek : slcnand. cyaf f s2 >tar. bz2Unux-2<6r38.tar+bz2 regs-nand,h s3c_nand mlCnforaot(pLbuntLi:/hame/popla

4、r/expr4/kernel# tar xvfj /home/poplar/expr4/kernel/linux-2.6.3B.ta r .bz23. 修改架构,编译器(需要在 arm上运行,所以用交叉编译器)解压完进入解压出来的linux-2.6.38目录#cd linux-2.6.38#vi Makefile (或者用 gedit)rootubuntu: /home/popIar/expr4/kernel/linuK-2.6.3BFile Edit View Terminal HelpI Linux-2H6r38/tools/virtic/virtiQ test xlinux2.6.3&a

5、mp;/usr/Unux-2.6.3B/usr/.gitignorelinux-2.6.3B/usr/KconfigLinux-2.6.3fl/usr7ftekcflielinux-2,6r3&/(jsr/gen init cpio.clinux-2.6.3fl/usr/initramf5_data.SLinux-2.6.3B/vlrt/liniu(*2,6.35/VLrt/kvii/linux-2.6.3B/virt/kvii/KconfigLlnux-2.6« 38/virt/kvn/assigned-dev. clinux*2.6.3B/virt/kvm/async_p

6、f.cUnux 2.6.3B/virt/kwasync7pf.hlinux-2.6.38/VLrt/kvn/coalesced_mLOliinux-2.6.3S/virt/kvm/coalesced_mniiQ. hLinux- 2.6.38/v i rt/kv/eventf d. clinux-2.5.3B/virt/kv/iaapiCxCUnux 2 6.3B/virt/kvim/ioapic. hlinux-2,6.3S/virt/kv fi/iodevn hlinux-2.6.3fl/virt/kvi/iommu.clinux-2.6.3B/virt/kvm/irq com.clinu

7、x-J.e.Ba/virt/kvi/kvmmain.croctubuntu:/hoin&/poplar/expr4/kernel# cdl llnux-2.A.3&rcotubuntu:/home/poplar/exp r4/kernel/linux-2,6.38# vi Makefile191行改为ARCH ?= arm/191 行CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux-4$ Applications Places System?Mon-Nov 4, 6:13PM 少)gQ O poplar (J)馨 * Mak

8、efile (/home/pop 1 ar/wu/l inux-2.6.3S) - g editFile Edit View Search Documents Help(找到其交叉编译环境,把路径加全)/192行# Wher performing cross compilation for other architectures ARCH shall be set# to the target architecture, (see arch/* for the possibilities).# arch can be set du ring invocation of make:# make

9、ARCH-ia64# Another way is to have ARCH set in the enviromtient.# The default ABCH is the hast where Take is Executed.# CROSS COMPILE specify the prefix used for all executables used# du ring compilation, Oflly gcc and related bin-util& executables# are prefixed with $(CROSS COMPILE).# CROSS COMP

10、ILE can be set on the command line# make CROSS COMPILE= ia64-linux*# Alternatively CFWJS5 COMPILE can be set in the environment.# A third alternative is to store a setting in config so that plain# make" in the configured kernel build director/ always uses that.# Default value for cross compile

11、M not to prefix executables# Note: Seme architectures 白”ign CR05S COMPILE in their arch/*/Hakefile export KBUILD BUILDHOST := $(SUBARCH)ARCH- ?= amCROSS COMPILE ?=# Architecture as dresent in comoile.h4.生成默认配置文件#cp arch/arm/configs/s3c6400_defconfig.configSystem TypeLinux内核中已经自带了关于我们 6410开发板的配置。5.修改

12、配置项#make menuconfigQ Q rootubuntu: /home/poplar/expr4/kernel/linux-2«6.J8File Edit View Terminal Helppoplarubuntu:Vexpr4/kernel/linux-2.6,385 su rootPassword:rootubuntu:/home/poplar/expr4/kernel/linux-2.6.38# cp arch/arm/configs/s3c649 defconfig .configroo ttaubuntu:/home/popla r/expr4/ke rnel/

13、linux-2.6.38#? O G rootubuntu: /home/poplar/expr4/kernel/linux-2.6.3fiFile Edit View Terminal Helppoplarubuntu;-/expr4/kernel/linux-2.6.38$ su rootPassword:rootubuntu: /home/poplar/expr4/kemel/1inux-2.6.38# cp arch/arni/configs/53c64G0 defconfig .configroot(?ubuntj:/home/poplar/expr4/kerneUinux-2H6+

14、38# make menuconfig|System Type->* MINI6410 选上,6.拷贝 NAND FLASH 驱动到根目录下的 /home/poplar/expr4/kernel 下的linux-2.6.38里相应的文件位置处(以下的文件在实验五文件夹里有)drivers/mtd/nand/s3c_nand.carch/arm/plat-samsung/include/plat/regs-nand.h drivers/mtd/nand/s3c_nand_mlc.fo drivers/mtd/nand/nand_base.c drivers/mtd/nand/Kconfig

15、 执行命令:#cp /home/embedded/11/s3c_nand.c ./drivers/mtd/nand/#cp /home/embedded/11/s3c_nand_mlc.fo ./drivers/mtd/nand/#cp /home/embedded/11/nand_base.c ./drivers/mtd/nand/#cp /home/embedded/11/Kconfig ./drivers/mtd/nand/#cp /home/embedded/11/regs-nand.h ./arch/arm/ plat-samsung/include/plat/7 修改 nand 驱

16、动 makefile输入指令 #cd drivers/mtd/nand#vi Makefiledrivers/mtd/nand/Makefile 中 20 行增加obj-$(CONFIG_MTD_NAND_S3C) += s3c_nand.o末尾再增加obj-$(CONFIG_MTD_NAND_S3C) += s3c_nand_mlc.fo8.增加相应选项输入指令 #cd /home/poplar/expr4/kernel/linux-2.6.38#make menuconfigDevice Drivers-><*> Memory Technology Device (MTD

17、) support ->* MTD partitioning support*Command line partition table parsing<*> Direct char device access to MTD devices<*> Caching block device access to MTD devices<*> NAND Device Support ->< > NAND Flash support for SamsungS3C SoCs去掉不要选<*> NAND Flash support for

18、 S3C SoC * S3C NAND Hardware ECC三、添加yaffs2文件系统的支持首先向内核源代码中加入支持 yaffs2的源代码】解压 yaffs2.tar.bz2#cd /home/poplar/expr4/kernel#cp /home/embedded/11/yaffs2.tar.bz2 ./#tar xvfj yaffs2.tar.bz2poplarubuntu: */expr4/kernelFile Edit View Terminal Helppoplarjt)untu:-$ cd /home/poplLar/expr4/kernel/ poplarjbuntu:

19、/expr4/kernel$ tar xvfj yaffs2.tar.bz2进入解压出的目录#cd yaffs2$ 0 Q poplar©ubuntu: */expr4/kernelFile Edit View Terminai Help yaff52/yaffs_packedtags2.c yaffs2/linux-tests/ yaffsZ/linux-tests/initnandsim yaff52/linux-tests/plot_data.sh yaff52/linux-test5/xattrtest.c yaff52/linux-tests/writetest.sh ya

20、ff52/linux-tests/mkfiles yaff52/linux-tests/rmount_cycl.ing. sh yaff52/linux-tests/mkdirtree yaffs2/linux-tests/stress_test.sh yaff52/yaffs_yaffs2.h yaffs2/yaffs_checkpt rw.h yaffs2/Kconfig multi yaffs2/yaffs_checkptrw.c yaffs2/yaffs_trace.h yaffs2/yaffspackedtagsl.h yaffs2/yaffs_packedtags2.h yaffs

21、2/Hakefile yaffs2/yaffsjntdif2.h yaffsZ/yaffsyaffsl.h yaff52/yaffs_mtdifl.h yaffs2/yaffs_gut5.h yaffs2/yaffs_bitmap.h poplarubuntu:/expr4/kernel$ cd yaffs2/TOO poplarubuntu: */expr4/kernellFile Edit View Terminal Helpyaffs2/yaffs_packedtags2.c yaff52/linux-tests/ yaff52/linux-test5/initnandsim yaffs

22、2/linux-te5ts/plot_data.sh yaff52/linux-tests/rxattrtest. c yaff52/linux-tests/writetest.sh yaffs2/linux-test5/mkfiles yaff52/linux-tests/rmount_cycling. sh yaff52/linux-te5ts/mkdirtree yaffs2/linux-tests/5tress_test.sh yaff52/yaffs_yaffs2.h yaffs2/yaffs_checkpt rw.h yaffs2/Kconfig multi yaffs2/yaff

23、s_checkptrw.c yaffs2/yaffs_trace.h yaffs2/yaffspackedtagsl.h yaffs2/yaffs_packedtags2.h yaffs2/Makefile yaff52/yaffsjntdif2.h yaffsZ/yaffsyaffsl.h yaffs2/yaffs_mtdifl.h yaffs2/yaffs_gut5.h yaffs2/yaff sbitaap.hpoplarubuntu:Vexpr4/kernel$ cd yaffs2/执行如下命令./patch-ker.sh c m+内核源码路径# ./patch-ker.sh c m

24、./linux-2.6.38.底合 poplarubuntu: */expr4/kernel/yaffs2'File Edit View Terminal Help,yaffs2/linux-tests/initnandsimiyaffs2/linuxtests/plotdata.sh,yaffs2/linux-tests/xattrtest.cyaffs2/linux-tests/writetest.shyaffs2/linuxtests/mkfilesyaffs2/linux-tests/mount_cycling.shyaffs2/linux-tests/mkdirtreeyaf

25、fs2/linux-tests/stresstest.shyaffs2/yaffs_yaffs2.hyaffs2/yaffs_checkptrw.hyaffs2/Kconfig_multiyaffs2/yaffs_checkptrw.cyaffs2/yaffs_trace.hyafts2/yaftspackedtagsl.hyaffs2/yaffs_packedtags2.hyaffs2/Makefileyaffs2/yaffs_mtdif2.hyaffs2/yaffsyaffsi.hyaffs2/yaffsmtdif1.hyaffs2/yaffs_guts.hyaffs2/yaffs_bit

26、map.hpoplaQubuntu:/exp4/kernel$ cd yaffs2poplar(3ubuntu:-/expr4/kernel/yaffs2$ ./patch-ker.sh c m /home/poplar/expr4/kerne |l/linux26.38.然后进入内核源码目录#cd /home/poplar/expr4/kernel/linux-2.6.38* 0 Q poplarubuntu: -/expr4/kernel/yaffs2File Edit View Terminal Helppoplarubuntu:-/expr4/kernel/yaffs2S cd /ho

27、me/popUr/expr4/kernel/linux-2t6t38/|执行 make menuconfig选择 File systems选择 * Miscellaneous filesystems -><Enter> selects submenus - *HighlightedArrow keys navigate the menu.letters 6re hotkeys- Pressing <¥> includes, <N> excludes# modularizes features + Press <Esc><Es

28、c> to exit, <?> for Help, </> for Search + Legend: * built - tn excluded <M> nodule < > nodule capableFS file system support read only) (EXPERIMENTAL)ffs2 file system support512 yte / page devices:.se older-style an-NAND data format with pagestatus byte 2048 yte (or larger

29、) / page devicesutoselect yaffs2 format (NEW)tsable yaffs from doing Etc on tag号 by default orce chunk erase checknpty lost Md found on bootisable yaffs2 block refreshingisable yaffs2 background processingLnmble vaffs之 xatt MUDDort:_lowrnalVlng Flash Fl金 Syst。内 v2 (JFF$Z) suBIFS file system support退

30、出保存四、添加对UBIFS文件系统的支持1. 配置内核支持UBIFS#make menuconfigDevice Drivers ->Memory Technology Device (MTD) support ->Enable UBI - Unsorted block images ->2. 配置mtd支持UBI接口File systems ->Miscellaneous filesystems ->UBIFS file system support3. 再次make#make zImage一、 下载到开发板(见实验三操作说明)先将zImage用DNW下载到开发

31、板,然后将开关拨动到nand方式启动,观察超级终端此时启动会出现如下问题如果成功,如下图:usbcore: registered new interface driver usbhidusbhid: USB HID core driverVFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5drivers/rtc/hctosys.c: unable to open rtc device (rtc0)mmc0: mmc_rescan_try_freq: trying to init card at 30000

32、0 Hzmmc0: mmc_rescan_try_freq: trying to init card at 200000 HzUBIFS: recovery neededusb 1-1: new full speed USB device using s3c2410-ohci and address 2mmc0: mmc_rescan_try_freq: trying to init card at 100000 HzUBIFS: recovery completedUBIFS: mounted UBI device 0, volume 0, name "FriendlyARM-ro

33、ot"UBIFS: file system size:2061287424 bytes (2012976 KiB, 1965 MiB,1997 LEBs)UBIFS: journal size:12517376 bytes (12224 KiB, 11 MiB, 13LEBs)UBIFS: media format:w4/r0 (latest is w4/r0)UBIFS: default compressor: lzoUBIFS: reserved for root:0 bytes (0 KiB)VFS: Mounted root (ubifs filesystem) on dev

34、ice 0:10.hwclock: can't open '/dev/misc/rtc': No such file or directory 01/Jan/1970:00:00:18 +0000 boa.c:173 - unable to create socket: Function not implementedopen device leds: No such file or directory /usr/sbin/alsactl: load_state:1610: No soundcards found.ifconfig: socket: Function not implementedTry to bring eth0 interface upcat: can't open'/sys/class/net/eth0/address': No such file or directoryifconfig: socket: Function not implementedroute: socket: Function not implementedDone

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1