看板 LinuxDev 關於我們 聯絡資訊
手上拿到的一個 device 有自己的 low-level RAM IO 的 C SDK 然後實作上透過 FatFs 模擬 FAT file partition 這個 partition 可以有兩種途徑讀寫資料 1. native linux file operation 2. C SDK(with FatFs) 有一個 case 是在不 remount 的情況下 透過 C SDK 去修改 partition 上面的檔案 然後在 call ioctl("/dev/sda1", BLKFLSBUF, 0) 去更新之後 在從 linux mount point 用 ls 去看有沒有變化 現在遇到一個問題是,在不一樣的 kernel 版本跑起來的狀況不太一樣 請問這個問題要怎麼追比較好呢? 我這邊目前懷疑是有 inode 的 target 沒有更新到 os 這邊(不確定說法正不正確) 而透過ioctl + BLKFLSBUF 不見得能夠達成更新的效果 有什麼 tool 或是指令比較適合追這個問題? 平台:一般 linux server/desktop 平台 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.231.192 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1610967371.A.89A.html ※ 編輯: XAMDOU (114.136.231.192 臺灣), 01/18/2021 18:56:54
XAMDOU: 補充一下,介面是 USB 01/18 18:57
bamchisu: df -i 可以看inode數目,你可以先照你的方法 01/18 23:35
bamchisu: 弄很多之檔案,然後用df -i看一下OS那邊inode數目有沒有 01/18 23:36
bamchisu: 改,確認是否為inode問題再來切換kernel版本 01/18 23:36
bamchisu: /boot partition弄大一點一次多compile幾個kernel方便 01/18 23:37
bamchisu: 你切換 01/18 23:37
bamchisu: 以上純屬小弟建議,有錯請前輩指正 01/18 23:42