1. Petalinux란?
PetaLinux는 Xilinx(현재는 AMD)에 의해 제공되는 임베디드 리눅스 개발 툴킷이다. Zynq-7000, Zynq UltraScale+, Versal 등 Xilinx SoC/MPSoC 플랫폼에 최적화된 커스터마이징 가능한 Linux 시스템을 빌드할 수 있도록 하는 SDK이다.
2. 주요 목적
"하드웨어 설계자가 Vivado에서 만든 Xilinx IP/SoC 설계를,
Embedded Linux 환경에서 제어할 수 있게 해주는 도구"
쉽게 설명하자면, FPGA용 Linux를
빌드할 수 있는 프로그램이라 생각하면 된다.
3. 설계 Flow
- Vivado에서 Xilinx IP 및 SoC 설계
- AXI4-Lite 기반 커스텀 IP, BRAM, GPIO, DMA 등 구성
- Zynq PS 설정 (UART, I2C, SPI 등 Enable)
- XSA (Xilinx Support Archive) 파일 생성
- PetaLinux로 Linux 시스템 구성
- petalinux-create로 프로젝트 생성
- petalinux-config --get-hw-description으로 Vivado의 XSA 정보 가져옴
- 자동으로 device tree, kernel config, U-Boot 설정 생성
- 커널 모듈, 앱, 디바이스 드라이버 추가 가능
- Linux에서 IP 제어
- 커널 부팅 시 /dev/ 아래 장치 파일로 드러남
- 커스텀 IP가 AXI GPIO라면 → /sys/class/gpio/ 혹은 mmap을 통한 제어
- DMA나 BRAM 같은 고속 인터페이스는 커널 드라이버를 통해 제어
4. PetaLinux vs Vitis 펌웨어
Vivado에서 Block Design을 구성하고, Vitis를 통해 펌웨어를 개발하여 SoC를 제어하는 방식은 필자가 다뤄본적이 있기에 익숙한 방식일 것이다. 그렇다면 Petalinux를 사용하면 어떤 점이 다를까?
"PetaLinux는 내가 만든 하드웨어 IP를 라즈베리파이처럼 사용할 수 있게 해준다."
이것으로 정리할 수 있을것 같다. 즉, 사용자가 만든 IP를 Linux 운영체제 환경에서 마치 /dev/gpioX, /dev/mem, /sys/class/ 같은 인터페이스로 다룰 수 있게 해주며, SSH 접속, 파일 시스템, Python/C 애플리케이션 실행, 네트워크 통신, 동시 멀티태스킹 등 훨씬 더 높은 수준의 시스템 통합이 가능해지는 것이다.
Vitis (Baremetal or RTOS) | Petalinux (Embedded Linux) |
CPU가 부팅하자마자 .elf 펌웨어 실행. | CPU가 부팅하면 Linux 커널이 올라가고, 리눅스 시스템이 시작됨. |
직접 하드웨어 레지스터에 접근해서 제어 속도 빠름, 지연 적음. | 그 위에서 사용자 앱이 실행되며, 하드웨어는 Linux 커널이 제공하는 드라이버 계층을 통해 제어. |
시스템 기능이 제한됨 (파일시스템, 네트워크, 패키지 없음). | 네트워크, 멀티프로세싱, 파일 IO, 디버깅, 패키지 설치 등 복잡한 기능 수행 가능. |
MCU 펌웨어 짜듯 사용하는 방식. | Raspberry Pi에서 Python으로 센서를 제어하는 느낌과 비슷. |
'Linux > Petalinux' 카테고리의 다른 글
Petalinux 5-0. petalinux-config (0) | 2025.06.30 |
---|---|
Petalinux 4. rootfs 구축 (0) | 2025.06.29 |
Petalinux 3. Build a Project from .bsp (0) | 2025.06.24 |
Petalinux 2. Installing Petalinux (0) | 2025.06.18 |