国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

    如何編譯加載linux驅(qū)動(dòng)和內(nèi)核模塊

    時(shí)間: 若木635 分享

      編譯加載linux驅(qū)動(dòng)和內(nèi)核模塊

      到目前為止,我們?cè)跇?gòu)建initramfs時(shí)還沒有涉及內(nèi)核模塊的支持,所用到的硬件驅(qū)動(dòng)程序都是直接編譯到內(nèi)核中?,F(xiàn)在我們就看看如何使initramfs支持內(nèi)核模塊。

      編譯內(nèi)核模塊

      首 先,內(nèi)核配置要支持模塊,并支持內(nèi)核模塊的自動(dòng)加載功能:在內(nèi)核配置菜單中的激活下面的配置項(xiàng),編譯進(jìn)內(nèi)核

      Load module support / Enable loadable module support / Automatic kernel loading ;

      然后把需要的硬件驅(qū)動(dòng)程序配置模塊形式,比如把我的機(jī)器上的硬盤控制器的驅(qū)動(dòng)編譯成模塊,則選擇

      Device Driver

      |---->SCSI device support

      |---->SCSI disk support

      |----->verbose SCSI error reporting (不是必須的,但可方便問題定位)

      |----->SCSI low-level drivers

      |---->Serial ATA (SATA) support

      |---->intel PIIX/ICH SATA support

      把它們配置成模塊。

      最后,編譯內(nèi)核,并把編譯好的內(nèi)核模塊安裝到image的目錄下:

      make

      make INSTALL_MOD_PATH=~/initramfs-test/image modules_install

      命 令執(zhí)行完畢后,在image/lib/modules/2.6.17.13/kernel/drivers/scsi目錄下安裝了4個(gè)內(nèi)核模文 件:scsi_mod.ko、sd_mod.ko、ata_piix.ko、libata.ko,它們就是所需的硬盤控制器的驅(qū)動(dòng)程序。

      加載內(nèi)核模塊

      busybox的modprobe命令執(zhí)行不正常,不能加載內(nèi)核 模塊。懷疑是busybox的modprobe命令配置或編譯有問題。否則可以自動(dòng)加載驅(qū)動(dòng)。先用insmod命令依次加載。查看/lib/modules /2.6.17.13/modules.dep,弄清楚了4個(gè)模塊的依賴關(guān)系,執(zhí)行下面的命令加載:

      insmod scsi_mod

      insmod libata

      insmod ata_piix

      insmod sd_mod

      然后再用

      mdev -s

      命令生成硬盤的設(shè)備文件。 好了,可以安裝硬盤分區(qū),了并把根文件系統(tǒng)切換到硬盤分區(qū):

      mount /dev/sda8 /mnt

      exec switch_root /mnt /sbin/init

      系統(tǒng)正常啟動(dòng)到了CLFS,我們可以做到用initramfs中的硬盤控制器的驅(qū)動(dòng)模塊安裝硬盤分區(qū)了。

      最終init文件

      分區(qū)要換成自己的分區(qū)。

      #!/bin/sh

      mount -t proc proc /proc

      mount -t sysfs sysfs /sys

      insmod scsi_mod

      insmod libata

      insmod ata_piix

      insmod sd_mod

      mdev -s

      mount /dev/sda8 /mnt

      exec switch_root /mnt /sbin/init

    如何編譯加載linux驅(qū)動(dòng)和內(nèi)核模塊

    編譯加載linux驅(qū)動(dòng)和內(nèi)核模塊 到目前為止,我們?cè)跇?gòu)建initramfs時(shí)還沒有涉及內(nèi)核模塊的支持,所用到的硬件驅(qū)動(dòng)程序都是直接編譯到內(nèi)核中?,F(xiàn)在我們就看看如何使initramfs支持內(nèi)核模塊。 編譯內(nèi)核模塊 首 先,內(nèi)核配置要支持模塊,并支持
    推薦度:
    點(diǎn)擊下載文檔文檔為doc格式
    75403