zedboard linux内核下载,zedboard学习-为Linux内核打补丁

编译Linux内核源代码时碰到的一个问题

问题:补丁0001-Xilinx-ARM-Kernel-32MB-RAM-disk-on-ZedBoard.patch打不上

首先说明一下为什么要打这个补丁,即这个补丁的作用:修改内核针对Zynq目标器件默认的编译配置,使得32MB RAM disks能够被支持。

按照官方给的方法输入以下命令:

[wicoboy@localhost linux-xlnx]$git apply0001-Xilinx-ARM-Kernel-32MB-RAM-disk-o

n-ZedBoard.patch

然后出现会错误提示补丁没被打上:

error: patch failed: arch/arm/configs/xilinx_zynq_defconfig:723

error: arch/arm/configs/xilinx_zynq_defconfig: patch does not apply

错误原因分析:

据本人推测是补丁和源码二者的版本不太和谐,可能就是源码又被修改过而对应的补丁未相应更新(当然也可能是其它原因)。linux下出现问题首先我们就要考虑一下版本的问题,编译交叉工具链时可是深刻体会了一下。

解决思路分析:

我们最终的目的是让编译出来的内核支持32MB RAM disk.就有两个思路:补丁和配置文件。补丁归根揭底也是来修改配置文件,既然补丁打不上那我们就直接修改配置文件。

但是如何修改呢?研究配置文件与补丁。研究配置文件知道它都做了哪些的配置、哪些是和ramdisk相关的、以及是怎么配置的;参考补丁内容,研究它是怎么实现让内核支持32MB RAMdisk的。下面摘录了补丁文件中一些有价值的信息:

This patch allows the kernel to use a 32MB RAM disk as the root file system on ZedBoard.

(说明了其作用)

arch/arm/configs/xilinx_zynq_defconfig |4 ++--

1 files changed, 2 insertions(+), 2 deletions(-)

(所修改的文件,即其修改的整体情况描述)

-CONFIG_BLK_DEV_RAM_COUNT=16

-CONFIG_BLK_DEV_RAM_SIZE=16384

+CONFIG_BLK_DEV_RAM_COUNT=8

+CONFIG_BLK_DEV_RAM_SIZE=32768

(具体做的修改)

解决方案:1、打开xilinx_zynq_defconfig

[wicoboy@localhost linux-xlnx]$ viarch/arm/configs/xilinx_zynq_defconfig

2、手动修改默认配置

找到如下两行内容:

CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_BLK_DEV_RAM_SIZE=16384

修改为:

CONFIG_BLK_DEV_RAM_COUNT=8

CONFIG_BLK_DEV_RAM_SIZE=32768

经验总结:

定位问题以知道是做什么的为基础;

解决问题以知道是怎么做的为基础。

具体来讲:要准确定位问题关键是对系统整体上、宏观上的一个把握,可以不清楚每个模块具体是怎么实现的,但一定要明白每个模块的作用是什么。但是要最终解决问题就需要我们知道它具体是怎么实现这个作用的。比如我们这个错误,只有知道了这个补丁的作用才能定位到问题是怎么让内核支持32MB RAM disk,而又只有知道了配置文件是怎么实现对目标平台的配置,补丁又是做了工作以使其支持这项特性,这样才能让我们最终解决问题。

这就给了我们解决问题的思路:遇到问题时首先整体把握以定位问题,然后深入细节以解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值