1. OS 및 배포판 정보 확인
cat /etc/os-release
Rasbian GNU/Linux 10 (buster)이다.
2. 커널 정보 확인
uname -a
- armv7l: 32비트
- aarch64: 64비트
- armv6l: 32비트 (라즈베리파이 1과 같은 구형 모델)
3. CPU 및 메모리 정보 확인
CPU 정보
cat /proc/cpuinfo
메모리 정보
free -h
4. GCC, LD, LDD
버전확인
gcc --version
ld --version
ldd --version
GCC (GNU Compiler Collection)
GCC는 GNU 프로젝트에서 제공하는 컴파일러 도구 모음이다. 주로 C, C++, Go 등의 언어를 컴파일하는 데 사용된다.
- 소스 코드를 머신이 실행 가능한 바이너리 파일로 컴파일한다.
gcc -o myProgram myProgram.c
./myProgram
LD (GNU Linker)
LD는 GNU의 링커 도구이다. 링커는 여러 개의 오브젝트 파일을 하나의 실행 파일로 연결한다. 또한 외부 라이브러리와 함께 바이너리를 완성하는 역할도 한다.
- 오브젝트 파일을 연결하여 실행 파일 생성
- 정적 또는 동적 라이브러리를 프로그램에 포함
ld -o output_file input_file.o input_file2.o
대부분 GCC가 내부적으로 LD를 호출하므로 사용자가 직접 사용할 일이 드물다.
라즈베리파이에서는 gcc my_program.c를 실행하면 내부적으로 LD가 호출되어 최종 실행 파일을 생성한다.
LDD (List Dynamic Dependencies)
LDD는 실행 파일이 어떤 동적 라이브러리를 사용하는지 확인하는 데 사용하는 도구이다.
- 실행 파일이 의존하는 공유 라이브러리(.so 파일)를 나열
- 라이브러리 경로와 사용되는 실제 파일을 표시
ldd .my_program
출력
linux-vdso.so.1 => (0x00007ffc12345000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76f14000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76d50000)
5. 디스크 용량 확인
df -h
6. gpio 핀 상태
gpio readall