常用的tar和rpm命令参数列表
常用的tar和rpm命令参数列表
uClinuxer 于 2005年 01月12日 发表
一. tar
1.压缩一组文件为tar.gz后缀。
# tar cvf backup.tar /etc
#gzip -q backup.tar
或
# tar cvfz backup.tar.gz /etc/
2.释放一个后缀为tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar
或
# tar xvfz backup.tar.gz
3.用一个命令完成压缩
#tar cvf - /etc/ | gzip -qc > backup.tar.gz
4.用一个命令完成释放
# gunzip -c backup.tar.gz | tar xvf -
5.如何解开tar.Z的文件?
# tar xvfz backup.tar.Z
或
# uncompress backup.tar.Z
#tar xvf backup.tar
6.如何解开.tgz文件?
#gunzip backup.tgz
7.如何压缩和解压缩.bz2的包?
#bzip2 /etc/smb.conf
这将压缩文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
这将在当前目录下还原smb.conf.bz2为smb.conf
注: .bz2压缩格式不是很常用,你可以man bzip2
二. rpm
1.安装一个包
# rpm -ivh
2.升级一个包
# rpm -Uvh
3.移走一个包
# rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫
安装。
5.查询一个包是否被安装
# rpm -q < rpm package name>
6.得到被安装的包的信息
# rpm -qi < rpm package name>
7.列出该包中有哪些文件
# rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
#rpm -qf
9.可综合好几个参数一起用
# rpm -qil < rpm package name>
10.列出所有被安装的rpm package
# rpm -qa
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
# rpm -qilp < rpm package name>
Kelvin Chu 2004年12月20日 周三
Kelvin Chu 2004年12月18日 周六
Kelvin Chu 2004年12月18日 周六
在实验室里机器上装了Redhat 9 ES, 并按照前两天摸索在Linux上编译的步骤,成功编译出可以正常运行的纯镜像686K+426.4K!
两天没睡了,发贴纪念!
紧接着做hello.c和example.c(fork)的实现:
两个都运行成功,但是hello.c有点小问题:
运行结果:
/bin> hello
Hello world!
pid 19: failed 256
/bin> example
in child
child pid = 21
child ppid = 20
in parent
parent pid = 20
parent ppid = 18
附:八、 uClinux应用程序开发
8.1 应用程序编写
8.1.1编写应用程序
基于uClinux系统的应用程序的开发通常是在标准Linux平台上或者使用Cygwin的Windows平台用交叉编译工具来完成。
本章主要介绍如何编写、移植、编译应用程序并将应用程序添加到文件系统的过程。
uClinux针对没有内存管理单元(MMU)的处理器和控制器而设计的,部分标准C函数在标准Linux下可以使用而在uClinux下不能使用,需要用户编写相应的库函数,但是绝大多数的函数还是通用的。因此在x86版本的gcc编译器下编译通过的软件,通常不需要做太大的改动就可以编译成可以在uClinux上运行的文件格式。
开发在uClinux 下运行的程序,基本上和开发在Linux下运行的程序是一样的,使用文本编辑器编写一个最简单的hello程序,代码如下:
#include
int main(void)
{ printf("Hello world!\n"); return 1; }
将其保存为hello.c文件,同时在/usr目录下面新建app目录作为应用程序的存放位置:
$:mkdir -p /usr/local/src/uclinux-dist/user/app 将hello.c拷贝到该目录下。
移植步骤
假定需移植Linux下源程序如example.c,确认编译生成的程序example能在Linux下正确执行。
$gcc -o example example.c $./example
按照移植注意事项改写源代码example.c,改写以后的文件命名为example_uc.c。
使用交叉编译工具编译example_uc.c,生成example_uc执行文件,下载到目标板上运行(下载方法见第九章)
如果出错则返回第二步。
编译命令如下:
$arm-elf-gcc -o example_uc example_uc.c -elf2flt
8.2 添加应用程序到文件系统中
将编写好的应用程序添加到文件系统中需要进行以下三个方面的工作。
(1) 编写Makefile 编写此程序的工程管理文件Makefile,代码如下:
GNUEXEC = hello
OBJS = hello.o
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
romfs:
$(ROMFSINST) /bin/$(EXEC)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
(2) 修改配置相关文件
修改./config/config.in,在最后面增加菜单:
########################################################################
mainmenu_option next_comment
comment 'User Application'
bool 'Hello' CONFIG_USER_HELLO
comment "User Application"
endmenu
########################################################################
或者在合适的菜单块中增加一行:
bool 'Hello' CONFIG_USER_HELLO
修改 ./config/Configure.help,Configure.help包含配置时显示的描述文本,在文件中增加:
CONFIG_USER_HELLO This program print hello on screen.
注意描述文本必须缩进两空格,不能包括空行且必须少于70各字符
(3) 修改用户程序工程管理文件
在 ../user/Makefile 中,增加行 dir_$(CONFIG_USER_HELLO) += app
增加了用户工程目录到待编译工程目录列表,通常按照目录名称的字母顺序插入该行。
(4) 编译并执行
执行命令
make config
make dep
make lib_only
make user_only
make romfs
make image
make
其中在make config命令中必须选择 hello!
如果修改了应用程序重新编译,从make user_only开始执行命令即可。
用户在固化 uclinux 内核文件和romfs文件系统后,进入文件系统的bin目录执行hello应用程序。
8.3 快速添加应用程序
上节所述增加应用程序以及编译执行的过程比较正式,但也比较繁琐,在用户开发调试时并不方便,用户可以采用下述方法在开发调试过程中快速添加应用程序。
编译生成可执行文件 输入以下命令直接编译程序源代码文件,对于复杂一点的工程可以使用上节中的Makefile.
arm-elf-gcc -Wall -O2 -Wl,-elf2flt -o led led.c
生成的led是flat格式文件,可以在uClinux下直接运行。
复制可执行文件到文件系统 romfs目录是生成的文件系统目录,在执行make romfs命令时生成,如果已经执行过make romfs命令,用户可将生成的可执行文件led复制到romfs/bin目录,不必重复该命令。需要注意的是如果用户执行了make clean命令,romfs下的全部内容将被清除。 生成文件系统映像 直接执行下面的命令生成文件系统映像romfs.img:
genromfs -v -V "ROMdisk" -f romfs.img -d /usr/local/src/uclinux-s3cev40/romfs
这里的文件系统映像romfs.img包含了新增的应用程序led。
有用的地址(dd maple一齐来添加)
基于ARM-μCLinux嵌入式系统启动引导的实现
SkyEye 技术报告 Port uClinux on real hardware
构建ARM7-uClinux开发板
Kelvin Chu 2004年12月17日 周五
2004年12月17日 周五
今天为了试着搭建一个好一点的平台,重装了寝室的机器,现在的环境和dd maple的环境应该一样了,可是...
现在的环境是winxp sp1+Linux Redhat ES 9, 其中C盘系统盘是NTFS,我装cygwin的I盘也是NTFS.
安装Cygwin,编译链,解压源文件,make xconfig仍然是在保存退出的时候出错.若是直接make dep,结果还是生成一个大一点的镜像,和以前在实验室作的一样,估计不能使用.
于是,在Linux环境下编译:
make xconfig出现以下错误:
[root@Chufei uclinux-s3cev40]# make xconfig
config/mkconfig > config.in
make -C /usr/local/src/uclinux-s3cev40/config/scripts tkparse
make[1]: Entering directory `/usr/local/src/uclinux-s3cev40/config/scripts'
unset GCC_EXEC_PREFIX; cc -o tkparse tkparse.o tkcond.o tkgen.o
tkparse.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make[1]: *** [tkparse] Error 1
make[1]: Leaving directory `/usr/local/src/uclinux-s3cev40/config/scripts'
make: *** [config.tk] Error 2
(思考:可以用dd maple 12月14日的方法解决?但是我并没有遇到cpp0问题)
但是make menuconfig可以使用,并成功设置.
然后设置环境变量 PATH="/usr/local/armtools/bin:$PATH"
然后make dep,但是提示出错说arm-elf-gcc NOT FOUND,环境变量设置错误?
疑点:
1.arm-elf-compile.tar.gz文件解压的目录?
2.PATH中有重复的环境变量设置(多次执行PATH=命令)
从http://www.uclinux.org/pub/uClinux/arm-elf-tools/ 上下载ARM交叉编译器:arm-elf-tools-20030314.sh。得到这个文件以后,执行以下命令:sh arm-elf-tools-20030314.sh,这个命令会在开发主机上自动建立一个uClinux-ARM的交叉编译环境。键入arm-elf-gcc, 如果能看到下面的输出信息:
Reading specs from /usr/local/lib/gcc-lib/arm-elf/2.95.3/specsgcc version 2.95.3 20010315 (release)
(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches
from http://www.snapgear.com/)
表示uClinux-ARM的交叉编译环境已经建立起来了。
于是,归纳上面的错误,arm-elf-compile.tar.gz文件解压的目录是usr/local/armtools/bin,而实际用sh命令安装的编译链的目录是/usr/local !!! 而且,既然现在与系统关联的目录是/usr/local/, gcc文件放在/usr/local/bin中,这个目录因为是系统默认的环境变量之一,因此,不再需要设置环境变量??(加上/usr/local/arm-elf也无妨)
注意! 回想起以前,在cygwin中似乎编译链也被装在了usr/local/armtools/, 这可能是一个极为严重的错误????
于是继续作make dep和make clean ,make lib_only
另:
在翻资料时,发现Embest在帮助文件中的一句话,可以解决dd maple在12月15日遇到的问题:
"编译时在make user_only之前,一定要将/user/busybox下的config.h恢复,config.h.original是
其备份文件,可以在/user/busybox下执行cp config.h.original config.h命令。 "
而且,的确如dd maple所说的,需要将config.h文件名改为Config.h(大小写敏感)
之后作make romfs,竟然得到一个628.0k的文件系统??
之后make image,出错于:(svc4proc.c是/usr/local/src/uclinux-s3cev40/linux-2.4.x/fs/lockd/下一个文件)
arm-elf-gcc -D__KERNEL__ -I/usr/local/src/uclinux-s3cev40/linux-2.4.x/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -DNO_MM -mapcs-32 -mtune=arm7tdmi -mshort-load-by tes -msoft-float -c -o svc4proc.o svc4proc.c
svc4proc.c:538: `nlm4svc_decode_void' undeclared here (not in a function)
svc4proc.c:538: initializer element is not constant
svc4proc.c:538: (near initialization for `nlmsvc_procedures4[0].pc_decode')
svc4proc.c:538: `nlm4svc_encode_void' undeclared here (not in a function)
svc4proc.c:538: initializer element is not constant
svc4proc.c:538: (near initialization for `nlmsvc_procedures4[0].pc_encode')
svc4proc.c:539: `nlm4svc_decode_testargs' undeclared here (not in a function)
svc4proc.c:539: initializer element is not constant
svc4proc.c:539: (near initialization for `nlmsvc_procedures4[1].pc_decode')
svc4proc.c:539: `nlm4svc_encode_testres' undeclared here (not in a function)
svc4proc.c:539: initializer element is not constant
svc4proc.c:539: (near initialization for `nlmsvc_procedures4[1].pc_encode')
svc4proc.c:540: `nlm4svc_decode_lockargs' undeclared here (not in a function)
svc4proc.c:540: initializer element is not constant
svc4proc.c:540: (near initialization for `nlmsvc_procedures4[2].pc_decode')
svc4proc.c:540: `nlm4svc_encode_res' undeclared here (not in a function)
svc4proc.c:540: initializer element is not constant
附:
1.在Linux下环境变量的设置:
看一下PATH #echo $PATH
或者 # set (以上#是命令提示符)
root@linuxsir01 root]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
用下面的命令就能加入
#PATH="$PATH:您想要加入的路径
比如
#PATH="$PATH:/tmp"
这样应该能行。
然后看一下,是不是成功了
完整的过程就是这样的。。
[root@linuxsir01 root]# PATH="$PATH:/tmp"
[root@linuxsir01 root]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/tmp
[root@linuxsir01 root]#
2.在LINUX下建立arm-elf-gcc交叉编译环境
arm-elf-tools-200314.sh是一个自解压的脚本文件,在CDROM的根目录下。
用root用户登录,进入到arm-elf-tools-20030314.sh所在的目录,
安装:
# sh ./arm-elf-tools-20030314.sh
这个命令会在你的/usr/local/arm-elf目录下安装 gcc, g++, binutils, genromfs, flthdr and elf2flt等程序。
测试:
# arm-elf-gcc -v
3.编写uClinux下的应用程序
1)添加一个应用程序
uCLinux内核之外的所有程序都可以称为用户程序。应用程序都放在 CLinux-dailzh/user 目录下, 这些程序都是已经 移植到 uCLinux下的应用程序。如果用户想将自己编写的应用程序 添加 到 uCLinux下时,假设这个应用程序名称为hello,则需要增加和修改以下文件:
1、 在 uCLinux-dailzh/user/目录下增加一个hello目录,将应用程序源代码复制到这个目录下。参考user目录下其他应用程序的Makefile文件编写方式,为hello程序编写Makefile
2 、 修改 uCLinux-dailzh/venders/config.in 文件,在该文件合适的位置增加下面一句:
bool 'hello' CONFIG_USER_APP
这样,在 Make menuconfig时,uCLinux就会提示你是否需要编译这个hello应用程序。
3 、 修改 uCLinux-dailzh/users/Makefile 文件,在该文件合适的位置增加下面一句
DIRS$(CONFIG_USER_APP) += hello
4 、 修改 uCLinux-coldfire/romfs/romfs.mk 文件,在该文件合适的位置增加下面一句 . 这里假设新添加的应用程序的可执行文件名称为hello, 在user/hello目录下。最后编译成的可执行二进制影象中,root文件系统的/bin/目录下就会增加一个新的应用程序 hello.
BIN$(CONFIG_USER_ APP) += $(USER)/hello/hello
5、uClinux启动Shell后第一个运行的脚本文件。假如我们需要在操作系统运行起来后立刻运行/bin/app这个应用程序,只需要在文件 Clinux-dailzh/vendors/Samsung/4510/rc最后加一行:
/bin/hello
如果需要将该应用程序在后台运行,则增加这一行:
/bin/app &
(完)
Kelvin Chu 2004年12月16日 周四
今天把C盘文件格式转换成了NTFS,将cygwin删除(包括c:\winnt\system32中的cygwin1.dll)重新安装,但是编译出来的镜像仍然是693+427K,估计还是不可以使用。(以上没有make xconfig过程)
根据张丹枫的建议,尝试进行make xconfig,但是保存退出后得到以下提示后,无响应。config/mkconfig > config.in
config/mkconfig > config.inmake -C /usr/local/src/uclinux-s3cev40/config/scripts tkparse
make[1]: Entering directory `/usr/local/src/uclinux-s3cev40/config/scripts'
make[1]: `tkparse' is up to date.
make[1]: Leaving directory `/usr/local/src/uclinux-s3cev40/config/scripts'
ARCH=dummy /usr/local/src/uclinux-s3cev40/config/scripts/tkparse < config.in > config.tmp
cat /usr/local/src/uclinux-s3cev40/config/scripts/header.tk >> ./config.tk
cat config.tmp >> config.tk
rm -f config.tmp
echo "set defaults \"/dev/null\"" >> config.tk
echo "set help_file \"config/Configure.help\"" >> config.tk
cat /usr/local/src/uclinux-s3cev40/config/scripts/tail.tk >> config.tk
chmod 755 config.tk*** Cleaning tree for old settings ****
*** Cleaning tree for old settings ****rm -rf romfs; make clean > /dev/null 2>&1失败。。。(看来真的是有RPWT!)还是操作系统为win2000而不是winxp的问题?
今天两个不能用的img还放在h:\cygwin\usr\local\src\uclinux-s3cev40\image中
估计是操作系统为win2000的问题?今天两个不能用的img还放在h:\cygwin\usr\local\src\uclinux-s3cev40\image中另,To dandan maple: 麻烦把新编译的文件路径写一下,我找找看看。谢谢!:)
ddmaple 2004.12.15 周三
下午16:40分,FC3下。发现Embest公司光盘给的ARM工具链fot Linux的GCC版本是2001年的!!找了一个新一点的换上,果然就没有can not execute "cpp0"。
然后又一个问题,我在应用程序中加了busy box,make user_only时说busybox下的Config.h找不到,然后busybox看里面有config.h 想到Linux对文件大小写敏感,在Makefile中把几个C改成了c,成功!!再回头想想Cygwin里面,大约对这个大小写不敏感,唉
今天编译成功了两套镜像,基本上只有Network支持,tftp应用程序。romfx130k。还有一个多了BusyBox的一些小程序,romfs 178k。网上烧写,失败。在引导到start_kernel 9的时候就死机了。后来把光盘上的zImage烧进去,启动成功。注意!此时烧的Romfs还是我自己写的,故启动的时候有不少错误,但都不是致命的。进到bin里面果然只有tftp,很多程序都没有了。
使用tftp失败,归结原因是没有加载Ramdisk。下次编译要加入mount
使用光盘上的镜像烧入,tftp成功。
后来在uclinux网站上下到了最新的arm-elf-tools,for Fedora 2,明天尝试。
备忘:1、明天烧光盘上的镜像,编写helloword,使用tftp下载该程序,尝试运行
2、尝试用新的arm-elf-tools,编译20040408版的源码(担心硬盘空间不够)。
3、尝试用linux-2.4.27加上path做成自己的uclinux源码。
4、找到bootloader之后运行的代码,尝试修改。
5、若用原来的uclinux源码,一定要加上sash expand、mount两个东东。进一步整理内核那些要那些不必。
下午16:40分,FC3下。发现Embest公司光盘给的ARM工具链fot Linux的GCC版本是2001年的!!找了一个新一点的换上,果然就没有can not execute "cpp0"。这个Embest公司啊...
然后又一个问题,我在应用程序中加了busy box,make user_only时说busybox下的Config.h找不到,然后busybox看里面有config.h 想到Linux对文件大小写敏感,在Makefile中把几个C改成了c,成功!!再回头想想Cygwin里面,大约对这个大小写不敏感,唉
ddmaple 2004.12.14 周二
DDMaple手记 2004.12.13 周一
今天等于没进展。自己的VAIO上装好了FC3(Fedora),用的是VMware虚拟计算机。但是在其中用Embest公司的ARM工具链、uClinux源代码编译失败。首先xconfig时就说错误,说是.o文件格式不对(猜测是Embest公司用Cygwin下工具链编译出来的.o,Linux下不能用),menuconfig到可以用,make dep可以(一般这个只要指定了工具链PATH就没啥问题),make lib_only时,在用arm-elf-gcc编译第一个文件的时候就报错,can not execute "cpp0" 不解,猜测是否这个ARM工具链(此工具链是光盘上的arm-elf-compiler.tar.gz解压而得)不支持Fedora? 至此,在我的VAIO上没做更多工作。
同步地,在实验室用企业版LinuxES 企图编译。先是想做20040408那个源码,好不容易学了下patch的用法(见今天的备忘),make xconfig不行,说是wish找不到,不解..make
menuconfig可用,个别选项与Embest提供的源码config稍有不同。到了make lib_only 同样是can not execute "cpp0" .难道这个工具链对企业版Linux也不支持??我用的还是光盘上说的for linux的工具链。然后用光盘上的源码编译,仍是xconfig不行,menuconfig可以。(快晕了),make lib_only同上的错误,十点半了,撤...
另外我将昨天编译的镜像烧了一下,arm启动可以,但启动中有不少错误,RAMDISK mount失败什么的,执行一些程序也报错。用光盘的镜像就基本没错。
今天比较失败,明天休息一下,看看文档思考思考,该抬头看路了。接下来要解决的问题:(储飞若有别的想法一起讨论)
1、在uClinux中添加入自己的程序,实现HelloWorld.
2、uClinux如何启动自动执行用户程序?
3、外加设备的驱动如何添加?
4、在uClinux下加键盘的驱动,获取键盘中断,并向串口传数据
5、uClinux下的LCD驱动,编程实现绘图,按键盘显示信息
两人最好协调一下,各自有工作的侧重点,避免重复劳动。
备忘:1、patch的标准格式为patch [options] [originalfile] [patchfile]如果patchfile为空则从标准输入读取patchfile内容;如果originalfile也为空,则从patchfile(肯定来自标准输入)中读取需要打补丁的文件名。因此,如果需要修改的是目录,一般都必须在patchfile中记录目录下的各个文件名。
绝大多数情况下,patch都用以下这种简单的方式使用:patch -p[num] [patchfile]
这里提到的-p参数决定了是否使用读出的源文件名的前缀目录信息,不提供-p参数,则忽略所有目录信息,-p0(或者-p 0)表示使用全部的路径信息,-p1将忽略第一个"/"以前的目录,依此类推。如/usr/src/linux-2.4.15/Makefile这样的文件名,在提供-p3参数时将使用linux-2.4.15/Makefile作为所要patch的文件。对于刚才举的Linux内核源码2.4.16升级包的例子,假定源码目录位于/usr/src/linux中,则在当前目录为/usr/src时使用"patch -p0 <patch-2.4.16"可以工作,在当前目录为/usr/src/linux时,"patch -p1<patch-2.4.16"也可以正常工作。
2、明天争取把helloworld做到uxlinux里面去,能在超级终端显示
今天等于没进展。自己的VAIO上装好了FC3(Fedora),用的是VMware虚拟计算机。但是在其中用Embest公司的ARM工具链、uClinux源代码编译失败。首先xconfig时就说错误,说是.o文件格式不对(猜测是Embest公司用Cygwin下工具链编译出来的.o,Linux下不能用),menuconfig到可以用,make dep可以(一般这个只要指定了工具链PATH就没啥问题),make lib_only时,在用arm-elf-gcc编译第一个文件的时候就报错,can not execute "cpp0" 不解,猜测是否这个ARM工具链(此工具链是光盘上的arm-elf-compiler.tar.gz解压而得)不支持Fedora? 至此,在我的VAIO上没做更多工作。
同步地,在实验室用企业版LinuxES 企图编译。先是想做20040408那个源码,好不容易学了下patch的用法(见今天的备忘),make xconfig不行,说是wish找不到,不解..make
menuconfig可用,个别选项与Embest提供的源码config稍有不同。到了make lib_only 同样是can not execute "cpp0" .难道这个工具链对企业版Linux也不支持??我用的还是光盘上说的for linux的工具链。然后用光盘上的源码编译,仍是xconfig不行,menuconfig可以。(快晕了),make lib_only同上的错误,十点半了,撤...
另外我将昨天编译的镜像烧了一下,arm启动可以,但启动中有不少错误,RAMDISK mount失败什么的,执行一些程序也报错。用光盘的镜像就基本没错。
今天比较失败,明天休息一下,看看文档思考思考,该抬头看路了。接下来要解决的问题:(储飞若有别的想法一起讨论)
1、在uClinux中添加入自己的程序,实现HelloWorld.
2、uClinux如何启动自动执行用户程序?
3、外加设备的驱动如何添加?
4、在uClinux下加键盘的驱动,获取键盘中断,并向串口传数据
5、uClinux下的LCD驱动,编程实现绘图,按键盘显示信息
两人最好协调一下,各自有工作的侧重点,避免重复劳动。
备忘:1、patch的标准格式为patch [options] [originalfile] [patchfile]如果patchfile为空则从标准输入读取patchfile内容;如果originalfile也为空,则从patchfile(肯定来自标准输入)中读取需要打补丁的文件名。因此,如果需要修改的是目录,一般都必须在patchfile中记录目录下的各个文件名。
绝大多数情况下,patch都用以下这种简单的方式使用:patch -p[num] [patchfile]
这里提到的-p参数决定了是否使用读出的源文件名的前缀目录信息,不提供-p参数,则忽略所有目录信息,-p0(或者-p 0)表示使用全部的路径信息,-p1将忽略第一个"/"以前的目录,依此类推。如/usr/src/linux-2.4.15/Makefile这样的文件名,在提供-p3参数时将使用linux-2.4.15/Makefile作为所要patch的文件。对于刚才举的Linux内核源码2.4.16升级包的例子,假定源码目录位于/usr/src/linux中,则在当前目录为/usr/src时使用"patch -p0 <patch-2.4.16"可以工作,在当前目录为/usr/src/linux时,"patch -p1<patch-2.4.16"也可以正常工作。
2、明天争取把helloworld做到uxlinux里面去,能在超级终端显示
今天(王经理和深圳黄工)交谈摘要
1. 明确了开发平台:win2000(已证实xp也可), cygwin需要安装在NTFS格式非系统盘下
2. 环境变量只需要设置一次即可3. LCD可以开发实时性好的程序,问题在于三星看门狗计时器Delay需要先初始化Delay 0
4. Bootloader要重新编译下,其中一句704*1024改为1024*1024(给了我们最新loader)5. 可以使用USB口做下数据传输试验
6. 搭载自己的应用程序可以参照操作手册做
7. Embest出了新的IDE和UnetICE
8. 与MiniGUI的协议正在进行中将在不久后把源码发过来
9. 给我们快速的烧写开发工具Prog
10. Make xconfig可以正常的裁减,make menuconfig不提供
11. UC/OS可以搭载WIP(?)协议栈,使用很广泛