저는 커널 모듈 개발과 관련하여 새로운 것으로, 오늘 첫 번째 커널 모듈을 작성하기로 결정했습니다.커널 모듈로드로 인해 버그가 발생합니다.
my 모듈은 2 개의 숫자를 입력으로 받아 공백으로 구분하여 함께 추가합니다.
커널 모듈은 출력 돌아와 새로운 입력 (공백으로 구분이 개 번호)
을주는 것 그 파일에 기록이있을 것이다 그래서 파일 읽기, 발동 항목 이름 CALC (/ proc 디렉토리/CALC)를 통해 통신모듈을로드 할 때 (insmod) 쉘이 멈추거나 dmesg를 볼 때 커널 버그 행 here is the trace이 표시됩니다.
이것이 내 코드의 버그인지, 아니면 리눅스 커널의 실제 버그인지 확실치 않으며, 내가 뭘 잘못했는지 이해하고 싶습니다. 어떻게 제 모듈을 디버깅을 시작할 수 있습니까? dmesg 로그.
here is the source code of my module. 사전에
내 메이크가 매우 표준이다,
obj-m += calc.o
KDIR := /lib/modules/$(shell uname -r)/build
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
많은 많은 감사합니다!
편집 : 나는 우분투 16.04.02, 릴리스 4.10.0-28 꽤 표준을 사용하고 있습니다.
로 변경해야합니다, 드라이버 및 추적의 코드는 텍스트로 질문 자체 **에 **해야한다 연결되지 않았습니다. – Tsyvarev
확인, 감사합니다. 다음 번에 더 잘 아는 것 –