디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Dingux 리눅스앱에서 작성

발명도둑잡기(118.216) 2025.12.04 19:55:33
조회 91 추천 0 댓글 0
														

챗지피티

아래는 Dingux(딩각스)—중국 휴대용 레트로기기(예: Dingoo A320/A330, OpenDingux 기반 RG350 등)에서 쓰이는 임베디드 리눅스 배포판—의 내부 구조를 가장 기술적으로 정확하게 정리한 것입니다.

---

Dingux / OpenDingux Linux 전체 구조(아키텍처)

1) 기본 개념

Dingux는 임베디드 SoC(MIPS32, ARM 등) 위에서 동작하는 경량 리눅스 배포판

BusyBox, uClibc 또는 musl 기반의 최소 시스템

그래픽은 X11 없음, SDL 또는 DirectFB 계열 렌더링

정상적인 패키지 매니저 없음(opkg/apt 없음), rootfs 이미지 + home 파티션 구조

---

2) 부트 과정(Boot flow)

① Boot ROM

SoC 내부 ROM이 NAND/SD에서 1차 부트로더 로드

② 1차 부트로더

제조사 제공(주로 Ingenic CPU이면 X-Boot)

NAND/SD에서 커스텀 2차 부트로더를 읽어옴

③ 2차 부트로더: u-boot

커널 이미지(uImage, zImage) 로드

커맨드라인 전달 (mem=, mtdparts=, root=/dev/... 등)

커널 파라미터: LCD 정보, 키 입력, 파일시스템 위치 등

④ Linux Kernel 부팅

OpenDingux (최신 Dingux)의 경우:

Linux 3.x → 4.x 이후로 업데이트된 Fork

Ingenic JZ47xx, JZ4760, JZ4770 패치 포함

커널 드라이버:

LCD/Framebuffer

ALSA 오디오

GPIO 키 입력

NAND/SD/MMC

USB gadget/host

Battery ADC

⑤ Root filesystem(rootfs) 마운트

squashfs 또는 cramfs (읽기 전용)

overlay로 ext4 또는 fat32의 “/media/data”(home) 병합

---

3) 파일시스템 구조

/
├── bin/        (BusyBox 등)
├── etc/
├── lib/
├── usr/
├── home/       ← user apps, 에뮬레이터
└── media/
      └── data/ ← 실제 writable 공간

특징:

rootfs 읽기 전용, 유지보수 안정성↑

사용자 앱은 /media/data/apps/ 같은 디렉터리에서 실행

config는 /home/.config/ 혹은 /media/data/local/home/에 저장

---

4) 그래픽 시스템 구조

Dingux는 프레임버퍼 기반 임베디드 그래픽이다.

① Framebuffer (fbdev)

/dev/fb0로 노출

모든 앱은 기본적으로 fb0에 직접 blit

② SDL 1.2 / SDL2

Dingux 그래픽의 핵심:

SDL 1.2 기반 포팅이 매우 많음

SDL2는 OpenDingux 신버전에서 지원

OpenGL 없음(일부 기기만 TinyGL 사용)

③ OpenDingux 추가 그래픽 계층

SimpleMenu, GMenu2X 등의 런처

VSync, double buffering 최적화 패치 존재

---

5) 음향 구조

ALSA (Advanced Linux Sound Architecture)

대부분 SoC는 독자적인 DAC/Codec

ALSA mixer로 볼륨 조절

SDL_mixer(레트로 게임용)과 많이 연결됨

---

6) 입력 시스템(Input system)

① Linux input subsystem

/dev/input/event0 등으로 표준화

방향키/버튼은 GPIO + keymap 드라이버

② 에뮬레이터

SDL 키 입력 매핑

OpenDingux에서는 각 앱마다 input.conf 또는 SDL keymap을 따로 제공

---

7) 애플리케이션 구조

기본 실행 모델

Dingux 앱은 독립된 단일 ELF 실행 파일

정적 링크된 경우 많음 (musl/uClibc static)

에뮬레이터는 대부분 SDL 기반

주요 형태

SDL 에뮬레이터(NES, SNES, GBA, PS1)

RetroArch 포팅

SimpleMenu / GMenu2X 런처

프로세스 관리

systemd 없음

init 스크립트로 간단한 rc 방식

---

8) 패키징 방식

Dingux는 일반적인 패키지 시스템이 없고:

