歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

《硬件的自動檢測與配置》FAQ

  在我的關於硬件檢測與配置的兩篇文章《如何在Linux下實現硬件的檢測》和《如何在Linux下實現設備的配置》發表之後,陸續收到了一些讀者來信。他們問了很多關於硬件配置方面的問題,現在我把這些最典型的問題加以整理,寫成這篇文章。由於我不可能接觸到所有的硬件設備,所以對於內置MODEM和聲卡只能提供一些方法性的指導,而不能提供關於配置過程詳細到每一步的一個描述。我希望這篇文章會對大家學習和使用Linux有所幫助。 1. 我用ALSA成功配置了我的聲卡,但每次啟動LINUX都必須重新用ALSA裡的alsaconf-0.4.3b目錄裡的命令alsaconf配置,這是為什麼,極不方便,請問如何設置才能解決此問題? 答:在缺省情況下ALSA驅動程序會靜音所有的音頻輸出。為了獲得聲音,必須解除主音量和PCM音量的靜音。下面的命令設置音頻輸出的主音量和編、解碼音量,一般而言,打開這兩個設置聲音輸出就可以了。 amixer -c 0 sset 'Master',0 100%,100% unmute amixer -c 0 sset 'PCM ',0 100% unmute 為了在每次插入聲卡驅動模塊時,都解除靜音,您可以在/etc/modules.conf(對於老一些Linux版本,比如Redhat 6.2此文件為/etc/conf.modules)加入下列語句: post-install snd-card-xxxx amixer -c 0 sset 'Master',0 100%,100% unmute && amixer -c 0 sset 'PCM ',0 100% unmute snd-card-xxxx表示聲卡對應的alsa驅動程序模塊。 2. 如何在LINUX下改變顯示器的刷新率,我的眼睛實在受不了60HZ的刷新率了? 答:在Linux系統下,要配置X-Windows系統一般使用/usr/X11R6/bin/Xconfigurator命令進行配置。在配置之前,您最好能先了解顯卡的型號、顯示器型號等信息,然後再進行刷新頻率的配置。 Xconfigurator程序會先進行顯示器類型自檢,根據檢測到的顯示器型號,在配置文件/etc/X11/XF86Config(對於XFree86 4.x版本,配置文件為/etc/X11/XF86Config-4)中設置顯示器支持的場頻范圍。這樣,在X系統啟動之後,垂直刷新率會自動設置為當前分辨率下支持的最高刷新率。 但是,如果您的顯示器沒有類型信息或者是Xconfigurator不支持的顯示器類型,那麼您就只能設置顯示器為一些通用的顯示模式了。這些顯示模式中比較高的刷新頻率為1024x768分辨率下70Hz垂直掃描頻率的模式。 如果您想設置較高的刷新率(垂直掃描頻率85Hz),就只有手動進行了。每個Vesa定義的通用顯示模式所對應的刷新頻率,您可以在《如何在Linux下實現設備的配置》一文中找到。這時您需要修改文件XF86Config的Monitor節。Monitor節主要描述顯示器的信息,每個XF86Config文件至少包含一個顯示器節。在顯示器支持vbe和edid擴展時,它的所有信息包括顯示器大小、顯示器支持的刷新頻率范圍、顯示器制造商信息等都可以從顯示器上讀出。此節的一般格式如下: Section "Monitor" Identifier Entries EndSection 它最關鍵的描述性信息是: HorizSync horizsync-range 監視器支持的水平刷新頻率范圍。單位是kHz,缺省范圍是28-33kHz。 VertRefresh vertrefresh-range 監視器支持的垂直刷新頻率范圍。單位是Hz,缺省范圍是43-72Hz。 要設置監視器到更高的刷新率,必須用vi修改/etc/X11/XF86Config文件下的這兩個字段,比如: HorizSync 28-60 VertRefresh 60-100 上面的設置可以設置顯示分辨率為800x600下的垂直刷新率為85Hz,分辨率為1024x768下的垂直刷新率為70Hz。 注意:如果顯示器達不到這麼高的水平掃描頻率范圍,在顯示器上會出現黑屏的現象。如果出現黑屏,您可以先使用Ctrl + Alt + Backspace殺死當前X服務進程,並重新修改XF86Config文件,嘗試低一些的顯示刷新頻率即可。 3. 請問一下,在LINUX 下開發工具為什麼不能使用C++來開發設備驅動程序 ?我測試了一下使用g++編譯通不過,是否為g++編譯選項不對,正確的編譯選項是什麼? 答:在Linux下,C++編譯器的實現和C編譯器是不同的。因為涉及到函數重載和多態等問題,所以C++在編譯實現時,使用了虛表的機制。這和C語言編譯成目標代碼的直接訪問方式是有很大不同的。由於Linux內核大部分使用C語言編制,並且Linux驅動程序在事先是采用了類似函數調用表的機制,所以開發者使用gcc開發驅動程序應該是最直接也是最高效的。 4. 我的是藍點1.0系統,安裝的內貓是Tplink ia5628v 型,它的芯片是ambient 5628d,無法驅動。我下載了intel的r-335-5驅動程序,按提示安裝不能用。在Windows ME下貓用的是com4口,我試了ttys0~ttys3.ttys10都無反應,請指教。


