objdump -d vmlinux | grep rpi_get_interrupt_info"디버깅을 통해 배우는 리눅스 커널의 구조와 원리"를 보며 실습하던 중, 책에서 하라는 대로 했지만 알수없는 오류가 생겼다.
바로 오늘의 제목인 line 19: echo: write error: Invalid argument이 되겠다.
이 오류는 다음과 같은 쉘 명령어 파일을 실행하다 본 것이다.
#!/bin/bash
echo 0 > /sys/kernel/debug/tracing/tracing_on
sleep 1
echo "tracing_off"
echo 0 > /sys/kernel/debug/tracing/events/enable
sleep 1
echo "events disabled"
echo secondary_start_kernel > /sys/kernel/debug/tracing/set_ftrace_filter
sleep 1
echo "set_ftrace_filter init"
echo function > /sys/kernel/debug/tracing/current_tracer
sleep 1
echo "function tracer enabled"
echo rpi_get_interrupt_info > /sys/kernel/debug/tracing/set_ftrace_filter
sleep 1
echo "set_ftrace_filter enabled"
echo 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_entry/enable
echo 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_exit/enable
echo "event enabled"
echo 1 > /sys/kernel/debug/tracing/options/func_stack_trace
echo 1 > /sys/kernel/debug/tracing/options/sym-offset
echo "function stack trace enabled"
echo 1 > /sys/kernel/debug/tracing/tracing_on
echo "tracing_on"
무엇이 문제일까? 19라인을 보자.
나온 결과는 바로 이것
http://egloos.zum.com/rousalome/v/10020085
[공유][문의] line 19: echo: write error: Invalid argument라는 에러가 뜹니다
아래와 같이 독자분께서 블로그에 댓글로 문의를 주셨는데, 답신 내용이 길어져 아예 새롭게 포스팅을 합니다. 링크 http://rousalome.egloos.com/10011668 문의) 커널빌드하고 설치한후 irq_trace_ftrace.sh를
egloos.zum.com
저자분께서 오류를 해결하라고 친절히 글까지 써주셨다.
이런 오류가 나타나는 이유는 rpi_get_interrupt_info라는 함수가 실제로 내 리눅스 커널에 설치가 안되어있기 때문이다.
1. rpi_get_interrupt_info가 컴파일 과정에서 inline 함수로 변경되어 실제로 함수가 아니게 되었다
함수 앞에 noinline을 붙혀줘서 컴파일러가 inline으로 바꾸지 못하게 하자.
2. 함수를 정의하지 않았거나 이름이 이상함
out 디렉터리에서 "objdump -d vmlinux | grep rpi_get_interrupt_info"를 입력해보고 출력이 없다면 코드를 확인해보자
3. 오타로 인한 컴파일 오류
4. 라즈베리 파이 프로세서가 책과 다르다
https://www.raspberrypi.com/documentation/computers/linux_kernel.html
5. 리눅스 버전의 충돌
'디버깅을 통해 배우는 리눅스 커널의 구조' 카테고리의 다른 글
IRQ 스레드 (threaded IRQ) (0) | 2022.06.17 |
---|---|
인터럽트 디스크립터와 인터럽트 디버깅 (0) | 2022.06.15 |
bcm2711 라즈베리파이에서 bcm2835 라이브러리 사용 (0) | 2022.06.12 |
스터디 계획(1주차) (0) | 2022.06.11 |
_do_fork의 행방 (0) | 2022.05.29 |