콘텐츠로 바로가기

now0930 일지

이런저런 생각

  • 홈
  • 비공개
  • 강좌
  • 잔여 작업 조회
  • 위치

unkown symbol

insmod 실행 시 unknown symbol 에러

가끔 모듈을 컴파일 하여 insmod로 추가할 때 unknown symbol 에러로 추가가 안 될 경우가 있다. xpad.c를 따라할 때 해당 함수를 찾아 지우고 했지만, 이번 sensehat을 사용하려는 기본 함수는 지울 수 없어 이유를 찾아야 했다.

[ 8890.395611] sensehat_core: loading out-of-tree module taints kernel.
[ 8890.395805] sensehat_core: Unknown symbol __devm_regmap_init_i2c (err -2)
[ 8903.630685] sensehat_core: Unknown symbol __devm_regmap_init_i2c (err -2)
[ 9094.432329] sensehat_core: Unknown symbol __devm_regmap_init_i2c (err -2)
[ 9232.390045] sensehat_core: Unknown symbol __devm_regmap_init_i2c (err -2)

결과적으로 devm_regmap_init_i2c를 사용하려면 먼저 regmap_i2c를 로딩해야 하는데, 이 작업을 하지 않아 그렇다. 부팅한 버전과 일치하는regmap-i2c.ko를 찾아 insmod regmap-i2c.ko로 먼저 로딩해야 한다.

어떤 모듈이 미리 필요한지 알기 위해서는 해당 모듈을 lib/modules/”부팅버전”에 복사하고 depmod -a로 의존성 확인을 먼저 해야 한다. modprobe로 내가 원하는 모듈을 로딩하면 의존성을 확인하여 같이 로딩한다.

매번 수정되는 드라이버를 modprobe로 로딩하기 귀찮으니, 해당 파일이 부팅 때 자동으로 로딩 되도록 수정한다.

pi@raspberrypi:/etc/modules-load.d $ pwd
/etc/modules-load.d
pi@raspberrypi:/etc/modules-load.d $ cat modules.conf 
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

i2c-dev
#sensehat_core를 사용하기 위한 모듈 선 로딩
regmap_i2c

이제 sensehat을 가지고 놀 준비가 되었다.

이 글 공유하기:

  • Tweet
발행일 2022-02-07글쓴이 이대원
카테고리 생활코딩 태그 c, devm_regmap_init_i2c, driver, regmap_i2c, sensehat

댓글 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.

글 내비게이션

이전 글

linux pages

다음 글

sensehat i2c hts221

2025 5월
일 월 화 수 목 금 토
 123
45678910
11121314151617
18192021222324
25262728293031
4월    

최신 글

  • common mode, differential mode 2025-05-11
  • signal conditioner, 신호 처리기 2025-05-10
  • strain gage 2025-05-09
  • 칼만 필터 2025-05-01
  • positioner(I/P) 2025-04-26

카테고리

  • 산업계측제어기술사
  • 삶 자국
    • 책과 영화
    • 투자
  • 생활코딩
    • LEGO
    • ROS
    • tensorflow
  • 전기기사
  • 피아노 악보

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org

페이지

  • 소개
  • 잔여 작업 조회
    • 작업 추가
    • 작업의 사진 조회
    • 작업 수정 페이지
  • 사진
    • GPS 입력된 사진
    • 사진 조회
  • 위치
    • 하기 휴가 방문지
    • 해외 출장

태그

android bash c docker driver FSM gps java kernel LEGO linux mysql network program opcua open62541 plc programmers python raspberry reinforcementLearning ros state space system program tensorflow transfer function 경제 미국 민수 삼국지 세계사 실기 에너지 역사 유전자 일본 임베디드 리눅스 전기기사 조선 중국 채윤 코딩 테스트 통계 한국사 한국어

팔로우하세요

  • Facebook
now0930 일지
WordPress로 제작.