zzzz:http://blog.csdn.net/longtian635241/article/details/8166614
1.从www.kernel.org上下载kernel-3.6.6.tar.bz2
2.解压tar jxfv kernel-3.6.6.tar.bz2
3.cd linux-3.6.6/
4.vi Makefile,修改
#ARCH ?= $(SUBARCH)
#CROSS_COMPILE ?=
ARCH ?= arm
#CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux- (这样修改后编译时还是会有错误,显示没有arm-none-linux-gnueabi-gcc,不过设置下环境变量也能编译通过)
CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi- (这样修改省事省力,不需第五步)
5.设置环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin/arm-linux-
否则找不到arm-none-linux-编译器。这样就可以可以直接make尝试编译了!
6.这样修改后就可以使用
make s3c6400_defconfig
来生成对s3c6410的支持。 因为arch/arm/configs下面只有s3c6400_defconfig和6410
最相近。
7.这样修改后就可以使用
make s3c6400_defconfig
来生成对s3c6410的支持。 因为arch/arm/configs下面只有s3c6400_defconfig和6410最相近。
8.make menuconfig
System Type --->
-*- S3C64XX DMA | |
| | [ ] SMDK6400 | |
| | [ ] A&W6410 | |
| | [ ] MINI6410 | |
| | [ ] REAL6410 | |
| | [*] SMDK6410 | |
| | SMDK6410 MMC/SD slot setup (Use channel 0 only) ---> | |
| | [ ] Support Wolfson Microelectronics 1190-EV1 PMIC card | |
| | [ ] Support Wolfson Microelectronics 1192-EV1 PMIC card | |
| | [ ] NCP | |
| | [ ] Airgoo HMT | |
| | [ ] SmartQ 5 | |
| | [ ] SmartQ 7 | |
| | [ ] Wolfson Cragganmore 6410
仅选择smdk6410,我的移植选择这个,但是你想偷懒也可以选择mini6410
9.make
10.烧进idea6410开发板,这是你发现能起来了,串口有输出了,但是分区信息等都没有!
注意:如果你选择mini6410编译,他已经移植了dm9000,分区,lcd支持!做如下处理就可以看到qt界面!
a:MTD分区支持
Device Drivers --->
<*> Memory Technology Device (MTD) support --->
<*> Direct char device access to MTD devices | |
| | -*- Common interface to block layer for MTD 'translation layers' | |
| | <*> Caching block device access to MTD devices
b:DM9000支持
[*] Networking support --->
Networking options --->
<*> Packet socket | |
| | <*> Unix domain sockets | |
| | <*> UNIX: socket monitoring interface | |
| | < > Transformation user configuration interface (NEW) | |
| | [ ] Transformation sub policy support (EXPERIMENTAL) (NEW) | |
| | [ ] Transformation migrate database (EXPERIMENTAL) (NEW) | |
| | [ ] Transformation statistics (EXPERIMENTAL) (NEW) | |
| | < > PF_KEY sockets (NEW) | |
| | [*] TCP/IP networking | |
| | [*] IP: multicasting | |
| | [*] IP: advanced router | |
| | [*] FIB TRIE statistics | |
| | [*] IP: policy routing | |
| | [*] IP: equal cost multipath | |
| | [*] IP: verbose route monitoring | |
| | [*] IP: kernel level autoconfiguration //其他是网络必须,NFS支持这两项一定的选上!
[*] IP: DHCP support
Device Drivers --->
[*] Network device support --->
[*] Ethernet driver support (NEW) --->
<*> DM9000 support | |
| | [ ] Force simple NSR based PHY polling (NEW) | |
| | < > Dave ethernet support (DNET) (NEW)
c:NFS支持
b步全部做好后再
File systems --->
[*] Network File Systems ---> //b要设置后才会出现
--- Network File Systems | |
| | <*> NFS client support | |
| | <*> NFS client support for NFS version 2 (NEW) | |
| | <*> NFS client support for NFS version 3 (NEW) | |
| | [*] NFS client support for the NFSv3 ACL protocol extension | |
| | <*> NFS client support for NFS version 4 | |
| | [*] Provide swap over NFS support | |
| | [*] NFS client support for NFSv4.1 (EXPERIMENTAL) | |
| | (kernel.org) NFSv4.1 Implementation ID Domain (NEW) | |
| | [*] Root file system on NFS | |
| | [*] Use the legacy NFS DNS resolver
d.上面步骤做完后能挂载nfs系统了
#设置bootcmd
setenv bootcmd nand read 0xc0008000 0x100000 0x300000\;bootm 0xc0008000
#设置NFS启动 bootargs
setenv bootargs "root=/dev/nfs nfsroot=192.168.1.228:/home/song/nfs_share ip=192.168.1.128:192.168.1.228:192.168.1.1:255.255.255.0:www.urbetter.com:eth0:off console=ttySAC0,115200"
e.但是没有可爱企鹅,配置:
Device Drivers --->
Graphics support --->
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> | |
| | < > Lowlevel video output switch controls | |
| | <*> Support for frame buffer devices ---> | | <*> Samsung S3C framebuffer support (这个的选) | |
| | [ ] Exynos Video driver support ---> | |
| | [ ] Backlight & LCD device support ---> | |
| | Console display driver support ---> <*> Framebuffer Console support | |
| | [*] Bootup logo ---> | | [*] Standard 224-color Linux logo
f.如果挂载文件系统不能进入系统一定的选上进程间通信选项
General setup ---> | |
| [*] System V IPC
g.所有的都配置好了还是没有反应,的修改代码
# vi mach-mini6410.c
将480*272的参数改为
static struct fb_videomode mini6410_lcd_type0_timing = {
/* 4.3" 480x272 */
.left_margin = 2,
.right_margin = 2,
.upper_margin = 2,
.lower_margin = 2,
.hsync_len = 41,
.vsync_len = 10,
.xres = 480,
.yres = 272,
};
这样就可以看到图形界面了!
这其中有问题,不知道为啥,只将内核传进内存运行,usb鼠标是可用的,但是固化到falsh,挂载nfs就不能用了~求高人指点!
具体步骤:dnw c0008000
bootm c0008000 这样可以用
但:dnw c0008000
nand erase 100000 300000;nand write c0008000 100000 300000 这样usb鼠标就不能用了~按理如果驱动有问题内核都是一样的,为啥有一种情况可用额~提示错误
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000
s3c2410-ohci s3c2410-ohci: init err (00000000 0000)
s3c2410-ohci s3c2410-ohci: can't start s3c24xx
s3c2410-ohci s3c2410-ohci: startup error -75
s3c2410-ohci s3c2410-ohci: USB bus 1 deregistered
s3c2410-ohci: probe of s3c2410-ohci failed with error -75
=========================================