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

发布者:BlissfulCharm最新更新时间:2023-09-30 来源: elecfans关键字:内核移植  fl2440开发板 手机看文章 扫描二维码
随时随地手机看文章

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  --->       

                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 启动内核,因为我们的根文件系统还没加,所以在内核启动到挂载根文件系统时会卡住,那接下来的事就是根文件系统的制作了,但到了这步,我们的内核算是跑起来了。

[1] [2]
关键字:内核移植  fl2440开发板 引用地址:linux-3.0内核移植到fl2440开发板(以s3c2410为模板)

上一篇:linux-3.0移植到FL2440(只做基本的移植)
下一篇:LPC824-I2C接口(续二)

推荐阅读最新更新时间:2024-11-16 20:00

Linux-2.6.32.2内核在mini2440上的移植(二)---yaffs2文件系统移植
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 【1】嵌入式linux应用开发完全手册,韦东山,编著。 【2】 http://blogold.chinaunix.net/u3/101649/showart_2276906.html
[单片机]
Linux-2.6.32.2<font color='red'>内核</font>在mini2440上的<font color='red'>移植</font>(二)---yaffs2文件系统<font color='red'>移植</font>
#嵌入式Linux最小系统移植# mini2440内核4.0.8移植记录
/*移植内核Linux4.0.8*/ 1.机器码匹配(linux/arch/arm/tools/mach-types) # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number mini2440 MACH_MINI2440 MINI2440 1999 oluan2440 MACH_OLUAN2440 OLUAN2440 1999 MACH_TYPE_xxx 与MACHINE_START中匹配 CONFIG_xxxx 与linux/arch/arm/mach-s3c244
[单片机]
05-S3C2440学习之内核移植)linux3.4.2移植(2) yffs2文件系统移植+内核裁剪+内核制作补丁
一、移植YFFS2文件系统 yffs文件系统更加支持nand设备 上节移植了jffs2文件系统(点击查看)到移植的内核中,这节我们将yffs2文件系统移植到刚移植好的内核中。 (1)获取源码并解压 git clone git://www.aleph1.co.uk/yaffs2 tar xjf yaffs2.tar.bz2 (2)给内核打上yffs2补丁 ./patch-ker.sh c m /home/book/linux-3.4.2 (3) 配置内核支持YAFFS 1. ls fs/yaffs2 (4)编译、生成uImage 出错,制作yffs2 source工程. (
[单片机]
05-S3C2440学习之<font color='red'>内核</font>(<font color='red'>移植</font>)linux3.4.2<font color='red'>移植</font>(2) yffs2文件系统<font color='red'>移植</font>+<font color='red'>内核</font>裁剪+<font color='red'>内核</font>制作补丁

推荐帖子

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设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved