Linux patch的用法
Linux patch的用法
http://hi.baidu.com/issaria/blog/item/b04527ec816967d72f2e2184.html
2008-08-14 14:50
也许只是我一个人比较笨,每次碰到bug,虽然有人给出补丁(patch),但是却不知道怎么使用。Manual Page ( man patch )也只给出 patch -p(num) <patchfile这样的用法,具体也不知道怎样确定num,如果你也有这样的疑惑,请继续阅读,下面的内容来自这里
建立patch文件:
diff -Naur olddir newdir > new-patch
- or -
diff -Naur oldfile newfile >new-patch
-p0 还是-p1? patch 命令的目录层次:
-p选项可以选择性地截断patchfile的目录层次。例:如果你的patchfile的头象下面这样:
--- old/modules/pcitable Mon Sep 27 11:03:56 1999
+++ new/modules/pcitable Tue Dec 19 20:05:41 2000
使用 -p0 将从你的当前路径下寻找一个“new"的子文件夹,然后在"new"下面寻找“modules”,然后在其下面寻找"pcitable"。
使用 -p1 将截断第一层目录,也就是说patch将直接在当前路径下寻找"modules",然后是"pcitable"
依次类推。
实际上的确很简单。
patch -p1 < [patchfile]
patch -R < [patchfile] (used to undo a patch)
相关文档:
当上层准备好一个包之后,交给下面这个函数处理
int dev_queue_xmit(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
struct netdev_queue *txq;
struct Qdisc *q;
int rc = -ENOMEM;
/* GSO will handle the following emulations directly. */
if (netif_needs_gso(dev, skb))
goto gso; ......
第一次在Linux下编程。呵呵
在网上搜索了一下怎么样在Linux下编程。说是用Gedit写好代码,然后保存.c格式文件。然后到终端编译。
打开Gedit.老规矩,先来个Hello.c
#include <stdio.h>
main()
{
printf("Hello~!Vimo~~\n\n");
}
保存。然后打开终端。
编译是什么命令?没办法,问下同学。阿灵告诉我: ......
基本概念
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。
例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。
ln -s ......
初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。
&n ......