1. 程式人生 > >編譯,載入並解除安裝一個核心模組

編譯,載入並解除安裝一個核心模組

 一。 make menuconfig 開啟 Enable Enable loadable module support
 --------------------------------------------------------------------------------------------
  +----------------------------- Linux Kernel Configuration ------------------------------+
  |  Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted letters   |
  |  are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press  |
  |  <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ]         |
  |  excluded  <M> module  < > module capable                                             |
  | +-----------------------------------------------------------------------------------+ |
  | |          General setup  --->                                                      | |
  | |      [*] Enable loadable module support  --->                                     | |
  | |      -*- Enable the block layer  --->                                             | |
  | |          Linux Kernel Study & Practice  --->                                      | |

   同時在下級選單使能模組解除安裝,否則解除安裝的時候會報錯 rmmod: delete_module 'hello' failed (errno 38)
  
   |      --- Enable loadable module support                                           | |
  | |      [ ]   Forced module loading                                                  | |
  | |      [*]   Module unloading                                                       | |
  | |      [ ]     Forced module unloading (NEW)                                        | |
  | |      [ ]   Module versioning support                                              | |
  | |      [ ]   Source checksum for all modules 
 
 二。把對應原始碼的config配置修改為模組方式
  Kconfig檔案:
  config HELLO
     tristate "First Android Driver"
     default n
     help
     This is the first android driver.
 
   menuconfig設為M ,模組方式
 +-----------------------------------------------------------------------------------+ |
  | |      --- kernel study start support                                               | |
  | |      <M>   First Android Driver    
 
   Makefile 檔案
   obj-$(CONFIG_HELLO) += hello.o


 三 編譯模組
  先 make
  再 make modules
   如果最後連線報錯,有些系統介面找不到,是應該依賴模組的obj檔案還沒有生成, 那就先make 一下再make modules
  
  四 載入模組
   使用adb工具 push 到 目標系統
   # adb remount                  /*解決只讀問題*/
   # adb push hello.ko /system/   /*推送模組到目標板*/
   # insmod /system/hello.ko      /*載入模組到核心*/
   # lsmod                        /*顯示已載入的模組*/ 
   #

[email protected]:/ # lsmod
   # hello 4964 0 - Live 0xbf000000

相關推薦

編譯載入解除安裝一個核心模組

 一。 make menuconfig 開啟 Enable Enable loadable module support  ---------------------------------------------------------------------------

linux下驅動模組編譯動態載入以及解除安裝

Linux驅動模組化編譯、載入、解除安裝 2010-8-27 硬體平臺:OMAPL-138 軟體平臺:linux2.6.32 + Ubuntu 步驟:: 1、編寫first_driver_hello.c檔案,將其放在/linux2.6.32/drivers/char路徑下

Windows10系統下徹底刪除解除安裝MySQL安裝Mysql 5.7

參考了好多篇文章,加上自己的實踐,總結如下 首先是解除安裝 1》停止MySQL服務 進入計算進管理,將MySQL服務停止。 2》解除安裝mysql server 控制面板\所有控制面板項\程式和功能,將mysql server解除安裝掉。 3》將MySQL安裝目錄下的M

Ubuntu中安裝和配置 Java JDK解除安裝自帶OpenJDK(以Ubuntu 12.04為例)

1.下載jdk-7u25-linux-i586.tar.gz 2.修改jdk-7u25-linux-i586.tar.gz的可執行許可權,最簡單的方法是賦予許可權,即: chmod 755 jdk

NSIS製作安裝如何檢測解除安裝已有版本

將如下程式碼追加到NSIS指令碼的尾部即可。 Var UNINSTALL_PROG Var OLD_VER Var OLD_PATH Function .onInit   ClearErrors

gendisk,request與bio結構體以及塊裝置驅動註冊與登出以及載入解除安裝

struct bio *bio; bio是這個請求中包含的bio結構體的連結串列,驅動中不宜直接存取這個成員,而應該使用後文將介紹的rq_for_each_bio()。 char *buffer; 指向緩衝區的指標,資料應當被傳送到或者來自這個緩衝區,這個指標是一個核心虛擬地址,可被驅動直接引用。 uns

NSIS檢測解除安裝已有版本靜默解除安裝隱藏MessageBox

接觸到NSIS製作安裝包,檢測並解除安裝已有版本,專案要把已有專案刪除,百度了方法,遇到了不少坑,慢慢的,現在的版本應該可以使用了。希望可以幫到一些人。 廢物不多說,先看下原本百度的程式碼: Var UNINSTALL_PROG Var OLD_VER Var OLD_PATH Function .

lua檔案的載入解除安裝~package.loaded和require配合讓一個檔案更新後重新載入

