[리눅스커널] LKDTM(Linux Kernel Dump Test Module) 소개
By Guillermo Austin Kim | 2022년 4월 11일 |
LKDTM 소개 LKDTM은 Linux Kernel Dump Test Module (LKDTM)의 약자로 kdump를 활용해 덤프(vmcore)가 제대로 추출되는지 테스트하는 용도로 작성된 드라이버입니다. 관련 자료는 아래 링크에서 확인할 수 있습니다. LKDTM 소스는 커널 버전이 업그레이드되면서 (불필요하게) 복잡해 졌는데요. 전체 구조는 예전 v3.18 소스를 보면 더 빨리 파악할 수 있습니다. LKDTM 컨피그를 키는 방법 LKDTM는 드라이버 모듈 형식으로 빌드하거나 아예 빌트인으로 커널 이미지에 포함되도록 빌드할 수 있습니다. 이번에는 커널 이미지에 LKDTM을 포함시키는 방법을 소개합니다. 아래는 LKDTM 컨피그를 키는 예제 코드입니다. 라즈비안 커널 소스 기준입니다. diff
[리눅스커널][디버깅] 크래시 유틸리티로 vmcore를 T32(Trace32)에 로딩하기
By Guillermo Austin Kim | 2019년 3월 13일 |
소개 크래시 유틸리티는 리눅스 커널 개발에서 인기 있는 디버깅 툴입니다. 특히 search 명령어로 메모리 서치를 할 수 있는 막강한 기능을 제공합니다. 하지만 프로세스별 콜스택을 이동하면서 지역변수를 볼 수 있는 기능이 없어 조금 불편합니다. 이번 포스팅에서 vmcore에서 스택 덤프를 추출해 T32 시뮬레이터로 콜스택을 올려 보는 방법을 소개합니다. 크래시 유틸리티로 프로세스 스택 메모리 덤프하기 "./crash64 vmcore vmlinux" 명령어로 크래시 유틸리티를 실행합니다.austindh.kim~/backup/Vmcore_dump$ ./crash64 vmcore vmlinux crash64 7.1.9++Copyright (C) 2002-2017 Red Hat, Inc.Copyrigh
[리눅스커널] vmcore를 받기 위한 설정 방식 I (크로뮴 OS)
By Guillermo Austin Kim | 2022년 3월 9일 |
vmcore를 받으려면 적절히 커널 코드를 수정해야 합니다.이번 포스트에서는 크로뮴 OS 환경에서 vmcore를 받는 방법을 공유합니다. 커널 코드 수정 및 설치 과정 1. Ram Reserve second kernel 부팅을 위해서 ram을 reserve해야 합니다.(/proc/iomem 에서 Crash kernel 영역) 이를 위해 커멘드 라인에 crashkernel 아규먼트를 추가해야 합니다. +CONFIG_CMDLINE="crashkernel=512M"+CONFIG_CMDLINE_BOOL=y 위 코드는 커널 컨피그에 커널 커멘드를 추가하는 루틴입니다. 2. kexec tool를 활성화 이어서 kexec tool을 활성화해야 하는데요. 이를 위해 다음과 같은컨피그를 활성화해야 합니다.
[리눅스커널][디버깅] T32(Trace32)로 vmlinux 로딩해 시스템 구경하기
By Guillermo Austin Kim | 2019년 3월 13일 |
T32 시작 명령어 T32 시뮬레이터를 열고 다음 명령어를 입력합시다.sys.cpu cortexa7sys.up 대부분 ARM32 아키텍처는 위 명령어로 T32가 초기화됩니다. T32 명령어로 시스템 점검하기 먼저 커널 섹션 정보를 보겠습니다.y.l.sec__________address________|path\section___________________________|acc|init|physical P:00000000--0000001F|\\vmlinux\.vectors |R-X|L- | P:00001000--000012BF|\\vmlinux\.stubs |R-X|L- | P:C0008000--C