SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
7.3.1 配置和编译 U-Boot

   注意:要编译 U-Boot 请使用光盘带的 arm-linux-gcc-3.4.1 编译器,这是带有浮点处理
功能的编译器。U-Boot 源代码包位于光盘的/OpenSourceBootloader 目录中
   首先解压源代码包到工作目录:
   #tar xvzf u-boot-1.1.6-FA24x0.tar.gz –C /opt/FriendlyARM/mini2440
   执行该命令将把 U-Boot 源代码解压到/opt/FriendlyARM/mini2440 目录。
   再检查一下当前编译器版本,执行:
   #arm-linux-gcc -v
   如图,注意是带软浮点运算功能的编译器:




    配置 U-Boot 十分简单,进入 U-Boot 目录,执行:
    #make open24x0_config
    #make
    就可以开始编译了,编译完毕,如图所示生成 u-boot.bin




                                                          第 - 271 - 页
7.3.2 把 U-Boot 烧写到开发板

   要烧写 U-Boot,需要把开发板拨动开关 S2 设置为 Nor Flash 启动,连接好串口和 USB
线,打开超级终端,打开电源,串口显示如图:




                                               第 - 272 - 页
选择功能号    “a” 打开 DNW,
                ,       确认 USB 连接正常 OK, UsbPort Transmit/Restore,
                                        点
选择刚才所编译的 u-boot.bin,下载和烧写很快就会结束。
    把 mini2440 启动模式改为 Nand Flash 启动,重新复位或者重启开机电源开关,在串
口终端可以看到如图信息,如果开发板中已经安装了 linux 系统,U-Boot 将会自动启动它,
否则会进入 U-Boot 的功能菜单(也可以根据提示,在开机后 3 秒中内按任意键进入):




                                                       第 - 273 - 页
U-Boot 的功能菜单如图,您可以按照功能选项进行测试,它和 supervivi 基本是类似的:




    注意:若使用 U-Boot,这时你需要完全抛弃 Nor Flash 中 supervivi 的那些功能命令,
使用 U-Boot 本身的功能来下载和烧写内核,以及文件系统。关于 U-Boot 的使用方法用户可
以参考网上的资料,我们将在以后的文档更新中添加。




                                                  第 - 274 - 页
第 - 275 - 页
第八章 配置和编译 linux 内核
   注意:编译内核需要设置交叉编译环境为 3.4.1 版本的编译器,请参考“建立 linux 开
发环境”一节。


8.1 使用缺省配置文件编译内核

8.1.1 解压内核源代码

       Linux 内 核 的 源 代 码 包 位 于 光 盘 的 linux 目 录 , 您 在 该 目 录 下 还 会 看 到 类 似
linux-2.6.13-mini2440_20080910.tgz 的文件。
       把内核源代码包复制到某一个目录,进入该目录,运行以下命令:
       #tar xvzf linux-2.6.13-mini2440_20080910.tgz –C /opt/FriendlyARM/mini2440




                                                                     第 - 276 - 页
这样将把内核源代码解压到/opt/FriendlyARM/mini2440/kernel-2.6.13 目录


8.1.2 装载缺省配置文件

     进入内核源代码目录,然后执行“make menuconfig”       ,出现配置内核界面,选择进入
“Load an Alternate Configuration File”配置栏:




    输入配置文件名如 config_n35 并回车,在主菜单里选择<Exit>退出并保存设置。




                                                         第 - 277 - 页
8.1.3 编译内核

   再次提示:编译内核需要 arm-linux-gcc-3.4.1 版本的编译器,请务必检查安装好。
   输入以下命令,开始编译内核:
   #make zImage




                                             第 - 278 - 页
编译结束后,会在 arch/arm/boot 目录下生成 linux 内核映象文件:zImage




                                                   第 - 279 - 页
您可以使用以上章节介绍的方法把 zImage 下载到开发板测试。


8.1.4 各个 Linux 驱动程序源代码位置

      说明:    解压内核源代码(linux-2.6.13 开头的 tgz 压缩文件)可以找到如下驱动,   mini2440