앱 = 폴더 통째로 복사

실행파일 + 리소스 + config 포함

메뉴는 .desktop 파일로 등록 (GMenu2X)

예:

/media/data/apps/SNES/
    snes9x
    snes9x.opk
    icon.png
    config/

---

9) Dingux(OpenDingux) 커널/시스템 구성 요약

구성 요소 설명

Bootloader u-boot
Kernel Linux 2.6.x → 3.x → 최신 4.x Fork
C 라이브러리 uClibc → musl
Shell BusyBox
Filesystem squashfs + ext4 overlay
Graphics fbdev + SDL1/SDL2
Audio ALSA
Input Linux input subsystem
Window manager 없음 (런처만 존재)

---

10) 전체 구조 다이어그램

┌──────────────────┐
         │     Boot ROM     │
         └────────┬─────────┘
                  ▼
      ┌──────────────────────┐
      │   1st Bootloader     │
      └────────┬────────────┘
               ▼
      ┌──────────────────────┐
      │       u-boot         │
      └────────┬────────────┘
               ▼
      ┌──────────────────────┐
      │    Linux Kernel      │
      │ fbdev / ALSA / GPIO  │
      └────────┬────────────┘
               ▼
     ┌─────────────────────────┐
     │       rootfs (RO)       │
     ├─────────────────────────┤
     │     data/home (RW)      │
     └────────┬────────────────┘
              ▼
     ┌─────────────────────────┐
     │    Launcher(GMenu2X)    │
     ├─────────────────────────┤
     │   Apps / Emulators      │
     │    (SDL, RetroArch)     │
     └─────────────────────────┘

---

필요하면 추가 설명 가능

Dingux 소스 트리 구조 분석

Ingenic JZ47xx SoC 내부 구조

SDL vs DirectFB vs fbdev 성능 비교

Dingux에서 직접 에뮬레이터 포팅하는 법(툴체인)

