Linux s3c6410 移植
内核清除:make mrproper(会清除配置好的.config文件和所有.o文件,如果干净的内核没有必要执行)
内核配置:make menuconfig (可以依据一个相近的配置cp arch/arm/configs/s3c6400_defconfig
内核编译:make
添加DM9000网卡驱动
1)arch/arm/mach-s3c6410/mach-smdk6410.c
#include
……
#define S3C64XX_PA_DM9000
#define S3C64XX_VA_DM9000
#define S3C64XX_SZ_DM9000
static struct resource smdk6410_dm9000_resources[] = {
};
static struct dm9000_plat_data smdk6410_dm9000_pdata = {
};
struct platform_device smdk6410_dm9000 = {
};
……
static struct map_desc smdk6410_iodesc[] = {
};
static struct platform_device *smdk6410_devices[] __initdata = {
#ifdef CONFIG_SMDK6410_SD_CH0
#endif
#ifdef CONFIG_SMDK6410_SD_CH1
#endif
};
NFS rootfs相关配置
1、devices support 中打开DM9000支持
2、打开filsystem 中nfs的相关支持
备注:Linux启动参数(uboot bootargs传递过来的)
"console=ttySAC0,115200 root=/dev/nfs rw nfsroot=172.20.118.103:/work/workspace/s3c6410/rootfs ip=172.20.118.193:172.20.118.103:172.20.118.254:255.255.255.0:hoxm:eth0:none"
停在Starting kernel问题解决
常见原因:
1)地址错误
2)Boot参数设置错误
3)串口fifo设置不必配(本次移植就是因为这个原因)
archarmmach-s3c6400includemachuncompress.h 中添加uart fifo配置
static void arch_detect_cpu(void)
{
}
根文件系统建立
Download
#make menuconfig
#make
#make install
编译bash
export CC=arm-sunplus-linux-gnueabi-gcc
./configure --host=arm-sunplus-linux-gnueabi --enable-static-link --without-bash-malloc
make
make之后源码包顶层目录下生成bash,不用make install,直接copy到busybox的/bin目录
最简单的默认使用sh的根文件系统制作:
busybox生成:
mk空目录:mkdir dev etc home lib mnt opt proc sys tmp var
busybox /examples copy /etc下inittab,fstab,rc等相关脚本覆盖到/etc中
Linuxs3c6410移 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)