歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux文件系統安裝模塊化講解(二)

Linux文件系統安裝模塊化講解(二)

日期:2017/2/25 10:38:03   编辑:Linux教程

  這裡簡單的解釋一下,obj-m表示該文件將以模塊的方式編譯;因為本模塊由多個文件組成,采用模塊名加 –objs(minix-objs)後綴的形式來定義模塊的組成文件。KERNELDIR定義了代碼樹的位置,PWD定義了當前文件夾位置;而make命令中-C選項指定了代碼樹的位置(由KERNELDIR給出),M=$(PWD)指定了在當前目前進行構建工作。

  最後一行清理編譯過程產生的文件。

  完成了Makefile後我們就可以開始編譯這個文件系統模塊了,直接輸入make就開始編譯了:

  [cocobear@cocobear minix]$ make

  make -C /lib/modules/2.6.24.4-64.fc8/build M=/home/cocobear/minix modules

  make[1]: Entering directory `/usr/src/kernels/2.6.24.4-64.fc8-i686′

  CC [M] /home/cocobear/minix/bitmap.o

  CC [M] /home/cocobear/minix/itree_v1.o

  CC [M] /home/cocobear/minix/itree_v2.o

  CC [M] /home/cocobear/minix/namei.o

  CC [M] /home/cocobear/minix/inode.o

  CC [M] /home/cocobear/minix/file.o

  CC [M] /home/cocobear/minix/dir.o

  LD [M] /home/cocobear/minix/minix.o

  Building modules, stage 2.

  MODPOST 1 modules

  CC /home/cocobear/minix/minix.mod.o

  LD [M] /home/cocobear/minix/minix.ko

  make[1]: Leaving directory `/usr/src/kernels/2.6.24.4-64.fc8-i686′

  編譯結束後會面當前目前下生成minix.ko文件,這就是我們需要的東西,使用insmod命令就可以安裝這個minix文件系統模塊了。當然這裡需要有root權限。我們來演示一下minix模塊的加載:

  [cocobear@cocobear minix]$ cat /proc/modules | grep minix

  [cocobear@cocobear minix]$

  這裡可以看到minix並沒有被加載,我們使用insmod minix.ko命令:

  [cocobear@cocobear minix]$ sudo insmod minix.ko

  [cocobear@cocobear minix]$ cat /proc/modules | grep minix

  minix 28676 0 - Live 0xd0e7d000

  insmod後我們從上面的信息可以看到minix模塊已經被加載,如果不需要使用這個模塊我們同樣可以很方便的把它卸載:

  [cocobear@cocobear minix]$ sudo rmmod minix.ko

  [cocobear@cocobear minix]$ cat /proc/modules | grep minix

  [cocobear@cocobear minix]$

  到此我們順利的完成了Linux文件系統安裝卸載和編譯。

  BTW:中間遇到了點問題寫了Makefile後輸入make提示:“make: Nothing to be done for `default‘。”,在網上找到了原因,在make命令前要使用tab,而不是空格,而我的剛好的空格,郁悶,以前就似乎遇到過的。

Copyright © Linux教程網 All Rights Reserved