用require函式只能載入一次,因為它的特性是: 1、require函式會搜尋目錄載入檔案 2、require會判斷是否檔案已經載入避免重複載入同一檔案 而這個特性二,雖然我們可能知道這兩個特性,但是潛意識裡面常常把這個特性二給忽視掉了. 直到哪天我們需要反覆載入同

核心模組載入解除安裝

Linux核心是個很龐大的東西,要全部瞭解清楚是很難的,所以我們所做的核心上的開發也是為驅動做一些基本的準備。 其中Linux的系統的構成、核心的構成還有核心的目錄結構在這裡就不去做過多的解釋,有興趣的可以自己查詢相關的資料。 一、核心模組的特點     a)      

xshell 6評估已過期xshell 6解除安裝不了等問題解決

一、訪問連線https://www.netsarang.com/download/down_form.html?code=622 下載免費版 二、注意郵箱填寫能收到郵件的 三、檢視郵件,點選連線 四、點選紅框進行下載 注意:如果用win系統下載可能會超級慢或者360會

關於ubuntu系統boot分割槽空間不足而又無法解除安裝核心的解決方法

2016年09月03日 14:16:45 蕭氏一郎 閱讀數:7802 標籤: ubuntuboot分割槽清理更多 個人分類: linux  

解決計算機器更換網絡卡後沒有完全解除安裝裝置管理器中舊網絡卡的問題

計算機器更換網絡卡後,裝置管理器中舊網絡卡的設定並沒有刪除掉。如果這時要給換上的新網絡卡設上舊網絡卡的IP,則系統會提示你,IP已經被分配給舊網絡卡了,不能再給新網絡卡設上相同的地址。我終於找到解決辦法了。 開啟在“裝置管理器→檢視→顯示隱藏的裝置”中,找到了那塊舊的網絡卡。這時想要

dll 載入解除安裝的順序研究

之前寫過一篇DLL 載入解除安裝的文章,不太好,重寫一下,更深入一點。 兩個組或者兩個公司獨立的開發可能用來組成同一個產品的元件,但是他們必須獨立的構建、測試和提交他們的工作。元件粒度很難是正確的且與怎麼對元件是最好的這樣的問題無關。取而代之的是,一個元件是怎樣才能對公司最好(團隊不

Windows系統KMS啟用失敗如何排錯以及如何解除安裝系統的KMS啟用

Windows系統KMS啟用失敗如何排錯,以及如何解除安裝系統的KMS啟用 詳細教程請移步:https://v0v.bid/kms.html 1.你的系統/OFFICE是否是批量VOL版本 2.是否以管理員許可權執行CMD命令提示符 win10:點開開始選單,在搜尋框中輸入“cmd”

python多程序共享記憶體我喜歡解除安裝思維導圖裡面現在還沒有寫全python得ctype還沒有特別得熟悉

多程序與多執行緒頭大啊 1.C++ 將程序執行在指定的CPU上 1.1.https://blog.csdn.net/w2014qian/article/details/51941549 2.多程序 2.1.管道通訊 2.1.1.程序start啟動程序 join阻

CentOS軟體的安裝更新與解除安裝命令

Linux常見的安裝為tar,zip,gz,rpm,deb,bin等。我們可以簡單的分為三類. 第一:打包或壓縮檔案tar,zip,gz等,一般解壓後即可,或者解壓後執行sh檔案; 第二:對應的有管理工具的deb,rpm等,通常的這類安裝檔案可以通過第三方的命令列

驅動模組載入解除安裝遇到的問題總結

1、rmmod: chdir(/lib/modules): No such file or directory 解決方法1.建立 /lib/modules/$(uname -r) 空目錄就行了 2.使

linux下檢視已經安裝的jdk 解除安裝jdk

原文地址 一、檢視Jdk的安裝路徑: whereis java which java (java執行路徑) echo $JAVA_HOME echo $PATH 備註:如果是windows中,可以使用: set java_home:檢視JDK安裝路徑 java -version:檢視JDK版本 二、解

MAYA 解除安裝工具完美徹底解除安裝清除乾淨maya各種殘留登錄檔和檔案

是不是遇到MAYA/CAD/3DSMAX/INVENTOR安裝失敗?AUTODESK系列軟體著實令人頭疼,MAYA/CAD/3DSMAX/INVENTOR安裝失敗之後不能完全解除安裝!!!(比如maya,cad,3dsmax,inventor,revit等)。有時手動刪除登錄檔重灌之後還是會出現各種問題,每個

CAD 解除安裝工具完美徹底解除安裝清除乾淨cad各種殘留登錄檔和檔案

是不是遇到MAYA/CAD/3DSMAX/INVENTOR安裝失敗?AUTODESK系列軟體著實令人頭疼,MAYA/CAD/3DSMAX/INVENTOR安裝失敗之後不能完全解除安裝!!!(比如maya,cad,3dsmax,inventor,revit等)。有時手動刪除登錄檔重灌之後還是會出現各種問題,每個