라즈베리파이

포스트: 191|조회수: 0|ARTIFACT
Items

Posts

191 posts

[라즈베리파이] 라즈비안: objdump 바이너리 유틸리티

Guillermo Austin Kim|2020년 1월 8일

바이너리 유틸리티는 오브젝트 포맷의 파일을 조작할 수 있는 프로그램입니다. 다음은 대표적인 바이너리 유틸리티를 정리한 표입니다. objdump: 라이브러리나 ELF(Executable and Linkable Format) 형식의 파일을 어셈블리어로 출력as: 어셈블러ld: 링커addr2line: 주소를 파일과 라인으로 출력nm: 오브젝트 파일의 심벌을 출력readelf ELF 파일의 내용을 출력 이 중에서 리눅스 커널 어셈블리 코드와 섹션 정보를 볼 수 있는 objdump라는 바이너리 유틸리티 사용법을 소개합니다. 오브젝트 파일로는 리눅스 커널을 빌드하면 생성되는 vmlinux를 활용합니다. 다음 명령어를 입력하면 objdump를 실행할 때 지정 가능한 옵션 정보를 확인할 수 있습니다. root@ra

[라즈베리파이] 라즈비안: 리눅스 커널 소스의 구조

Guillermo Austin Kim|2020년 1월 7일

지금까지 라즈비안 리눅스의 커널 코드를 내려받고 빌드하는 방법을 알아봤습니다. 리눅스 커널 코드를 수정해서 실습 코드를 빌드할 수 있는 준비를 끝낸 것입니다. 이번에는 리눅스 커널 코드의 디렉터리 구조를 살펴보겠습니다. 참고로 저도 처음으로 리눅스 커널 코드를 내려받고 디렉터리를 봤을 때 어떤 코드를 먼저 봐야 할지 감이 오지 않았습니다. 10여년 동안 커널을 빌드하면서 커널 소스는 다음과 같은 구조로 디렉터리가 구성돼 있다는 것을 알게 됐습니다. arch arch 하부 디렉터리에는 아키텍처별로 동작하는 커널 코드가 있습니다. arm: 32비트 계열 ARM 아키텍처 코드가 있으며, 라즈비안도 이 하부 디렉터리 코드를 실행합니다. arm64: 64비트 계열 ARM 아키텍처 코드가 있습니다. x86

[라즈베리 파이] 라즈비안 버전과 커널 소스 버전

Guillermo Austin Kim|2020년 1월 7일

이번 절에서는 라즈베리 파이에서 라즈비안 리눅스 커널 소스코드를 내려받고 빌드하는 방법을 알아보겠습니다. 참고로 필자는 불필요한 권한 설정을 피하기 위해 터미널에서 다음 명령어를 입력해 root 권한을 획득했습니다. $ sudo su 실제 라즈베리 파이의 터미널에서 sudo su 명령어를 입력할 때의 모습은 다음과 같습니다. 그림 2.37 터미널에서 sudo su 명령어를 입력한 모습 라즈비안 버전과 커널 소스 버전 라즈비안 커널 이미지를 내려받는 방법을 설명하기에 앞서 라즈비안과 커널 버전에 대해 알아둘 필요가 있습니다. 이 책에서 다루는 커널 디버깅과 관련된 내용은 2019년 7월 10일에 라즈베리 파이 커뮤니티에서 배포한 다음 이미지를 기준으로 테스트했습니다. 라즈비안 이미지 파일

[라즈베리파이] 라즈베리 파이에서 언어 설정 따라해보기

Guillermo Austin Kim|2020년 1월 6일

대부분 리눅스 개발을 할 때는 터미널로 리눅스 명령어를 입력합니다. 이 정도로 라즈비안을 설정해도 개발하는 데 문제는 없지만 라즈비안에 설치된 크롬 브라우저를 쓰려면 언어를 설정해야 합니다. 라즈비안 메뉴를 실행해 언어(Locale) 설정을 하겠습니다. 그림 2.30과 같이 터미널에서 raspi-config 명령어를 입력합니다. 그림 2.30 터미널에서 raspi-config 명령어 입력 그럼 다음과 같은 화면이 나타납니다. 그림 2.31 라즈베리 파이 소프트웨어 설정 도구 여기서 ‘4 Localisation Options’ 메뉴로 이동해 키보드로 엔터를 입력합니다. 그림 2.32 언어 설정 메뉴로 이동 화면이 바뀌면서 설정 가능한 언어 목록이 나타납니다. 그림 2.33 언어 설정