NFS 마운트 매개변수 추가

NFS 마운트 매개변수 추가

NFS및 를 통해 기기에서 Android 부팅을 시도했습니다 TFTP. Android 시스템이 부팅되기 전까지 모든 것이 순조롭게 진행되었습니다. 네트워크 매개변수 문제, 연결 중단 및 시작 정지

[   60.881134] nfs: server 128.247.77.158 not responding, still trying 

나는 다음과 같은 mount 명령에 매개변수를 추가하기로 결정했습니다.배경, 인테리어, 하드. 시스템 시작 전에 이 매개변수를 구성할 수 있습니까? 아니면 커널 코드(어딘가)에서 플래그를 수정해야 합니까?여기)?

답변1

내 문제에 대한 해결책을 찾았습니다. 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를 사용하여 부팅됩니다.

관련 정보