linuxÇý¶¯Ñ§Ï°
Ò»¡¢ioctl
´ó²¿·ÖÉ豸³ýÁ˶ÁдÄÜÁ¦£¬»¹¿É½øÐг¬³ö¼òµ¥µÄÊý¾Ý´«ÊäÖ®ÍâµÄ²Ù×÷£¬ËùÒÔÉ豸Çý¶¯Ò²±ØÐë¾ß±¸½øÐи÷ÖÖÓ²¼þ¿ØÖƲÙ×÷µÄÄÜÁ¦. ÕâЩ²Ù×÷³£³£Í¨¹ý ioctl ·½·¨À´Ö§³Ö£¬ËüÓкÍÓû§¿Õ¼ä°æ±¾²»Í¬µÄÔÐÍ:
int (*ioctl) (struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
ÐèҪעÒâµÄÊÇ£º²»¹Ü¿ÉÑ¡µÄ²ÎÊýargÊÇ·ñÓÉÓû§¸ø¶¨ÎªÒ»¸öÕûÊý»òÒ»¸öÖ¸Õ룬Ëü¶¼ÒÔÒ»¸öunsigned longµÄÐÎʽ´«µÝ¡£Èç¹ûµ÷ÓóÌÐò²»´«µÝarg²ÎÊý, ±»Çý¶¯ÊÕµ½µÄ arg ÖµÊÇ䶨ÒåµÄ¡£ÒòΪÔÚarg²ÎÊýÉϵÄÀàÐͼì²é±»¹Ø±ÕÁË,ËùÒÔÈôÒ»¸ö·Ç·¨²ÎÊý´«µÝ¸ø ioctl£¬±àÒëÆ÷ÊÇÎÞ·¨±¨¾¯µÄ£¬ÇÒÈκιØÁªµÄ´íÎóÄÑÒÔ²éÕÒ.
Ñ¡ÔñioctlÃüÁî
ΪÁË·ÀÖ¹Ïò´íÎóµÄÉ豸ʹÓÃÕýÈ·µÄÃüÁÃüÁîºÅÓ¦¸ÃÔÚϵͳ·¶Î§ÄÚΨһ¡£Îª·½±ã³ÌÐòÔ±´´½¨Î¨Ò»µÄ ioctl ÃüÁî´úºÅ£¬ ÿ¸öÃüÁîºÅ±»»®·ÖΪ¶à¸öλ×ֶΡ£Òª°´ Linux Äں˵ÄÔ¼¶¨·½·¨ÎªÇý¶¯Ñ¡Ôñ ioctl µÄÃüÁîºÅ, Ó¦¸ÃÊ×ÏÈ¿´¿´ include/asm/ioctl.h ºÍ Documentation/ioctl-number.txt¡£ ҪʹÓõÄλ×ֶηûºÅ¶¨ÒåÔÚ <linux/ioctl.h> :
type(»ÃÊý)£º8 λ¿í(_IOC_TYPEBITS)£¬²Î¿¼ioctl-number.txtÑ¡ÔñÒ»¸öÊý£¬²¢ÔÚÕû¸öÇý¶¯ÖÐʹÓÃËü¡£
number£¨ÐòÊý£©£ºË³Ðò±àºÅ£¬8 λ¿í(_IOC_NRBITS)¡£
direction£¨Êý¾Ý´«Ë͵ķ½Ïò£©£º¿ÉÄܵÄÖµÊÇ _IOC_NONE(ûÓÐÊý¾Ý´«Êä)¡¢_IOC_READ¡¢ _IOC_WRITEºÍ _IOC_READ|_IOC_WRITE (Ë«Ïò´«ÊäÊý¾Ý)¡£¸Ã×Ö¶ÎÊÇÒ»¸öλÑÚÂ루Á½Î»£©, Òò´Ë¿ÉʹÓà AND ²Ù×÷À´³éÈ¡_IOC_READ ºÍ _IOC_WRITE¡£
size£¨Êý¾ÝµÄ´óС£©£º¿í¶ÈÓëÌåϵ½á¹¹ÓйØ,ARMΪ14λ.¿ÉÔÚºê _IOC_SIZEBITS ÖÐÕÒµ½Ìض¨ÌåϵµÄÖµ.
<linux/ioctl.h> Öаüº¬µÄ <asm/ioctl.h>¶¨ÒåÁËһЩ¹¹ÔìÃüÁî±àºÅµÄºê:
_IO(type,nr)/*ûÓвÎÊýµÄÃüÁî*/
_IOR(type, nr, datatype)/*´ÓÇý¶¯ÖжÁÊý¾Ý*/
_IOW(type,nr,datatype)/*дÊý¾Ý*/
_IOWR(type,nr,datatype)/*Ë«Ïò´«ËÍ*/
/*type ºÍ number ³ÉÔ±×÷Ϊ²ÎÊý±»´«µÝ, ²¢ÇÒ size ³ÉԱͨ¹ýÓ¦Óà sizeof µ½ datatype ²ÎÊý¶øµÃµ½*/
Õâ¸öÍ·Îļþ»¹¶¨ÒåÁËÓÃÀ´½â¿ªÕâ¸ö×ֶεĺê:
_IOC_DIR(nr)
_IOC_TYPE(nr)
_IOC_NR(nr)
_IOC_SIZE(nr)
¾ßÌåµÄʹÓ÷½·¨ÔÚʵÑéÖÐչʾ¡£
·µ»ØÖµ
POSIX ±ê×¼¹æ¶¨£ºÈç¹ûʹÓÃÁ˲»ºÏÊ浀 ioctl ÃüÁîºÅ£¬Ó¦µ±·µ»Ø-ENOTTY ¡£Õâ¸ö´íÎóÂë±» C ¿â½âÊÍΪ"²»ºÏÊʵÄÉ豸 ioctl¡£È»¶ø£¬Ëü·µ»Ø-EINVALÈÔÊ
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname # ²é¿´¼ÆËã»úÃû
# lspci -tv # ÁгöËùÓÐPCIÉ豸
# lsusb -tv # ÁгöËùÓÐUSBÉ豸
# lsmod # ......
Ò»¡¢ÏµÍ³ÉèÖÃÓë¹ÜÀí
1.alias
˵Ã÷£ºÎªÃüÁîÉèÖñðÃû¡¢ÏÔʾ±ðÃûÉèÖá£
Óï·¨£ºalias [±ðÃû]=[Ö¸ÁîÃû³Æ]£ºÎª[Ö¸ÁîÃû³Æ]ÆðÒ»¸ö±ðÃû¡£
alias [±ðÃû]£ºÏÔʾ³ö[±ðÃû]Ëù¶ÔÓ¦µÄÃüÁî¡£
alias£ºÏÔʾËùÓбðÃûÉèÖá£
2.apmsleep
˵Ã÷£º½øÈë¹ÒÆð»òµÈ´ý״̬¡£
Óï·¨£ºapmsleep hh:mm
²ÎÊý£ºhh:mmÖ¸¶¨½øÈë¹ÒÆð»òµÈ´ý״̬µÄʱ¼ä¡£
......
ÓÉÓÚSATAÓ²Å̽ÏУ¬ºÜ¶àÇý¶¯ÐèÒª°²×°£¬¿ÉÒÔ½«SATAÓ²ÅÌÄ£Äâ³ÉIDEÓ²ÅÌÀ´Ê¹ÓÓ
ÎÒµÄlinux»·¾³Îª£ºredhat enterprise linux4
Ö÷°åΪ£ºÌ©°²S5372 G2NR-LH
ϵͳÅÌΪÐÂSATAÅÌ£¬²»ÊÇÀϵÄSATAÅÌ¡£
ÖÁÓÚSATAÓ²Å̲»ÄÜÄ£Äâ³ÉIDEÓ²ÅÌÖ÷ÒªÊÇÓÉÁ½¸öÒòËØ¾ö¶¨µÄ£º
1-biosÉèÖ㬰Ñsata¿ØÖÆÆ÷ÉèÖÃΪÔÉú£¨nataive£©Ä£Ê½Ôòsata±»ÈÏ× ......
ºÃ¾Ãûд Blog£¬Ã¦°¡Ê²Ã´µÄ¾Í²»ËµÁË£¬ÀÁÊÇ×î´óµÄÔÒò¡£×î½üæ×ŸøÊµÑéÊÒ×ö¸öÍøÕ¾£¬³ýÁËÎÒÊìϤµÄ Web Design & Development Ö®Í⣬Õâ´ÎÎÒ»¹´î½¨ÁËһ̨ Linux ·þÎñÆ÷¡£Ò»·½ÃæÓÃÀ´·ÅÖÃÎÒÃǵÄÕ¾µã£¬ÁíÒ»·½ÃæÊµÑéÊÒ·Åһ̨·þÎñÆ÷£¬Ò²ÎªÊµÑéÊҵijÉÔ±ÃÇÌṩһЩ¶îÍâµÄ·þÎñ£¬·½±ã¿ÆÑкÍѧϰ¡£
ËäÈ»×ö Web ÎÒÊÇÇá³µÊì·ÁË£¬µ«µ¹Ì ......