Linux 3.3.0移植到S3C6410开发板上
Linux 3.3.0移植到S3C6410开发板上
这里仅仅是移植成功内核,可以挂载文件系统运行,至于驱动会陆续添加。第一步:到内核官网上下载最新的内核,我下载的是linux-3.3-rc3.tar.bz2。
第二步:解压内核,进入arch/arm/mach-s3c64xx目录下,看到不少6410的板级文件,我们这里选择mini6410开开展工作,在目录下将mach-mini6410.c文件复制一份,命名为:mach-jfj6410.c。这里我们将文件里面关于mini6410的字样都修改为jfj6410.但是这里要注意,MACHINE_START(JFJ6410, "JFJ6410")这里的JFJ6410要使用大写,稍候说明为什么。大家都知道在一个目录下添加了文件后,都应该修改当前目录下的Kconfig和Makefile两个文件,这是Linux系统编译的要求。至于怎么修改,仔细看一下文件内容我相信大家都知道。
Kconfig文件是进行make menuconfig时出现的配置选项,这里我们添加了自己的板级文件肯定要添加配置选项。内容可以复制MINI6410的。如下:
[plain]
- config MACH_JFJ6410
- bool "JFJ6410"
- select CPU_S3C6410
- select S3C_DEV_HSMMC
- select S3C_DEV_HSMMC1
- select S3C64XX_SETUP_SDHCI
- select S3C_DEV_USB_HOST
- select S3C_DEV_NAND
- select S3C_DEV_FB
- select S3C64XX_SETUP_FB_24BPP
- select SAMSUNG_DEV_ADC
- select SAMSUNG_DEV_TS
- help
- Machine support for the JFJKJ JFJ6410
Makefile文件就是说明要编译的文件,以及编译的规则,这里显然就是要编译我们自己的板级文件mach-jfj6410.c,具体如下:
[plain]
- obj-$(CONFIG_MACH_JFJ6410) += mach-jfj6410.o
第四步:编译make zImage。呵呵,这样就生成了我们需要的内核。
第五步:烧写,测试内核。因为我们是测试内核,所以U-Boot以及根文件系统都是使用之前的,这里没有移植yaffs,所以我目前使用cramfs格式的文件系统。
启动开发板后出现了如下的错误:
[html]
- end_request: I/O error, dev mtdblock2, sector 0
- FAT: unable to read boot sector
- VFS: Cannot open root device "mtdblock2" or unknown-block(31,2)
- Please append a correct "root=" boot option; here are the available partitions:
- 1f00 192 mtdblock0 (driver?)
- 1f01 1856 mtdblock1 (driver?)
- 1f02 30720 mtdblock2 (driver?)
- 1f03 32768 mtdblock3 (driver?)
- Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
源代码为:
[html]
- chip->ecc.mode = NAND_ECC_SOFT;
[html]
- chip->ecc.mode = NAND_ECC_NONE;
再次编译内核,烧写后正常运行,打印的信息如下:
[html]
- Starting kernel ...
- Uncompressing Linux... done, booting the kernel.
- Booting Linux on physical CPU 0
- Linux version 3.3.0-rc3 (chenlong12580@chenlong12580) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #4 Mon Feb 13 14:58:00 CST 2012
- CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387d
- CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
- Machine: JFJ6410
- Memory policy: ECC disabled, Data cache writeback
- CPU S3C6410 (id 0x36410101)
- S3C24XX Clocks, Copyright 2004 Simtec Electronics
- camera: no parent clock specified
- S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000
- S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
- mout_apll: source is fout_apll (1), rate is 532000000
- mout_epll: source is epll (1), rate is 24000000
- mout_mpll: source is mpll (1), rate is 532000000
- usb-bus-host: source is clk_48m (0), rate is 48000000
- audio-bus: source is mout_epll (0), rate is 24000000
- audio-bus: source is mout_epll (0), rate is 24000000
- audio-bus: source is mout_epll (0), rate is 24000000
- irda-bus: source is mout_epll (0), rate is 24000000
- camera: no parent clock specified
- CPU: found DTCM0 8k @ 00000000, not enabled
- CPU: moved DTCM0 8k to fffe8000, enabled
- CPU: found DTCM1 8k @ 00000000, not enabled
- CPU: moved DTCM1 8k to fffea000, enabled
- CPU: found ITCM0 8k @ 00000000, not enabled
- CPU: moved ITCM0 8k to fffe0000, enabled
- CPU: found ITCM1 8k @ 00000000, not enabled
- CPU: moved ITCM1 8k to fffe2000, enabled
- Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
- Kernel command line: root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200
- PID hash table entries: 1024 (order: 0, 4096 bytes)
- Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
- Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
- Memory: 256MB256MB = 256MB total
- Memory: 257500k/257500k available, 4644k reserved, 0K highmem
- Virtual kernel memory layout:
- vector : 0xffff0000 - 0xffff1000 ( 4 kB)
- DTCM : 0xfffe8000 - 0xfffec000 ( 16 kB)
- ITCM : 0xfffe0000 - 0xfffe4000 ( 16 kB)
- fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
- vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
- lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
- modules : 0xbf000000 - 0xc0000000 ( 16 MB)
- .text : 0xc0008000 - 0xc01d90b8 (1861 kB)
- .init : 0xc01da000 - 0xc01f5000 ( 108 kB)
- .data : 0xc01f6000 - 0xc0216a40 ( 131 kB)
- .bss : 0xc0217024 - 0xc0246c58 ( 192 kB)
- SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
- NR_IRQS:246
- VIC @f6000000: id 0x00041192, vendor 0x41
- VIC @f6010000: id 0x00041192, vendor 0x41
- Console: colour dummy device 80x30
- Calibrating delay loop... 528.79 BogoMIPS (lpj=2643968)
- pid_max: default: 32768 minimum: 301
- Mount-cache hash table entries: 512
- CPU: Testing write buffer coherency: ok
- Setting up static identity map for 0x5015e320 - 0x5015e37c
- gpiochip_add: registered GPIOs 38 to 53 on device: GPF
- gpiochip_add: registered GPIOs 74 to 89 on device: GPI
- gpiochip_add: registered GPIOs 91 to 102 on device: GPJ
- gpiochip_add: registered GPIOs 161 to 176 on device: GPO
- gpiochip_add: registered GPIOs 178 to 192 on device: GPP
- gpiochip_add: registered GPIOs 194 to 202 on device: GPQ
- gpiochip_add: registered GPIOs 144 to 159 on device: GPN
- gpiochip_add: registered GPIOs 0 to 7 on device: GPA
- gpiochip_add: registered GPIOs 9 to 15 on device: GPB
- gpiochip_add: registered GPIOs 17 to 24 on device: GPC
- gpiochip_add: registered GPIOs 26 to 30 on device: GPD
- gpiochip_add: registered GPIOs 32 to 36 on device: GPE
- gpiochip_add: registered GPIOs 55 to 61 on device: GPG
- gpiochip_add: registered GPIOs 137 to 142 on device: GPM
- gpiochip_add: registered GPIOs 63 to 72 on device: GPH
- gpiochip_add: registered GPIOs 104 to 119 on device: GPK
- gpiochip_add: registered GPIOs 121 to 135 on device: GPL
- jfj6410: Option string jfj6410=0
- jfj6410: selected LCD display is 480x272
- S3C6410: Initialising architecture
- bio: create slab <bio-0> at 0
- io scheduler noop registered
- io scheduler deadline registered
- io scheduler cfq registered (default)
- start plist test
- end plist test
- Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
- s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 69) is a S3C6400/10
- console [ttySAC0] enabled
- s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 70) is a S3C6400/10
- s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 71) is a S3C6400/10
- s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 72) is a S3C6400/10
- brd: module loaded
- loop: module loaded
- S3C24XX NAND Driver, (c) 2004 Simtec Electronics
- s3c24xx-nand s3c6400-nand: Tacls=4, 30ns Twrph0=8 60ns, Twrph1=6 45ns
- s3c24xx-nand s3c6400-nand: System booted from NAND
- s3c24xx-nand s3c6400-nand: NAND ECC disabled
- NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
- NAND_ECC_NONE selected by board driver. This is not recommended!
- Scanning device for bad blocks
- Bad eraseblock 1050 at 0x000008340000
- Bad eraseblock 1076 at 0x000008680000
- Bad eraseblock 1211 at 0x000009760000
- Bad eraseblock 1949 at 0x00000f3a0000
- Creating 4 MTD partitions on "nand":
- 0x000000000000-0x000000100000 : "Bootloader"
- 0x000000100000-0x000000600000 : "Kernel"
- 0x000000600000-0x000007e00000 : "User"
- 0x000007e00000-0x000010000000 : "File System"
- mousedev: PS/2 mouse device common for all mice
- VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
- VFS: Mounted root (cramfs filesystem) readonly on device 31:2.
- Freeing init memory: 108K
- mount: mounting none on /proc/bus/usb failed: No such file or directory
- hwclock: can't open '/dev/misc/rtc': No such file or directory
- depmod: chdir(3.3.0-rc3): No such file or directory
- [01/Jan/1970:00:00:07 +0000] boa.c:173 - unable to create socket: Function not implemented
- open device leds: No such file or directory
- /usr/sbin/alsactl: load_state:1610: No soundcards found...
- ifconfig: socket: Function not implemented
- Try to bring eth0 interface up......cat: can't open '/sys/class/net/eth0/address': No such file or directory
- ifconfig: socket: Function not implemented
- route: socket: Function not implemented
- /etc/init.d/ifconfig-eth0: line 6: can't create /etc/resolv.conf: Read-only file system
- Done
- Please press Enter to activate this console.
- [root@JFJ6410 /]# ls
- bin etc lib mnt proc sbin tmp var
- dev home linuxrc opt root sys usr www
- [root@www.bkjia.com /]#
评论暂时关闭