提供 linux-2.6.13 内核 100%完全可以使用的驱动源代码,绝无库文件,敬请放心使用。
      (1)DM9000 网卡驱动
      kernel-2.6.13/drivers/net/dm9000x.c
      (2)串口(包括三个串口驱动 0,1,2,对应设备名/dev/tts/0,1,2)
      kernel-2.6.13/drivers/serial/s3c2410.c
      (3)实时时钟 RTC 驱动
      kernel-2.6.13/drivers/char/s3c2410-rtc.c
      (4)LED 驱动
      kernel-2.6.13/drivers/char/qq2440_leds.c
      (5)按键驱动
      kernel-2.6.13/drivers/char/qq2440_buttons.c
      (6)触摸屏驱动
      kernel-2.6.13/drivers/input/touchscreen/s3c2410_ts.c



                                                         第 - 280 - 页
(7)yaffs 文件系统源代码目录
    kernel-2.6.13/fs/yaffs2
    (8)USB 鼠标、键盘源代码
    kernel-2.6.13/drivers/ usb/input/hid-input.c
    (9)SD/MMC 卡驱动源代码目录(在 2.6.13 内核中仅支持 2G 容量以内的 SD 卡)
    kernel-2.6.13/drivers/mmc
    (10)Nand Flash 驱动
    kernel-2.6.13/drivers/mtd/nand
    (11)UDA1341 音频驱动目录
    kernel-2.6.13/ sound/oss/uda1341.c
    kernel-2.6.13/ drivers/l3
    (12)LCD 驱动(包含 3.5quot;, 7quot;, 8.4quot;, 10.4quot;, 12.4quot;, 15quot;等大小的驱动)
    kernel-2.6.13/drivers/video/s3c2410fb.c
    (13)优盘支持驱动
    kernel-2.6.13/drivers/usb/storage
    (14)中星微 USB 摄像头驱动
    kernel-2.6.13/drivers/usb/media/gspca


8.2 定制 linux 内核

   上面我们使用缺省文件配置和编译了内核,其实 linux 内核的配置选项有很多,下面我
们就常见的一些选项分别予以图解,帮助你尽快熟悉内核配置,以便定制自己需要的内核。

   运行 make menuconfig 后,进入内核配置主菜单




                                                     第 - 281 - 页
8.2.1 如何配置 CPU 选项

   在主菜单里面,选择 System Type,按回车进入




                                 第 - 282 - 页
可以看到,系统大部分使用了标注了 S3C2410 的选项,这是因为 S3C2410 和 S3C2440
的很多寄存器地址等地址和设置是完全相同的,         该版本的 linux-2.6 内核不再对这两种 CPU 分
别设置。
   如果您要选择板级选项,可以进入 S3C24XX Implementations 子菜单,里面有很多常
见的使用基于 S3C2410 和 S3C2440 的目标板平台选项




                                                   第 - 283 - 页
它们分别对应于 arch/arm/mach-s3c2410/mach-* 开头的文件, IPAQ H1940 对应于
                                                    如
mach-h1940.c,我们的开发板平台为 mini2440,它和 QQ2440 使用基本相同的配置,因此它
对应于 mach-qq2440.c。另外,在这个文件中,还会用到一个机器码 MACH_TYPE,该机器
码的定义文件为 arch/arm/tools/mach-types,其中,我们开发板的机器码为 782,它还对应于
vivi 源代码中 include/platform/smdk2440.h 文件的 MACH_TYPE


8.2.2 如何配置各个尺寸的 LCD 驱动支持

    在主菜单里面,选择 Device Drivers,按回车进入




                                                       第 - 284 - 页
选择 Graphics support,按回车进入,选中:
<*> Support for frame buffer devices
<*> S3C2410 LCD framebuffer support
选中 LCD select,按回车进入,如图




                                       第 - 285 - 页

Más contenido relacionado

La actualidad más candente

Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)webbssolutionsasia
 
入門啟示錄Ch02簡報
入門啟示錄Ch02簡報入門啟示錄Ch02簡報
入門啟示錄Ch02簡報Chiou WeiHao
 
286 Ch
286 Ch286 Ch
286 Chanjaan
 
331 Ch
331 Ch331 Ch
331 Chanjaan
 
