内核打补丁编译、创建内核工程(1)

1     内核打补丁

1.1  通过FTP将linux-2.6.22.6_jz2440.patch文件拷贝在system下

1.2  进入linux-2.6.22.6目录下,使用  patch -p1 <../linux-2.6.22.6_jz2440.patch  命令对linux-2.6.22.6文件进行打补丁。

1.3  补丁成功后,在linux-2.6.22.6目录下便会有一个config_ok文件。

1.4 使用  tar -cjf linux-2.6.22.6_jz2440.tar.bz2 linux-2.6.22.6    将以打好补丁的linux-2.6.22.6文件以其它名字创建压缩包,方便以后再次使用,并放在Windows上建立source sight工程,方便解析代码。

1.5  在linux-2.6.22.6目录下,使用cp config_ok  .config将config_ok复制覆盖新的.config隐藏文件,不同的config文件,menuconfig都不同

通过  ls -la 命令可以查看.config隐藏文件

1.6 在linux-2.6.22.6目录下,使用 make uImage 指令生成内核映像uImage文件。

注意:要想“ make uImage”成功,必须把编译 u-boot 时得到的 mkimage 工具复制到 /usr/bin 目录下去。 mkimage 工具在 u-boot 源码下 u-boot-1.1.6/tools  目录里,如下所示:

1.7 将编译出的uImage文件从linux中拷贝到Windows上进行烧写。

   uImage位置在work/system/linux-2.6.22.6/arch/arm/boot

2 创建内核source sight 工程

2.1 点击 “add all” 添加所有文件,后面再慢慢删去与2440芯片没用的文件。

2.2 点击Remove Tree 删除Arch文件夹,再添加与2440相关的硬件核心代码以及其它公用的代码

  Arch:包含了平台,处理器相关的代码,并包括boot文件夹。

      添加:

           linux-2.6.22.6/arch  /arm/boot                       (启动配置文件) 

           linux-2.6.22.6/arch/arm/common                 (公共文件)  

           linux-2.6.22.6/arch/arm/configs                   (配置文件)  

           linux-2.6.22.6/arch/arm/kernel                    (内核文件)         

           linux-2.6.22.6/arch/arm/lib                          (固件库)  

           linux-2.6.22.6/arch/arm/mach-s3c2440       (machine 设备,2440设备库)  

           linux-2.6.22.6/arch/arm/mach-s3c2410       (2440中部分调用了2410设备库)  

           linux-2.6.22.6/arch/arm/Mm                        (内存管理文件)  

           linux-2.6.22.6/arch/arm/nwfpe                          

         linux-2.6.22.6/arch/arm/oprofile                   (性能分析工具文件)                

        linux-2.6.22.6/arch/arm/plat-s3c24xx          (s3c24系列平台文件)      

      linux-2.6.22.6/arch/arm/tools                      (常用工具文件)                          

     linux-2.6.22.6/arch/arm/vfp                        (浮点运算文件)                              

2.3 点击Remove Tree 删除Include文件夹,再添加与2440相关的头文件

  Include: 包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。 

      添加:

           linux-2.6.22.6/include/acpi                            (高级配置与电源接口文件) 

           linux-2.6.22.6/include/asm-arm                    (只添加这个目录下的头文件)         

           linux-2.6.22.6/include/asm-arm/arch-s3c2410     (2410处理器架构)           

           linux-2.6.22.6/include/asm-arm/hardware    (硬件相关头文件)

           linux-2.6.22.6/include/asm-arm/mach             (具体的设备文件)

           linux-2.6.22.6/include/asm-arm/plat-s3c24xx   (s3c24系列平台头文件)      

     以及添加include目录下除了asm-xx外的其它通用文件                        

2.4 最后点击synchronize files    创建source insight工程

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux、Python学习

Linux基础教程之linux文件权限深度解读

基本命令—— 1.cut : cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr

120
来自专栏技术专栏

maven 学习笔记

1182
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Apache设置密码身份验证

在运行网站时,网站的某些部分通常会限制访问者。Web应用程序可以提供自己的身份验证和授权方法,但如果Web服务器不足或不可用,也可以使用Web服务器本身来限制访...

1065
来自专栏FreeBuf

基于Python的远程管理工具(RAT) – Stitch

Stitch是一款基于Python的跨平台远程管理工具。由于其跨平台性,Stitch允许用户针对Windows, Mac OSX 或 Linux分别定制不同的p...

2005
来自专栏iOS 开发杂谈

iOS之创建CocoaPods公有库教程

在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中。

751
来自专栏从流域到海域

Python pdb调试

Python提供了pdb命令来对代码进行调试,下面是pdb的使用方法。 #示例脚本: a = 1 b = 0 print(1/0) #命令行调试 C:\U...

19310
来自专栏linux运维学习

linux学习第三十九篇:Apache用户认证,域名跳转,Apache访问日志

Apache用户认证 虚拟主机的配置文件: vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf ...

18610
来自专栏云计算教程系列

如何使用Ubuntu 14.04上的Git Hooks将Hugo站点部署到生产环境

Hugo是一个静态站点生成器,允许您通过使用简单的标记语言轻松创建和发布Web内容。Hugo可以根据提供的要求解析您的内容并应用主题,以生成可以轻松托管在任何W...

882
来自专栏L宝宝聊IT

Linux系统安全及应用

1425
来自专栏编程

Spark之搜狗日志查询实战

1、下载搜狗日志文件: 地址:http://www.sogou.com/labs/resource/chkreg.php 2、利用WinSCP等工具将文件上传至...

22810

扫码关注云+社区