linux-3.0内核移植到fl2440开发板(以s3c2410为模板)
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
[]wireless LAN无线网卡 先不选
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 --->
<M> MSDOS fs support
<*> 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
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 启动内核,因为我们的根文件系统还没加,所以在内核启动到挂载根文件系统时会卡住,那接下来的事就是根文件系统的制作了,但到了这步,我们的内核算是跑起来了。
在开发板启动u-boot后进入调试模式,输入以下命令
[ s3c2440@wss ]# set bkr 'tftp 30008000 linuxrom-s3c2440.bin;nand erase 100000 800000;nand write 30008000 100000 800000'
[ s3c2440@wss]# save
[ s3c2440@wss]# run bkr
linux-3.0内核移植到fl2440开发板(以s3c2410为模板)的更多相关文章
- linux-3.0内核移植到fl2440开发板(以MINI2440为模板)
我们的fl2440开发板使用的是s3c2440的芯片,与MINI2440十分相似,因此需要改动的地方不多,移植也比较容易. 1.[weishusheng@localhost kernel]$ sudo ...
- linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)
linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. ...
- qt-embedded-4.5.3移植到FL2440开发板
1. 2.configure配置 ./configure -opensource -confirm-license -release -shared -fast -no-qt3support -no- ...
- 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接
<Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...
- Centos LInux 7.0 内核3.1 升级简化流程
Centos LInux 7.0 内核3.1 升级建华流程 1)#导入ELRepo软件仓库的公共秘钥rpm --import https://www.elrepo.org/RPM-GPG-KEY-el ...
- 【原创】车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程
[原创]车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程 所用工具: windows电脑 Ubuntu12.04 Smart210开发板 4g以上SD卡 U盘 步骤: 1. ...
- Opencv2.2 移植到am335x-y开发板
1.虚拟机上运行cmake-gui,报找不到文件,指示安装. 2.下载opencv2.2.0 http://opencv.org/downloads.html 3.cmake-gui,配置参考< ...
- linux内核(二)内核移植(DM365-DM368开发攻略——linux-2.6.32的移植)
一.介绍linux-2.6.32: Linux-2.6.32的网上介绍:增添了虚拟化内存 de-duplicacion.重写了 writeback 代码.改进了 Btrfs 文件系统.添加了 ATI ...
- 【linux】内核+文件系统下载到开发板
K开发 欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...
随机推荐
- Maven项目配置外部依赖(本地依赖)
加入有一些公共jar包只限于公司内部使用,不能暴露在外部时,有如下的方案: 1.搭建私有远程仓库(nexus) 2.使用http.ftp.共享地址,github地址等(主要是通过maven-deplo ...
- spring security原理图及其解释
用户发出订单修改页面的请求,Access Decision Manager进行拦截,然后对比用户的授权和次页面需要的授权是不是有重合的部分,如果有重合的部分,那面页面就授权成功,如果失败就通知用户. ...
- android项目大全,总有你所需的
注:打开请贴网址.有些直接通过链接打开的不对. 1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 2.Log图文具体解释(Log.v,Log.d,Log. ...
- 玩转Bash脚本:循环结构之while循环(转)
转自:http://blog.csdn.net/guodongxiaren/article/details/43341769 总第8篇 本系列(玩转Bash脚本)更多文章,请访问:http://b ...
- MySQL之常见问题总结
MySQL总是崩溃 首先你应该试着找出问题MySQLd守护进程是否死掉或你的问题是否与你的客户有关.你能够用MySQLadmin version检查你的MySQLdserver正常运行了多长时间.假设 ...
- 性能測试JMeter趟的坑之JMeter的bug:TPS周期性波动问题
先说下问题: 我在做性能測试时,使用JMeter搞了100个并发,以100TPS的压力压測十分钟,但压力一直出现波动.并且出现波动时JMeter十分卡,例如以下图: 周期性TPS波动 各种猜測: 所以 ...
- ADO.NET EF 4.2 中的查询缓存(避免查询缓存)
在WinForm系统中遇到了个问题,Form1是查询窗口,根据条件查询出所有数据,双击列表后创建弹出Form2窗口编辑单个记录,但编辑后保存后,在Form2中查询到的还是旧的数据,实际数据库中已经更新 ...
- AIX下RAC搭建 Oracle10G(二)主机配置
AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(二)主机配置 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX2 ...
- [LeetCode] 038. Count and Say (Easy) (C++/Python)
索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 038. Cou ...
- Array types are now written with the brackets around the element type问题的解决方法
在xcode6.1中来编写swift空数组时.出现的的这个问题,依照官方 Swift 教程<The Swift Programming Language>来写 let emptyArray ...