内核移植

来源:互联网 发布:美联储非农数据 编辑:程序博客网 时间:2024/06/10 23:46

LINUX-2.6.30移植到MINI2440 之前弄了很久的LINUX-2.6.31版本的,但是还是弄不出来,老是有很多的错误的,就是怎么也加载不了文件系统,所有我干脆就放弃了,来弄点底版本的,2.6.30版本。很多书基本上都是这样写的 1.修改顶层Makefile文件 直接将Makefile文件里面的 ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 改为: ARCH ?= arm CROSS_COMPILE ?=arm-linux- 然后用S3C2410的默认配置文件 cp arch/arm/congfigs/s3c2410_defconfig .config 就是加载配置文件。S3C2410和S3C2440差不多的,然后修改分区来修改我们的arch/arm/plat-s3c24xx/common-smdk.c 主要修改smdk_default_nand_part[] { [0] = { .name = “supervivi”, .size = 0x00060000, .offset = 0, }, [1] = { .name = “Kernel”, .offset = 0x00060000, .size = 0x00200000, }, [2] = { .name = “root”, .offset = 0x00260000, .size = 1024*1024*1024, }, [3] = { .name = “nand”, .offset = 0x00000000, .size = 1024*1024*1024, } }; 后面的就用#if 0 …… 4,5,6,7分区不用了 #endfi 在arch/arm/mach-s3c2440/mach-smdk2440.c 修改下时钟频率 s3c24xx_init_clocks(12000000); 在内核修改下Boot Option >Default kernel command sring的内容 noinitrd root=/dev/mtdblock2 init=/linuxrc console =ttySAC0,115200 mem=64M 加载YAFFS2 可以在网上下载,也可以用友善的CP下来,但是要在fs/KCONFIG 文件和fs/MAKEFILE的文件加入。可以参考友善提供的 到网上下载ysffs2源代码,解压之后进行如下修改: ./patch-ker.sh c /2440/linux-2.6.29 上面命令完成下面三件事情 (1)修改内核fs/Kconfig 增加一行:source "fs/yaffs2/Kconfig" (2)修改内核fs/Kconfig 增加一行ojb-$(CONFIG_YAFFS_FS) +=yaffs2/ (3)在内核fs/目录下创建yaffs2目录 将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie; 将yaffs2 源码目录的Kconfig文件复制到内核fs/yaffs2目录下; 将yaffs2源码目录下的*.c *.h文件复制到内核fs/yaffs2目录下. 在内核根目录下执行: #make menuconfig 配置yaffs2文件支持 File systems ---> Miscellaneous filesystems ---> <*>YAFFS2 file system support 到这里就差不多了,但是还要改下机器ID为1999 在arch/arm/tools/mach-types里面,原本问s3c2440 ARCH_S3C2440 S3C2440 362 的把362改为1999 最后输出为MACH_TYPE = 1999 NOW, Booting Linux...... Uncompressing Linux............................................................. ................................................................... done, bootin g the kernel. Linux version 2.6.30.9 (root@localhost.localdomain) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #2 Mon Dec 28 08:15:47 CST 2009 CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 CPU: VIVT data cache, VIVT instruction cache Machine: SMDK2440 ATAG_INITRD is deprecated; please update your bootloader. Memory policy: ECC disabled, Data cache writeback CPU S3C2440A (id 0x32440001) S3C24XX Clocks, (c) 2004 Simtec Electronics S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 NR_IRQS:99 irq: clearing subpending status 00000003 irq: clearing subpending status 00000002 PID hash table entries: 256 (order: 8, 1024 bytes) Console: colour dummy device 80x30 console [ttySAC0] enabled Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 64MB = 64MB total Memory: 60676KB available (3572K code, 333K data, 148K init, 0K highmem) Calibrating delay loop... 201.93 BogoMIPS (lpj=504832) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok net_namespace: 936 bytes NET: Registered protocol family 16 S3C Power Management, Copyright 2004 Simtec Electronics S3C2440: Initialising architecture S3C2440: IRQ Support S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics DMA channel 0 at c4808000, irq 33 DMA channel 1 at c4808040, irq 34 DMA channel 2 at c4808080, irq 35 DMA channel 3 at c48080c0, irq 36 S3C244X: Clock Support, DVS off bio: create slab at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb s3c2440-i2c s3c2440-i2c: slave address 0x10 s3c2440-i2c s3c2440-i2c: bus frequency set to 98 KHz s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NET: Registered protocol family 1 NetWinder Floating Point Emulator V0.97 (extended precision) yaffs Dec 28 2009 04:18:14 Installing. JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. ROMFS MTD (C) 2007 Red Hat, Inc. msgmni has been set to 118 io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered Console: switching to colour frame buffer device 30x40 fb0: s3c2410fb frame buffer device lp: driver loaded but no devices found ppdev: user-space parallel port driver Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440 s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440 s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440 brd: module loaded loop: module loaded Uniform Multi-Platform E-IDE driver ide-gd driver 1.18 ide-cd driver 5.00 Driver 'sd' needs updating - please use bus_type methods dm9000 Ethernet Driver, V1.31 S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c2440-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bi t) Scanning device for bad blocks Bad eraseblock 648 at 0x000005100000 Creating 4 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x000000000000-0x000000060000 : "supervivi" 0x000000060000-0x000000260000 : "Kernel" 0x000000260000-0x000040260000 : "root" mtd: partition "root" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x7da0000 0x000000000000-0x000040000000 : "nand" mtd: partition "nand" extends beyond the end of device "NAND 128MiB 3,3V 8-bit" -- size truncated to 0x8000000 usbmon: debugfs is not available ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver s3c2410-ohci s3c2410-ohci: S3C24XX OHCI s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1 s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected usbcore: registered new interface driver libusual usbcore: registered new interface driver usbserial USB Serial support registered for generic usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core USB Serial support registered for FTDI USB Serial Device usbcore: registered new interface driver ftdi_sio ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver USB Serial support registered for pl2303 usbcore: registered new interface driver pl2303 pl2303: Prolific PL2303 USB to serial adaptor driver mice: PS/2 mouse device common for all mice S3C24XX RTC, (c) 2004,2006 Simtec Electronics S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled Advanced Linux Sound Architecture Driver Version 1.0.20. ALSA device list: No soundcards found. TCP cubic registered NET: Registered protocol family 17 RPC: Registered udp transport module. RPC: Registered tcp transport module. drivers/rtc/hctosys.c: unable to open rtc device (rtc0) yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" yaffs: auto selecting yaffs2 block 630 is bad yaffs_read_super: isCheckpointed 0 VFS: Mounted root (yaffs filesystem) on device 31:2. Freeing init memory: 148K hwclock: can't open '/dev/misc/rtc': No such file or directory [01/Jan/1970:00:00:11 +0000] boa: server version Boa/0.94.13 [01/Jan/1970:00:00:11 +0000] boa: server built Mar 26 2009 at 15:28:42. [01/Jan/1970:00:00:11 +0000] boa: starting server pid=926, port 80 open device leds: No such file or directory Try to bring eth0 interface up......ifconfig: SIOCGIFFLAGS: No such device ifconfig: SIOCSIFHWADDR: No such device ifconfig: SIOCSIFADDR: No such device route: SIOCADDRT: Network is unreachable Done Please press Enter to activate this console. [root@FriendlyARM /]# ls

原创粉丝点击