如何辨別 /dev/sda 是 USB mass storage 或是 SATA HD

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

如何辨別 /dev/sda 是 USB mass storage 或是 SATA HD

文章ssc » 週四 8月 21, 2008 5:53 pm

我的板子上有支援 USB 和 STAT HD。 我現在需要寫一個程式,去判別有沒有 USB flash drive 或是 SATA HD 按裝在板子上。
但是當這兩個東西裝在板子上的時候,他們會去使用 /dev/sda 或是 /dev/sdb 這兩個 device file.
我該怎麼知道 /dev/sda 是連到 HD 或是 USB 而 /dev/sdb 是連到另一個? 謝謝
ssc
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週四 8月 21, 2008 5:44 pm

文章tomjpsun » 週四 8月 21, 2008 7:19 pm

要借助 udevinfo 一路追蹤 bus , usb storage 的源頭會出現 usb 字串! 例如:
===================================
mobian:/sys/devices/system# udevinfo -a -p $(udevinfo -q path -n /dev/sdb) | grep SUBSYSTEM
SUBSYSTEM=="block"
SUBSYSTEMS=="scsi"
SUBSYSTEMS==""
SUBSYSTEMS==""
SUBSYSTEMS=="usb"
SUBSYSTEMS=="usb"
SUBSYSTEMS=="usb"
SUBSYSTEMS=="pci"
SUBSYSTEMS==""
mobian:/sys/devices/system# udevinfo -a -p $(udevinfo -q path -n /dev/sda) | grep SUBSYSTEM
SUBSYSTEM=="block"
SUBSYSTEMS=="scsi"
SUBSYSTEMS==""
SUBSYSTEMS==""
SUBSYSTEMS=="pci"
SUBSYSTEMS==""
=============================
看得出在這台 pc 上 , sda 是 sata disk , sdb 是 usb disk !
tomjpsun
可愛的小學生
可愛的小學生
 
文章: 82
註冊時間: 週一 1月 03, 2005 2:40 pm

文章tomjpsun » 週四 8月 21, 2008 7:21 pm

sorry, 更正:看得出 sda 是一般 disk, (我看不出那裡有寫 sata....)
tomjpsun
可愛的小學生
可愛的小學生
 
文章: 82
註冊時間: 週一 1月 03, 2005 2:40 pm

文章阿信 » 週五 8月 22, 2008 12:02 am

tomjpsun 寫:sorry, 更正:看得出 sda 是一般 disk, (我看不出那裡有寫 sata....)


libsata是走scsi layer,所以會有scsi的字樣。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

文章ssc » 週五 8月 22, 2008 9:47 am

謝謝,tomjpsun 和 阿信 的幫忙。
我可能要去看看 udevinfo 是怎麼找到這些資訊的。
ssc
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週四 8月 21, 2008 5:44 pm

文章tomjpsun » 週五 8月 22, 2008 12:28 pm

kernel 依照連接的 bus 關係,建立了 kobject hierachy,讓 user 可以透過 /sys 來讀取 kobject 的資訊。
而 udevinfo 只是 trace & dump /sys 的 bus 關係而已
tomjpsun
可愛的小學生
可愛的小學生
 
文章: 82
註冊時間: 週一 1月 03, 2005 2:40 pm

文章ssc » 週五 8月 22, 2008 1:53 pm

tomjpsun,我現在了解了。
我一直以為這些資訊是會放在 /proc 裡,所以一直找不到。
沒想到是在/sys裡,真是謝謝你了。
ssc
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週四 8月 21, 2008 5:44 pm


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客