Back to list
jayleekr

snt-ccu2-yocto

by jayleekr

0🍴 0📅 Jan 8, 2026

SKILL.md


name: snt-ccu2-yocto description: Yocto/Bitbake 기반 CCU2 임베디드 리눅스 개발 파이프라인. JIRA 연동, 레시피 작성, Docker 빌드, 이미지 검증 자동화. "yocto", "bitbake", "recipe", "임베디드" 키워드시 활성화 version: 1.0.0 author: CCU2 Team tags: [yocto, bitbake, embedded, linux, recipe, pipeline]

SNT-CCU2-YOCTO Pipeline Agent

JIRA 티켓부터 이미지 빌드까지 CCU2 Yocto 개발 파이프라인을 자동화하는 스킬.

When to Use This Skill

이 스킬은 다음 요청에서 활성화됩니다:

  • Yocto 레시피 작성/수정 (*.bb, *.bbappend, *.bbclass)
  • 커널 설정 변경 (*.config, defconfig)
  • 임베디드 리눅스 이미지 빌드
  • JIRA 티켓 기반 Yocto 기능 구현
  • /snt-ccu2-yocto 명령어 호출

Project Detection

이 스킬은 다음 경로 패턴에서 자동 활성화:

  • *CCU_GEN2.0_SONATUS* - Yocto manifest 저장소
  • mobis/, lge/ 디렉토리 존재 시

Prerequisites

Environment Setup

  1. JIRA 인증: .env 파일에 API Token 설정

    JIRA_BASE_URL=https://sonatus.atlassian.net/
    JIRA_EMAIL=your.email@sonatus.com
    JIRA_API_TOKEN=your_api_token
    
  2. Docker 환경: run-dev-container.sh 실행 가능

  3. 빌드 초기화: init.py 완료 상태

Directory Structure

CCU_GEN2.0_SONATUS.manifest/
├── mobis/                    # MOBIS Tier-1
│   ├── layers/
│   │   └── meta-sonatus/    # Sonatus 레이어
│   ├── build.py             # 빌드 스크립트
│   └── deploy/              # 빌드 결과물
├── lge/                      # LGE Tier-1
├── info/
│   ├── repo_info.json       # 버전 정보
│   └── build_info.json      # 빌드 정보
├── init.py                   # 초기화 스크립트
└── run-dev-container.sh      # Docker 진입

Core Workflow

1. Understand User Intent

사용자 요청에서 다음 정보를 파악:

  • JIRA Ticket ID: CCU2-*, SEB-*, CRM-* 형식
  • 대상 Tier: MOBIS 또는 LGE
  • 변경 유형: 레시피, 커널 설정, 패치, 이미지
  • 빌드 범위: 특정 모듈 또는 전체 이미지

필요시 질문:

  • "어떤 Tier를 대상으로 할까요? (MOBIS/LGE)"
  • "어떤 레시피를 수정할까요?"
  • "전체 이미지 빌드가 필요할까요, 특정 모듈만 빌드할까요?"

2. Execute Appropriate Mode

Spec Mode (명세 모드)

요구사항을 구조화된 명세로 변환.

실행 단계:

  1. JIRA 티켓 또는 요구사항 분석
  2. 영향받는 레시피/레이어 식별
  3. 구조화된 명세 생성

출력 예시:

spec:
  name: "cgroupv2-support"
  tier: mobis
  recipe_changes:
    - layer: meta-sonatus
      recipe: linux-s32_5.10.bbappend
      action: modify
  kernel_configs:
    - file: cgroupv2.config
      options:
        - CONFIG_CGROUP_V2=y
  code_changes:
    - file: systemd_%.bbappend
      action: create

Reference: references/spec-workflow.md

Implement Mode (구현 모드)

명세에 따라 Yocto 파일 생성/수정.

실행 단계:

  1. 레시피 파일 생성/수정
  2. 커널 config fragment 작성
  3. bbappend 파일 작성
  4. 패치 파일 생성 (필요시)

Yocto 파일 패턴:

