Guillermo Austin Kim

Sources

Posts

998 posts

[리눅스 커널] KEXEC와 KDUMP의 동작 원리

Guillermo Austin Kim|2022년 3월 10일

1. KDUMP 관련 링크 2. KEXEC와 KDUMP 소개 kexec 커널 패닉이 발생하였을 때, 부트로더를 거치지 않고 빠르게 새로운 커널로 부팅시키는 Feature kdump kexec를 바탕으로 한 “kernel crash dumping mechanism” Kernel Crash Dump Mechanism 커널 패닉이 유발되면 시스템의 메모리 상태를 vmcore 파일에 생성하는 작업 3. kdump란? kdump는 kernel panic 발생 시에 메모리 이미지(vmcore)의 dump 파일을 생성하는 툴입니다. kdump를 동작하는 과정에서 kexec이 실행되는데 kexec는 커널 패닉 발생 시 BIOS를 거치지 않고 빠르게 새로운 덤프용 커널로 부팅하게 하는 툴입니다. kex

[리눅스커널] vmcore를 받기 위한 kdump 설정 방법 II (Ubuntu)

Guillermo Austin Kim|2022년 3월 10일

Precondition 아래 명령어를 입력해 프로그램 목록을 최신으로 업데이트합니다. $ sudo apt-get update$ sudo apt-get upgrade $ cat /proc/cmdlineBOOT_IMAGE=/boot/vmlinuz-5.4.0-59-generic root=UUID=b187438a-b934-498d-86e1-8235e8cb0e3f ro swapaccount=1 kdump 설정 방법과 vmcore 추출 하기 1. linux-crashdump 설치 아래와 같은 명령어를 실행해 linux-crashdump를 설치합니다. $ sudo apt-get install linux-crashdumpReading package lists... DoneBuilding dependenc

[리눅스커널] vmcore를 받기 위한 설정 방식 I (크로뮴 OS)

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을 활성화해야 하는데요. 이를 위해 다음과 같은컨피그를 활성화해야 합니다.

[Arm프로세서] 레지스터를 배우기 어려운 이유

Guillermo Austin Kim|2022년 2월 27일

CPU 아키텍처를 배울 때 가장 먼저 레지스터를 접합니다. CPU를 설정하거나 CPU의 속성 정보를 레지스터가 담고 있기 때문입니다. Arm 아키텍처에서 정의된 레지스터를 설명하기 전에 레지스터를 소개합니다. 레지스터를 배우기 어려운 이유 CPU 아키텍처를 처음 배울 때 가장 먼저 무엇을 배울까요? 레지스터를 공부할 가능성이 높습니다. 그런데 Arm 아키텍처나 Arm 프로그래밍을 다루는 대부분의 책은 레지스터의 기능을 상세히 다룹니다. 예를 듭시다.  Armv7 아키텍처에서 정의된 레지스터는 범용 레지스터와 CP15 레지스터로 구성된다.  R13은 스택 포인터 레지스터, R14는 링크 레지스터이다. 이런 내용을 읽고 대부분 레지스터가 너무 어렵다고 느낍니다. 저도 처음 Arm 어셈블리를 배울 때

[Arm프로세서] XEN 하이퍼바이저: EL2 익셉션 벡터 핸들러 코드 분석

Guillermo Austin Kim|2022년 2월 17일

XEN 하이퍼바이저의 익셉션 벡터 핸들러를 해석하는 방법을 소개했으니 이어서 익셉션 벡터 핸들러의 코드를 분석하겠습니다. 먼저 2~14번째 줄을 보겠습니다. 2 26a800: 17fffc00 b 269800 3 26a804: d503201f nop4 26a808: d503201f nop...5 26a880: 17fffbfb b 26986c 6 26a884: d503201f nop7 26a888: d503201f nop...8 26a900: 17fffbf6 b 2698d8 9 26a904: d503201f nop10 26a908: d50