内核打补丁编译、创建内核工程(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 条评论
登录 后参与评论

相关文章

来自专栏Youngxj

sitemap插件(自适应站点优化)

992
来自专栏企鹅号快讯

python入门——解释器、编辑器、包的安装

解释器 python并不需要先编译再执行,而是直接由解释器解释执行。python解释器的版本目前主要以python2.7和python3.6(或python3....

1915
来自专栏听雨堂

MySql.Data.dll的版本

在.Net下访问Mysql,先是用6.4.4,老有问题,也不知道哪个版本可以用,查询官网 https://dev.mysql.com/doc/connector...

33111
来自专栏DeveWork

通过 wp-config.php 禁止安装、升级或编辑WordPress 主题与插件

之前分享了一片文章《移除 WordPress 后台插件管理的“编辑”与“停用”功能》,该方法是通过自定义函数来实现的。对于WordPress 来说,其实有一个更...

2686
来自专栏FreeBuf

如何使用Windows卷影拷贝服务恢复文件和文件夹

什么是卷影拷贝? 从Windows XP SP2和Windows Server 2013开始,微软就向Windows操作系统中引入了一项名叫卷影拷贝的服务(Vo...

2406
来自专栏吴小龙同學

Android build.gradle文件

app/build.gradle Android Studio使用Gradle 编译运行Android工程,工程的每个模块以及整个工程都有一个build.gra...

3258
来自专栏FreeBuf

警惕出现下一个“WannaCry”,安天发布CVE-2017-11780漏洞免疫工具

近日,国家信息安全漏洞共享平台(CNVD)收录了Microsoft WindowsSMB Server远程代码执行漏洞(CNVD-2017-29681,对应CV...

2168
来自专栏依乐祝

asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程

最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下...

281

在Debian和Ubuntu上使用SFTP Jails限制访问

作为您的Linode的系统管理员,您可能希望让您的用户能够安全地将文件上传到您的服务器。最常见的方法是允许通过使用SSH提供加密的安全文件传输协议(SFTP)进...

822
来自专栏Pythonista

golang下载安装

官方二进制发行版 支持 FreeBSD(8-STABLE 发行版及以上)、Linux、Mac OS X(Snow Leopard 及以上)和 Windows 操...

1192

扫码关注云+社区