myModule 개발 과정에서 중요한 것은 모듈이 사용되어지는 커널의 버전을 확인하는 것이 중요함
uname -a 명령어로 커널의 버전 확인
5.15.0-125 확인
커널의 버전 5.15.0-125 확인
https://elixir.bootlin.com/linux/v5.4.150/source/drivers/net/wireless/mac80211_hwsim.c 웹사이트 이용
예를 들어, mac80211_hwsim.c 파일을 수정 개발해야 한다고 하면, 아래 링크에 가서 커널 버전에 맞는 mac80211_hwsim.c 파일을 다운로드해서 특정 무선 환경에 맞게 수정하는 개발 과정이 필요
개발 우분투 커널 버전이 v5.4.150 확인하였으며 이 버전 맞는 mac80211_hwsim.c 파일을 다운로드하는 것으로 소스 파일을 작성하는 것으로 대체함
개발하고자 했던 블루투스 프로토콜 스택

mkdir myModule
cd myModule
sudo gedit mac80211_hwsim.c
sudo gedit Makefile 명령어를 이용하여 Makefile 파일을 작성함



make 이용
에러가 나타나면 해당 에러를 수정하도록 함


에러 수정 필요


make 시 발생되는 에러 표시 및 수정 (데브옵스 기술이 여기에 사용됨)
다시 make 를 수행함
컴파일이 제대로 수행될 때 나타나는 mac80211_hwsim.mod.o 파일 확인
mac80211_hwsim.mod.o 파일 확인
mac80211_hwsim.ko 파일 확인

make 수행 전의 파일들
make 수행
make 수행 후의 파일들
myModule1 디렉토리에 가서 생성된 파일 확인
ls 명령어로 생성된 파일 확인

modinfo ./mac80211_hwsim.ko 명령어로 새로 생성된 모듈 정보 확인하기

insmod는 insert module의 약자

dmesg를 통해서 내 모듈이 장착된 메시지를 확인 할 수 있다.



x1@x1-ThinkPad-X1-Carbon-Gen-8:~/myModule$ sudo mn --wifi --topo single,3 --position --plot
기존 mac80211_hwsim 모듈의 특성은 signal: -36.00 dBm으로 나오는 것을 확인함

특정 환경에 따른 rssi 값을 변경하기 위해 mac80211_hwsim.c 모듈을 수정함
다시 make 를 수행함
필요에 따라 sudo rmmod mac80211_hwsim 명령어 사용하며, 기존 -50dBm의 모듈을 삭제하는 역할을 수행함
make 수행
sudo insmod ./mac80211_hwsim.ko : 새로운-40 dBm의 모듈을 장착함

특정 환경에 대한 rssi 채널을 새롭게 만들었으니, sudo mn --wifi --topo single,3 --position --plot 명령어를 통해 토포롤지를 구성하고 rssi를 확인함