Inside the Erlang Vm
Inside the Erlang VmInside the Erlang Vm
Inside the Erlang VmFeng Yu
 
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おうdevsumi2009
 
301 Ch
301 Ch301 Ch
301 Chanjaan
 
376 Ch
376 Ch376 Ch
376 Chanjaan
 
தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]
தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]
தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]priyababu11
 
2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享
2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享
2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享Justin Lee
 
Open Shift 勉強会 20210108
Open Shift 勉強会 20210108Open Shift 勉強会 20210108
Open Shift 勉強会 20210108Satoru Yoshida
 
361 Ch
361 Ch361 Ch
361 Chanjaan
 
複製 嘉智教學卓越獎簡報 2007版 20090529 F
複製  嘉智教學卓越獎簡報 2007版 20090529 F複製  嘉智教學卓越獎簡報 2007版 20090529 F
複製 嘉智教學卓越獎簡報 2007版 20090529 Fq0922009101
 
OSC2009KYOTO Asterisk User\'s Group Japan
OSC2009KYOTO Asterisk User\'s Group JapanOSC2009KYOTO Asterisk User\'s Group Japan
OSC2009KYOTO Asterisk User\'s Group JapanKenichi 深海
 
97 08 19 46
97 08 19 4697 08 19 46
97 08 19 465045033
 

La actualidad más candente (20)

Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)
 
入門啟示錄Ch02簡報
入門啟示錄Ch02簡報入門啟示錄Ch02簡報
入門啟示錄Ch02簡報
 
286 Ch
286 Ch286 Ch
286 Ch
 
331 Ch
331 Ch331 Ch
331 Ch
 
Inside the Erlang Vm
Inside the Erlang VmInside the Erlang Vm
Inside the Erlang Vm
 
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
【13-B-2】 パネルディスカッション:クラウド時代のプログラミングスタイルを語り合おう
 
301 Ch
301 Ch301 Ch
301 Ch
 
JavaScript再入門
JavaScript再入門JavaScript再入門
JavaScript再入門
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
376 Ch
376 Ch376 Ch
376 Ch
 
தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]
தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]
தமிழகத்தில் திருநங்கையர் சமூக வரலாறு [Transgender Tamil]
 
2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享
2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享
2009/04/19 UI Gathering專題演講-UI prototype實作經驗分享
 
Open Shift 勉強会 20210108
Open Shift 勉強会 20210108Open Shift 勉強会 20210108
Open Shift 勉強会 20210108
 
361 Ch
361 Ch361 Ch
361 Ch
 
Tấm nhựa trong A-PET Nan Ya
Tấm nhựa trong A-PET Nan YaTấm nhựa trong A-PET Nan Ya
Tấm nhựa trong A-PET Nan Ya
 
複製 嘉智教學卓越獎簡報 2007版 20090529 F
複製  嘉智教學卓越獎簡報 2007版 20090529 F複製  嘉智教學卓越獎簡報 2007版 20090529 F
複製 嘉智教學卓越獎簡報 2007版 20090529 F
 
OSC2009KYOTO Asterisk User\'s Group Japan
OSC2009KYOTO Asterisk User\'s Group JapanOSC2009KYOTO Asterisk User\'s Group Japan
OSC2009KYOTO Asterisk User\'s Group Japan
 
14.淺談Ddr2 Sdram
14.淺談Ddr2 Sdram14.淺談Ddr2 Sdram
14.淺談Ddr2 Sdram
 
97 08 19 46
97 08 19 4697 08 19 46
97 08 19 46
 
Android JNI
Android JNIAndroid JNI
Android JNI
 

Destacado

Destacado (6)

16 Ch
16 Ch16 Ch
16 Ch
 
406 Ch
406 Ch406 Ch
406 Ch
 
241 Ch
241 Ch241 Ch
241 Ch
 
421 Ch
421 Ch421 Ch
421 Ch
 
46 Ch
46 Ch46 Ch
46 Ch
 
256 Ch
256 Ch256 Ch
256 Ch
 

Más de anjaan

Más de anjaan (13)

316 Ch
316 Ch316 Ch
316 Ch
 
91 Ch
91 Ch91 Ch
91 Ch
 
451 Ch
451 Ch451 Ch
451 Ch
 
