04
21

usermode helper-來自kernel的呼喚

博客來最近都在促銷Orielly的書,只要買足3本,就可享75折的優惠,所以我這次一口氣買了三本雖然之前看過但很想收藏的書,自從出社會後,幾乎每個月都會買個幾本技術相關的書籍典藏,雖然網路上都抓得到,但總覺的缺了一份質感,沒有翻書的感覺,就好像沒在看書

這次要介紹東西很簡單,但這種技巧很常見,不論是hotplug會是kernel init,都會發現這個函式的蹤影,當安裝plug&play裝置時,kernel會呼叫hotplug執行device setup script,而從kernel呼叫user space的API,就是user modehelper,簡單的程式我列如下

程式的重點在於envp和argv的設定,envp是環境設定的變數,而argv是user application的執行參數

  1. static int __init testmodule_init(void) 
  2. { 
  3.  
  4.  
  5. int ret;
  6.  
  7. char *envp[] = { 
  8. "HOME=/",
  9. "TERM=linux",
  10. "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
  11. NULL,
  12. };
  13. char *argv[] = { 
  14. "/bin/ash",
  15. "-c",
  16. "echo 1 > /mnt/jffs2/aa.conf",
  17. NULL 
  18. };
  19.  
  20. if ((ret =call_usermodehelper(argv[0], argv, envp, /*UMH_WAIT_PROC*/1)) != 0) { 
  21. printk(KERN_ERR "user mode helper failed to run\n”);
  22. return 0;
  23. }
  24. static void __exit testmodule_exit(void)
  25. {
  26.  
  27. }

 

標籤: linux
評論: 1 | 引用: 0 | 閱讀: 7903
  • 1 
Rodolfo [ 2019-05-13 23:45 網址 | 回覆 | 編輯 刪除 ]
https://www.max97.co.uk/purple-vapormax_12581.html
https://www.nike-stores.us.org/nike-flyknit-racer-mens_1431.html
https://www.nikeoutletstoreclearance.us.com/air-force-1-mid-black_878.html
https://www.nike-runningshoes.us.com/john-elliott-air-force-1_6805.html
https://www.pandorasrings.us.com/pandora-net_1581.html
https://www.pandorajewelryblackfriday.us.com/pandora-code_208.html
https://www.nikeshoes2019.us.com/nike-free-rn-2019-men's_1796.html
https://www.newnikeshoes.us.org/nike-air-max-97-yellow_2971.html
https://www.asics-running-shoes.us.com/asics-store-near-me_15430.html
https://www.adidass.us.com/adidas-ultra-boost-shoes_11241.html
https://www.maxtrainers.org.uk/air-max-97-og_22040.html
https://www.yeezy-trainers.org.uk/
  • 1 
發表評論
暱 稱: 密 碼:
網 址: E - mail:
驗證碼: 驗證碼圖片 選 項:
頭 像:
內 容: