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를 사용하여 부팅됩니다.