Linux
將參數添加到 NFS 掛載
我嘗試通過
NFS
和在設備上啟動 AndroidTFTP
。一切順利,直到 Android 系統開始啟動。網路參數出現問題,連接中斷,啟動凍結[ 60.881134] nfs: server 128.247.77.158 not responding, still trying
我決定嘗試在掛載命令中添加參數,例如bg、intr 和 hard。是否可以在系統啟動之前配置此參數?或者我應該修改核心程式碼中的標誌(這裡的某個地方)?
我找到了我的問題的解決方案。當 Android 啟動時,它會刷新所有規則。
system/netd/RouteController.cpp
我在文件函式中找到了完成這項工作的程式碼int flushRules()
。當我阻止執行此函式的程式碼時,我再也沒有看到有關 NFS 連接鬆動的消息。// Returns 0 on success or negative errno on failure. WARN_UNUSED_RESULT int flushRules() { return 0;//TODO workaround of NFS parameters reset for (size_t i = 0; i < ARRAY_SIZE(IP_VERSIONS); ++i) { const char* argv[] = { IP_PATH, IP_VERSIONS[i], "rule", "flush", }; if (android_fork_execvp(ARRAY_SIZE(argv), const_cast<char**>(argv), NULL, false, false)) { ALOGE("failed to flush rules"); return -EREMOTEIO; } } return 0; }
現在 Android 系統按預期使用 NFS 啟動。