导航:首页 > 操作系统 > linuxsmbus

linuxsmbus

发布时间:2024-04-05 03:13:58

Ⅰ 如何在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、硬盘、网卡、磁盘等硬件的信息。

阅读全文

与linuxsmbus相关的资料

热点内容
老板咨询阿里云还是独立服务器 浏览:812
诺基亚手机app哪里下载 浏览:520
看比赛用哪个app 浏览:976
如何评价如故app 浏览:151
建立表结构的命令 浏览:581
安卓文件为什么苹果手机打不开 浏览:84
东奥轻4可以在哪个app做题 浏览:165
金融科技加密卡 浏览:837
程序员那么开一共有多少集 浏览:982
面试程序员被问数学问题怎么办 浏览:93
背大学英语的app哪个最好 浏览:721
哪个app买的衣服好 浏览:469
天刀以前玩过的服务器忘了怎么办 浏览:213
单片机基础代码解读 浏览:235
广东青少年编程学习 浏览:511
买男士香水去哪个app 浏览:550
androidsleep函数 浏览:153
android内核代码下载 浏览:665
服务器如何添加墨迹 浏览:747
diglinux安装 浏览:279