答:對於內置式modem,無法正確配置的最大問題是設備沒有合適的驅動程序。大部分廠商都不願意公開產品的內部技術細節,所以網上關於內貓的驅動程序很少,而能夠正常工作的驅動程序就更少了。如果要查找內貓的驅動程序,您需要先運行, lspci -v 查得內貓詳細的設備信息,包括設備標識和制造商標識,然後您再訪問站點www.linmodems.org,獲得內貓驅動程序的詳細信息。 你的芯片類型是ambient,那麼你最好試試驅動程序http://linmodems.org/CLModem-0.3.0.tar.gz。下載此驅動之後,您需要手動解開tar包,並正確安裝此驅動程序。 在成功安裝了驅動程序之後,內貓驅動程序一般都要生成一個仿真的串口設備。因為很多程序使用設備文件/dev/modem訪問modem,所以為了能夠正常使用modem設備,您可能還需要手動建立鏈接文件。比如,你的內貓仿真的設備是ttyS4,那麼執行命令: ln -sf /dev/ttyS4 /dev/modem 使用哪個串口設備這主要是看它仿真哪個串口了。在執行上述步驟之後,您可以執行minicom,然後運行AT命令ATZ測試modem是否正常工作。如果顯示OK表示modem配置成功,否則失敗。 5. 在LINUX下,我用DATE命令設置時間, 但它沒有寫入CMOS, 機器重起後時間沒有改變, 請問如何解決? 答:您機器的bios恐怕與標准的bios不是完全一致(或者出了什麼問題),date命令是調用系統函數stime,它是glibc的函數,它又把控制傳給了最底層的bios調用,由它們進行時間的設置。如果您的機器的時鐘機制不是這樣,那麼時間設置不會工作。 6. 我想裝雙操作系統,linux和win98。但是我裝壞了,win98不能看見,一開機就直接進入了linux 而且是沒有圖形界面。Linux只能輸入命令,我裝的是linux radhat7.0。 機子的內存是64兆,cpu是奔三, 實達品牌機,在還沒有安裝linux前的win98系統可能已經被覆蓋掉了,或者格式化了,現在的情況是我想重新安裝win98 和linux,我想讓這兩個操作系統可以在開機時可以選擇進入。 答:設置Linux系統的雙引導,您必須要在安裝Linux系統之後,修改lilo的配置文件/etc/lilo.conf。舉一個例子, boot=/dev/hda map=/boot/map install=/boot/boot.b vga=normal default=linux image=/boot/vmlinuz label=linux root=/dev/hda2 other=/dev/hda1 label=win98 這個簡單的例子設置一台具有win98和linux操作系統的機器的雙引導,其中win98安裝在hda1分區上,這是第一塊硬盤的第一個主分區。Linux分區安裝在hda2分區上。 一般而言,您最好在系統上先安裝Windows操作系統,為了保險起見,您最好還要定制一張Windows系統恢復軟盤,然後再安裝Linux操作系統。在安裝Linux時,注意要選擇和Windows分區不同的分區(強烈推薦您在主分區上,也就是在編號為hda1到hda4的分區安裝Linux操作系統)進行安裝,同時一般也需要您建立Linux系統交換分區。在安裝Linux系統之後,一定要運行LILO命令,使得lilo能夠接管系統引導扇區,並使/etc/lilo.conf中的配置生效。 7. 我使用的是聯想朝陽筆記本,安裝了Red hat linux7.1,使用的是聯想EASY10M/100M 網卡現在網卡無法識別,不能工作,怎麼辦?/proc/bus/pccard/drivers 中沒有任何信息,PCMCIA 已啟動過 。網卡的ACT LINK 燈是亮的,不知驅動是否已加,測試回路只有lo。啟動時eth0顯示FAILED。 答:您首先需要安裝網卡的設備驅動程序。PCMCIA類型的設備驅動程序保存在pcmcia-cs包中,您首先需要安裝pcmcia-cs包。 在筆記本電腦上安裝了pcmcia-cs包之後,為了實現PCMCIA設備的自動檢測,您可以先查找系統中是否存在/proc/bus/pccard目錄,如果不存在此目錄則嘗試插入pcmcia_core。 modprobe pcmcia_core(或者insmod pcmcia_core) 在成功插入了此模塊之後,/proc/bus/pccard目錄就生成了。此後,您就可以通過 lspci -v 檢查pci系統設備,找到系統橋接器,根據橋接器類型獲得您需要插入的橋接器模塊。在Linux系統下,適用的橋接器模塊一般只有i82365或tcic兩種。若無法獲得准確的橋接器驅動程序,您可以嘗試著插入兩種模塊,直到成功時為止。這時執行命令: modprobe i82365(或者modprobe tcic) 然後為了能夠實時的配置您的pccard,您需要啟動服務pcmcia, /etc/rc.d/init.d/pcmcia start 並由此服務啟動程序cardmgr。cardmgr監視pcmcia槽上卡的插入和彈出操作。在卡插入之後,cardmgr查詢卡的配置數據庫。若發現卡能夠被標識,相應的設備驅動程序則會自動加載。在彈出卡之後,卡的驅動程序會自動的關閉並卸載。當卡插入之後,每個槽上的卡信息和設備信息都被記錄在/v



Copyright © Linux教程網 All Rights Reserved