원하시는 부분 있나요?

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연말 모임 가는 곳마다 가장 인싸일 것 같은 스타는? 운영자 25/12/08 - -
이슈 [디시人터뷰] 솔직함을 리뷰하는 유튜버, 흑백리뷰 운영자 25/12/09 - -
AD 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
공지 프로그래밍 갤러리 이용 안내 [98] 운영자 20.09.28 48869 65
2907477 아~ 한남패죽이기 딱 좋은날이다 개멍청한유라갤로그로 이동합니다. 20:07 10 0
2907476 요즘 국비를 부캠이라고 함? [1] 헬마스터갤로그로 이동합니다. 19:58 15 0
2907475 FreeBSD용 Nimf 2025.12.10 출시합니다. 나르시갤로그로 이동합니다. 19:49 10 0
2907474 부캠 투표 좀 [1] 프갤러(182.230) 19:37 15 0
2907472 좇센은 범죄자새끼들만 좇같은게아니라서 더 좇같은나라인거임 타이밍뒷.통수한방(1.213) 19:24 15 0
2907471 면 개발자 만으로 7년 느낀 점 hep갤로그로 이동합니다. 19:10 22 0
2907470 거이씹 모기새기 [1] ♥발라당냥덩♥갤로그로 이동합니다. 19:07 19 0
2907468 프로그래밍 1도 모르던 내가 게임모드 만들엇슴... 프갤러(183.104) 18:55 26 0
2907466 점심 간식 발명도둑잡기(39.7) 18:46 14 0
2907463 프리랜서랑 정규직 같이 해본 사람 있어? 야옹해갤로그로 이동합니다. 18:00 25 0
2907462 회사가 니네 누군지 모를 거 가틍ㅁ??? ㅋㅋ [3] ㅇㅇ(222.108) 17:58 60 0
2907461 임포스터 증후군을 체험하기 위한 가짜 자괴감 끝에 [2] chironpractor갤로그로 이동합니다. 17:52 25 0
2907458 신입 개발자 오늘 한 일. [6] cvs.갤로그로 이동합니다. 17:40 69 0
2907457 왜 프로그래머는 화가 많을 [1] ㅇㅇ(222.108) 17:40 35 0
2907456 쌩초보 강의 or 책 추천해주세요........ [8] 프갤러(211.50) 17:36 38 0
2907455 니네 ai 이용해서 수학 공부해라 [5] ㅇㅇ(222.108) 17:36 50 0
2907453 집에 가자 ! cvs.갤로그로 이동합니다. 17:20 14 0
2907452 Hex dump 에서 원본 복구 절대못하지? [3] 프갤러(106.101) 17:01 36 0
2907451 장사를 해보니 개발이 재밌었긴 했지만 [2] chironpractor갤로그로 이동합니다. 16:51 48 0
2907450 저연차부터 풀스택 필수라는 새끼들 특 [1] 프갤러(112.220) 16:43 45 2
2907449 앱히키 = 실력, 운도 없는 새끼 ㅇㅇ(222.108) 16:34 28 0
2907448 로또가 수학적으로 손해라서 안한다는 븅신새끼들은 뭘까 ㅇㅅㅇ [3] ㅇㅇ(223.38) 16:32 42 0
2907446 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ ♥발라당냥덩♥갤로그로 이동합니다. 16:25 22 0
2907445 개발을 접더라도 실력이 없어서라고 생각하지는 말았으면 좋겠어 [7] chironpractor갤로그로 이동합니다. 16:23 62 0
2907444 나도 공부하는게 싫어서 개발 직군 온 사람인데 [3] 루도그담당(58.233) 16:13 63 0
2907441 요즘 개발직군 경쟁 개빡세서 그냥 다른일 알아보는중 [4] ㅇㅇ갤로그로 이동합니다. 15:43 72 1
2907438 4년차 현타왔다 [1] 프갤러(39.127) 14:41 88 0
2907437 너 쌓여있잖아... 넥도리아(223.38) 14:33 40 0
2907436 개발자는 한곳에 오래있음 안되겠더라 [4] 프갤러(211.240) 14:28 106 0
2907435 갤기장 is 사이언스 넥도리아(223.38) 14:28 40 0
2907434 아버지신고하고각오의모습 보여드리려고해요. 넥도리아(223.38) 14:26 16 0
2907433 키바나? 엘라스틱서치? [13] 개멍청한유라갤로그로 이동합니다. 14:06 77 0
2907432 나보다 더 한심한 사람이 존재하나? [12] 재현갤로그로 이동합니다. 13:57 82 0
2907431 집에가면 개인 사이드 프로젝트 해야지 ㅋㅋㅋ ㅇ ㅅㅇ [2] 프갤러(60.196) 13:53 50 0
2907429 샘모루 뒤에 후아유얼? 넥도리아(223.38) 13:20 33 0
2907428 [애니뉴스][명작감상] 천원돌파 그렌라간 ㅇㅇ(121.172) 13:19 18 1
2907427 회사는 왜 안짤라주는걸 까 나를.. [5] ㅇㅇ(211.234) 13:17 59 0
2907426 인지과학조져라 손발이시립디다갤로그로 이동합니다. 12:48 31 0
2907425 Clojure + Elixir + Rust + Python 조합 어떰? [2] 프갤러(112.217) 12:44 70 1
2907424 개멍유 아직도 있네 취업안하냐? [2] ㅇㅇ(211.36) 12:39 48 0
2907423 뭐 ? 아이 씨발? [7] 개멍청한유라갤로그로 이동합니다. 12:26 77 1
2907422 저의 롤모델은 개발자 조은 님입니다 프갤러(222.109) 12:11 28 0
2907419 안녕하세요 개발자 하고 싶어서 편입 시험보려 하는데요 [2] 거유다람쥐갤로그로 이동합니다. 11:55 47 0
2907418 [대한민국] 인요한 사퇴 - 좌우를 떠나 - ㅇㅇ(121.172) 11:49 21 0
2907416 러스트 비동기 구현과 범용적 멀티플렉싱 활용에 대한 고찰 나르시갤로그로 이동합니다. 11:28 35 0
2907415 비동기 멀테 스레드 디버깅 접근법 [4] 나르시갤로그로 이동합니다. 11:21 55 0
2907413 여기 현직자가 많냐 취준생이 많냐? [3] 프갤러(14.52) 11:12 83 0
2907412 AI로 인하여 망하는 업종 직종 나르시갤로그로 이동합니다. 11:06 61 0
2907410 Gpt나와서뇌피셜씨부리는씹새끼들다갈려나갔겠거니생각했는데존나순진한거였네 깃깃갤로그로 이동합니다. 10:35 37 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2