CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [转贴] Linux 2.6.11.7 内核移植到S3C2410平台
ly5418
初级会员




UID 321554
精华 0
积分 117
帖子 6
威望 52
ZD币 26 元
阅读权限 25
注册 2008-4-23
状态 离线
  楼主
发表于 2008-4-23 16:38  资料  个人空间  短消息  加为好友 
开发者在线

Linux 2.6.11.7 内核移植到S3C2410平台

1,下载内核文件 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.7.tar.gz   ,当然跟着是把它解压到你想放的地方啦。
2,修改Makefile
1)  ARCH = arm
2)  CROSS_COMPILE = /usr/local/arm/3.4.1/bin/arm-linux-
若交叉编译器的路径已经增加到环境变量中去了,可以不再指明路径,否则需要写出绝对路径。
3,修改文件 arch/arm/mach-s3c2410/devs.c  (增加部分用咖啡色)
/***********add here*************/
#include <linux/mtd/partitions.h>
#include <asm/arch/nand.h>
#include <linux/mtd/nand.h>
/***********end add*************/
static struct mtd_partition partition_info[] ={
{
    name: "loader",
    size: 0x00020000,
    offset: 0,
},
{
    name: "param",
    size: 0x00010000,
    offset: 0x00020000,
},
{
    name: "kernel",
    size: 0x001c0000,
    offset: 0x00030000,
},     
{
    name: "root",
    size:   0x00400000,
    offset: 0x00200000,
    mask_flags: MTD_WRITEABLE,
},
{
    name: "user",
    size:   0x03a00000,
    offset: 0x00600000,
}
};
struct s3c2410_nand_set nandset ={
nr_partitions: 5 ,
partitions: partition_info ,
};
struct s3c2410_platform_nand  hujunPlatform={
tacls:0,
twrph0:30,
twrph1:0,
sets: &nandset,
nr_sets: 1,
};
struct platform_device s3c_device_nand = {
    .name          = "s3c2410-nand",
    .id          = -1,
    .num_resources      = ARRAY_SIZE(s3c_nand_resource),
    .resource      = s3c_nand_resource,
//hujun add start
         .dev={
     .platform_data = &hujunPlatform        //注意此处不要","号  **********add here*****
//hujun add  end
};
EXPORT_SYMBOL(s3c_device_nand);  //此句原来就有,此处列出是要求上面加的代码在此句之前。
4,在arch/arm/mach-s3c2410/mach-smdk2410.c文件中添加 &s3c_device_nand

static struct platform_device *smdk2410_devices[] __initdata = {
    &s3c_device_usb,
    &s3c_device_lcd,
    &s3c_device_wdt,
    &s3c_device_i2c,
    &s3c_device_iis,
    &s3c_device_nand,          //在这里加,注意有逗号
};
5,当时使用cramfs 文件系统,修改了drivers/mtd/nand/s3c2410.c 文件,至于有没有必要就没有去试验:找到s3c2410_nand_init_chip()函数
将chip->eccmode = NAND_ECC_SOFT;
改为
chip->eccmode = NAND_ECC_NONE;
保存,退出。
若使用YAFFS 文件系统则不改。
6,我是在一个配置文件的基础上修改的,先是make smdk2410_defconfig,再make menuconfig,就把smdk2410_defconfig的配置选上了。然后再根据需要改。
System Type--->
  • S3C2410 DMA support
    General setup--->
  • NWFPE math emulation
    Memory Technology Devices(MTD)--->
  • MTD partitioning support
                                                                            
  • Command line partition table parsing
                                                                             NAND Flash Device Drivers
                                                                                     
  • NAND Device Support
                                                                                     
  • NAND Flash support for S3C2410 SoC
    Block devices--->
  • Initial RAM disk(initrd) support
    Character devices--->
  • Non-standard serial port support
                                          
  • S3C2410 RTC Driver
    File systems--->Miscellaneous filesystems
                                  
  • Compressed Rom file system support(cramfs)
                         --->Pseudo filesystems
                                  
  • Virtual memory file system support(former shm fs)
                                  
  • /dev file system support(OBSOLETE)
                                  
