/proc/net/netstat를 찾을 수 없습니다

/proc/net/netstat를 찾을 수 없습니다

OpenWRT 배포판을 사용하여 임베디드 장치용 Linux를 컴파일하려고 합니다. 인터페이스를 사용하여 일부 멀티캐스트 정보를 얻으 려고 하는데 /proc/net/netstat찾을 수 없습니다(일반적으로 내 데스크탑에서 사용할 수 있습니다).

내 생각이 맞다면 이 기능은 에서 활성화되어야 하는데 kernel_menuconfig이와 관련된 옵션을 찾을 수 없습니다.

고쳐 쓰다3.10.49:커널을 사용 하려고 하는데 4.4.14두 경우 모두 proc.c컴파일되었습니다( proc.o내 에서는 사용 가능 build_dir하지만 /proc설치 /proc/net/netstat되어 있지 않습니다.

답변1

이 문제를 다시 해결하는 데 시간이 좀 걸렸고 마침내 해결되었습니다. 문제는 OpenWRT가 커널 소스 코드를 추적하고 있다는 것입니다. 추가 옵션은 다음과 같습니다.장애가 있는, 즉 CONFIG_PROC_STRIPPED에 있습니다.

(make) kernel_menuconfig -> File systems -> Pseudo filesystems -> [ ] Strip non-essential /proc functionality to reduce code size

이 문제에 대한 해결책은 공식 버전이 아닌 커널 소스 코드의 패치 버전을 보는 것입니다. 모든 노력에 감사드립니다!

답변2

/proc/net/netstat는 net/ipv4/proc.c에 의해 생성됩니다.
net/ipv4/proc.c ip_proc_init_net() 함수에서는 아래 소스와 같이 proc_create()로 생성됩니다.
여기에 이미지 설명을 입력하세요.

net/ipv4/proc.o가 컴파일되었다고 말씀하셨습니다.
소스 코드에서 볼 수 있듯이 net/ipv4/proc.c는 /proc/net/sockstat, netstat 및 snmp를 생성합니다.
생성된 /proc/net/udp는 net/ipv4/udp.c에 의해 생성됩니다.

먼저 /proc/net/에서 sockstat 및 snmp를 찾으십시오.
또한 net/ipv4/proc.c의 ip_proc_init_net() 함수가 proc_create() 함수를 사용하여 오류를 생성했는지 확인하십시오.
이 부분에서 오류가 발생하면 오류의 원인을 찾아야 합니다.

관련 정보