歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> LINUXmodules模塊安裝MINI-HOWTO

LINUXmodules模塊安裝MINI-HOWTO

日期:2017/3/6 15:40:35   编辑:關於Unix
內容 * 本文件的目的 * 警告 * 先決要素 * 針對 模組 重新編譯 核心 * 針對 模組 設定 Debian 或 RedHat * 針對 模組 設定 Slackware * 針對 模組 設定其它發行套件 * 版權和合法性 _________________________________________________________________ 本文 內容



     * 本文件的目的
     * 警告
     * 先決要素
     * 針對 模組 重新編譯 核心
     * 針對 模組 設定 Debian 或  RedHat
     * 針對 模組 設定 Slackware
     * 針對 模組 設定其它發行套件
     * 版權和合法性        
   
     _________________________________________________________________
   
   
   
本文件的目的    

   
   
   我對 Linux 和模組[modules]的經驗一直是, 現有的文件不能提供令人滿意的   
   解說, 要如何成功地設定模組而裝好 Linux 並能正常運作. 本文件的解說步驟
   已經成功地被使用了好幾遍了, 包括在我自己的系統以及通過 Inte.net指導某
   人去設法取得某些方法, 能要求僅提供模組形式的驅動程式以便能運作.
   
   
   我自己的系統是跑 Linux 的 RedHat 4.1 發行套件, 而且它是在我發展的這套
   步驟下建立起來的. 自從那次之後,我也已成功地把它安裝在跑各樣 Slackware 
   發行套件的系統, 及一種 Debian 發行套件的系統, 而且所需要步驟會在這□
   針對這三類(發行套件)正確地設定模組提出說明.
   
   
     _________________________________________________________________
   
   
   
警告   

   
   
   我最近有用相同的步驟在 RedHat 4.2 上, 但在一樣的系統上出現不一樣的結果.
   我到現在還未找出是那是什麽問題, 所以不能做任何保證,這樣用是否一定能在你
   的系統上運作.
   
   
     _________________________________________________________________
   
   
   
先決要素   

   
       
       
     * 在使用本文件的步驟之前, 讀者 '必須' 已做了 Linux 安裝工作, 而且取
       得成為 root 使用者身分的 Linux 提示符號下, 因為大部分牽扯到的步驟
       只能由這所說的使用者才能進行.
       
       
     * 目前存在的核心可以編譯成使用模組或不使用模組, 甚至能在開機過程秀出
       錯誤訊息, 假若發生上述情況, 那是因為所設定的模組在那時(開機時)無法
       取得的緣故.

       
     * 目前核心的原始樹[source tree]假設是可找到其擺在 /usr/src/linux
       而且也假設該目錄是本文件全部中,任何連續命令開始所在的目前目錄.
       
   
   
   
     _________________________________________________________________
   
   
   
編譯加速

   
   
   如果你的機器有 16 Megabytes 或以上的 RAM, 那麽有個有用加速可以用, 它
   允許核心平行編譯兩個以上的模組. 當核心在編譯時,這將會增加機器負載, 但
   會減少編譯時所花費的時間.
   
   在你能使用這方法前, 你需要檢查你的機器上存有的 RAM 有多少, 如果你這個
   設得太高, 編譯實際上會慢下來. 經驗顯示最佳值乃是根據下列公式與你系統
   的 RAM 多少有關, 至少對有 32 Megabytes RAM 的系統是還蠻合理的, 雖然它
   對有大量 RAM 的系統是有點保守:
   
   N = [RAM in Megabytes] / 8 + 1
   
   對那些討厭數學的人要有點幫助, 可看下面 RAM 常用的數量所相應的數值:
   
   RAM 大小值若使用 16  Megs 是 3 , 24  Megs 是 4 , 32  Megs 是 6 ,
   40  Megs 是 6 , 48  Megs 是 7 , 56  Megs 是 8 , 64  Megs 是 9 ,
   80  Megs 是 11, 96  Megs 是 13, 112  Megs 是 15 ,128  Megs 是 17 , 
   
   當你已決定正確的值, 編輯檔案 /usr/src/linux/Makefile 而且找到這樣一行:
   
   

   MAKE=make


   
   
   取代它以:
   
   

   MAKE=make -j N


   其中的 N 是上面決出的數值.
   
   
    _________________________________________________________________
   
   
   
