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为模板)的更多相关文章

  1. linux-3.0内核移植到fl2440开发板(以MINI2440为模板)

    我们的fl2440开发板使用的是s3c2440的芯片,与MINI2440十分相似,因此需要改动的地方不多,移植也比较容易. 1.[weishusheng@localhost kernel]$ sudo ...

  2. linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)

    linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. ...

  3. qt-embedded-4.5.3移植到FL2440开发板

    1. 2.configure配置 ./configure -opensource -confirm-license -release -shared -fast -no-qt3support -no- ...

  4. 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接

    <Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub   spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...

  5. Centos LInux 7.0 内核3.1 升级简化流程

    Centos LInux 7.0 内核3.1 升级建华流程 1)#导入ELRepo软件仓库的公共秘钥rpm --import https://www.elrepo.org/RPM-GPG-KEY-el ...

  6. 【原创】车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程

    [原创]车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程 所用工具: windows电脑 Ubuntu12.04 Smart210开发板 4g以上SD卡 U盘 步骤: 1.    ...

  7. Opencv2.2 移植到am335x-y开发板

    1.虚拟机上运行cmake-gui,报找不到文件,指示安装. 2.下载opencv2.2.0 http://opencv.org/downloads.html 3.cmake-gui,配置参考< ...

  8. linux内核(二)内核移植(DM365-DM368开发攻略——linux-2.6.32的移植)

    一.介绍linux-2.6.32: Linux-2.6.32的网上介绍:增添了虚拟化内存 de-duplicacion.重写了 writeback 代码.改进了 Btrfs 文件系统.添加了 ATI ...

  9. 【linux】内核+文件系统下载到开发板

    K开发 欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...

随机推荐

  1. Spark学习(四)Spark2.3 HA集群的分布式安装

    一.下载Spark安装包 1.从官网下载 http://spark.apache.org/downloads.html 2.从微软的镜像站下载 http://mirrors.hust.edu.cn/a ...

  2. linux 文件属性、权限、所有人、所属组

    Linux命令行模式下,文件还是需要通过ls -l来查看 可以通过ll查看长文件,会有如下类型显示drwxr-xr-x  2 root root 4096 Nov 10  2010 conf 总共有7 ...

  3. 数据库系统学习(六)-SQL语言基本操作

    第六讲 SQL语言概述 基本命名操作 关系代数是集合的思想 关系演算是逻辑的思想(数学公式) SQL-86,SQL-89,SQL-92,SQL-99,SQL-2003,2008...发展过程标准 SQ ...

  4. DOS环境进入及基本命令

    DOS:磁盘操作系统(Disk Operating System) Window环境下如何进入DOS: 1. 以win10为例,按ctrl+R打开运行窗口,在输入框输入"CMD"并 ...

  5. chrome插件网站

    chrome插件网站 http://chromecj.com/

  6. [Testing] Config jest to test Javascript Application -- Part 3

    Run Jest Watch Mode by default locally with is-ci-cli In CI, we don’t want to start the tests in wat ...

  7. 【LeetCode-面试算法经典-Java实现】【079-Word Search(单词搜索)】

    [079-Word Search(单词搜索)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a 2D board and a word, find if ...

  8. 为Joomla 2.5的连续插入多幅图像添加便捷方式

    用过Joomla 2.5的朋友应该都知道插入很多图像时是比較麻烦的.点了文章以下的图片button,它会弹出个div,让你选择图片,每选一张.div就关闭. 再选第二张的时候,它又要你又一次选择文件夹 ...

  9. 对JS闭包的理解

    闭包,是JS里很重要的一个概念,也是相对来讲不太容易理解的一个东西,不过即使难理解,我们也要迎难而上啊,嘿嘿,网上有很多文章都在讲闭包,我在看JS设计模式的时候,书里也着重讲了闭包,但是书里官方的的确 ...

  10. 《ASP.NET》数据绑定—DataList

    DataList控件是.NET中的一个控件.DataList控件以表的形式呈现数据(在属性生成器中能够编辑),通过该控件,您能够使用不同的布局来显示数据记录(使用模板编辑).比如,将数据记录排成列或行 ...