# bbappend 위치
meta-sonatus/recipes-*/*/
meta-sonatus/recipes-kernel/linux/

# Config fragment 위치
meta-sonatus/recipes-kernel/linux/files/
meta-sonatus/recipes-kernel/linux-ccu2/

Reference: references/implement-workflow.md

Build Mode (빌드 모드)

Docker 컨테이너에서 bitbake 빌드 실행.

Slash Command: /snt-ccu2-yocto:build

빌드 범위 결정:

  • MODULE: 특정 레시피만 빌드 (-m linux-s32)
  • FULL: 전체 이미지 빌드 (-ncpb)

실행 예시:

# Docker 컨테이너 진입
./run-dev-container.sh

# 컨테이너 내부에서
cd mobis/
./build.py -m linux-s32 -c cleansstate  # 클린
./build.py -ncpb -j 16 -p 16            # 전체 빌드

Reference: references/build-workflow.md

Test Mode (테스트 모드)

빌드 결과 검증.

테스트 단계:

  1. Stage 1: 빌드 검증 - 에러/경고 확인
  2. Stage 2: 이미지 검증 - 필수 패키지 포함 확인
  3. Stage 3: 정적 분석 - 레시피 문법 검사
  4. Stage 4: 타겟 테스트 - 실제 보드에서 실행 (optional)

Reference: references/test-workflow.md

Pipeline Mode (전체 파이프라인)

JIRA 티켓부터 테스트까지 전체 자동화.

JIRA → SPEC → IMPLEMENT → BUILD → TEST

Slash Command: /snt-ccu2-yocto:pipeline

3. Handle Errors Gracefully

bitbake 파싱 에러:

  • bbappend 문법 확인
  • FILESEXTRAPATHS 경로 확인
  • SRC_URI 체크섬 확인

빌드 실패:

  • 의존성 누락 확인
  • LICENSE 파일 확인
  • do_compile 로그 분석

이미지 실패:

  • ROOTFS 크기 확인
  • 패키지 충돌 확인

Reference: references/error-recovery.md

Tool Integration

JIRA API 사용

source <(grep -E '^JIRA_' .env | sed 's/^/export /')
curl -s -u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
  "${JIRA_BASE_URL}/rest/api/3/issue/${TICKET_ID}"

build.py 사용

# 모듈 빌드
./build.py -m <recipe> [options]

# 전체 이미지 빌드
./build.py -ncpb -j 16 -p 16

# 클린 빌드
./build.py -m <recipe> -c cleansstate

주요 옵션:

  • -m, --module - 대상 레시피
  • -c, --clean - cleansstate 실행
  • -j, --jobs - 병렬 태스크 수
  • -p, --parallel - 병렬 레시피 수
  • -ncpb - 전체 이미지 빌드
  • --dry-run - 명령만 출력

Docker 컨테이너

# 컨테이너 진입
./run-dev-container.sh

# 컨테이너 내 명령 실행
./run-dev-container.sh -x "cd mobis && ./build.py -ncpb"

Communication Patterns

명세 생성 결과

## Spec Generated: cgroupv2-support

### Recipe Changes
| Layer | Recipe | Action |
|-------|--------|--------|
| meta-sonatus | linux-s32_5.10.bbappend | modify |
| meta-sonatus | systemd_%.bbappend | create |

### Kernel Configs
- cgroupv2.config: CONFIG_CGROUP_V2=y

### Implementation Ready
다음 명령으로 구현을 시작하세요:
/snt-ccu2-yocto:implement

빌드 진행 상황

## Build Progress

Tier: MOBIS
Scope: MODULE (linux-s32)

[1/3] ✅ cleansstate 완료
[2/3] 🔄 do_compile 진행 중...
[3/3] ⏳ do_deploy 대기

예상 완료: 45분

테스트 결과

## Test Results

Stage 1: ✅ Build Verification
  - Errors: 0
  - Warnings: 3 (non-critical)

Stage 2: ✅ Image Validation
  - Size: 512MB (limit: 1GB)
  - Required packages: All present

Stage 3: ✅ Static Analysis
  - Recipe syntax: OK
  - License compliance: OK

Overall: PASSED ✅

Success Criteria

태스크 완료 전 다음 확인:

  • ✅ Yocto 레시피 문법 검증
  • ✅ 빌드 에러 없이 완료
  • ✅ 이미지 크기 제한 이내
  • ✅ 필수 패키지 포함 확인
  • ✅ 테스트 통과 (또는 실패 문서화)

Important Constraints

What This Skill Can Do

  • Yocto 레시피/bbappend 작성
  • 커널 config fragment 생성
  • Docker 컨테이너에서 빌드 실행
  • 빌드 결과 분석 및 리포트
  • JIRA 티켓 연동

What This Skill Cannot Do

  • 프로덕션 이미지 직접 배포
  • 타겟 보드 플래싱 (수동 필요)
  • Yocto 메타 레이어 구조 변경
  • 빌드 시스템 자체 수정

Assumptions

  • Docker 환경 설정 완료
  • init.py 실행으로 저장소 동기화 완료
  • 빌드 호스트에 충분한 디스크 공간 (최소 100GB)
  • 네트워크 접근 가능 (패키지 다운로드)

Available Slash Commands

CommandDescription
/snt-ccu2-yocto:pipeline전체 파이프라인 (JIRA→빌드→테스트)
/snt-ccu2-yocto:spec명세 생성
/snt-ccu2-yocto:implement레시피/설정 구현
/snt-ccu2-yocto:buildDocker 빌드 실행
/snt-ccu2-yocto:test테스트 파이프라인
/snt-ccu2-yocto:jiraJIRA 이슈 조회/생성

Version History

  • 1.0.0 (2026-01-06): 초기 릴리스

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon