配置编译内核(Linux kernel)
虽然以前也编译过内核,但是关于内核配置选项特别是有关本机驱动这块还是不熟悉,因为没有通过确定有效的途径知道当前工作正常的内核中到底使用了什么驱动模块来控制硬件,最近看到一本书《Linux kernel in a netshell》,感觉讲的还不错,所以记下笔记。
1.编译内核的工具
gcc
binutils(ld) binutils是gcc的工具链,用来链接目标文件以及汇编。
make
util-linux-ng(fdformat)
module-init-tools(depmod)
tune2fs
NFS(showmount)
udev udev是Linux中用来管理/dev目录的工具,它维护/dev目录下所有的设备文件。
2.下载wget/curl
3.编译
$make defconfig defconfig是i386计算机上的默认配置,也就是Linus Torvalds计算机中的配置。
$make config 最原始的配置方式
$make menuconfig 文本字符界面配置
$make xconfig X Window配置界面
$make 编译Kernel
4.高级编译选项
make -jN N设置为你CPU内核数的两倍,代表编译内核所用的线程数量。
$make drivers/usb/serial 只编译目录drivers/usb/serial,但是不会生成模块映像文件
$make M=drivers/usb/serial 同上,但是会生成模块文件,但是不会影响已经编译好的内核,如果想要改变已经编译好的内核,则需要重新执行
$make
$make drivers/usb/serial/visor.ko 只编译个别文件
$make -O=/path/to/output/ 将输出重定向到另一个目录,注意configure也必须使用-O重定向输出。
$make ARCH=x86_64 defconfig 设置目标计算机体系结构
 
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
转载自:http://hi.baidu.com/jinandpan/blog/item/dde4e31683ad4101c93d6d9b.html
一、什么是系统平均负载(Load average)?
在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下 ......
http://www.linuxgraphics.cn/android/index.html
http://blog.chinaunix.net/u2/85805/
http://blog.csdn.net/stevenliyong/category/578556.aspx
http://blog.csdn.net/cuijpus/archive/2008/06/15/2549803.aspx
http://dbus.freedesktop.org/doc/dbus-tutorial.html#glib-client
http://www.ibm.com/developerworks ......
互斥量从本质上说就是一把锁, 提供对共享资源的保护访问.
1. 初始化:
在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化:
对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZER, 或者调用pthread_mutex_init.
对于动态分配的互斥量, 在申请内存(malloc)之 ......