萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> LINUX modules 模塊安裝 MINI

LINUX modules 模塊安裝 MINI

class="22020"> 內容



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

   
   
   我對 Linux 和模組[modules]的經驗一直是, 現有的文件不能提供令人滿意的   
   解說, 要如何成功地設定模組而裝好 Linux 並能正常運作. 本文件的解說步驟
   已經成功地被使用了好幾遍了, 包括在我自己的系統以及通過 Internet指導某
   人去設法取得某些方法, 能要求僅提供模組形式的驅動程式以便能運作.
   
   
   我自己的系統是跑 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 身分登入, 按照下列步驟: 
      
copyright © 萬盛學電腦網 all rights reserved