随笔分类 -  Linux驱动开发

摘要:1.源代码.text # section declaration # we must export the entry point to the ELF linker or .global _start # loader. They conventionally recognize _start as their ... 阅读全文
posted @ 2012-02-20 21:23 justinzhang 阅读(4922) 评论(0) 推荐(0) 编辑
摘要:我的系统是ubuntu9.0的系统,以前重新编译了几次内核,最近发现/boot目录下塞满了各个版本内核的vmlinuxz和initrd.image文件。很自然的想到把老版本的内核删除掉,以释放磁盘空间。 通过在网上搜索,发现了如下的命令可以到达效果:sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)以上命令来自如下网址http://wiki.ubuntu.org.cn/UbuntuSkills#.E5.88.A0.E9.99.A4.E6.97.A7.E5.86.85.E6.A0.B8下面的实验截图,以便以后查阅:在没有删除多余旧内核的/b. 阅读全文
posted @ 2012-02-19 23:46 justinzhang 阅读(397) 评论(0) 推荐(0) 编辑
摘要:A master boot record (MBR) is a type of boot sector popularized by the IBM Personal Computer.[1] It consists of a sequence of 512 bytes located at the first sector of a data storage device such as a h... 阅读全文
posted @ 2011-07-18 20:52 justinzhang 阅读(374) 评论(0) 推荐(0) 编辑
摘要:闲来无事,又开始学习linux设备驱动程序,以前本来就有一颗内核树,但是是2.6.31的,我下载了最新的2.6.39.1内核,进行了编译,建立了内核树,同时将默认启动的内核改成了最新的内核,通过uname -r命令可以查看,如下图所示:现在把主要的过程记录如下,1、首先到www.kernel.org 下载最新版的内核,将内核解压到/usr/src目录下,使用命令tar jvxf linux-2.6.39.1.tar.bz2,如下图所示:2、切换到linux-2.6.39.1目录中,执行sudo make menuconfig,对内核进行配置:如果没有menuconfig,执行下面的命令,下载相 阅读全文
posted @ 2011-07-18 16:01 justinzhang 阅读(1026) 评论(0) 推荐(0) 编辑
摘要:最近,用2.6.39.1重新编译了内核,重新跑了hello world驱动,建立好了驱动的开发环境,看了一些文档,但是还没有熟练的掌握驱动开发的技术,在这里记录一些心得,备忘。以前在看ldd3的时候,觉得十分的茫然,连内核树是什么都不知道,然后在不知道的某一天,编译了一个内核,虽然建立起了一棵内核树,但是并没有用自己编译的内核来替换现有的内核,对于驱动的链接过程和源代码的目录结构也不熟悉,这里总结如下:源代码目录:/usr/src/linux-2.6.39.1内核的initrd目录:/boot/initrd-img-2.6.39.1grub配置文件目录:/boot/grub/grub.cfg 阅读全文
posted @ 2011-07-18 15:40 justinzhang 阅读(375) 评论(0) 推荐(0) 编辑