2025年6月17日 星期二

測試 cdev

應用程序如下,編譯會有 warning 但不影響 (比如 gcc open 要改用 fopen),這個應用程序就是對 /dev/my_cdev OpenReadWriteClose 的動作,結果會出現在 dmesg (記得要掛載 module)





重開機 /dev/my_cdev 就消失了,但其實改設定檔就可以,看來 Linux 之路還漫長啊

從核心呼叫用戶端程式

本題為從內核端呼叫用戶端的執行程序,把模組載入到內核代表從內核端呼叫 (dmesg 觀察)/usr/sbin/shutdown 是用戶端程序,執行後關機。




創建 cdev

這一題就是要創建一個 cdev,阿共那邊叫字符設備 (繁體中文怎麼翻我不知道),顧名思義就是這些設備一次只能傳一個 Byte,創建出來的設備在 /dev 目錄下,主要是用於用戶空間和實際設備的資料傳遞。




這題最難的就是 Module 安裝不進去,核心對這種形式的 Module 會需要數位簽章,用 dmesg 會看到這種錯誤訊息『module verification failed signature and/or required key missing taintin』,解決方式是把 CONFIG_MODULE_SIG CONFIG_MODULE_SIG_ALL 設成『n』。正如同和碩四樓 QTC Pink 說我不會 External Usb Port 一樣,CONFIG_MODULE_SIG CONFIG_MODULE_SIG_ALL 到底要在哪裡設定呢?這時我們必須注意 Makefile 的這一行『$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules』,『shell uname -r』指的是編譯核心的版本,在我這邊是 6.8.0-60-gneric,所以各位就去你 \ 妳們相對應的目錄改『.config』就 ok 了!輸入『cat /proc/devices』 可看到我們掛載的字符設備




 

工作

社會打滾十年多,從檔案少得可憐的相機到現在有自學能力,確實受到許多人的幫助 (我不會刻意寫的離經叛道)。當初從抽水站離職丟出一句興趣,但現在 Linux 的書看不懂成為專家的夢想逐漸消磨殆盡,覺得好像只要有公司收留我就好。踢到鐵板然後放棄是人類天性,第一名模對 Ashtanga 的態度正是如此,但我卻不甘隨波逐流。我想我程式的興趣還是遠遠大過瑜珈的,對付那本範例無法執行的書就先 google 找 sample,但我學 sample 的方式都是把原本複雜的動作 (比如 Polling IO) 改成 printk,成為專家真是遙不可及啊

2025年6月15日 星期日

海軍陸戰隊

受雨停的霆仔精神感召來寫一下陸戰隊!其實我陸戰生涯最大的壓力是李建璋,其原因就在於『嫩』(若顧面子要講陳之漢陸戰隊天下無敵論,我個性真的和帝釋天不一樣)!這和蔡依林壓榨、徐旭東二房之子、嚴凱泰四千萬是一樣的,但其實有打工的也說累,畢竟曬太陽跑步搬東西本就不輕鬆。陳丙坤窗戶和吳惠民大背包是最重的體力操練,女性義務役根本笑話,先不管傷皮膚刺針飛彈架設標準如果原本五分鐘女生來架要改成七分鐘嗎?飛行員也要承受 G 力,女性志願役最佳選擇是海軍。少校連長魏德麒堅信操倒了再說,所以我們有時候不能喝水,特種看不起陸戰;陸戰看不起陸軍是難免的。總之奉送霆仔一句話:『別把長官的狗吠當真,操體能倒是真的但你是義務役心理壓力是假的』,話雖如此但一年兩個月的役期雖然痛苦卻也值得,體驗人生!(美軍別把我們的兒戲當真,我們不實戰)