1.新建kernel文件夹,用于存放内核文件
[weishusheng@localhost ~]$ mkdir kernel
2.进入kernel,上传压并解压压缩文件
[weishusheng@localhost ~]$cd kernel
[weishusheng@localhost kernel]$ tar -xjf linux-3.0.tar.bz2
3.进入linux-3.0
cd linux-3.0
4.修改makefile,配置CPU类型和交叉编译器(195,196行)
ARCH ?=arm
CROSS_COMPILE ?=/opt/buildroot-2012.08/arm926t/usr/bin/arm-linux-
交叉编译器路径每个人不太一样,大家把路径都换成自己的,另外在配置交叉编译器路径的时候,不要多加多余的空格,否则编译器不会被找到。
在同一文件下添加zImage头制作(559行后面)
cp arch/arm/boot/zImage . -f
../u-boot-2010.09.bak/tools/mkimage -A arm -O linux -T kernel -C none -a 30008000
-e 30008040 -n "Linux Kernel" -d zImage linux-s3c2440-kernel.bin
rm -f zImage
以上三行都以Tab空格键开头
(-A 指定CPU的体系结构
-O 指定操作系统类型,可以取以下值:
openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos
-T 指定映象类型,可以取以下值:
standalone、kernel、ramdisk、multi、firmware、script、filesystem
-C 指定映象压缩方式
-a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载
-e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)
-n 指定映象名
-d 指定制作映象的源文件
该段是在linux编译的内核的前面,加上一个64字节的头,让u-boot能够引导内核启动
5.我们以s3c2410为模板制作s3c2440的内核。
拷贝 arch/arm/configs/s3c2410_defconfig作为.config的模板
[weishusheng@localhost linux-3.0]$ sudo cp arch/arm/configs/s3c2410_defconfig ./.config
注意"."是拷贝到当前目录下
6.make menuconfig
(如果make menuconfig后乱码或者不能删除路径以进行修改,那么是你在执行make menuconfig前没有执行export TERM=vt100)
Linux/arm 3.0.0 Kernel Configuration
所有的 M-> n (*代表编译进内核,M表示编译成模块,n表示不选)
General setup --->
[*] Enable loadable module support --->
-*- Enable the block layer --->
[ ] Support for large (2TB+) block devices and files
System Type --->
[*] MMU-based Paged Memory Management Support
ARM system type (Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C
(X) Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442
S3C2440 and S3C2442 Machines --->
[*] SMDK2440
[*] SMDK2440 with S3C2440 CPU module (NEW)
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
Boot options --->
() Default kernel command string
consel=ttySAC0,115200,init=/init
Userspace binary formats --->
[*] Kernel support for ELF binaries
-*- Networking support --->
M -> n
Device Drivers --->
< > Parallel port support --->
[*] Block devices --->
<*> Network block device support
(1024) Default number of RAM disks
(204800) Default RAM disk size (kbytes)
其他的,M->n
SCSI device support --->
M->n
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> DM9000 support
Input device support --->
input device support](包括鼠标键盘触摸屏(event interface)) *-->n(先都不支持只留下串口)
Character devices --->
[*] Stallion multiport serial support
Serial drivers --->
< > 8250/16550 and compatible serial support
<*> Samsung SoC serial support
[*] Support for console on Samsung SoC serial port
<*> Samsung S3C2440/S3C2442/S3C2416 Serial port support (NEW)
< > Hardware Random Number Generator Core support
*-*TPM Hardware Support---->
< > National Semiconductor TPM Interface
< > Atmel TPM Interface
< > Hardware Monitoring support --->
<*> Sound card support --->
< > Advanced Linux Sound Architecture --->
[ ] Multifunction device drivers --->
[ ] HID Devices --->
[*] USB support --->
<*> USB Mass Storage support
<*> USB Serial Converter support --->
<*> USB FTDI Single Port Serial Driver USB转串口驱动程序
<*> USB Prolific 2303 Single Port Serial Driver PL2303驱动
<*> USB Winchiphead CH341 Single Port Serial Driver
<*> MMC/SD/SDIO card support --->
<*> Secure Digital Host Controller Interface support
File systems --->
前4种系统一般都不会用到n
CD-ROM/DVD Filesystems --->
< > ISO 9660 CDROM file system support
M-->n
DOS/FAT/NT Filesystems --->
Pseudo filesystems --->伪文件系统 [*][Tmpfs POSIX Access Control Lists]将内存的一段拿出来做文件系统(掉电丢失),必须要 [*] Miscellaneous filesystems ---> <*> Journalling Flash File System v2 (JFFS2) support [*] Network File Systems ---> <*> NFS client support [kernel hacking] 都不选 n [cryptographic API]加密相关不选 n [library routines] 动态库不选 7.修改时钟和串口 将arch/arm/mach-s3c2440/mach-smdk2440.c中的__init smdk2440_map_io()函数中对时钟的初始化修改为12MHz: s3c24xx_init_clocks(12000000); 8.将drivers/tty/serial/samsung.c中设置如下: #define S3C24XX_SERIAL_NAME "ttyS" 将uart_driver s3c24xx_uart_drv结构体中的.driver_name设置为如下 .driver_name = "ttyS", 8.修改arch/arm/tools/mach-types,将machine_ID配置为如下 s3c2440 ARCH_S3C2440 S3C2440 1999 mini2440 MACH_MINI2440 MINI2440 362 9.开始编译:make 编译好了之后,把linxurom-s3c2440.bin 下载到开发板的30008000地址下,bootm30008000 启动内核,因为我们的根文件系统还没加,所以在内核启动到挂载根文件系统时会卡住,那接下来的事就是根文件系统的制作了,但到了这步,我们的内核算是跑起来了。
<*> VFAT (Windows-95) fs support
(437) Default codepage for FAT
(ascii) Default iocharset for FAT
<*> NTFS file system support
[ ] NTFS debugging support (NEW)
[*] NTFS write support
上一篇:linux-3.0移植到FL2440(只做基本的移植)
下一篇:LPC824-I2C接口(续二)
推荐阅读最新更新时间:2024-11-16 20:00
推荐帖子
- Createfile,readfile,writefile,还有deviceiocontrol中的缓冲区到底是什么意思啊?
- 驱动开发时,我看了很多遍,还是不明白。其实以前文件操作时也用过,就是写文件,读文件。但是用于驱动时我就搞不明白了,这些缓冲和驱动缓冲有什么关系?如:USB驱动中,这些缓冲和端点缓冲是什么关系,这些缓冲起什么作用?谢谢高人们啊!!!Createfile,readfile,writefile,还有deviceiocontrol中的缓冲区到底是什么意思啊?缓冲用来存放COM口收发的数据的。当你需要数据的时候就在这些缓冲中去读取。是不是块设备的原因?什么是缓冲区,楼主不必须太在乎这些概念上的
- yinfei0809 嵌入式系统
- 本周精彩博文分享
- ADS1299的评估版测试时发现ADC的Vref不是4.5?在用ADS1299-FE评估版测试时采用内部参考,双电源供电模式,-2.5-2.5,但是在测试的时候VREFP是-2.45,并不是设计所说的4.5v?在提供的LABview测试时总得不到想看到的结果,想请问一下是什么问题呢?是10uF电容击穿了?〉〉〉点击查看详情ADC的电源噪声的去除请问如何对到达系统板的电源轨和总线
- 橙色凯 模拟与混合信号
- 轻松注册TDK,尽享超值好礼!
- TDK会以丰富的创造力,回馈文化与产业,只要你愿意亲近TDK,就会给你意外的精彩!!!轻松注册TDK,尽享超值好礼!
- 苏莎莎 活动列表
- 【MicroPython】官方的例程
- 可能一些网友还不知道怎样学习MicroPython,不知道哪里可以找到入门的例程。其实在MicroPython的源码中,已经提供了几百个各种各样的测试例程,包括了pyb、io、文件读写、unicode、硬件驱动、嵌入汇编等,各种需要的例程都有。这些测试例程在源码的tests目录下,里面还有很多子目录,每个子目录中又有很多测量程序。..basicstests/struct1:Addtestcaseforanunknowntypechar.
- dcexpert MicroPython开源版块
- 华为培训资料大搜集
- 集了部分华为的培训资料,感觉很不错,所以发出来供大家下载。华为资料有很多,希望大家把自己手里的资料加入进来,做成一个“华为资料大全”的帖子。回帖增加资料的请注明资料的名称,方便大家选择下载,谢谢!华为硬件工程师手册_全华为PCB设计规范华为《无线传播理论》教材华为培训资料大搜集华为模拟电路讲义(上、下册)欢迎增加新资料华为培训资料大搜集非常感谢!!实在是感谢.啊,好东西!谢谢!!!!!!!!好东西!谢谢!!!好东西!谢谢!!!
- songbo 模拟电子
- AD的仿真视频
- AD的仿真视频好动西,我手下,代表坛友向你道谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!解壓正常,謝謝·解压不起,怎么回事呢,它说文件损坏了好东东,学习中,谢谢了!必须顶!~好东东,谢谢了!:P:P为啥第二部分我下载不下来了?下载不下来这就解压不了了啊!谢谢你的分享....
- lilong8470 PCB设计
设计资源 培训 开发板 精华推荐
- LTC3562 演示板、I2C 四路同步降压型 DC/DC 稳压器
- MPC8349EMDS: MPC8349E模块化开发系统
- 5-32译码器
- 来自多个输入源的 LTC3622EDE-2 双路输出降压型稳压器的典型应用电路
- 用手机控制小夜灯
- 使用 Analog Devices 的 LTC1538-AUX 的参考设计
- ADP5304-EVALZ,评估 ADP5304 超低降压稳压器的评估板
- ADA4062-2BRZ-R7 高端信号调理运算放大器的典型应用电路
- AM2G-0515DZ ±15V 2 瓦 DC-DC 转换器的典型应用
- BD9060HFP-C 1Ch 降压开关稳压器输出纹波电压/开关频率应用电路