LinuxÍøÂçÉ豸Çý¶¯½á¹¹¸ÅÊö
ÍøÂçÉ豸Çý¶¯Ïà±È×Ö·ûÐÍÉ豸µÄÇý¶¯Òª¸´ÔÓһЩ£¬³ýÁË×ÜÌåÉÏÇý¶¯µÄ¿ò¼ÜÓÐһЩÏàËÆÍ⣬ÓÐºÜ¶àµØ·½¶¼ÊDz»Í¬£¬µ«ÍøÂçÉ豸Çý¶¯ÓÐÒ»¸öºÜ´óµÄÌØµã¾ÍÊÇÓй̶¨µÄ¿ò¼Ü¿ÉÒÔ×ñÑ£¬¾ßÌåµÄ¿ò¼Ü»áÔÚºó±ßÏêϸµÄÐðÊö£¬ÕâÀïÖ÷Òª·ÖÎöÍøÂçÉ豸Çý¶¯µÄ½á¹¹£¬ºÍÕû¸ötcp/ipÍøÂç½á¹¹Ò»Ñù£¬Õû¸öÍøÂçÉ豸Çý¶¯Ò²ÊÇÒ»¸ö·Ö²ãµÄ½á¹¹¡£¾ßÌåÈçÏ£º
1.ÍøÂçÐÒé½Ó¿Ú²ã
ÔÚÍøÂçÐÒé½Ó¿Ú²ã£¬Ö»ÌṩÁËÁ½¸ö³éÏóº¯Êýdev_queue_xmit()Óë netif_rx()£¬Ö®ËùÒÔ³ÆÖ®Îª³éÏóº¯Êý£¬ÊÇÒòΪÕâÁ½¸öº¯Êý³éÏóÁ˺ܶàµ×²ãµÄ²Ù×÷£¬²»¹ÜÊÇÄǸöоƬËüÔÚÍøÂçÐÒé½á¹¹µÄ²Ù×÷º¯Êý¶¼ÊÇÕâÁ½¸öº¯Êý£¬²ÉÓÃÕâÑùµÄ³éÏóºó£¬¸øÉÏ²ã´øÀ´Á˺ܶàµÄ·½±ã£¬¸øÉϲãÐÒéÌṩͳһµÄÊý¾Ý°üÊÕ·¢½Ó¿Ú£¬ÎÞÂÛÉϲãÊÇARPÐÒ黹ÊÇIPÐÒ飬¶¼Í¨¹ýdev_queue_xmit() º¯Êý·¢ËÍÊý¾Ý£¬Í¨¹ýnetif_rx()º¯Êý½ÓÊÕÊý¾Ý¡£´Ë²ãʹÉϲãÐÒé¶ÀÁ¢ÓÚ¾ßÌåµÄÉ豸¡£
Ïà¹ØÊý¾Ý½á¹¹sk_buff£º
sk_buff ³ÆÎª“Ì×½Ó×Ö»º³åÇø”£¬ÓÃÓÚÔÚLinuxÍøÂç×ÓϵͳÖи÷²ãÖ®¼ä´«µÝÊý¾Ý¡£ÊÇLinuxÍøÂç×ÓϵͳÊý¾Ý´«µÝµÄ“ÖÐÊàÉñ¾”¡£sk_buff¶¨ÒåλÖÃΪ£ºinclude/linux/skbuff.h£¬Õâ¸öÊý¾Ý½á¹¹¶¨ÒåÁ˺ܶàÓÃÓÚÍøÂç²Ù×÷µÄº¯Êý£¬¸ü¶àµÄÉè¼ÆÕû¸öÐÒéµÄʵÏÖ£¬°üÀ¨¸÷²ã±¨ÎĵÄÍ·ÐÅÏ¢£¬ÒÔ¼°±¨ÎĵÄÖ¡¸ñʽ£¬Ï±ßÕâ¸öÕâ¸ö½á¹¹ÌåÊÇÓйر¨ÎÄheaderÐÅÏ¢µÄ£¬Ï±ߵĴúÂëÕª×Ôkernel2.6.29/include/linux /skbuff.h
struct sk_buff {
/* These two members must be first. */
struct sk_buff *next;
struct sk_buff *prev;
struct sock *sk;
ktime_t tstamp;
struct net_device *dev;
union {
struct dst_entry *dst;
struct rtable *rtable;
};
#ifdef CONFIG_XFRM
struct &n
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
×î½üÓÃÓÑÉÆÖ®±ÛµÄ°å×Ó£¬·¢ÏÖÄں˵ÄÃû³ÆÊÇ£ºLinux-2.6.29.4-FriendlyARM.ºóÃæÄǸöFriendlyARMËÀ»îÈ¥²»µô¡£ºóÀ´Ö»ºÃ¿´´úÂë¡£
1¡¢2.6.29.4Õâ¸ö°æ±¾ºÅÊÇÊÇubootÔÚ×öuimageµÄʱºò¼ÓÉϵģ¬¿´arch/arm/boot/Makefile:
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMA ......
Õë¶ÔºÃ¶àLinux °®ºÃÕß¶ÔÄں˺ÜÓÐÐËȤȴÎÞ´ÓÏ¿ڣ¬±¾ÎÄÖ¼ÔÚ½éÉÜÒ»ÖÖ½â¶ÁlinuxÄÚºËÔ´ÂëµÄÈëÃÅ·½·¨£¬¶ø²»Êǽâ˵linux¸´ÔÓµÄÄں˻úÖÆ£» £¨²Î¿¼×ÊÁÏÀ´Ô´£º·ÉÁè http://www.witech.com.cn/£©
Ò»£®ºËÐÄÔ´³ÌÐòµÄÎļþ×éÖ¯£º
1£®LinuxºËÐÄÔ´³ÌÐòͨ³£¶¼°²×°ÔÚ/usr/src/linuxÏ£¬¶øÇÒËüÓÐÒ»¸ö·Ç³£¼òµ¥µÄ±àºÅÔ¼¶¨£ºÈκÎżÊýµÄºËÐÄ£ ......
´ó¼Ò¶¼ÖªµÀ£¬ÎϾÓÀïС±´ÊǸãc++µÄ£¬½á¹û×îºóÀÏÆÅ¸øÈ˵±ÁËСÈý
¾ÍΪÁËÕâ¸öÒýÆð¹ã´óÍøÓѵÄÈÈÒ飬µ«±È½ÏÒ»ÏÂÎÒÃÇ»¹ÊǺܲ»´íµÎ¡£ÔÚÈÕ±¾£¬¸ãLinuxµÄÒ²µÃÅÄAV¡£ÓÐͼÓÐÕæÏà
³ÌÐòÔ±ÐÖµÜÃÇ£¬²»Òª±§Ô¹ÁË£¬±È±ÈСÈÕ±¾£¬ÎÒÃǵĴ¦¾³ºÃ¶àÁËO(∩_∩)O¹þ¹þ~ ......
RPM ÊÇ Red Hat Package Manager µÄËõд£¬±¾ÒâÊÇRed Hat Èí¼þ°ü¹ÜÀí£¬¹ËÃû˼ÒåÊÇRed Hat ¹±Ï׳öÀ´µÄÈí¼þ°ü¹ÜÀí£»
ÔÚFedora ¡¢Redhat¡¢Mandriva¡¢SuSE¡¢YellowDogµÈÖ÷Á÷·¢Ðа汾£¬ÒÔ¼°ÔÚÕâЩ°æ±¾»ù´¡É϶þ´Î¿ª·¢³öÀ´µÄ·¢Ðаæ²ÉÓã»
RPM°üÀïÃæ¶¼°üº¬Ê²Ã´£¿ÀïÃæ°üº¬¿ÉÖ´ÐеĶþ½øÖƳÌÐò£¬Õâ¸ö³ÌÐòºÍWindowsµÄÈí¼þ°üÖеÄ.exeÎ ......