나는 컴퓨터에서 이점을 활용할 수 있도록 다양한 구성 옵션을 활성화했습니다.새로 포함됨 wireguard
모듈 입력리눅스 5.6.0-rc1.
조금 힘들었습니다. 최소한의 작업 구성이 있었고 네트워크 인터페이스를 설정하려고 할 때 받은 오류를 가이드로 사용하여 작동할 wireguard
때까지 익숙하지 않은 커널 구성 옵션을 하나씩 활성화해야 했습니다 (예: wireguard
옵션은 , CONFIG_IP_NF_MANGLE
)입니다.
이제 가능하다면 이 프로세스를 다른 컴퓨터에 자동으로 복제하고 싶습니다. 그리고 다른 랩톱에는 상대적으로 작은 맞춤형 구성 코어가 있으므로 완전히 다른 시스템입니다.make localmodconfig
~에현재의어쨌든 두 구성을 병합해야 하기 때문에 기계는 실제로 옵션이 아닙니다.
나는 무엇을 성취하고 싶은가?
lsmod
나는 (예를 들어 iptable_mangle
) 나열된 모듈 이름을 입력으로 사용하고 이를 활성화하는 데 관련된 커널 옵션을 반환하는 프로세스를 원합니다 (아마도 CONFIG_IP_NF_MANGLE=m
이 경우에는?).
나는 열심히 노력했다
iptable_mangle
Linux 소스 코드(복제)의 커널 모듈에 대한 grep을 사용하여github
해당 커널 옵션에 연결하는 것을 찾으려고 합니다.현재 시스템에서 실행 중인
modinfo <target module name>
경우 표시되는 정보에 커널 구성 옵션이 언급되어 있기를 바랍니다.
이들 중 어느 것도 작동하지 않습니다. 두 경우 모두 출력 CONFIG_IP_NF_MANGLE
에 아무 것도 언급되지 않습니다.
답변1
아하! 나는 꽤 확실한 것을 발견했다고 믿습니다.
Linux 트리 찾아보기뒤쪽에iptable_raw
내 모듈 이름(예: 또는 무엇을 가지고 있는지) 을 반복적으로 구성하고 파악하면 xt_addrtype
일치하는 여러 줄 중에서 항상 다음 형식 중 하나가 생성됩니다.
<whatever>/Makefile:obj-$(<RELEVANT KERNEL CONFIG OPTION>) += <module name>.o`
구체적으로 실행
grep -rE '\+\=\s*nf_defrag_ipv6'
소스 트리의 루트에서 생성됨
net/ipv6/netfilter/Makefile:obj-$(CONFIG_NF_DEFRAG_IPV6) += nf_defrag_ipv6.o
이는 이것이 CONFIG_NF_DEFRAG_IPV6
활성화되었음을 알려줍니다 nf_defrag_ipv6
.
여러 모듈에서 이 작업을 시도했는데 항상 에서 반환한 이 형식의 고유한 행이 있습니다 grep
. 이제 이것은 스크립트하기가 매우 쉬워 보이며 대략적으로 말하면 해시를 생성합니다.
lsmod
키로 반환된 모듈 이름- 커널 구성 옵션을 값과 일치시킵니다.
편집하다:
문서에 대한 한마디: 원칙적으로 위 패턴은 설명된 대로 grep으로 발견할 수 있지만 실제로 내 관심을 끌었던 것은 다음 += <object file name>
에 언급된 구문 이었습니다.Kconfig 문서, 영감을 얻기 위해 정독하고 있습니다.