針對 模組 重新編譯 核心     

   
   
   除了設置[mounted]成 root 的檔案系統(其大部分情況都是 ext2 的檔案系統)
   不能設成模組外, 其他每個東西都能重新設定核心編成模組來使用.
   
   然而,有某些項目在完全地架設成模組時會出現困難, 所以我建議以下東西編入
   核心會好些:
   
       
       
     * Ethernet 硬體驅動程式.
       
       
     * SCSI CD-ROM 驅動程式.
       
   
   
   相反地, 有某些驅動程式組合只適合編成模組, 特別是下面中有兩個以上的組合:
   
       
       
     * 平行埠印表機A Parallel Printer,
       
       
     * 平行埠的設備, 像是 IOMEGA ZipDrive 或 JazzDrive 或 背接式[BackPack]

       CD-ROM drive, 以及
       
       
       
     * PLIP Daemon.
       
   
   
   你會需要決定哪些是你要編譯到核心, 又哪些要模組, 但應將上面幾點列入考慮.
   以下面次序的指令來進行, 在編譯過程, 真正的選擇就決定了:
   
   

   cd /usr/src/linux
   make menuconfig
   make dep clean modules modules_install zImage


   
   
   已經做完成了, 而模組的相關性[dependencies]需要繪出[mapped out], 這要
   下個這樣的命令:
   
   

   depmod -a


   
   
   最新的核心現在需要被插到開機鏈[boot chain]中, 我假設讀者為了(下面)這個
   目的使用 LILO, 因為這是我碰過唯一的開機載入器[loader].
   
   我建議 不要 從自動地就插入最新編譯好的核心成為內定的 Linux 核心, 因為
   如果它失敗, 那麽要恢復架設好的 Linux, 又不做完全重新的安裝是非常困難,
   而重新安裝並不建議. 基於這理由, 我在我的 /etc/lilo.conf 檔案會加下列項  
   目:
   
   

   image=/usr/src/linux/arch/i386/boot/zImage
      label=new
      alias=n
      read-only
      vga=ask
      optional


   
   
   這項目說有個 可選擇性 的開機啟動選項 (如果我們所討論中的 image 不存在,
   那麽將會忽略) , 若可選擇的, 其開機開啟 /boot/newlinux ,而且允許吾人在
   它開機進入的顯示模式下來選擇.
   
   假設上面在 /etc/lilo.conf 存在的項目, 新版的核心已經正確的擺在編譯終了
   所在處, 那麽可以用下列命令來安裝:
   
   

   lilo


   
   
   已經做完了那些, 讀者需要接著進一步步驟,這與它們所被選擇的發行套件有關,
   如下:
   
     * 針對 模組 設定 Debian 或  RedHat
     * 針對 模組 設定 Slackware
     * 針對 模組 設定其它發行套件  
       
   
   
   
     _________________________________________________________________
   
   
   
針對 模組 設定 Debian 或  RedHat   

   
   
   在這□所列步驟完成之前, "針對 模組 重新編譯 核心" 所列步驟都假設
   你已經完成了.
   
   Debian 和 RedHat 發行套件有一樣的開機啟動程序, 所以也有一樣的步驟來
   設定他們的 模組.
   
       
    1. 已經以 root 身分登入, 使用你最喜愛的文字編輯器來開個新的檔案叫做
       _/etc/rc.d/init.d/modules.init_ , 並以下列內容加入到那□.
       

   # Modules initialisation.
   #
   # Start up the module auto-loading daemon.
   /sbin/kerneld

   # Mount all currently unmounted auto-mounted partitions.
   /sbin/mount -a
   
       
    2. 已經建立上述檔案, 當有以 root 身分登入, 按照下列步驟: 
       

   cd /etc/rc.d
   chmod 755 init.d/*
   cd rc3.d
   ln -s ../init.d/modules.init 05modules.init

   
   
   這時系統可重新啟動, 而在這過程中, 會被發現模組有徹底完成了.
   
   
     _________________________________________________________________
   
   
   
針對 模組 設定 Slackware  

   

   在這□所列步驟完成之前, "針對 模組 重新編譯 核心" 所列步驟都假設
   你已經完成了.     
   
       
    1. 檔案 _/etc/rc.d/rc.M_ 需要編輯如下:
        
            
         1. 大約在 18 行,那有個段落內容如下:
            

   # Screen blanks after 15 minutes idle time.
   /bin/setterm -blank 15
        
            
            緊接在這之後, 插入下面這段,即兩邊正常的空白行隔開的內容:
            

   # Load the kernel module auto-loader.
   /sbin/kerneld
        
            
         2. 再往下約 12 行如下列:
            

   # if there is no /etc/HOSTNAME, fall back on this default:
   
     
            緊接在這之後, 插入下面這段,即兩邊正常的空白行隔開的內容: 
            

   # Mount remaining unmounted auto-mount drives.
   /sbin/mount -a
   
       
       當這些變更都已做好了, 就儲存這個檔案.
       
   
   
   對於 Slackware 沒有需要再進一步的修改.
   
   
     _________________________________________________________________
   
   
   
針對 模組 設定其它發行套件  

   

   在這□所列步驟完成之前, "針對 模組 重新編譯 核心" 所列步驟都假設
   你已經完成了.    
   
   對於其他發行套件明確的步驟還沒很清楚, 但大概是前面所提之一. 為了決定是
   哪一種, 秀出 _/etc/rc.d_ 目錄的內容, 如下:
   

   cd /etc/rc.d
   ls -l *.d rc.*

   
   
   由這個秀出結果, 你可以選擇以下三個選項之一:
   
       
    1. 如果這所列出來的包含一個目錄名稱叫 _init.d_ 而且某些目錄名稱有跟
       _rc?.d_ 吻合, 其中的問號是要用一個數字的替代, 而且 _沒有_ 包含檔
       案叫 _rc.M_, 那麽發行套件可以用上述所列用在 Debian 和 RedHat 發
       行套件的步驟來設定模組.
       
    2. 如果這所列出來的沒有包含一個目錄名稱叫 _init.d_ 但包含一個檔名叫
       _rc.M_ 那麽該發行套件可以用上述所列用在 Slackware 發行套件的步驟
       來設定模組.
       
    3. 如果上面兩個選項都沒吻合, 那麽該發行套件的開機 script 並沒有被本
       HOWTO 文件所涵蓋到. 在這情況, 歡迎你連絡本文件作者提供建言.
       
   
   
   
     _________________________________________________________________
   
   
   
版權與其它合法性事項

   
   
   本文件是被涵蓋在 GNU General Public Licence (GPL)的保護下, 而在那□面
   所有項目各限制都適用.
   
   可以借由寄 email 到 [email protected] 連絡到作者.  
   [附注]
   本文件中譯版的譯者是 J.S.Lin, r6921068@ms.clearcase/" target="_blank" >cc.ntu.edu.tw
   若你發現中譯版有謬誤或有更好的譯法,歡迎來信指教.

Copyright © Linux教程網 All Rights Reserved