文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux 2.6.30 移植到mini2440

linux 2.6.30 移植到mini2440

时间:2010-10-13  来源:dlczh

谢谢以下博文的作者使我少走了很多弯路,提高我了很多信息   http://bbs.eeworld.com.cn/thread-93057-1-2.html http://blog.chinaunix.net/u1/57901/showart_2019107.html http://blog.sina.com.cn/s/blog_559b44930100c61e.html http://www.chineselinuxuniversity.net/articles/25013.shtml   系统的移植要注意的是mach_type,这个要跟你的bootloader的一致。 移植的步骤: 1. 修改顶层的Makefile      直接将Makefile文件里面的        
   ARCH ?= $(SUBARCH)
   CROSS_COMPILE ?=
   改为:
   ARCH ?= arm
   CROSS_COMPILE ?=arm-linux-
并创建配置文件 cp arch/arm/congfigs/s3c2410_defconfig .config   就是加载配置文件。S3C2410和S3C2440差不多的,注意.config前有个空格。 2. 修改分区,主要修改一个数组 文件位置在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,
}
};
然后把其他的去掉或不编译。
这个要参考友善之臂带的源码里的信息。
3. 修改时钟频率 在arch/arm/mach-s3c2440/mach-smdk2440.c
修改下时钟频率
s3c24xx_init_clocks(12000000);
4. make menuconfig
在boot option >Default kernel command sring的内容 修改为noinitrd root=/dev/mtdblock2 init=/linuxrc console =ttySAC0,115200 mem=64M   5. 加载YAFFS2 我直接把友善之臂的/fs/ysffs2 拷过来,然后修改fs/Kconfig文件和fs/Makefile的文件 修改如下: 在KCONFIG 文件中加入 # Patched by YAFFS
source "fs/yaffs2/Kconfig"
在Makefile中加入 # Patched by YAFFS
obj-$(CONFIG_YAFFS_FS)  += yaffs2/
这个可以对照友善之臂提供的源码。 6.配置及编译内核
然后用S3C2410的默认配置文件
#cp arch/arm/configs/s3c2410_defconfig .config
#make menuconfig               //只需修改下面几项

[*] Enable loadable module support --->

       [*]   Module unloading

       [*]   Automatic kernel module loading

      选择这两个,剩下的可以去掉

System Type ---->

       [*] S3C2410 DMA support

       S3C2410 Machines --->

              [*] SMDK2410/A9M2410 

       S3C2440 Machines --->

              [*] SMDK2440

              [*] SMDK2440 with S3C2440 CPU module

//System Type这部分,只选这些,其他可以全部去掉,

Boot option ----->

    修改启动参数为:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200

    可能根据个人板子的设置会不一样,我的是从Nand Flash中加载文件系统,其中mtdblock2是存放我的Linux文件系统的分区。不过,在bootloader可以传递内核参数的情况下这个设置是无效的。

 

Device Drivers --->

       <*> Memory Technology Device (MTD) support --->

              [*]   MTD partitioning support

              <*> NAND Device Support --->

                      <*>   NAND Flash support for S3C2410/S3C2440 SoC

                      [ ]    S3C2410 NAND Hardware ECC     //这个要去掉

       [*] Network device support --->

               [*]   Ethernet (10 or 100Mbit) ---> 

                   <*>   DM9000 support
Kernel Features ->
     [*]Use the ARM EABI to compile the kernel
     [*]  Allow old ABI binaries to run with this kernel

到这边kernel一般可以boot起来,这时会出现一些 rtc和网络的一些问题,呵呵,这些再慢慢解决吧。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载