本次移植主要是移植最新内核Linux4.1.6到TQ2440开发板
开发板:TQ2440
内核:Linux4.1.6
目的:在开发板上实现内核的启动,并挂上nfs根文件系统
1、下载最新内核linux-4.1.6.tar.xz/
2、直接拖内核源码到虚拟机中的一个目录
3、解压:taraxvflinux-4.1.6.tar.xz并切换到内核源码目录cdlinux-4.1.6/
4、修改makefile文件:geditMakefile
5、修改机器码,用于启动需要,根据自己uboot的机器码设定,我的是168
a)
b)geditarch/arm/tools/mach-types
c)
6、设置DM9000的一些参数
a)
#include
b)/*DM9000*/
staticstructresources3c_dm9k_resource[]={
[0]={
.start =S3C2410_CS4,
.end =S3C2410_CS4+3,
.flags =IORESOURCE_MEM,
},
[1]={
.start =S3C2410_CS4+4,
.end =S3C2410_CS4+4+3,
.flags =IORESOURCE_MEM,
},
[2]={
.start =IRQ_EINT7,
.end =IRQ_EINT7,
.flags =IORESOURCE_IRQ|IRQF_TRIGGER_RISING,
}
};
staticstructdm9000_plat_datas3c_dm9k_platdata={
.flags =DM9000_PLATF_16BITONLY,
};
structplatform_devices3c_device_dm9000={
.name ="dm9000",
.id =0,
.num_resources =ARRAY_SIZE(s3c_dm9k_resource),
.resource =s3c_dm9k_resource,
.dev ={
.platform_data=&s3c_dm9k_platdata,
}
};
C)
7、修改时钟
8、设置初始化相关的
9、nandflash分区geditarch/arm/mach-s3c24xx/common-smdk.c
10、给内核指定启动参数,不知道为啥,好像uboot不能自动跟内核传递参数样
Makemenuconfig->bootoption->在第六行输入:noinitrdmem=64Mconsole=ttySAC0,115200init=/linuxrcroot=/dev/nfsrwnfsroot=172.16.123.57:/opt/myfsip=172.16.123.238换上各自的ip和文件系统目录
11、make 编译
12、启动成功,但是只实现了基本功能,各项驱动的移植,待续