61 Ch
61 Ch61 Ch
61 Ch
 
76 Ch
76 Ch76 Ch
76 Ch
 
346 Ch
346 Ch346 Ch
346 Ch
 
31 Ch
31 Ch31 Ch
31 Ch
 
151 Ch
151 Ch151 Ch
151 Ch
 
226 Ch
226 Ch226 Ch
226 Ch
 
211 Ch
211 Ch211 Ch
211 Ch
 
196 Ch
196 Ch196 Ch
196 Ch
 
166 Ch
166 Ch166 Ch
166 Ch
 
1 Ch
1 Ch1 Ch
1 Ch
 

271 Ch

  • 1. 7.3.1 配置和编译 U-Boot 注意:要编译 U-Boot 请使用光盘带的 arm-linux-gcc-3.4.1 编译器,这是带有浮点处理 功能的编译器。U-Boot 源代码包位于光盘的/OpenSourceBootloader 目录中 首先解压源代码包到工作目录: #tar xvzf u-boot-1.1.6-FA24x0.tar.gz –C /opt/FriendlyARM/mini2440 执行该命令将把 U-Boot 源代码解压到/opt/FriendlyARM/mini2440 目录。 再检查一下当前编译器版本,执行: #arm-linux-gcc -v 如图,注意是带软浮点运算功能的编译器: 配置 U-Boot 十分简单,进入 U-Boot 目录,执行: #make open24x0_config #make 就可以开始编译了,编译完毕,如图所示生成 u-boot.bin 第 - 271 - 页
  • 2. 7.3.2 把 U-Boot 烧写到开发板 要烧写 U-Boot,需要把开发板拨动开关 S2 设置为 Nor Flash 启动,连接好串口和 USB 线,打开超级终端,打开电源,串口显示如图: 第 - 272 - 页
  • 3. 选择功能号 “a” 打开 DNW, , 确认 USB 连接正常 OK, UsbPort Transmit/Restore, 点 选择刚才所编译的 u-boot.bin,下载和烧写很快就会结束。 把 mini2440 启动模式改为 Nand Flash 启动,重新复位或者重启开机电源开关,在串 口终端可以看到如图信息,如果开发板中已经安装了 linux 系统,U-Boot 将会自动启动它, 否则会进入 U-Boot 的功能菜单(也可以根据提示,在开机后 3 秒中内按任意键进入): 第 - 273 - 页
  • 4. U-Boot 的功能菜单如图,您可以按照功能选项进行测试,它和 supervivi 基本是类似的: 注意:若使用 U-Boot,这时你需要完全抛弃 Nor Flash 中 supervivi 的那些功能命令, 使用 U-Boot 本身的功能来下载和烧写内核,以及文件系统。关于 U-Boot 的使用方法用户可 以参考网上的资料,我们将在以后的文档更新中添加。 第 - 274 - 页
  • 5. 第 - 275 - 页
  • 6. 第八章 配置和编译 linux 内核 注意:编译内核需要设置交叉编译环境为 3.4.1 版本的编译器,请参考“建立 linux 开 发环境”一节。 8.1 使用缺省配置文件编译内核 8.1.1 解压内核源代码 Linux 内 核 的 源 代 码 包 位 于 光 盘 的 linux 目 录 , 您 在 该 目 录 下 还 会 看 到 类 似 linux-2.6.13-mini2440_20080910.tgz 的文件。 把内核源代码包复制到某一个目录,进入该目录,运行以下命令: #tar xvzf linux-2.6.13-mini2440_20080910.tgz –C /opt/FriendlyARM/mini2440 第 - 276 - 页
  • 7. 这样将把内核源代码解压到/opt/FriendlyARM/mini2440/kernel-2.6.13 目录 8.1.2 装载缺省配置文件 进入内核源代码目录,然后执行“make menuconfig” ,出现配置内核界面,选择进入 “Load an Alternate Configuration File”配置栏: 输入配置文件名如 config_n35 并回车,在主菜单里选择<Exit>退出并保存设置。 第 - 277 - 页
  • 8. 8.1.3 编译内核 再次提示:编译内核需要 arm-linux-gcc-3.4.1 版本的编译器,请务必检查安装好。 输入以下命令,开始编译内核: #make zImage 第 - 278 - 页
  • 9. 编译结束后,会在 arch/arm/boot 目录下生成 linux 内核映象文件:zImage 第 - 279 - 页
  • 10. 您可以使用以上章节介绍的方法把 zImage 下载到开发板测试。 8.1.4 各个 Linux 驱动程序源代码位置 说明: 解压内核源代码(linux-2.6.13 开头的 tgz 压缩文件)可以找到如下驱动, mini2440 提供 linux-2.6.13 内核 100%完全可以使用的驱动源代码,绝无库文件,敬请放心使用。 (1)DM9000 网卡驱动 kernel-2.6.13/drivers/net/dm9000x.c (2)串口(包括三个串口驱动 0,1,2,对应设备名/dev/tts/0,1,2) kernel-2.6.13/drivers/serial/s3c2410.c (3)实时时钟 RTC 驱动 kernel-2.6.13/drivers/char/s3c2410-rtc.c (4)LED 驱动 kernel-2.6.13/drivers/char/qq2440_leds.c (5)按键驱动 kernel-2.6.13/drivers/char/qq2440_buttons.c (6)触摸屏驱动 kernel-2.6.13/drivers/input/touchscreen/s3c2410_ts.c 第 - 280 - 页
  • 11. (7)yaffs 文件系统源代码目录 kernel-2.6.13/fs/yaffs2 (8)USB 鼠标、键盘源代码 kernel-2.6.13/drivers/ usb/input/hid-input.c (9)SD/MMC 卡驱动源代码目录(在 2.6.13 内核中仅支持 2G 容量以内的 SD 卡) kernel-2.6.13/drivers/mmc (10)Nand Flash 驱动 kernel-2.6.13/drivers/mtd/nand (11)UDA1341 音频驱动目录 kernel-2.6.13/ sound/oss/uda1341.c kernel-2.6.13/ drivers/l3 (12)LCD 驱动(包含 3.5quot;, 7quot;, 8.4quot;, 10.4quot;, 12.4quot;, 15quot;等大小的驱动) kernel-2.6.13/drivers/video/s3c2410fb.c (13)优盘支持驱动 kernel-2.6.13/drivers/usb/storage (14)中星微 USB 摄像头驱动 kernel-2.6.13/drivers/usb/media/gspca 8.2 定制 linux 内核 上面我们使用缺省文件配置和编译了内核,其实 linux 内核的配置选项有很多,下面我 们就常见的一些选项分别予以图解,帮助你尽快熟悉内核配置,以便定制自己需要的内核。 运行 make menuconfig 后,进入内核配置主菜单 第 - 281 - 页
  • 12. 8.2.1 如何配置 CPU 选项 在主菜单里面,选择 System Type,按回车进入 第 - 282 - 页
  • 13. 可以看到,系统大部分使用了标注了 S3C2410 的选项,这是因为 S3C2410 和 S3C2440 的很多寄存器地址等地址和设置是完全相同的, 该版本的 linux-2.6 内核不再对这两种 CPU 分 别设置。 如果您要选择板级选项,可以进入 S3C24XX Implementations 子菜单,里面有很多常 见的使用基于 S3C2410 和 S3C2440 的目标板平台选项 第 - 283 - 页
  • 14. 它们分别对应于 arch/arm/mach-s3c2410/mach-* 开头的文件, IPAQ H1940 对应于 如 mach-h1940.c,我们的开发板平台为 mini2440,它和 QQ2440 使用基本相同的配置,因此它 对应于 mach-qq2440.c。另外,在这个文件中,还会用到一个机器码 MACH_TYPE,该机器 码的定义文件为 arch/arm/tools/mach-types,其中,我们开发板的机器码为 782,它还对应于 vivi 源代码中 include/platform/smdk2440.h 文件的 MACH_TYPE 8.2.2 如何配置各个尺寸的 LCD 驱动支持 在主菜单里面,选择 Device Drivers,按回车进入 第 - 284 - 页
  • 15. 选择 Graphics support,按回车进入,选中: <*> Support for frame buffer devices <*> S3C2410 LCD framebuffer support 选中 LCD select,按回车进入,如图 第 - 285 - 页