  • Automatically mount at boot
    7,修改内核的command line(bootloader使用vivi)
    vivi >param set linux_cmd_line"noinitrd root=/dev/mtdblock3  init=/linuxrcconsole=ttySAC0"(我用的是这个,下面的那个有时可以,好象板子用这个跑多几次,再改了下面的那个也可以,有待证实~~)
    vivi>param set linux_cmd_line "noinitrd root=/dev/mtdblock/3  init=/linuxrc console=ttySAC0" (todaygood用的是这个)
    总结:
    1,当linux cmd line中的root参数不对时,就会出现下面的错。
    VFS: Cannot open root device "mtd/mtdblock/3" or unknown-block(2,0)
    Please append a correct "root=" boot option
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
    2,命令行的console参数错了,应该为console=ttySAC0,不是console=ttyS0。
    Uncompressing Linux................................................................ done, booting the kernel. 就不动了
    3,没有选上/dev fs及Automatically mount at boot时出现的错误提示。
    VFS: Mounted root (cramfs filesystem) readonly.
    Freeing init memory: 88K
    Warning: unable to open an initial console.




  • 顶部
    热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
     


    操作系统 数据库 中间件 应用软件 管理软件 Web应用 AJAX Linux Web2.0 RIA 开源 SOA OSS SEO Vista SharePoint Windows Server Windows 2003 Windows 2008 IIS 动态语言 Windows IE7 Oracle Oracle11g office SQLServer Firefox Solaris Ubuntut 微软Google 资讯 博客 技术看板 英雄 图片 QQ 腾讯QQ 珊瑚虫QQ 金山上市 站点图 AJAX BI BPM CRM DNS Android SQL Server 2008 EAI Enterprise 2.0 ETL ERP Flash GPL3 Java j2me JavaEE LAMP mashups NTFS ODBC ODF OOP Outsourcing RIA RSS SOA UML Web2.0 Workflow XAML XML ZFS 备份 并发控制 并行计算 动态语言 多核计算 虚拟技术 CRM 数据仓库 虚拟化 Apollo Apache BizTalk DB2 Eclipse Excel Expression Flex3 Fedora7 Forefront FreeBSD Hibernate IE 7 IIS JavaFX JBoss Linspire live Maxthon Mobile 6.0 Mozilla MySQL office OneCare OpenOffice Solaris Oracle Oracle 11g SQL Server Opera Outlook Photoshop PostgreSQL PowerBuilder PowerShell Rational RHEL ROR Salesforce Server Core Solaris SugarCRM TFS Tomcat Ubuntut Vista VMWare VPC VSTS WCF WebLogic WPF Xandros Xen KDE GNOME 火狐浏览器 Gmail 邮箱 Exchange server AJAX BI BPM EAI ETL ERP CRM DNS Flash Java JavaEE j2me LAMP NTFS ODBC ODF OOP Outsourcing RIA RSS SOA SEO Web2.0 mash up Workflow XAML XML GPL 3协议 ZFS 备份 并行计算 多核 数据仓库 搜索 并发控制 并行计算 动态语言 虚拟化 虚拟技术 Enterprise Web2.0 软件技术资讯 操作系统 Windows Server 2008 Windows Server 2008专题 系统安全 IIS 虚拟机 Windows Linux 嵌入式操作系统 Vista专区 数据库/数据仓库 MySQL & PostgreSQL & Sybase Oracle 10g / 9i / 11g SQL SERVER DB2 中间件/SOA QQ2009下载 QQ QQ群 QQ炫铃 QQ视频 QQ好友 木马病毒 QQ2007 江民 瑞星 金山毒霸 协作办公 ODF/OOXML SharePoint office web应用 浏览器 SaaS/S+S Microsoft技术 操作系统软件数据库软件中间件软件

    软件频道2008年3月精华 软件频道2008年2月精华 软件频道2008年1月精华 软件频道12月精华 软件频道11月精华 软件频道10月精华 软件频道9月精华 软件频道8月精华 软件频道7月精华 软件频道6月精华 软件频道5月精华 软件频道4月精华 软件频道3月精华 软件频道2月精华 软件频道1月精华


    当前时区 GMT+8, 现在时间是 2008-9-8 11:52

      Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
    Processed in 0.453489 second(s), 8 queries

    清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版