差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
cpp:linux_kernel:show_physical_address [2017/10/14 16:38]
tony [Introduction]
cpp:linux_kernel:show_physical_address [2023/06/25 09:48] (目前版本)
行 1: 行 1:
 +{{tag>​Linux Linux-kernel}}
 ====== Show Physical Memory Address of the kernel module ====== ====== Show Physical Memory Address of the kernel module ======
 ===== Introduction ===== ===== Introduction =====
-我希望透過寫一個kernel module,透過user space的操作,去顯示某個變數值的實體記憶體位置與數值。+我希望透過寫一個kernel module,讓user在user space去顯示kernel space某個變數值的實體記憶體位置與數值。 
 +\\
 \\ \\
 Note: 由於這程式僅用於測試,因此不會特別去考慮更好的寫法;會補充這點是由於看書有看到更好的寫法。 Note: 由於這程式僅用於測試,因此不會特別去考慮更好的寫法;會補充這點是由於看書有看到更好的寫法。
行 82: 行 84:
  make -C $(KERNEL_DIR) M=$(PWD) clean  make -C $(KERNEL_DIR) M=$(PWD) clean
 </​code>​ </​code>​
 +起初我是在centos 7.3上寫,安裝了7.4的kernel header;編譯正常,但載入模組時,會出現Unkown symbol page offset base。最後裝7.3的kernel header就可以正常載入。
 ==== Test Script ==== ==== Test Script ====
 +請記得先執行mknod /dev/hello c 187 0去建立裝置檔案,接著就可以透過cat去操作,然後使用demsg看到結果:​
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
行 98: 行 102:
   * [[http://​blog.csdn.net/​freenaut/​article/​details/​4298174|字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()]]   * [[http://​blog.csdn.net/​freenaut/​article/​details/​4298174|字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()]]
  
 +=====    ===== 
 +---- 
 +\\ 
 +~~DISQUS~~