Linux 2.6 ×Ö·ûÉ豸Çý¶¯³ÌÐò
Linux 2.6 ×Ö·ûÉ豸Çý¶¯³ÌÐò
¡ð¡¢ËµÃ÷
±Ê¼ÇÊÊÓÃÓÚLinuxµÄ2.6.10ÒÔºóµÄÄںˡ£
±Ê¼ÇÒÔLinux
Device
Driver3ÌṩµÄscull³ÌÐò(scullĿ¼ÖеÄmain.cºÍscull.h)Ϊ¼Ç¼Ö÷Ïߣ¬²¢ÒÔ¸ÃÇý¶¯³ÌÐòÖеĸ÷ÖÖϵͳµ÷Óúͺ¯Êýµ÷ÓÃÁ÷³ÌΪ¼Ç
¼˳Ðò¡£±ÈÈ磬module_init( )ºÍmodule_exit(
)ΪÏà¶ÔÓ¦µÄÒ»¶Ôϵͳµ÷Óã¬Ò»°ãÊé¼®Öж¼»á·ÅÔÚÒ»ÆðÌÖÂÛ£¬µ«ÊDZ¾±Ê¼ÇÈ´²»»áÕâÑù£¬¶øÊÇÔÚÐèÒªµ÷ÓõÄʱºò²Å»áÉæ¼°£¬Òò´Ëmodule_init(
)»á·ÅÔڱʼǿªÊ¼Ê±£¬Ò²¾ÍÊǸռÓÔØmoduleʱÌÖÂÛ£¬¶ømodule_exit( )Ôò»á·ÅÔڱʼǽáÊøÇ°£¬Ò²¾ÍÊÇÒªÐ¶ÔØmoduleʱÔÙ¼ÓÒÔÌÖÂÛ¡£
¸Ã±Ê¼ÇµÄµÄÄ¿µÄÊÇΪÁ˶ÔLinux Device Drvier3ÖÐÌáµ½µÄ¸÷¸ö֪ʶµã×÷Ò»ÏÂÕûÀí£¬ÀíÇåÒ»ÏÂÍ·Ð÷£¬´Ó¶øÄÜÈÃÎÒ¶ÔLinuxÇý¶¯³ÌÐò¼ÓÉîÕûÌå»òÕßÈ«¾ÖÉϵÄÀí½â¡£
×¢£º¸öÈËÀí½â£¬ÓÐÎóÄÑÃ⣡
*******************************************
Çý¶¯³ÌÐòmoduleµÄ¹¤×÷Á÷³ÌÖ÷Òª·ÖΪËĸö²¿·Ö£º
1¡¢ ÓÃLinuxÌṩµÄÃüÁî¼ÓÔØÇý¶¯module
2¡¢ Çý¶¯moduleµÄ³õʼ»¯£¨³õʼ»¯½áÊøºó¼´½øÈë“DZ·ü”״̬£¬Ö±µ½ÓÐϵͳµ÷Óã©
3¡¢ µ±²Ù×÷É豸ʱ£¬¼´ÓÐϵͳµ÷ÓÃʱ£¬µ÷ÓÃÇý¶¯moduleÌṩµÄ¸÷¸ö·þÎñº¯Êý
4¡¢ Ð¶ÔØÇý¶¯module
Ò»¡¢ Çý¶¯³ÌÐòµÄ¼ÓÔØ
LinuxÇý¶¯³ÌÐò·ÖΪÁ½ÖÖÐÎʽ£ºÒ»ÖÖÊÇÖ±½Ó±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³ÉmoduleÐÎʽ£¬È»ºóÔÚÐèÒª¸ÃÇý¶¯moduleʱÊÖ¶¯¼ÓÔØ¡£¶ÔÓÚǰÕߣ¬»¹Óдýѧϰ¡£
ModuleÐÎʽµÄÇý¶¯£¬LinuxÌṩÁËÁ½¸öÃüÁîÓÃÀ´¼ÓÔØ£ºmodprobeºÍinsmod¡£
Æä
ÖÐmodprobe¿ÉÒÔ½â¾öÇý¶¯moduleµÄÒÀÀµÐÔ£¬¼´¼ÙÈçÕý¼ÓÔØµÄÇý¶¯moduleÈôÒýÓÃÁËÆäËûmoduleÌṩµÄÄں˷ûºÅ»òÕ߯äËû×ÊÔ´£¬Ôò
modprobe¾Í»á×Ô¶¯¼ÓÔØÄÇЩmodule£¬²»¹ý£¬Ê¹ÓÃmodprobeʱ£¬±ØÐë°ÑÒª¼ÓÔØµÄÇý¶¯module·ÅÔÚµ±Ç°Ä£¿éËÑË÷·¾¶ÖС£¶øinsmod
ÃüÁî²»»á¿¼ÂÇÇý¶¯moduleµÄÒÀÀµÐÔ£¬µ«ÊÇËüÈ´¿ÉÒÔ¼ÓÔØÈÎÒâĿ¼ÏµÄÇý¶¯module¡£
Ò»°ãÀ´Ëµ£¬ÔÚÇý¶¯¿ª·¢½×¶Î£¬Ê¹ÓÃ/sbin/insmod±È½Ï·½±ã£¬ÒòΪ²»Óý«module·ÅÈ뵱ǰmoduleËÑË÷·¾¶ÖС£
Ò»µ©Ê¹ÓÃinsmod¼ÓÔØÄ£¿é£¬ÔòLinuxÄں˾ͻáµ÷ÓÃmodule_init(scull_init_module)ÌØÊâºê£¬ÆäÖÐscull_init_moduleÊÇÇý¶¯³õʼ»¯º¯Êý£¬¿É×Ô¶¨ÒåÃû³Æ¡£
ÔÚÓÃinsmod¼ÓÔØmoduleʱ£¬»¹¿ÉÒÔ¸ømoduleÌṩģ¿é²ÎÊý£¬µ«ÊÇÕâÐèÒªÔÚÇý¶¯Ô´´úÂëÖмÓÈ뼸ÌõÓï¾ä£¬ÈÃÄ£¿é²ÎÊý¶ÔinsmodºÍÇý¶¯³ÌÐò¿É¼û£¬È磺
static char *whom=”world”£»
static int howmany=10;
module_param(howmany,int,S_IRUGO);
module_param(whom,charp,S_IRUGO);
ÕâÑù£¬µ±Ê¹Ó
Ïà¹ØÎĵµ£º
ÔÚ¶Ájvm´úÂëʱ£¬Ñ§Ï°Á˶ÁÈ¡¶¯Ì¬Á´½Ó¿âµÄ·½·¨¡£ÏÂÃæ¾Í.soÎļþµÄ´´½¨ºÍ¶ÁÈ¡×öÒ»¸ö¼òµ¥µÄ×ܽᡣ
1.´´½¨.soÎļþ
add.h
#ifndef ADD_H
#define ADD_H
int add(int arg1,int arg2);
#endif
add.c
#include "add.h"
int add(int arg1,int arg2)
{
return ......
1.̸µ½linuxµÄÎļþϵͳ£¬ÎÒÃDZØÐë¹Ø×¢/etc/fstabÎļþµÄÄÚÈÝ£»ÔÚlinuxÖеÄËùÓйÒÔØ·ÖÇøºÍÉ豸¶¼ÔÚfstab±í¸ñÖС£
/etc/fstab±í¸ñÖеÄÑ¡ÔñÏî²ÎÊý¶¨ÒåÈçÏ£º
ro or rw
Read only or read write
noauto
Do not respond to mount -a. Used for external devices CDROMs ...
noexec
Executables cannot be started from the ......
linuxÌí¼Ó·ÓÉ
http://baikgd.blog.163.com/blog/static/35402495200972111353827/
·þÎñÆ÷ip(eth0)
[root@localhost net]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:E3:9A:15
inet addr:172.18.3.205 Bcast:172.18.3.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee3:9a15/64 Scope:Link
UP BR ......
×î½üÔÚÓÃC++±àдһ¸öRTSPµÄ¿Í»§¶Ë£¬ÓÉÓÚÒªÓõ½Ị̈߳¬¸ù¾ÝC±à³ÌµÄ¾Ñ飬дÁËÈçÏ´úÂ룺
class LiRtspSession
{
public:
void* MainThreadFunc(void* pvData);
void* AudioProcThreadFunc(void* pvData);
& ......