2013年4月27日 星期六

Linux Hardware Detection

在玩 Rescue Disk 的時後,當初遇到最頭痛的問題是 hardware 問題。

比方說 我有一台電腦的 硬碟 Linux 根本 MOUNT 不起來。
這時後理想的情況是找出 LINUX 跟 HARDWARE 的關係,讓LINUX也能認得那顆硬碟。

目前手邊知道的方式有兩個:

  • 其中一個是用 Hardware Detection Tool (HDT): Link

    這個 tool 一直到近幾個月都有在更新,可靠度應該也是不錯的。玩open source有趣的一個地方,是像這樣看到一堆人再做各式各樣的東西。

    底下的這張圖,是我用 vmware 截取下來的,它可以很清楚的列出這台機器的硬體所需要Linux Kernel Module的支援 (ata_piix, i2c_piix4 ... etc)。



  • 另一個方式,是用 COMMAND LINE 下指令取得資料。

    雖然我本身不太玩HARDWARE的東西...,不過一般來說 PCI 扮演著主機板跟HARDWARE DEVICE間接連的重要角色。而 LINUX 也提供 "lspci" - list all pci device 這個有用的指令。而 "lspci -k" , -k 這個參數 是可以附帶列出 Linux 對應的 kernel driver/module。

    如底下這張圖所示:



    另外 lsmod, lsusb ... 似乎也都是些有用的指令。


而在硬碟找到對應的 Linux Kernel Module,進一步可以在製作 LINUX KERNEL時,決定要不要將對應的 KERNEL Module/Driver 放入製作的 LINUX KERNEL。
底下的圖,是在編譯LINUX KERNEL前的 make menuconfig:


不過要真的快又正確的的找到所需的 LINUX KERNEL MODULE跟DRIVER,大概還是需要相當的經驗 Orz...