上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 45 下一页

2011年6月23日

摘要: arm-linux-ld: ERROR: /up-Star2410/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/3.4.6/libgcc.a(_udivsi3.oS) uses hardware FP, whereas u-boot uses software FParm-linux-ld: failed to merge target specific data of file /up-Star2410/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-li 阅读全文
posted @ 2011-06-23 12:39 yming0221 阅读(229) 评论(0) 推荐(0)
摘要: 命令简介用到的两个命令是diff和patch。diffdiff可以比较两个东西,并可同时记录下二者的区别。制作补丁时的一般用法和常见选项为:diff 【选项】 源文件(夹) 目的文件(夹)-r递归。设置后diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。-N选项确保补丁文件将正确地处理已经创建或删除文件的情况。-u输出每个修改前后的3行,也可以用-u5等指定输出更多上下文。-E, -b, -w, -B, --strip-trailing-cr忽略各种空白,可参见文档,按需选用。patchpatch的作用则是将diff记录的结果(即补丁)应用到相应文件(夹)上 阅读全文
posted @ 2011-06-23 11:52 yming0221 阅读(357) 评论(0) 推荐(1)

2011年6月21日

摘要: 原创作品,转载请标明出处http://blog.csdn.net/yming0221/archive/2011/06/21/6559767.aspxLinux内核添加系统调用一、环境说明操作系统:Ubuntu 11.04旧内核版本:2.6.38.9新内核版本:2.6.39编译器版本:GCC 4.5.2二、实验目的掌握内核的编译方法深入理解内核编译的原理掌握给内核添加系统调用的方法了解系统调用的运行机制学会在用户态调用系统调用三、实验原理系统调用:Linux内核中用户实现系统程序的一组子程序一个程序的虚拟地址空间分为用户态和内核态,而用户进程要想进入内核就要通过系统调用或以内核 阅读全文
posted @ 2011-06-21 21:56 yming0221 阅读(248) 评论(0) 推荐(0)
摘要: vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。 阅读全文
posted @ 2011-06-21 15:05 yming0221 阅读(143) 评论(0) 推荐(0)

2011年6月19日

摘要: 主机系统:Ubuntu 11.04内核版本:Linux Kernel 2.6.39硬件平台:FL2440开发板系统:Linux Kernel 2.6.28转载请标明出处http://blog.csdn.net/yming0221/archive/2011/06/19/6554898.aspx下面是用CPU轮寻的方式来判断AD转换完成的#include <linux/kernel.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/device.h> /*创建设备节点*/# 阅读全文
posted @ 2011-06-19 17:30 yming0221 阅读(281) 评论(0) 推荐(0)
摘要: 用户空间:1.unsigned int sleep(unsigned int seconds); sleep()会使当前程序休眠seconds秒。如果sleep()没睡饱,它将会返回还需要补眠的时间,否则一般返回零。2.void usleep(unsigned long usec);usleep与sleep()类同,不同之处在于休眠的时间单位为毫秒(10E-6秒)。3.int select(0,NULL,NULL,NULL,struct timeval *tv); 可以利用select实现sleep()的功能,它将不会等待任何事件发生。4.int nanosleep(struct timesp 阅读全文
posted @ 2011-06-19 15:28 yming0221 阅读(212) 评论(0) 推荐(0)

2011年6月17日

摘要: 主机:Ubuntu 11.04现在内核版本:2.6.38.9编译的目标内核版本:2.6.39编译成功后修改内核,添加个系统调用,并重新编译内核,编写C程序,调用自己添加的系统调用首先编译内核1、从下载Linux内核版本2.6.392、解压内核到任意目录(这里不用必须解压到/usr/src/下,Linus也说不必那样做,况且自己也试验成功)3、进入内核目录4、首先配置make menuconfig配置裁剪内核(如果没有什么必要可以复制/boot/config-***,这是现在的内核配置)cp /boot/config-*** ./.config5、开始编译,可以执行make all,当然也可以分 阅读全文
posted @ 2011-06-17 13:36 yming0221 阅读(248) 评论(0) 推荐(0)

2011年6月16日

摘要: 本文基于Linux 2.4.26内核,GCC 3.2.2添加系统调用mycall(int num)增加系统调用只修改/usr/src/linux-2.4.29/include/asm-i386/unistd.h和arch/i386/kernel/entry.S,系统调用函数一般在kernel/sys.c中,这里把增加的系统调用代码也加入这个文件中。1.修改kernel/sys.c文件,加入自己的系统调用代码,同参考文献(见文后地址)中,asmlinkage int sys_mycalll(int num){printk("This is added by yan/n");r 阅读全文
posted @ 2011-06-16 17:53 yming0221 阅读(179) 评论(0) 推荐(0)
摘要: 1. 前言 在我写这篇文章的时候,还是一个linux的初学者,经历了n次失败后的成功当然是兴奋的,于是很想把她写下来。 我的操作系统是Redhat9,其内核版本为2.4.20-8 ,需要升级到2.4.26,采用全新的2.4.26内核源码进行升级,主要的参考资料是《The Linux Kernel HOWTO》,另外还有一些参考资料我想就不提了,免得误导象我一样的初学者。 接下来有三个部分,“步骤索引”、“步骤说明”和“附录”,“步骤索引”真实的记录了我成功升级内核的步骤,“步骤说明”将对“步骤索引”一些注意事项进行说明,“附录”摘录自《The Linux Kernel HOWTO》的相关部分。 阅读全文
posted @ 2011-06-16 15:57 yming0221 阅读(275) 评论(0) 推荐(0)
摘要: 本文分析基于FL2440开发板,宿主机 Ubuntu 11.04转载请标明出处http://blog.csdn.net/yming0221由于FL2440自带128M 的NAND flash,而分给Linux文件系统的只有60M,由于系统中有许多库文件,导致文件系统过大。可以有两种解决方案:1、修改bootloader和内核源代码中有关分区的信息,删除Windows CE分区,重新编译bootloader和内核,当然这样比较麻烦可以参考http://blog.csdn.net/ll_0520/archive/2010/12/25/6098565.aspx这需要有心理准备,很可能会遇到很多麻烦, 阅读全文
posted @ 2011-06-16 14:03 yming0221 阅读(266) 评论(0) 推荐(0)
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 45 下一页

导航