M SHELL for TCRP 의 ARPL 닮아가기 마지막 과제가 남은것 같습니다.
ARPL 의 가장 핵심 기능이라고 할 수 있는 통합모듈팩 (ARPL MODULES) 를
장치를 자동인식해서 자동주입까지 처리가 되는 기능이 있습니다.
이 기능의 중심에는 EUDEV 라는것이 있는데요.
TCRP 에도 이 EUDEV 를 적용하고 싶었는데,
pocopico님께도 언뜻 설명을 들었고,
fabio님께도 듣긴했지만
개념부터가 정립이 안된상태에서
선뜻 M SHELL for TCRP 에 까지 적용하는것이 어려웠습니다.
ARPL 의 소스 어딘가에는 EUDEV 가 fabio님이 즐겨쓰는 C언어로 구현되어 있을것 같은데,
찾아내서 분석하는게 쉽지 않아보였습니다.
다행히 pocopico님이 DSM 7.2 부터 적용을 준비하고 계신것 같은 차세대 TCRP 를 위해
이 EUDEV 를 TCRP 용으로 포팅해 두셨더군요.
https://github.com/pocopico/rp-ext/tree/main/eudev
두분깨 번역기 돌리며 계속 물어보는것도 한계가 있고해서 챗GPT에 물어보니 어느정도 개념은 잡을 수 있을것 같습니다.
제가 M SHELL 에 적용한 방법은 ARPL 의 통합모듈팩을 TCRP 의 lspci 커맨드로 분석된 VID / PID 기준으로
미리 준비된 modules.alias.4.json 파일을 대조해서 매칭되는 모듈을 하나씩 주입하는 방식입니다.
이렇게 정적으로 처리를 하게되면 통합모듈팩에는 준비되어 있더라도 modules.alias.4.json 가 대비되어 있지 않으면
모듈설치를 못하게 되는 맹점이 있습니다.
그 반대의 경우도 존재할 수 있겠죠?
두 개발자가 서로 다르기 때문에 충분히 두 군데에서 누락이 있을 가능성이 있습니다.
제가 예상하는 EUDEV 데몬의 처리방식은 장치가 감지될때 마다
/lib/modules 에 미리 넣어둔 모듈(드라이버 ko파일)들을 알아서 찾아 사용하게 되는게 아닐까 싶습니다.
이부분이 저절로 연결되는지 어떤 연결처리가 또 필요한지는 모르겠습니다.
일단 오늘의 미션으로 ARPL 의 EUDEV 를 M SHELL for TCRP 에도 적용하는 테스트를 해보려 합니다.
이 방법이 성공한다면 새로운 랜카드나 HBA 카드등이 생기셨을 때 ARPL 통합모듈쪽 리스트에 ko 파일만 잘 존재하는지만 확인하시면 될것 같습니다.
이 기능이 된다면 더 많은 기능들이 좋아지겠네요
라이브러리 파일들 누락된것들 종속관계 부터 찾느라 골아프네요. ㅎㅎ
chatGPT 도움을 또 받아야 겠습니다.
결국 성공했습니다. ~~~ ㅎㅎㅎ
이제 ARPL 과 같은 방법으로 eudev 방식의 안정적인 동적모듈처리가 TCRP도 가능하게 되었습니다.
오늘안에 마무리하고 공지하겠습니다. ^^
cmt alert