Ⅰ 如何在linux中讓I2C驅動支持Sub Address的兩種方法
【目的】
AS3527有一個模擬部分,稱作AFE,其與數字部分通過i2c通信,此處AFE部分有很多寄存器供外界操作訪問,如果想要訪問這些寄存器,就要用到Sub Address,所以,要實現讓i2c 驅動支持Sub Address的模式。
i2C本身的架構中,沒有支持sub address,所以,我們只能想辦法,讓其I2C支持(方法1)或者用smbus的架構(方法2).
【方法】
方法1:
在i2c的message中傳遞一個2個位元組的buffer,分別存放Sub Address和data
比如,對於讀操作,就可以這么實現:
int afe_read_reg(int addr, u8 *pdata)
{
u8 msgbuf[2];
struct i2c_msg msg =
{
.addr = save_client->addr | ( << 8),
.flags = I2C_M_RD ,
.len = 2,
.buf = msgbuf,
};
msgbuf[0] = addr; //存放Sub Address,此處的Addr是寄存器地址,也就是Sub Address
msgbuf[1] = 0; //初始化
if (i2c_transfer(save_client->adapter, &msg, 1) < 0) {
dev_warn(&save_client->dev,
"can't read from afe /n");
return -ENOMEM;
}
*pdata = msgbuf[1];
return 0;
}
方法2:
使用SMBUS的框架,其支持Sub Address
在i2c讀操作中,直接調用SMBUS架構中的函數i2c_smbus_read_byte_data:
int afe_read_reg(int addr, u8 *pdata)
{
int ret;
ret = i2c_smbus_read_byte_data(save_client, addr);
if (ret < 0)
return ret;
else {
*pdata = (u8)ret;
return 0;
}
}
然後函數調用順序是
i2c_smbus_read_byte_data -> i2c_smbus_xfer ->
adapter->algo->smbus_xfer 或 i2c_smbus_xfer_emulated
(1)此處如果你自己的I2C驅動中沒有實現
adapter->algo->smbus_xfer
那麼就會去調用i2c_smbus_xfer_emulated,其會把I2C的讀一個位元組的操作,
分成2個message,然後
i2c_smbus_xfer_emulated -> i2c_transfer -> adap->algo->master_xfer(adap,msgs,num)
去調用底層自己的i2c傳輸的函數master_xfer去實現兩個message的傳輸。
此處要注意的是,如果你的i2C的控制器和i2c設備,支持將此I2C的讀一個位元組操作分兩個message傳輸,
那麼此處此方法也是可以的。
而你的底層的master_xfer函數,只要負責將對應的message發送出去也就可以實現對應的功能了。
否則,就像我此處遇到的,我這里的AFE的i2c控制器,不支持讀操作分成兩次message,只支持一個I2C message的傳輸,
所以,只能是在底層特殊處理,將2個message自己整理成一個message,或者是用下面的辦法。
(2)自己實現了adapter->algo->smbus_xfer
自己仿照i2c_smbus_xfer_emulated,在具體實現的時候,對於讀和寫都只是發送一個message,然後讓底層代碼
adap->algo->master_xfer去處理這個message,實現對應的讀和寫。
【注意】
1.以上,不論是1還是2,都是在實現了自己I2C驅動底層message傳輸的基本函數之後,才可以工作的。
而對於這個基本函數,即adap->algo->master_xfer,
都是要在實現的時候,注意上層傳遞過來的buffer的第一個位元組是sub address,第二個位元組才是要用於寫入或讀取的buffer。
2.對於方法2(2),在模擬i2c_smbus_xfer_emulated實現自己的xfer函數的時候,
不能直接調用i2c_transfer,因為i2c_transfer裡面,去獲得adapter->bus_lock,而i2c_smbus_xfer中,調用adapter->algo->smbus_xfer之前,已經進行了對於adapter->bus_lock鎖定,而因此會形成死鎖的的,辦法是不要再去獲得鎖,而直接調用adapter->algo->master_xfer即可。
Ⅱ 鍦╨inux涓鏄涓嶆槸鑳界湅鍒拌懼囪妭鐐瑰氨璇存槑璁懼囧彲浠ヨ璁塊棶浜嗚В鍐蟲濊礬
Linux 涓鐨勮懼囨湁2縐嶇被鍨嬶細瀛楃﹁懼(鏃犵紦鍐蹭笖鍙鑳介『搴忓瓨鍙)銆佸潡璁懼(鏈夌紦鍐蹭笖鍙浠ラ殢鏈哄瓨鍙)銆傛瘡涓瀛楃﹁懼囧拰鍧楄懼囬兘蹇呴』鏈変富銆佹¤懼囧彿錛屼富璁懼囧彿鐩稿悓鐨勮懼囨槸鍚岀被璁懼(浣跨敤鍚屼竴涓椹卞姩紼嬪簭)銆傝繖浜涜懼囦腑錛屾湁浜涜懼囨槸瀵瑰疄闄呭瓨鍦ㄧ殑鐗╃悊紜浠剁殑鎶借薄錛岃屾湁浜涜懼囧垯鏄鍐呮牳鑷韜鎻愪緵鐨勫姛鑳(涓嶄緷璧栦簬鐗瑰畾鐨勭墿鐞嗙‖浠訛紝鍙堢О涓"鉶氭嫙璁懼")銆傛瘡涓璁懼囧湪 /dev 鐩褰曚笅閮芥湁涓涓瀵瑰簲鐨勬枃浠(鑺傜偣)銆傚彲浠ラ氳繃 cat /proc/devices 鍛戒護鏌ョ湅褰撳墠宸茬粡鍔犺澆鐨勮懼囬┍鍔ㄧ▼搴忕殑涓昏懼囧彿銆傚唴鏍歌兘澶熻瘑鍒鐨勬墍鏈夎懼囬兘璁板綍鍦ㄥ師鐮佹爲涓嬬殑 Documentation/devices.txt 鏂囦歡涓銆傚湪 /dev 鐩褰曚笅闄や簡瀛楃﹁懼囧拰鍧楄懼囪妭鐐逛箣澶栬繕閫氬父榪樹細瀛樺湪錛欶IFO綆¢亾銆丼ocket銆佽蔣/紜榪炴帴銆佺洰褰曘傝繖浜涗笢瑗挎病鏈変富/嬈¤懼囧彿銆
浜嗚В榪欎簺璁懼囩殑鏈鍩烘湰瑕佹眰灝辨槸瀵 姣忎釜璁懼囨枃浠剁殑鍚涔変簡濡傛寚鎺岋紝涓嬮潰灝卞尰鍒楄〃鐨勫艦寮忓垪鍑哄父瑙佺殑璁懼囨枃浠朵互鍙婄浉搴旂殑鍚涔(姣旇緝鍋忓兓鐨勫氨鐪佺暐浜)錛
----------------------------------------------------------------------
涓昏懼囧彿 璁懼囩被鍨
嬈¤懼囧彿=鏂囦歡鍚 綆瑕佽存槑
----------------------------------------------------------------------
0 鏈鍛藉悕璁懼(渚嬪傦細鎸傝澆鐨勯潪璁懼)
0 = 鏈絀鴻懼囧彿淇濈暀
1 char 鍐呭瓨璁懼
1 = /dev/mem 鐩存帴瀛樺彇鐗╃悊鍐呭瓨
2 = /dev/kmem 瀛樺彇緇忚繃鍐呮牳鉶氭嫙涔嬪悗鐨勫唴瀛
3 = /dev/null 絀鴻懼囥備換浣曞啓鍏ラ兘灝嗚鐩存帴涓㈠純錛屼換浣曡誨彇閮藉皢寰楀埌EOF銆
4 = /dev/port 瀛樺彇 I/O 絝鍙
5 = /dev/zero 闆跺瓧鑺傛簮錛屽彧鑳借誨彇鍒版棤闄愬氱殑闆跺瓧鑺傘
7 = /dev/full 婊¤懼囥備換浣曞啓鍏ラ兘灝嗗け璐ワ紝騫舵妸errno璁句負ENOSPC浠ヨ〃紺烘病鏈夊墿浣欑┖闂淬
8 = /dev/random 闅忔満鏁板彂鐢熷櫒銆傚畬鍏ㄧ敱鐢ㄦ埛鐨勮緭鍏ユ潵浜х敓闅忔満鏁般
濡傛灉鐢ㄦ埛鍋滄㈡墍鏈夊姩浣滐紝鍒欏仠姝浜х敓鏂扮殑闅忔満鏁般
9 = /dev/urandom 鏇村揩錛屼絾鏄涓嶅熷畨鍏ㄧ殑闅忔満鏁板彂鐢熷櫒銆傚敖鍙鑳界敱鐢ㄦ埛鐨勮緭鍏ユ潵浜х敓闅忔満鏁幫紝
濡傛灉鐢ㄦ埛鍋滄㈡墍鏈夊姩浣滐紝鍒欐妸宸茬粡浜х敓鐨勯殢鏈烘暟鍋氫負縐嶅瓙鏉ヤ駭鐢熸柊鐨勯殢鏈烘暟銆
10 = /dev/aio 寮傛 I/O 閫氱煡鎺ュ彛
11 = /dev/kmsg 浠諱綍瀵硅ユ枃浠剁殑鍐欏叆閮藉皢浣滀負 printk 鐨勮緭鍑
1 block RAM disk
0 = /dev/ram0 絎1涓 RAM disk (initrd鍙鑳戒嬌鐢╮am0)
1 = /dev/ram1 絎2涓 RAM disk
...
200 = /dev/ram200 絎200涓 RAM disk
4 char TTY(緇堢)璁懼
0 = /dev/tty0 褰撳墠鉶氭嫙鎺у埗鍙
1 = /dev/tty1 絎1涓鉶氭嫙鎺у埗鍙
...
63 = /dev/tty63 絎63涓鉶氭嫙鎺у埗鍙
4 block 濡傛灉鏍規枃浠剁郴緇熶互鏄浠ュ彧璇繪柟寮忔寕杞界殑錛岄偅涔堝氨涓嶅彲鑳藉壋寤虹湡姝g殑璁懼囪妭鐐癸紝
姝ゆ椂灝變嬌鐢ㄨヨ懼囦綔涓哄姩鎬佸垎閰嶇殑涓(major)璁懼囩殑鍒鍚
0 = /dev/root
5 char 鍏朵粬 TTY 璁懼
0 = /dev/tty 褰撳墠 TTY 璁懼
1 = /dev/console 緋葷粺鎺у埗鍙
2 = /dev/ptmx 鎵鏈 PTY master 鐨勫嶇敤鍣
7 char 鉶氭嫙鎺у埗鍙版崟鎹夎懼(榪欎簺璁懼囨棦鍏佽歌諱篃鍏佽稿啓)
0 = /dev/vcs 褰撳墠鉶氭嫙鎺у埗鍙(vc)鐨勬枃鏈鍐呭
1 = /dev/vcs1 tty1 鐨勬枃鏈鍐呭
...
63 = /dev/vcs63 tty63 鐨勬枃鏈鍐呭
128 = /dev/vcsa 褰撳墠鉶氭嫙鎺у埗鍙(vc)鐨勬枃鏈/灞炴у唴瀹
129 = /dev/vcsa1 tty1 鐨勬枃鏈/灞炴у唴瀹
...
191 = /dev/vcsa63 tty63 鐨勬枃鏈/灞炴у唴瀹
7 block 鍥炵幆璁懼(鐢ㄤ竴涓鏅閫氱殑紓佺洏鏂囦歡鏉ユā鎷熶竴涓鍧楄懼)
瀵瑰洖鐜璁懼囩殑緇戝畾鐢 mount(8) 鎴 losetup(8) 澶勭悊
0 = /dev/loop0 絎1涓鍥炵幆璁懼
1 = /dev/loop1 絎2涓鍥炵幆璁懼
...
8 block SCSI 紓佺洏(0-15)
0 = /dev/sda 絎1涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
16 = /dev/sdb 絎2涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
32 = /dev/sdc 絎3涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
...
240 = /dev/sdp 絎16涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
鍒嗗尯琛ㄧず鏂規硶濡備笅(浠ョ3涓 SCSI 紓佺洏涓轟緥)
33 = /dev/sdc1 絎1涓鍒嗗尯
34 = /dev/sdc2 絎2涓鍒嗗尯
...
47 = /dev/sdc15 絎15涓鍒嗗尯
瀵逛簬Linux/i386鏉ヨ達紝鍒嗗尯1-4鏄涓誨垎鍖猴紝5-15鏄閫昏緫鍒嗗尯銆
9 block Metadisk(RAID)璁懼
0 = /dev/md0 絎1緇 metadisk
1 = /dev/md1 絎2緇 metadisk
...
metadisk 椹卞姩鐢ㄤ簬灝嗗悓涓涓鏂囦歡緋葷粺鍒嗗壊鍒板氫釜鐗╃悊紓佺洏涓娿
10 char 闈炰覆鍙i紶鏍囷紝鍚勭嶆潅欏硅懼囧拰鐗規
1 = /dev/psaux PS/2榧犳爣
131 = /dev/temperature 鏈哄櫒鍐呴儴娓╁害
134 = /dev/apm_bios APM(楂樼駭鐢墊簮綆$悊) BIOS
135 = /dev/rtc 瀹炴椂鏃墮挓(Real Time Clock)
144 = /dev/nvram 闈炴槗澶遍厤緗 RAM
162 = /dev/smbus 緋葷粺綆$悊鎬葷嚎(System Management Bus)
164 = /dev/ipmo Intel鐨勬櫤鑳藉鉤鍙扮$悊(Intelligent Platform Management)鎺ュ彛
173 = /dev/ipmikcs 鏅鴻兘騫沖彴綆$悊(Intelligent Platform Management)鎺ュ彛
175 = /dev/agpgart AGP鍥懼艦鍦板潃閲嶆槧灝勮〃(Graphics Address Remapping Table)
182 = /dev/perfctr 鎬ц兘鐩戣嗚℃暟鍣
183 = /dev/hwrng 閫氱敤紜浠墮殢鏈烘暟鍙戠敓鍣
184 = /dev/cpu/microcode CPU寰浠g爜鏇存柊鎺ュ彛
186 = /dev/atomicps 榪涚▼鐘舵佹暟鎹鐨勫師瀛愬揩鐓
188 = /dev/smbusbios SMBus(緋葷粺綆$悊鎬葷嚎) BIOS
200 = /dev/net/tun TAP/TUN 緗戠粶璁懼(TAP/TUN浠ヨ蔣浠剁殑鏂瑰紡瀹炵幇浜嗙綉緇滆懼)
TAP妯℃嫙浜嗕互澶緗戝撫(絎浜屽眰)錛孴UN妯℃嫙浜咺P鍖(絎涓夊眰)銆
202 = /dev/emd/ctl 澧炲己鍨 Metadisk RAID (EMD) 鎺у埗鍣
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 鐢ㄦ埛灞傝緭鍏ヨ懼囬┍鍔ㄦ敮鎸
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(鐢ㄦ埛絀洪棿鐨勮櫄鎷熸枃浠剁郴緇)
231 = /dev/snapshot 緋葷粺鍐呭瓨蹇鐓
232 = /dev/kvm 鍩轟簬鍐呮牳鐨勮櫄鏋勬満(鍩轟簬AMD SVM鍜孖ntel VT紜浠惰櫄鎷熸妧鏈)
11 block SCSI CD-ROM 璁懼
0 = /dev/scd0 絎1涓 SCSI CD-ROM
1 = /dev/scd1 絎2涓 SCSI CD-ROM
...
13 char 鏍稿績杈撳叆璁懼
32 = /dev/input/mouse0 絎1涓榧犳爣
33 = /dev/input/mouse1 絎2涓榧犳爣
...
62 = /dev/input/mouse30 絎31涓榧犳爣
63 = /dev/input/mice 鎵鏈夐紶鏍囩殑緇熶竴
64 = /dev/input/event0 絎1涓浜嬩歡闃熷垪
65 = /dev/input/event1 絎2涓浜嬩歡闃熷垪
...
95 = /dev/input/event1 絎32涓浜嬩歡闃熷垪
21 char 閫氱敤 SCSI 璁懼(閫氬父鏄瘲CSI鍏夐┍)
0 = /dev/sg0 絎1涓閫氱敤 SCSI 璁懼
1 = /dev/sg1 絎2涓閫氱敤 SCSI 璁懼
...
29 char 閫氱敤甯х紦鍐(frame buffer)璁懼
0 = /dev/fb0 絎1涓甯х紦鍐茶懼
1 = /dev/fb1 絎2涓甯х紦鍐茶懼
...
31 = /dev/fb31 絎32涓甯х紦鍐茶懼
30 char iBCS-2 鍏煎硅懼
0 = /dev/socksys 濂楁帴瀛楄塊棶鎺ュ彛
1 = /dev/spx SVR3 鏈鍦 X 鎺ュ彛
32 = /dev/inet/ip 緗戠粶璁塊棶鎺ュ彛
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
姝ゅ栵紝iBCS-2 榪橀渶瑕佷笅闈㈢殑榪炴帴蹇呴』瀛樺湪
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null
36 char Netlink 鏀鎸
0 = /dev/route 璺鐢, 璁懼囨洿鏂, kernel to user
3 = /dev/fwmonitor Firewall packet 澶嶅埗
59 char sf 闃茬伀澧欐ā鍧
0 = /dev/firewall 涓 sf 鍐呮牳妯″潡閫氫俊
65 block SCSI 紓佺洏(16-31)
0 = /dev/sdq 絎17涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
16 = /dev/sdr 絎18涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
32 = /dev/sds 絎19涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
...
240 = /dev/sdaf 絎32涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
66 block SCSI 紓佺洏(32-47)
0 = /dev/sdag 絎33涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
16 = /dev/sdah 絎34涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
32 = /dev/sdai 絎35涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
...
240 = /dev/sdav 絎48涓 SCSI 紓佺洏(鏁翠釜紓佺洏)
89 char I2C 鎬葷嚎鎺ュ彛
0 = /dev/i2c-0 絎1涓 I2C 閫傞厤鍣
1 = /dev/i2c-1 絎2涓 I2C 閫傞厤鍣
...
98 block 鐢ㄦ埛妯″紡涓嬬殑鉶氭嫙鍧楄懼(鍒嗗尯澶勭悊鏂瑰紡涓 SCSI 紓佺洏鐩稿悓)
0 = /dev/ubda 絎1涓鐢ㄦ埛妯″紡鍧楄懼
16 = /dev/udbb 絎2涓鐢ㄦ埛妯″紡鍧楄懼
...
103 block 瀹¤(Audit)璁懼
0 = /dev/audit 瀹¤(Audit)璁懼
128-135 char Unix98 PTY master
榪欎簺璁懼囦笉搴斿綋瀛樺湪璁懼囪妭鐐癸紝鑰屽簲褰撻氳繃 /dev/ptmx 鎺ュ彛璁塊棶銆
136-143 char Unix98 PTY slave
榪欎簺璁懼囪妭鐐規槸鑷鍔ㄧ敓鎴愮殑(浼存湁閫傚綋鐨勬潈闄愬拰妯″紡)錛屼笉鑳芥墜鍔ㄥ壋寤恆
鏂規硶鏄閫氳繃浣跨敤閫傚綋鐨 mount 閫夐」(閫氬父鏄錛歮ode=0620,gid=<"tty"緇勭殑gid>)
灝 devpts 鏂囦歡緋葷粺鎸傝澆鍒 /dev/pts 鐩褰曞嵆鍙銆
0 = /dev/pts/0 絎1涓 Unix98 PTY slave
1 = /dev/pts/1 絎2涓 Unix98 PTY slave
...
153 block Enhanced Metadisk RAID (EMD) 瀛樺偍鍗曞厓(鍒嗗尯澶勭悊鏂瑰紡涓 SCSI 紓佺洏鐩稿悓)
0 = /dev/emd/0 絎1涓瀛樺偍鍗曞厓
1 = /dev/emd/0p1 絎1涓瀛樺偍鍗曞厓鐨勭1涓鍒嗗尯
2 = /dev/emd/0p2 絎1涓瀛樺偍鍗曞厓鐨勭2涓鍒嗗尯
...
15 = /dev/emd/0p15 絎1涓瀛樺偍鍗曞厓鐨勭15涓鍒嗗尯
16 = /dev/emd/1 絎2涓瀛樺偍鍗曞厓
32 = /dev/emd/2 絎3涓瀛樺偍鍗曞厓
...
240 = /dev/emd/15 絎16涓瀛樺偍鍗曞厓
180 char USB 瀛楃﹁懼
96 = /dev/usb/hiddev0 絎1涓猆SB浜烘満鐣岄潰璁懼(榧犳爣/閿鐩/娓告垙鏉/鎵嬪啓鐗堢瓑浜烘搷浣滆$畻鏈虹殑璁懼)
...
111 = /dev/usb/hiddev15 絎16涓猆SB浜烘満鐣岄潰璁懼
180 block USB 鍧楄懼(U鐩樹箣綾)
0 = /dev/uba 絎1涓猆SB 鍧楄懼
8 = /dev/ubb 絎2涓猆SB 鍧楄懼
16 = /dev/ubc 絎3涓猆SB 鍧楄懼
...
192 char 鍐呮牳 profiling 鎺ュ彛
0 = /dev/profile Profiling 鎺у埗璁懼
1 = /dev/profile0 CPU 0 鐨 Profiling 璁懼
2 = /dev/profile1 CPU 1 鐨 Profiling 璁懼
...
193 char 鍐呮牳浜嬩歡璺熻釜鎺ュ彛
0 = /dev/trace 璺熻釜鎺у埗璁懼
1 = /dev/trace0 CPU 0 鐨勮窡韙璁懼
2 = /dev/trace1 CPU 1 鐨勮窡韙璁懼
...
195 char Nvidia 鍥懼艦璁懼(姣斿傛樉鍗)
0 = /dev/nvidia0 絎1涓 Nvidia 鍗
1 = /dev/nvidia1 絎2涓 Nvidia 鍗
...
255 = /dev/nvidiactl Nvidia 鍗℃帶鍒惰懼
202 char 鐗瑰畾浜嶤PU妯″紡鐨勫瘎瀛樺櫒(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 鐨 MSRs
1 = /dev/cpu/1/msr CPU 1 鐨 MSRs
...
203 char CPU CPUID 淇℃伅
0 = /dev/cpu/0/cpuid CPU 0 鐨 CPUID
1 = /dev/cpu/1/cpuid CPU 1 鐨 CPUID
...
===================================================================
榪欓儴鍒嗚︾粏璇存槑涓浜涘簲璇ユ垨鍙鑳藉瓨鍦ㄤ簬 /dev 鐩褰曚箣澶栫殑鏂囦歡銆
閾炬帴鏈濂戒嬌鐢ㄤ笌榪欓噷瀹屽叏鐩稿悓鐨勬牸寮(緇濆硅礬寰勬垨鐩稿硅礬寰)銆
絀剁珶鏄浣跨敤紜閾炬帴(hard)榪樻槸杞榪炴帴(symbolic)鍙栧喅浜庝笉鍚岀殑璁懼囥
蹇呴』鐨勯摼鎺
蹇呴』鍦ㄦ墍鏈夌殑緋葷粺涓婇兘瀛樺湪榪欎簺榪炴帴錛
閾炬帴 鐩鏍 閾炬帴綾誨瀷 綆瑕佽存槑
/dev/fd /proc/self/fd symbolic 鏂囦歡鎻忚堪搴
/dev/stdin fd/0 symbolic 鏍囧噯杈撳叆鏂囦歡鎻忚堪搴
/dev/stdout fd/1 symbolic 鏍囧噯杈撳嚭鏂囦歡鎻忚堪絎
/dev/stderr fd/2 symbolic 鏍囧噯閿欒鏂囦歡鎻忚堪絎
/dev/nfsd socksys symbolic 浠呬負 iBCS-2 鎵蹇呴』
/dev/X0R null symbolic 浠呬負 iBCS-2 鎵蹇呴』
[娉ㄦ剰] /dev/X0R 鏄 <瀛楁瘝 X>-<鏁板瓧 0>-<瀛楁瘝 R>
鎺ㄨ崘鐨勯摼鎺
鎺ㄨ崘鍦ㄦ墍鏈夌殑緋葷粺涓婇兘瀛樺湪榪欎簺榪炴帴錛
閾炬帴 鐩鏍 閾炬帴綾誨瀷 綆瑕佽存槑
/dev/core /proc/kcore symbolic 涓轟簡鍚戝悗鍏煎
/dev/ramdisk ram0 symbolic 涓轟簡鍚戝悗鍏煎
/dev/ftape qft0 symbolic 涓轟簡鍚戝悗鍏煎
/dev/bttv0 video0 symbolic 涓轟簡鍚戝悗鍏煎
/dev/radio radio0 symbolic 涓轟簡鍚戝悗鍏煎
/dev/i2o* /dev/i2o/* symbolic 涓轟簡鍚戝悗鍏煎
/dev/scd? sr? hard 浠f浛 SCSI CD-ROM 鐨勫悕瀛
鏈鍦板畾涔夌殑閾炬帴
涓嬮潰鐨勯摼鎺ュ緢鍙鑳介渶瑕佹牴鎹鏈哄櫒鐨勫疄闄呯‖浠墮厤緗鍒涘緩鍏朵腑鐨勪竴閮ㄥ垎鐢氳嚦鍏ㄩ儴銆
榪欎簺閾炬帴浠呬粎鏄涓轟簡榪庡悎涔犳儻鐢ㄦ硶錛屽畠浠鏃㈤潪蹇呴』涔熼潪鎺ㄨ崘銆
閾炬帴 鐩鏍 閾炬帴綾誨瀷 綆瑕佽存槑
/dev/mouse mouse port symbolic 褰撳墠榧犳爣
/dev/tape tape device symbolic 褰撳墠紓佸甫
/dev/cdrom CD-ROM device symbolic 褰撳墠CD-ROM
/dev/cdwriter CD-writer symbolic 褰撳墠CD-writer
/dev/scanner scanner symbolic 褰撳墠鎵鎻忎華
/dev/modem modem port symbolic 褰撳墠璋冨埗瑙h皟鍣
/dev/root root device symbolic 褰撳墠鏍規枃浠剁郴緇熸墍鍦ㄨ懼
/dev/swap swap device symbolic 褰撳墠swap鎵鍦ㄨ懼
/dev/modem 涓嶅簲褰撶敤浜庤兘澶熷悓鏃舵敮鎸佸懠鍏ュ拰鍛煎嚭鐨刴odem錛屽洜涓哄線寰浼氬艱嚧閿佹枃浠墮棶棰樸
濡傛灉瀛樺湪 /dev/modem 錛岄偅涔堝畠搴斿綋鎸囧悜涓涓鎮板綋鐨勪富 TTY 璁懼囥
瀵逛簬SCSI璁懼囷紝
/dev/tape 鍜 /dev/cdrom 搴旇ュ垎鍒鎸囧悜"cooked"璁懼 /dev/st* 鍜 /dev/sr* 錛
鑰 /dev/cdwriter 鍜 /dev/scanner 搴斿綋鍒嗗埆鎸囧悜鎮板綋鐨 /dev/sg* 銆
/dev/mouse 鍙浠ユ寚鍚戜竴涓涓諱覆琛 TTY 璁懼囥佷竴涓紜浠墮紶鏍囥
鎴栬呬竴涓瀵瑰簲榧犳爣椹卞姩紼嬪簭鐨勫楁帴瀛(渚嬪 /dev/gpmdata)銆
濂楁帴瀛楀拰綆¢亾
鎸佷箙濂楁帴瀛楀拰鍛藉悕綆¢亾鍙浠ュ瓨鍦ㄤ簬 /dev 涓銆傚父瑙佺殑鏈夛細
/dev/printer socket lpd 鏈鍦板楁帴瀛
/dev/log socket syslog 鏈鍦板楁帴瀛
/dev/gpmdata socket gpm 榧犳爣澶氳礬澶嶇敤鍣(multiplexer)
/dev/gpmctl socket (LFS-LiveCD涓鍑虹幇)
/dev/initctl fifo pipe init 鐩戝惉瀹冨苟浠庝腑鑾峰彇淇℃伅(鐢ㄦ埛涓 init 榪涚▼浜や簰鐨勯氶亾)
鎸傝澆鐐
浠ヤ笅鍚嶇О琚淇濈暀鐢ㄤ簬鎸傝澆鐗規畩鐨勬枃浠剁郴緇熴
榪欎簺鐗規畩鐨勬枃浠剁郴緇熷彧鎻愪緵鍐呮牳鐣岄潰鑰屼笉鎻愪緵鏍囧噯鐨勮懼囪妭鐐廣
/dev/pts devpts PTY slave 鏂囦歡緋葷粺
/dev/shm tmpfs 鎻愪緵瀵 POSIX 鍏變韓鍐呭瓨鐨勭洿鎺ヨ塊棶
===================================================================
緇堢(鎴朤TY)璁懼囨槸涓縐嶇壒孌婄殑瀛楃﹁懼囥傜粓絝璁懼囨槸鍙浠ュ湪浼氳瘽涓鎵婕旀帶鍒剁粓絝瑙掕壊鐨勪換浣曡懼囷紝
鍖呮嫭錛氳櫄鎷熸帶鍒跺彴銆佷覆琛屾帴鍙(宸插簾寮)銆佷吉緇堢(PTY)銆
鎵鏈夌殑緇堢璁懼囧叡浜涓涓閫氱敤鐨勫姛鑳介泦鍚堬細line discipline錛
瀹冩棦鍖呭惈閫氱敤鐨勭粓絝 line discipline 涔熷寘鍚玈LIP鍜孭PP妯″紡銆
鎵鏈夌殑緇堢璁懼囩殑鍛藉悕閮藉緢鐩鎬技銆傝繖閮ㄥ垎鍐呭瑰皢瑙i噴鍛藉悕瑙勫垯鍜屽悇縐嶇被鍨嬬殑TTY(緇堢)鐨勪嬌鐢ㄣ
闇瑕佹敞鎰忕殑鏄榪欎簺鍛藉悕涔犳儻鍖呭惈浜嗗嚑涓鍘嗗彶閬楃暀鍖呰⒈銆
鍏朵腑鐨勪竴浜涙槸Linux鎵鐗規湁鐨勶紝鍙︿竴浜涘垯鏄緇ф壙鑷鍏朵粬緋葷粺錛
榪樻湁涓浜涘弽鏄犱簡Linux鍦ㄦ垚闀胯繃紼嬩腑鎶涘純浜嗗師鏉ュ熺敤鑷鍏跺畠緋葷粺鐨勪竴浜涗範鎯銆
浜曞彿(#)鍦ㄨ懼囧悕閲岃〃紺轟竴涓鏃犲墠瀵奸浂鐨勫嶮榪涘埗鏁般
鉶氭嫙鎺у埗鍙(Virtual console)鍜屾帶鍒跺彴璁懼(console device)
鉶氭嫙鎺у埗鍙版槸鍦ㄧ郴緇熻嗛戠洃瑙嗗櫒涓婂叏灞忔樉紺虹殑緇堢銆
鉶氭嫙鎺у埗鍙拌鍛藉悕涓虹紪鍙蜂粠 /dev/tty1 寮濮嬬殑 /dev/tty# 銆
/dev/tty0 鏄褰撳墠鉶氭嫙鎺у埗鍙般
/dev/tty0 鐢ㄤ簬鍦ㄤ笉鑳戒嬌鐢ㄥ撫緙撳啿璁懼(/dev/fb*)鐨勬満鍣ㄤ笂瀛樺彇緋葷粺瑙嗛戝崱錛
娉ㄦ剰錛屼笉瑕佸皢 /dev/console 鐢ㄤ簬姝ょ洰鐨勩
/dev/console 鐢卞唴鏍哥$悊錛岀郴緇熸秷鎮灝嗚鍙戦佸埌榪欓噷銆
鍗曠敤鎴鋒ā寮忎笅蹇呴』鍏佽 login 浣跨敤 /dev/console 銆
涓茶屾帴鍙(宸插簾寮)
榪欓噷鎵璇寸殑"涓茶屾帴鍙"鏄鎸 RS-232 涓茶屾帴鍙e拰浠諱綍妯℃嫙榪欑嶆帴鍙g殑璁懼囷紝
涓嶇℃槸鍦ㄧ‖浠(渚嬪傝皟鍒惰В璋冨櫒)榪樻槸鍦ㄨ蔣浠(渚嬪侷SDN椹卞姩)涓妯℃嫙銆
鍦╨inux涓鐨勬瘡涓涓涓茶屾帴鍙i兘鏈変袱涓璁懼囧悕錛
涓昏懼囨垨鍛煎叆(callin)璁懼囥佷氦鏇胯懼囨垨鍛煎嚭(callout)璁懼囥
璁懼囩被鍨嬩箣闂翠嬌鐢ㄥ瓧姣嶇殑澶у皬鍐欒繘琛屽尯鍒嗐
姣斿傦紝瀵逛簬浠繪剰瀛楁瘝X錛"tty"璁懼囧悕涓 /dev/ttyX# 錛岃"cu"璁懼囧悕鍒欎負 /dev/cux# 銆
鐢變簬鍘嗗彶鍘熷洜錛/dev/ttyS# 鍜 /dev/ttyC# 鍒嗗埆絳変環浜 /dev/cua# 鍜 /dev/cub# 銆
鍚嶇О /dev/ttyQ# 鍜 /dev/cuq# 琚淇濈暀涓烘湰鍦頒嬌鐢ㄣ
浼緇堢(PTY)
浼緇堢鐢ㄤ簬鍒涘緩鐧婚檰浼氳瘽鎴栨彁渚涘叾瀹冨姛鑳斤紝
姣斿傞氳繃 TTY line discipline (鍖呮嫭SLIP鎴栬匬PP鍔熻兘)鏉ュ勭悊浠繪剰鐨勬暟鎹鐢熸垚銆
姣忎竴涓 PTY 閮芥湁涓涓猰aster絝鍜屼竴涓猻lave絝銆傛寜鐓 System V/Unix98 鐨 PTY 鍛藉悕鏂規堬紝
鎵鏈塵aster絝鍏變韓鍚屼竴涓 /dev/ptmx 璁懼囪妭鐐(鎵撳紑瀹冨唴鏍稿皢鑷鍔ㄧ粰鍑轟竴涓鏈鍒嗛厤鐨凱TY)錛
鎵鏈塻lave絝閮戒綅浜 /dev/pts 鐩褰曚笅錛屽悕涓 /dev/pts/# (鍐呮牳浼氭牴鎹闇瑕佽嚜鍔ㄧ敓鎴愬拰鍒犻櫎瀹冧滑)銆
涓鏃master絝琚鎵撳紑錛岀浉搴旂殑slave璁懼囧氨鍙浠ユ寜鐓т笌 TTY 璁懼囧畬鍏ㄧ浉鍚岀殑鏂瑰紡浣跨敤銆
master璁懼囦笌slave璁懼囦箣闂撮氳繃鍐呮牳榪涜岃繛鎺ワ紝絳変環浜庢嫢鏈 TTY 鍔熻兘鐨勫弻鍚戠¢亾(pipe)銆
===============================
浣犲彲鑳戒細寰堝囨錛屼負浠涔堟病鏈 /dev/hda 榪欐牱鐨勮懼囷紝闅鵑亾涓嶅父鐢ㄤ箞錛
鍘熷洜鍦ㄤ簬浠 2.6.19 寮濮嬶紝鍐呮牳寮曞叆浜嗘柊鐨凙TA椹卞姩錛屽皢SATA/IDE紜鐩樺悓鎰忎嬌鐢 /dev/sd? 鏉ヨ〃紺轟簡錛屾墍浠 /dev/hd? 灝辨病鏈夊瓨鍦ㄧ殑蹇呰佷簡
Ⅲ linux的相關問題...
1 test -d
文件測試
test命令也可以用於檢查文件的狀態
-e 文件存在則為真
-r 文件存在並且可讀則為真
-w 文件存在並且可寫則為真
-x 文件存在並且可執行則為真
-s 文件存在並且至少有一個字元則為真
-d 文件存在並且為目錄則為真
-f 文件存在並且為普通文件則為真
-c 文件存在並且為字元型文件則為真
-b 文件存在並且為塊特殊文件則為真
-a並且 -o或者 !非
2 能為myfile1更新時間的命令____touch
3 linux中的歸檔解檔命令____tar
4 編譯是優先順序的取值范圍是:______,默認的優先順序是____
中進程的優先極是由進程的nice值決定的,值越小,優先順序越高
5 linux中標准設備文件有哪些.分別用什麼符號表示.
----------------------------------------------------------------------
主設備號 設備類型
次設備號=文件名 簡要說明
----------------------------------------------------------------------
0 未命名設備(例如:掛載的非設備)
0 = 未空設備號保留
1 char 內存設備
1 = /dev/mem 直接存取物理內存
2 = /dev/kmem 存取經過內核虛擬之後的內存
3 = /dev/null 空設備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。
4 = /dev/port 存取 I/O 埠
5 = /dev/zero 零位元組源,只能讀取到無限多的零位元組。
7 = /dev/full 滿設備。任何寫入都將失敗,並把errno設為ENOSPC以表示沒有剩餘空間。
8 = /dev/random 隨機數發生器。完全由用戶的輸入來產生隨機數。
如果用戶停止所有動作,則停止產生新的隨機數。
9 = /dev/urandom 更快,但是不夠安全的隨機數發生器。盡可能由用戶的輸入來產生隨機數,
如果用戶停止所有動作,則把已經產生的隨機數做為種子來產生新的隨機數。
10 = /dev/aio 非同步 I/O 通知介面
11 = /dev/kmsg 任何對該文件的寫入都將作為 printk 的輸出
1 block RAM disk
0 = /dev/ram0 第1個 RAM disk (initrd只能使用ram0)
1 = /dev/ram1 第2個 RAM disk
...
200 = /dev/ram200 第200個 RAM disk
4 char TTY(終端)設備
0 = /dev/tty0 當前虛擬控制台
1 = /dev/tty1 第1個虛擬控制台
...
63 = /dev/tty63 第63個虛擬控制台
4 block 如果根文件系統以是以只讀方式掛載的,那麼就不可能創建真正的設備節點,
此時就使用該設備作為動態分配的主(major)設備的別名
0 = /dev/root
5 char 其他 TTY 設備
0 = /dev/tty 當前 TTY 設備
1 = /dev/console 系統控制台
2 = /dev/ptmx 所有 PTY master 的復用器
7 char 虛擬控制台捕捉設備(這些設備既允許讀也允許寫)
0 = /dev/vcs 當前虛擬控制台(vc)的文本內容
1 = /dev/vcs1 tty1 的文本內容
...
63 = /dev/vcs63 tty63 的文本內容
128 = /dev/vcsa 當前虛擬控制台(vc)的文本/屬性內容
129 = /dev/vcsa1 tty1 的文本/屬性內容
...
191 = /dev/vcsa63 tty63 的文本/屬性內容代碼:
7 block 回環設備(用一個普通的磁碟文件來模擬一個塊設備)
對回環設備的綁定由 mount(8) 或 losetup(8) 處理
0 = /dev/loop0 第1個回環設備
1 = /dev/loop1 第2個回環設備
...
8 block SCSI 磁碟(0-15)
0 = /dev/sda 第1個 SCSI 磁碟(整個磁碟)
16 = /dev/sdb 第2個 SCSI 磁碟(整個磁碟)
32 = /dev/sdc 第3個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdp 第16個 SCSI 磁碟(整個磁碟)
分區表示方法如下(以第3個 SCSI 磁碟為例)
33 = /dev/sdc1 第1個分區
34 = /dev/sdc2 第2個分區
...
47 = /dev/sdc15 第15個分區
對於Linux/i386來說,分區1-4是主分區,5-15是邏輯分區。
9 block Metadisk(RAID)設備
0 = /dev/md0 第1組 metadisk
1 = /dev/md1 第2組 metadisk
...
metadisk 驅動用於將同一個文件系統分割到多個物理磁碟上。
10 char 非串口滑鼠,各種雜項設備和特性
1 = /dev/psaux PS/2滑鼠
131 = /dev/temperature 機器內部溫度
134 = /dev/apm_bios APM(高級電源管理) BIOS
135 = /dev/rtc 實時時鍾(Real Time Clock)
144 = /dev/nvram 非易失配置 RAM
162 = /dev/smbus 系統管理匯流排(System Management Bus)
164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)介面
173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)介面
175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)
182 = /dev/perfctr 性能監視計數器
183 = /dev/hwrng 通用硬體隨機數發生器
184 = /dev/cpu/microcode CPU微代碼更新介面
186 = /dev/atomicps 進程狀態數據的原子快照
188 = /dev/smbusbios SMBus(系統管理匯流排) BIOS
200 = /dev/net/tun TAP/TUN 網路設備(TAP/TUN以軟體的方式實現了網路設備)
TAP模擬了乙太網幀(第二層),TUN模擬了IP包(第三層)。
202 = /dev/emd/ctl 增強型 Metadisk RAID (EMD) 控制器
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 用戶層輸入設備驅動支持
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(用戶空間的虛擬文件系統)
231 = /dev/snapshot 系統內存快照
232 = /dev/kvm 基於內核的虛構機(基於AMD SVM和Intel VT硬體虛擬技術)
11 block SCSI CD-ROM 設備
0 = /dev/scd0 第1個 SCSI CD-ROM
1 = /dev/scd1 第2個 SCSI CD-ROM
...代碼:
13 char 核心輸入設備
32 = /dev/input/mouse0 第1個滑鼠
33 = /dev/input/mouse1 第2個滑鼠
...
62 = /dev/input/mouse30 第31個滑鼠
63 = /dev/input/mice 所有滑鼠的統一
64 = /dev/input/event0 第1個事件隊列
65 = /dev/input/event1 第2個事件隊列
...
95 = /dev/input/event1 第32個事件隊列
21 char 通用 SCSI 設備(通常是SCSI光碟機)
0 = /dev/sg0 第1個通用 SCSI 設備
1 = /dev/sg1 第2個通用 SCSI 設備
...
29 char 通用幀緩沖(frame buffer)設備
0 = /dev/fb0 第1個幀緩沖設備
1 = /dev/fb1 第2個幀緩沖設備
...
31 = /dev/fb31 第32個幀緩沖設備
30 char iBCS-2 兼容設備
0 = /dev/socksys 套接字訪問介面
1 = /dev/spx SVR3 本地 X 介面
32 = /dev/inet/ip 網路訪問介面
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
此外,iBCS-2 還需要下面的連接必須存在
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null代碼:
36 char Netlink 支持
0 = /dev/route 路由, 設備更新, kernel to user
3 = /dev/fwmonitor Firewall packet 復制
59 char sf 防火牆模塊
0 = /dev/firewall 與 sf 內核模塊通信
65 block SCSI 磁碟(16-31)
0 = /dev/sdq 第17個 SCSI 磁碟(整個磁碟)
16 = /dev/sdr 第18個 SCSI 磁碟(整個磁碟)
32 = /dev/sds 第19個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdaf 第32個 SCSI 磁碟(整個磁碟)
66 block SCSI 磁碟(32-47)
0 = /dev/sdag 第33個 SCSI 磁碟(整個磁碟)
16 = /dev/sdah 第34個 SCSI 磁碟(整個磁碟)
32 = /dev/sdai 第35個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdav 第48個 SCSI 磁碟(整個磁碟)
89 char I2C 匯流排介面
0 = /dev/i2c-0 第1個 I2C 適配器
1 = /dev/i2c-1 第2個 I2C 適配器
...
98 block 用戶模式下的虛擬塊設備(分區處理方式與 SCSI 磁碟相同)
0 = /dev/ubda 第1個用戶模式塊設備
16 = /dev/udbb 第2個用戶模式塊設備
...
103 block 審計(Audit)設備
0 = /dev/audit 審計(Audit)設備
128-135 char Unix98 PTY master
這些設備不應當存在設備節點,而應當通過 /dev/ptmx 介面訪問。
136-143 char Unix98 PTY slave
這些設備節點是自動生成的(伴有適當的許可權和模式),不能手動創建。
方法是通過使用適當的 mount 選項(通常是:mode=0620,gid=<"tty"組的gid>)
將 devpts 文件系統掛載到 /dev/pts 目錄即可。
0 = /dev/pts/0 第1個 Unix98 PTY slave
1 = /dev/pts/1 第2個 Unix98 PTY slave
...代碼:
153 block Enhanced Metadisk RAID (EMD) 存儲單元(分區處理方式與 SCSI 磁碟相同)
0 = /dev/emd/0 第1個存儲單元
1 = /dev/emd/0p1 第1個存儲單元的第1個分區
2 = /dev/emd/0p2 第1個存儲單元的第2個分區
...
15 = /dev/emd/0p15 第1個存儲單元的第15個分區
16 = /dev/emd/1 第2個存儲單元
32 = /dev/emd/2 第3個存儲單元
...
240 = /dev/emd/15 第16個存儲單元
180 char USB 字元設備
96 = /dev/usb/hiddev0 第1個USB人機界面設備(滑鼠/鍵盤/游戲桿/手寫版等人操作計算機的設備)
...
111 = /dev/usb/hiddev15 第16個USB人機界面設備
180 block USB 塊設備(U盤之類)
0 = /dev/uba 第1個USB 塊設備
8 = /dev/ubb 第2個USB 塊設備
16 = /dev/ubc 第3個USB 塊設備
...
192 char 內核 profiling 介面
0 = /dev/profile Profiling 控制設備
1 = /dev/profile0 CPU 0 的 Profiling 設備
2 = /dev/profile1 CPU 1 的 Profiling 設備
...
193 char 內核事件跟蹤介面
0 = /dev/trace 跟蹤控制設備
1 = /dev/trace0 CPU 0 的跟蹤設備
2 = /dev/trace1 CPU 1 的跟蹤設備
...
195 char Nvidia 圖形設備(比如顯卡)
0 = /dev/nvidia0 第1個 Nvidia 卡
1 = /dev/nvidia1 第2個 Nvidia 卡
...
255 = /dev/nvidiactl Nvidia 卡控制設備
202 char 特定於CPU模式的寄存器(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 的 MSRs
1 = /dev/cpu/1/msr CPU 1 的 MSRs
...
203 char CPU CPUID 信息
0 = /dev/cpu/0/cpuid CPU 0 的 CPUID
1 = /dev/cpu/1/cpuid CPU 1 的 CPUID
...代碼:
===================================================================
這部分詳細說明一些應該或可能存在於 /dev 目錄之外的文件。
鏈接最好使用與這里完全相同的格式(絕對路徑或相對路徑)。
究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決於不同的設備。
必須的鏈接
必須在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/fd /proc/self/fd symbolic 文件描述府
/dev/stdin fd/0 symbolic 標准輸入文件描述府
/dev/stdout fd/1 symbolic 標准輸出文件描述符
/dev/stderr fd/2 symbolic 標准錯誤文件描述符
/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須
/dev/X0R null symbolic 僅為 iBCS-2 所必須
[注意] /dev/X0R 是 <字母 X>-<數字 0>-<字母 R>
推薦的鏈接
推薦在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/core /proc/kcore symbolic 為了向後兼容
/dev/ramdisk ram0 symbolic 為了向後兼容
/dev/ftape qft0 symbolic 為了向後兼容
/dev/bttv0 video0 symbolic 為了向後兼容
/dev/radio radio0 symbolic 為了向後兼容
/dev/i2o* /dev/i2o/* symbolic 為了向後兼容
/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字
本地定義的鏈接
下面的鏈接很可能需要根據機器的實際硬體配置創建其中的一部分甚至全部。
這些鏈接僅僅是為了迎合習慣用法,它們既非必須也非推薦。
鏈接 目標 鏈接類型 簡要說明
/dev/mouse mouse port symbolic 當前滑鼠
/dev/tape tape device symbolic 當前磁帶
/dev/cdrom CD-ROM device symbolic 當前CD-ROM
/dev/cdwriter CD-writer symbolic 當前CD-writer
/dev/scanner scanner symbolic 當前掃描儀
/dev/modem modem port symbolic 當前數據機
/dev/root root device symbolic 當前根文件系統所在設備
/dev/swap swap device symbolic 當前swap所在設備
/dev/modem 不應當用於能夠同時支持呼入和呼出的modem,因為往往會導致鎖文件問題。
如果存在 /dev/modem ,那麼它應當指向一個恰當的主 TTY 設備。
對於SCSI設備,
/dev/tape 和 /dev/cdrom 應該分別指向"cooked"設備 /dev/st* 和 /dev/sr* ;
而 /dev/cdwriter 和 /dev/scanner 應當分別指向恰當的 /dev/sg* 。
/dev/mouse 可以指向一個主串列 TTY 設備、一個硬體滑鼠、
或者一個對應滑鼠驅動程序的套接字(例如 /dev/gpmdata)。
套接字和管道
持久套接字和命名管道可以存在於 /dev 中。常見的有:
/dev/printer socket lpd 本地套接字
/dev/log socket syslog 本地套接字
/dev/gpmdata socket gpm 滑鼠多路復用器(multiplexer)
/dev/gpmctl socket (LFS-LiveCD中出現)
/dev/initctl fifo pipe init 監聽它並從中獲取信息(用戶與 init 進程交互的通道)
掛載點
以下名稱被保留用於掛載特殊的文件系統。
這些特殊的文件系統只提供內核界面而不提供標準的設備節點。
/dev/pts devpts PTY slave 文件系統
/dev/shm tmpfs 提供對 POSIX 共享內存的直接訪問
Ⅳ linux系統怎麼查看電腦硬體信息
用過Linux系統的人都知道這么一個情況,那就是Linux大部分操作是通過命令實現的,並不像Windows那麼直觀。linux查看硬體信息也是需要通過命令查詢才可以看得到硬體的信息,那linux系統如何查看硬體信息呢?下面是我為大家介紹linux系統查看硬體信息的方法,歡迎大家閱讀。
linux系統查看硬體信息的方法
1、CPU
lscpu命令,查看的是cpu的統計信息。
blue@blue-pc:~$ lscpu
Architecture: i686 #cpu架構
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian #小尾序
CPU(s): 4 #總共有4核
On-line CPU(s) list: 0-3
Thread(s) per core: 1 #每個cpu核,只能支持一個線程,即不支持超線程
Core(s) per socket: 4 #每個cpu,有4個核
Socket(s): 1 #總共有1一個cpu
Vendor ID: GenuineIntel #cpu產商 intel
CPU family: 6
Model: 42
Stepping: 7
CPU MHz: 1600.000
BogoMIPS: 5986.12
Virtualization: VT-x #支持cpu虛擬化技術
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
查看/proc/cpuinfo,可以知道每個cpu信息,如每個CPU的型號,主頻等。
#cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
。。。。。
上面輸出的是第一個cpu部分信息,還有3個cpu信息省略了。
2、內存
概要查看內存情況
free -m
total used free shared buffers cached
Mem: 3926 3651 274 0 12 404
-/+ buffers/cache: 3235 691
Swap: 9536 31 9505
這里的單位是MB,總共的內存是3926MB。
查看內存詳細使用
# cat /proc/meminfo
MemTotal: 4020868 kB
MemFree: 230884 kB
Buffers: 7600 kB
Cached: 454772 kB
SwapCached: 836 kB
。。。。。
查看內存硬體信息
dmidecode -t memory
# dmidecode 2.11
SMBIOS 2.7 present.
Handle 0x0008, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
。。。。
Maximum Capacity: 32 GB
。。。。
Handle 0x000A, DMI type 17, 34 bytes
。。。。
Memory Device
Array Handle: 0x0008
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
。。。。。
我的主板有4個槽位,只用了一個槽位,上面插了一條4096MB的內存。
3、磁碟
查看硬碟和分區分布
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├—sda1 8:1 0 1G 0 part /boot
├—sda2 8:2 0 9.3G 0 part [SWAP]
├—sda3 8:3 0 74.5G 0 part /
├—sda4 8:4 0 1K 0 part
├—sda5 8:5 0 111.8G 0 part /home
└—sda6 8:6 0 269.2G 0 part
顯示很直觀
如果要看硬碟和分區的詳細信息
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00023728
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2148351 1073152 83 Linux
/dev/sda2 2148352 21680127 9765888 82 Linux swap / Solaris
/dev/sda3 21680128 177930239 78125056 83 Linux
/dev/sda4 177932286 976771071 399419393 5 Extended/dev/sda5 177932288 412305407 117186560 83 Linux
/dev/sda6 412307456 976771071 282231808 83 Linux
4、網卡
查看網卡硬體信息
# lspci | grep -i ‘eth’
02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
查看系統的所有網路介面
# ifconfig -a
eth0 Link encap:乙太網 硬體地址 b8:97:5a:17:b3:8f
。。。。。
lo Link encap:本地環回
。。。。。
或者是
ip link show
1: lo: 《LOOPBACK》 mtu 16436 qdisc noqueue state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: 《BROADCAST,MULTICAST,UP,LOWER_UP》 mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether b8:97:5a:17:b3:8f brd ff:ff:ff:ff:ff:ff
如果要查看某個網路介面的詳細信息,例如eth0的詳細參數和指標
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full #支持千兆半雙工,全雙工模式
Supported pause frame use: No
Supports auto-negotiation: Yes #支持自適應模式,一般都支持
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes #默認使用自適應模式
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
。。。。。
Speed: 100Mb/s #現在網卡的速度是100Mb,網卡使用自適應模式,所以推測路由是100Mb,導致網卡從支 持千兆,變成要支持百兆
Duplex: Full #全雙工
。。。。。
Link detected: yes #表示有網線連接,和路由是通的
5、其他
查看pci信息,即主板所有硬體槽信息。
lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) #主板晶元
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) #顯卡
00:14.0 USB controller: Intel Corporation Panther Point USB xHCI Host Controller (rev 04) #usb控制器
00:16.0 Communication controller: Intel Corporation Panther Point MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation Panther Point High Definition Audio Controller (rev 04) #音效卡
00:1c.0 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 1 (rev c4) #pci 插槽
00:1c.2 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 3 (rev c4)
00:1c.3 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 4 (rev c4)
00:1d.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Panther Point LPC Controller (rev 04)
00:1f.2 IDE interface: Intel Corporation Panther Point 4 port SATA Controller [IDE mode] (rev 04) #硬碟介面
00:1f.3 SMBus: Intel Corporation Panther Point SMBus Controller (rev 04)
00:1f.5 IDE interface: Intel Corporation Panther Point 2 port SATA Controller [IDE mode] (rev 04) #硬碟介面
02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) #網卡
03:00.0 PCI bridge: Integrated Technology Express, Inc. Device 8893 (rev 41)
如果要更詳細的信息:lspci -v 或者 lspci -vv
如果要看設備樹:lscpi -t
查看bios信息
# dmidecode -t bios
。。。。。。
BIOS Information
Vendor: American Megatrends Inc.
Version: 4.6.5
Release Date: 04/25/2012
。。。。。。。
BIOS Revision: 4.6
。。。。。。
dmidecode以一種可讀的方式mp出機器的DMI(Desktop Management Interface)信息。這些信息包括了硬體以及BIOS,既可以得到當前的配置,也可以得到系統支持的最大配置,比如說支持的最大內存數等。
如果要查看所有有用信息
dmidecode -q
以上是linux查看硬體信息的所有命令,可以查看CPU、硬碟、網卡、磁碟等硬體的信息。