Synaptics Astra Linux OS 환경과 BSP 개요, 그래픽 데스크톱/SSH/ADB/시리얼 콘솔 접근, 멀티미디어(GStreamer) 및 카메라 사용, 네트워크(와이파이/블루투스/iPerf) 설정, 부팅(U-Boot) 구조, eMMC/SPI 이미지 업데이트 절차를 안내합니다.
참고
v2.0.1 릴리스는 SL2619만 지원합니다. SL1620, SL1640, SL1680의 최신 기능 완전 릴리스는 Release Notes Scarthgap 6.12 v2.0.0입니다. 향후 릴리스에서는 네 플랫폼 모두를 지원할 예정입니다.
참고
초기 SL2619 보드는 eMMC에 이미지가 플래시되어 있지 않을 수 있습니다. 보드가 부팅에 실패한다면 다음 지침을 따르십시오: Updating Images from U-Boot.
이 문서는 Synaptics Astra Linux OS 환경과 보드 지원 패키지(BSP)를 설명합니다. BSP를 구성하는 컴포넌트와 이들과 상호작용하는 방법을 제공합니다.
다음 레퍼런스 키트와 플랫폼이 이 가이드의 범위에 포함됩니다:
Synaptics Linux 보드 지원 패키지(BSP)는 Astra Machina를 동작시키는 데 필요한 소프트웨어와 펌웨어를 포함합니다. OS 부팅과 하드웨어 인터페이스에 필요한 컴포넌트로 구성됩니다. 이 가이드는 이러한 소프트웨어 컴포넌트의 설명과 상호작용 방법을 제공합니다. 이 문서는 Astra Machina를 평가하고 해당 프로세서를 사용해 제품을 구축하려는 사용자에게 유용합니다.
이 문서는 Linux OS에서 사용되는 컴포넌트를 다룹니다. Astra Machina용 Yocto 기반 이미지를 생성하고 빌드 환경을 설정하는 방법은 Astra Yocto Linux Developer Guide를 참조하십시오.
Astra Machina 소스 코드 리포지토리에 대한 구체적인 정보는 Synaptics Astra GitHub 페이지에서 확인할 수 있습니다.
Astra Machina와 상호작용하는 방법은 여러 가지가 있으며, 외부 디스플레이에서 그래픽 데스크톱을 사용하는 방법도 포함됩니다. 또한 SSH, ADB, 시리얼 콘솔을 통한 셸 접근이 가능합니다.
Astra Machina의 그래픽 데스크톱은 기본적으로 활성화되어 있습니다. HDMI 포트 또는 MIPI 디스플레이에 연결된 외부 디스플레이에 표시할 수 있습니다. 표준 HID USB 키보드와 마우스를 연결해 입력할 수 있습니다. 기본 디스플레이 서버로 Wayland / Weston이 사용됩니다. Scarthgap 릴리스는 현재 X11을 지원하지 않습니다.

Astra Machina의 Wayland 데스크톱
좌측 상단 아이콘을 클릭하면 터미널이 열립니다.

터미널이 열린 Wayland 데스크톱
Astra Machina는 기본적으로 ssh가 활성화되어 있습니다. 네트워크를 통해 ssh 클라이언트의 연결을 허용합니다. 사용자 이름 root로 로그인하십시오. 비밀번호는 필요하지 않습니다:
ssh root@10.10.10.100
참고
위 예시에서는 Astra Machina의 주소가 10.10.10.100입니다. 이 IP는 사용자의 장치 IP 주소로 바꾸어 사용하십시오.
Astra Machina는 USB를 통한 ADB(Android Debug Bridge)를 지원합니다. ADB는 Android 기기에서 사용되며 Astra Machina로 포팅되었습니다. Google은 ADB에 대한 광범위한 문서를 제공합니다.
ADB를 사용하려면 호스트 시스템과 Astra Machina의 USB Type-C USB 2.0 포트(이더넷 포트 옆)를 USB 케이블로 연결하십시오.

USB Type-C USB 2.0 포트가 강조된 Astra Machina 구성도
Google은 Mac, Linux, Windows용 ADB 버전을 제공합니다. ADB를 설치한 후 adb devices를 실행하면 호스트에 연결된 모든 ADB 장치가 표시됩니다. 이후 다음을 실행합니다:
adb shell
ADB 장치가 둘 이상인 경우:
adb -s SL16x0 shell

Windows Powershell에서 ADB 사용
Astra Machina는 시리얼 콘솔을 제공하여 호스트 시스템에서 실행되는 터미널 에뮬레이터로 부트로더와 OS 메시지를 표시합니다. 이러한 메시지는 부팅 초기에 Astra Machina의 상태를 확인하거나 디스플레이가 연결되지 않았을 때 유용합니다. 동작 중에도 유용한 정보를 제공합니다. 또한 소프트웨어 업데이트 과정에서도 시리얼 콘솔이 필요합니다.
Astra Machina의 시리얼 콘솔은 40핀 GPIO 커넥터의 RX, TX, GND 핀에 USB-TTL 어댑터를 연결해 접근할 수 있습니다. USB-TTL 어댑터는 점퍼 와이어가 있는 보드 형태이거나, 개별 핀으로 분리된 헤더가 달린 일체형 USB 케이블일 수 있습니다.
| USB TTL | Astra Machina |
|---|---|
| GND | GND (Pin 6) |
| RXD | TX (Pin 8) |
| TXD | RX (Pin 28) |
참고
SL2619는 SL1620, SL1640, SL1680에서 사용하는 핀 10 대신 RX에 핀 28을 사용합니다.
참고
RX와 TX 핀은 일반적으로 3.3V 전압에서 동작합니다.
다음 USB-TTL 어댑터는 Astra Machina와의 동작이 공식 승인되었습니다:
Adafruit USB to UART Debug / Console Cable (CP2102 Driver IC)
Pin Function Color Code Astra SL261x 40-pin Connector Astra SL261x 40-pin Function 5V-Out Red NC NC TX-Out Green Pin-28 UART0_Rx-In RX-In White Pin-8 UART0_Tx-Out GND Black Pin-6 GND
CenryKay USB to UART Debug / Console Cable (CH340G Driver IC)
Pin Function Color Code Astra SL261x 40-pin Connector Astra SL261x 40-pin Function 5V-Out Red NC NC TX-Out Green Pin-28 UART0_Rx-In RX-In White Pin-8 UART0_Tx-Out GND Black Pin-6 GND
참고
PL2303 또는 FT232R 드라이버 IC를 사용하는 USB-TTL 케이블은 Astra Machina에서 사용이 승인되지 않았습니다.

USB TTL 보드 예시

USB TTL 케이블 예시

SL2619의 UART 핀
일부 USB-TTL 어댑터는 Windows 및 Mac 호스트에 드라이버 설치가 필요합니다. 드라이버 다운로드 및 설치 방법은 어댑터 제조사의 안내를 확인하십시오.
시리얼 콘솔은 Putty, HyperTerminal, Tera Term, Screen, Minicom과 같은 터미널 에뮬레이터 프로그램으로 접근할 수 있습니다.

Windows의 Putty 터미널 에뮬레이터

Mac OS의 Minicom 터미널 에뮬레이터
Linux가 성공적으로 부팅되면 시리얼 콘솔에 로그인 프롬프트가 표시됩니다. 사용자 이름 root로 로그인하십시오. 비밀번호는 필요하지 않습니다.

Minicom에서 확인한 성공적인 부팅
Astra Machina에는 멀티미디어 워크로드 처리를 가속화하는 하드웨어 및 소프트웨어 컴포넌트가 포함되어 있습니다. Linux BSP는 Gstreamer 플러그인을 제공하여 사용자가 이러한 멀티미디어 컴포넌트를 활용하는 프로그램을 개발할 수 있도록 합니다. 이 절에서는 명령줄 인터페이스를 통해 플러그인으로 파이프라인을 구성하는 방법을 개요합니다. Gstreamer 프레임워크에 대한 정보는 https://gstreamer.freedesktop.org/ 에서 확인하십시오.
Gstreamer는 기능 확장을 위해 플러그인 모듈을 사용합니다. Astra Machina는 하드웨어 컴포넌트를 Gstreamer 파이프라인에서 사용할 수 있도록 플러그인을 사용합니다. 아래 표는 Astra Machina가 지원하는 코덱에서 사용되는 플러그인을 나열합니다.
SL2619
| Codec | Parser Plugin | Decoder Plugin | Encoder Plugin |
|---|---|---|---|
| H.264 | h264parse | avdec_h264 | N/A |
| H.265 | h265parse | avdec_h265 | N/A |
| VP8 | N/A | avdec_vp8 | N/A |
| VP9 | vp9parse | avdec_vp9 | N/A |
| Codec | Parser Plugin | Decoder Plugin | Encoder Plugin |
|---|---|---|---|
| AAC | aacparse | fdkaacdec | fdkaacenc |
| Vorbis | N/A | vorbisdec | vorbisenc |
| MPEG 2 | mpegaudioparse | avdec_mp2float | avenc_mp2 |
| MPEG 3 | mpegaudioparse | avdec_mp3 | N/A |
| AC3 | N/A | avdec_ac3 | avenc_ac3 |
| OPUS | N/A | avdec_opus | avenc_opus |
Astra Machina에는 시스템에서 사용 가능한 플러그인 정보를 표시하는 gst-inspect-1.0 명령이 포함되어 있습니다.

gst-inspect-1.0 --no-colors synapinfer 출력 예시
참고
터미널이 색상을 지원하지 않는 경우 색상을 비활성화하려면 –no-colors 옵션이 필요할 수 있습니다.
다음 예시는 gst-launch-1.0 명령줄 프로그램을 사용하여 파이프라인을 구성하고 재생을 시작합니다. gst-launch-1.0 명령은 느낌표로 구분된 요소 목록을 입력으로 받습니다. 요소는 선택적 속성을 포함할 수 있습니다(GStreamer 문서를 참조). 아래 예시는 명령의 구조를 간단히 설명하고, 뒤이어 하나 이상의 예시를 제공합니다.
다음 예시는 ALSA 오디오 API를 사용해 오디오를 출력하는 ALSA 오디오 싱크를 사용합니다(자세한 내용은 Gstreamer 문서 참조). 하드웨어 장치는 /proc/asound/pcm 파일에서 찾을 수 있습니다. 아래는 SL2619의 pcm 장치 예시입니다.
예: SL2619의 /proc/asound/pcm 출력
root@sl2619:~# cat /proc/asound/pcm 00-00: asoc-i2s1 snd-soc-dummy-dai-0 : : playback 1 : capture 1 00-01: asoc-i2s2 snd-soc-dummy-dai-1 : : playback 1 : capture 1 00-02: asoc-i2s3 snd-soc-dummy-dai-2 : : playback 1 : capture 1
Astra Machina의 Gstreamer는 세 가지 비디오 싱크를 지원합니다. 기본 비디오 싱크는 wayland 프로토콜과 컴포지터를 사용해 비디오를 표시하는 waylandsink입니다.
참고
kmssink와 xvimagesink는 Scarthgap 릴리스에서 현재 지원되지 않습니다.
아래 많은 예시에서 Wayland 비디오 싱크를 사용해 창을 만들고 디코딩된 프레임을 렌더링합니다(자세한 내용은 GStreamer 문서 참조).
Wayland 싱크를 사용할 때는 환경에 다음 변수를 설정해야 합니다. 시리얼 콘솔이나 원격 셸에서 명령을 실행할 때 변수를 설정해야 할 수 있습니다:
export XDG_RUNTIME_DIR=/var/run/user/0 export WAYLAND_DISPLAY=wayland-1
XDG_RUNTIME_DIR 변수는 사용자에게 속하는 Wayland 소켓이 위치한 디렉터리를 지정합니다. WAYLAND_DISPLAY 변수는 연결할 Wayland 컴포지터를 지정합니다.
참고
Wayland 싱크 창은 마우스로 이동할 수 있습니다.
오디오 파일 재생은 인코딩된 오디오 데이터를 읽고 파싱한 뒤, 데이터를 디코딩하여 오디오 싱크로 출력하는 과정을 포함합니다. 일부 데이터 형식과 오디오 싱크는 오디오 싱크로 보내기 전에 변환과 리샘플링이 필요할 수 있습니다:
gst-launch-1.0 filesrc location=audio_file ! parser ! decoder ! [ convert ] ! [ resample ] ! audiosink
다음 예시는 연결된 HDMI 장치의 스피커로 MP3 파일을 재생합니다:
gst-launch-1.0 filesrc location=audio_file.mp3 ! mpegaudioparse ! avdec_mp3 ! audioconvert ! audioresample ! alsasink device=hw:0,7
비디오 파일 재생은 파일을 읽고, 비디오 스트림을 디먹싱하고, 인코딩 데이터를 파싱한 다음 비디오 디코더로 디코드합니다. 마지막으로 디코딩된 프레임을 비디오 싱크로 출력합니다:
gst-launch-1.0 filesrc location=video_file ! demux ! queue ! parser ! decoder ! videosink
다음 예시는 MP4 파일의 메인 비디오 스트림을 재생하고 Wayland로 비디오를 표시합니다.
SL2619에서 H265로 인코딩된 비디오 파일 예시:
gst-launch-1.0 filesrc location=test_file.mp4 ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! avdec_h264 ! waylandsink fullscreen=true
오디오와 비디오 스트림을 모두 포함하는 파일을 재생하려면 두 스트림을 파싱하고 디코드하는 파이프라인을 구성해야 합니다:
gst-launch-1.0 filesrc location=video_file ! demux.video ! queue ! parser ! decoder ! videosink
demux.audio ! queue ! parser ! decoder ! [ convert ] ! [ resample ] ! audiosink
H26로 인코딩된 비디오 스트림과 AAC로 인코딩된 오디오 스트림이 포함된 MP4 파일을 SL2619에서 재생:
gst-launch-1.0 filesrc location=little.mp4 ! qtdemux name=demux
demux.video_0 ! queue ! h264parse ! avdec_h264 ! queue ! waylandsink fullscreen=true
demux.audio_0 ! queue ! aacparse ! fdkaacdec ! audioconvert ! alsasink device=hw:0,1
오디오 녹음은 마이크 같은 캡처 장치에서 데이터를 읽고, 변환 및 인코딩한 다음, 다중화하여 출력 파일로 쓰는 과정이 포함됩니다:
gst-launch-1.0 alsasrc device=device ! [audio capabilities] ! queue ! convert ! encode ! mux ! filesink location=output file
다음 예시는 ALSA 캡처 장치 1,0(USB 마이크)에서 오디오를 녹음합니다. 그런 다음 인코더가 Vorbis 코덱으로 인코딩할 수 있는 형식으로 원시 데이터를 변환합니다. 데이터가 인코딩되면 Ogg 컨테이너로 다중화되어 /tmp/alsasrc.ogg 파일로 기록됩니다:
gst-launch-1.0 alsasrc device=hw:1,0 ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink location=/tmp/alsasrc.ogg
Astra Machina는 V4L2 드라이버 스택을 사용하여 USB(UVC) 및 이미지 센서 카메라를 지원합니다. 이 스택은 Gstreamer와 함께 사용하여 카메라를 활용한 파이프라인을 구성할 수 있습니다.
참고
이미지 센서 카메라는 SL1680에서만 SL1680의 ISP를 통해 지원됩니다.
카메라에서 캡처한 비디오를 표시하려면 비디오 싱크로 출력합니다:
gst-launch-1.0 v4l2src device=/dev/videoX ! "video data,framerate,format,width,height" ! video sink
다음 예시는 V4L2 장치 /dev/video2에서 캡처한 데이터를 읽고, 기능 필터를 적용한 다음, wayland 싱크로 출력합니다:
gst-launch-1.0 v4l2src device=/dev/video2 ! "video/x-raw,framerate=30/1,format=YUY2,width=640,height=480" ! waylandsink fullscreen=true
SL261x 플랫폼은 디바이어링, 색 변환, 다운스케일링, 크로핑, 화이트 밸런스와 같은 기본 이미지 처리 기능을 제공하는 미니 ISP를 지원합니다.
현재 3A 기능 — 자동 노출(AE), 자동 화이트 밸런스(AWB), 자동 초점(AF)은 지원되지 않습니다. 사용자는 테스트 환경에 따라 각 센서의 노출 설정을 수동으로 구성해야 합니다. 적절한 노출 설정이 없으면 출력 이미지가 어둡게 보일 수 있습니다.
기본 화이트 밸런스 파라미터는 일반적인 실내 조명 조건에 맞춰 조정되어 있으며, 현재 테스트 환경에 따라 조정이 필요할 수 있습니다. 이러한 ISP 설정은 특정 지원 센서에만 적용됩니다.
SL261x의 미니 ISP는 주로 객체 감지, 얼굴 감지 등 AI 사용 사례를 지원하도록 설계되었습니다. 따라서 디스플레이 출력 품질은 완전한 이미지 향상 기능을 제공하는 SL1680의 풀 기능 ISP와 동일하지 않을 수 있습니다.
장치 파일 번호는 구성에 따라 달라질 수 있습니다. 각 ISP 경로와 연관된 장치 파일을 찾으려면 v4l2-ctl 명령을 사용하십시오.
v4l2-ctl --list-devices 출력에서 ISP Path 장치 강조
장치 이름은 camera-video입니다. 추가 USB 카메라가 연결된 경우 장치 인덱스는 변경될 수 있으며, 그렇지 않으면 기본적으로 video0과 video1이 됩니다.
ISP 장치 기능
노출 및 게인 설정을 위해 먼저 media-ctl -p 명령을 사용하여 해당 V4L2 하위 장치를 찾습니다.

media-ctl -p 출력
출력을 사용하여 게인과 노출 값을 설정하는 데 필요한 하위 장치를 결정합니다.
v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl auto_exposure=1 v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl gain_automatic=0 v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl analogue_gain=128 v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl exposure=1011
액세스 가능한 제어를 확인하려면 v4l2-ctl의 list-ctrls 옵션을 사용하십시오.

v4l2-ctl -d /dev/v4l-subdev2 --list-ctrls 출력
| Format | Command | Comments |
|---|---|---|
| YUV420 | gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! ‘video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1’ ! waylandsink async=false | |
| gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! ‘video/x-raw, format=(string)NV12, width=(int)1296, height=(int)972, framerate=(fraction)30/1’ ! waylandsink async=false | ||
| gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! ‘video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)60/1’ ! waylandsink async=false | ||
| RGB888 | gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! ‘video/x-raw, format=(string)RGB, width=(int)1920, height=(int)1080, framerate=(fraction)30/1’ ! videoconvert ! waylandsink async=false | |
| gst-launch-1.0 v4l2src io-mode=2 ! ‘video/x-raw,format=(string)RGB, width=(int)1920, height=(int)1080, framerate=(fraction)30/1’ ! glupload ! glcolorconvert ! glimagesink | 참고용: videoconvert가 CPU에서 동작하고 glconvert에 메모리 복사가 있어 프레임 드롭이 발생할 수 있습니다. RGB는 항상 filesink로 확인하십시오. |
| Format | Command | Comments |
|---|---|---|
| YUV420 | gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1’ ! filesink location=/tmp/1.yuv | |
| gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, format=(string)NV12, width=(int)1296, height=(int)972, framerate=(fraction)30/1’ ! filesink location=/tmp/1.yuv | ||
| gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)60/1’ ! filesink location=/tmp/1.yuv | ||
| RGB888 | gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, format=(string)RGB, width=(int)1920, height=(int)1080, framerate=(fraction)30/1’ ! filesink location=/tmp/1.rgb | |
| gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, format=(string)RGB, width=(int)1296, height=(int)972, framerate=(fraction)30/1’ ! filesink location=/tmp/1.rgb | ||
| gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, format=(string)RGB, width=(int)640, height=(int)480, framerate=(fraction)60/1’ ! filesink location=/tmp/1.rgb |
Astra Machina는 Gstreamer RTSP 플러그인을 사용하여 RTSP 카메라를 지원합니다.
이 예시는 H.264로 인코딩된 카메라 스트림을 받아 SL2619에서 소프트웨어 디코딩으로 표시합니다. rtspsrc 요소는 네트워크를 통해 카메라에 연결하고 지연(latency)을 2000ms로 설정합니다. 지연 매개변수와 rtpjitterbuffer 요소는 네트워크 지터를 최소화하기 위해 스트림을 버퍼링합니다. rtph264depay 요소는 H.264 스트림의 페이로드를 제거합니다. wait-for-keyframe 옵션은 동기화를 보장하기 위해 키 프레임이 올 때까지 출력을 대기합니다. 이후 H.264 스트림은 h264parse와 avdec_h264 요소로 파싱 및 디코드됩니다. 디코딩된 비디오는 wayland 싱크로 화면에 표시됩니다:
gst-launch-1.0 rtspsrc location="rtsp://<user>:<password>@<ip>/stream" latency=2000 ! rtpjitterbuffer ! rtph264depay wait-for-keyframe=true !
video/x-h264, width=1920, height=1080 ! h264parse ! avdec_h264 ! videoscale ! video/x-raw,width=1920,height=1080 ! waylandsink
Astra Machina에는 Gstreamer playbin 플러그인이 포함되어 있습니다. 이 플러그인은 자동 파일 형식 인식을 기반으로 어떤 파이프라인을 구성할지 자동으로 결정할 수 있습니다. 파이프라인 생성을 단순화합니다.
Playbin은 지정된 uri의 미디어 파일을 자동 감지하고 이에 맞는 파이프라인을 생성합니다. 그런 다음 비디오 싱크로 비디오를 표시하고 오디오 싱크로 오디오를 렌더링합니다. video-sink와 audio-sink 매개변수는 선택 사항입니다. 매개변수를 포함하지 않으면 기본 비디오 및 오디오 싱크가 대신 사용됩니다:
gst-launch-1.0 playbin uri=file:///path/to/file video-sink="video sink" audio-sink="audio sink"
playbin을 사용하면 Audio Sinks의 예시를 다음과 같이 단축할 수 있습니다:
gst-launch-1.0 playbin uri=file:///path/to/file video-sink="waylandsink fullscreen=true" audio-sink="alsasink device=hw:0,7"
Astra Machina의 멀티미디어와 AI 기능을 시연하는 두 가지 데모 QT 애플리케이션을 제공합니다. Syna Video Player 앱은 최대 네 개의 비디오 스트림 디코딩 및 재생을 시연합니다. Syna AI Player 앱은 객체 감지, 얼굴 감지, 포즈 추정 예제를 통해 AI 기능을 시연합니다.
앱에는 다음 환경 변수가 필요합니다:
export XDG_RUNTIME_DIR=/var/run/user/0 export WESTON_DISABLE_GBM_MODIFIERS=true export WAYLAND_DISPLAY=wayland-1 export QT_QPA_PLATFORM=wayland
두 애플리케이션은 구성에 QML 파일을 사용합니다. 이를 통해 사용자는 애플리케이션을 커스터마이즈할 수 있습니다. 커스터마이즈 항목에는 애플리케이션에서 사용할 비디오 수정이 포함됩니다. Astra Machina 이미지에는 샘플 비디오 파일이 사전 설치되어 있지 않으므로 사용자는 애플리케이션의 QML 파일에 자신의 비디오 파일을 추가해야 합니다. 기본 QML 파일은 /home/root/demos/qmls에 사전 설치되어 있습니다.
Syna Video Player 애플리케이션은 Astra Machina의 비디오 재생 및 디코딩 기능을 보여줍니다. 단일 비디오 재생 또는 최대 네 개의 비디오를 그리드로 재생을 지원합니다.

Syna Video Player의 메인 화면
Syna Video Player 실행:
root@sl2619:~# syna-video-player --mach sl2619 --mode ffmpeg
Syna Video Player는 두 개의 매개변수를 기대합니다: 머신 타입과 모드. 머신 타입은 애플리케이션이 실행 중인 Astra Machina의 버전입니다. 유효한 옵션은 sl2619입니다. 모드는 어떤 디코딩 모드를 사용할지를 지정합니다. sl2619에서 지원되는 옵션은 ffmpeg입니다. ffmpeg로 설정하면 Syna Video Player 애플리케이션은 ffmpeg 라이브러리를 사용해 비디오 스트림을 소프트웨어로 디코딩합니다.
Astra Machina는 온보드 칩 솔루션과 외부 하드웨어를 통해 Bluetooth와 Wi-Fi를 지원합니다. 다음 표는 다양한 온보드 칩과 외부 솔루션을 나열합니다:
| SL Processor | Wireless Device | Physical Interface (M.2 PCIe / M.2 SDIO) | Software Information |
|---|---|---|---|
| SL2619 | SYNA 43711 | M.2 SDIO | * wpa_supplicant v2.11 * WIFI driver version: v101.10.478 |
Synaptics Astra Linux BSP에는 SDIO 인터페이스를 사용하는 46xxx 모듈을 활용하는 데 필요한 모든 드라이버와 펌웨어가 포함되어 있습니다. 무선 네트워크 관리는 WPA Supplicant 데몬이 담당하며 WPA 인증자와 키 협상을 수행합니다. WEP, WPA, WPA2, WPA3 인증 표준을 지원합니다(wpa_supplicant 참조).
다음 절은 WPA Supplicant를 사용하여 Astra Machina에서 Wifi를 설정하는 방법을 설명합니다.
패스프레이즈로부터 사전 공유 키(PSK)를 생성하면 WPA Supplicant 구성 파일에 패스프레이즈를 저장할 필요가 없습니다.
셸에서 wpa_passphrase 명령줄 도구를 사용하여 패스프레이즈로부터 WPA PSK를 생성합니다:
root@sl2619:^# wpa_passphrase network_name 12345678 network={ ssid="network_name" psk=5ba83b0673ea069dafe5d5f1af8216771c13be6ad6f11dac9dc0e90b0c604981 }
ifconfig를 사용하여 커널에 wlan 인터페이스를 활성화하도록 지시합니다:
ifconfig wlan0 up
WPA Supplicant는 Wifi 연결을 구성하기 위해 구성 파일을 사용합니다. 이 구성 파일은 /etc/wpa_supplicant에 위치합니다.
/etc/wpa_supplicant 디렉터리를 생성합니다:
mkdir -p /etc/wpa_supplicant
Wifi 네트워크에 맞는 옵션으로 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf 파일을 생성합니다.
예시 wpa_supplicant-wlan0.conf 내용:
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1
network={ ssid="network_name" psk=5ba83b0673ea069dafe5d5f1af8216771c13be6ad6f11dac9dc0e90b0c604981 key_mgmt=WPA-PSK scan_ssid=1 }
wlan 인터페이스는 systemd-networkd 시스템 데몬 구성에서 활성화되어야 합니다.
다음 내용을 가진 새 파일 /etc/systemd/network/25-wlan.network를 생성합니다:
[Match] Name=wlan0
[Network] DHCP=ipv4
네트워크 데몬을 재시작하여 새 구성을 로드해야 합니다.
네트워크 데몬 재시작:
systemctl restart systemd-networkd.service systemctl restart wpa_supplicant@wlan0.service
부팅 시 wpa_supplicant 활성화:
systemctl enable wpa_supplicant@wlan0.service
Wifi 인터페이스는 hostapd를 사용해 액세스 포인트(AP)로도 구성할 수 있습니다. hostapd와 iptables를 지원하려면 추가 패키지 설치가 필요할 수 있습니다. 이미지에 hostapd와 iptables 패키지를 추가하는 방법은 Astra Yocto User Guide를 참조하십시오.
wlan 장치를 hostapd에서 사용하도록 구성하려면 /etc/network/interfaces 파일에 다음 항목을 추가합니다:
auto wlan0 iface wlan0 inet static address 192.168.10.1 netmask 255.255.255.0 post-up systemctl start hostapd pre-down systemctl stop hostapd
wlan 인터페이스는 systemd-networkd 시스템 데몬 구성에서 활성화되어야 합니다.
다음 내용을 가진 새 파일 /etc/systemd/network/10-wlan0.network를 생성합니다:
[Match] Name=wlan0
[Network] Address=192.168.10.1/24 DHCPServer=yes
[DHCPServer] EmitDNS=yes
생성할 Wifi 네트워크의 ip, ssid, 패스프레이즈로 /etc/hostapd.conf 파일을 생성합니다.
예시:
own_ip_addr=192.168.10.1 ssid=yocto640 wpa=2 wpa_passphrase=1234567890
IP 포워딩과 NAT은 새로운 무선 네트워크로부터 들어오는 트래픽을 전달하도록 구성되어야 합니다.
다음은 NAT를 사용하여 이더넷 인터페이스로 트래픽을 전달하기 위해 iptables를 사용하는 예시입니다. 부팅 시 로드할 수 있도록 /etc/iptables/iptables.rules에 새 규칙을 추가합니다:
iptables –F iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -t nat -F iptables -t mangle -F iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT iptables -A FORWARD -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables-save > /etc/iptables/iptables.rules
IP 포워딩은 /etc/sysctl.d/ip_forward.conf에 다음 항목을 설정하여 활성화합니다:
net.ipv4.ip_forward = 1
다음 명령을 실행해 IP 포워딩을 활성화합니다:
sysctl -p /etc/sysctl.d/ip_forward.conf
참고
트래픽을 이더넷 인터페이스로 전달할 수 있도록 Astra Machina에 이더넷 케이블을 연결하십시오.
hostapd와 iptables 시작:
systemctl start hostapd.service systemctl start iptables.service
부팅 시 hostapd와 iptables 활성화:
systemctl enable hostapd.service systemctl enable iptables.service
hostapd와 iptables를 활성화한 후 ifconfig 명령을 사용해 wlan0이 활성화되었는지 확인합니다.

참고
ifconfig 출력에 wlan0이 나타나지 않으면 sync 명령을 실행하고 재부팅이 필요할 수 있습니다. 이는 구성 변경 사항이 적용되도록 보장합니다.
Wifi 인터페이스를 액세스 포인트로 사용하는 것을 중지하고 hostapd를 비활성화하려면 다음 명령을 사용합니다:
systemctl stop hostapd.service systemctl stop iptables.service systemctl disable hostapd.service systemctl disable iptables.service rm -rf /etc/systemd/network/10-wlan0.network
Astra Machina는 네트워크 처리량 측정을 위한 iPerf2 도구를 제공합니다. iPerf는 네트워크 성능 측정 및 튜닝에 널리 사용되는 도구입니다. 클라이언트/서버 모델을 사용하여 네트워크 상의 장치 간 처리량을 측정합니다. TCP와 UDP 프로토콜을 모두 지원합니다. 전체 문서는 iPerf 웹사이트에서 확인할 수 있습니다.
다음 예시는 기본 옵션으로 클라이언트와 서버 사이의 TCP 처리량 테스트를 실행합니다. 이 예시에서 서버의 IP 주소는 10.5.0.3입니다.
참고
클라이언트보다 서버를 먼저 시작해야 합니다.
Client Side:
$ iperf -c 10.5.0.3

TCP 모드에서 SL1620에서 실행 중인 iperf 클라이언트
Server side:
$ iperf -s

TCP 모드에서 SL1620에서 실행 중인 iperf 서버
다음 예시는 기본 옵션으로 클라이언트와 서버 사이의 UDP 처리량 테스트를 실행합니다. 이 예시에서 서버의 IP 주소는 10.5.0.3입니다.
참고
클라이언트보다 서버를 먼저 시작해야 합니다.
Client side:
$ iperf -c 10.5.0.3 -u

UDP 모드에서 SL1620에서 실행 중인 iperf 클라이언트
Server side:
$ iperf -s -u

UDP 모드에서 SL1620에서 실행 중인 iperf 서버
다음 옵션은 iperf 명령에서 동작을 커스터마이즈하기 위해 일반적으로 사용됩니다:
-i: Interval
주기적 대역폭 보고 간격(초)을 지정합니다. 예: -i 1은 매초 보고합니다.
-l: Length
읽기/쓰기 버퍼 길이를 설정합니다. 예: -l 128K는 버퍼 길이를 128KB로 설정합니다.
-b: Bandwidth
UDP 테스트의 목표 대역폭을 지정합니다. 예: -b 10M은 목표 대역폭을 10Mbps로 설정합니다.
-w: Window size
TCP 윈도 크기를 설정합니다. 예: -w 256K는 TCP 윈도를 256KB로 설정합니다.
-t: Time
전송 시간을 초 단위로 지정합니다. 예: -t 60은 60초 동안 테스트합니다.
다음은 보고 간격 10초, 버퍼 128KB, 목표 대역폭 1000Mbps, TCP 윈도 256KB, 테스트 시간 60초로 TCP 처리량을 측정하는 예입니다:
$ iperf -c 10.5.0.3 -i 10 -l 128K -b 1000M -w 256K -t 60

사용자 지정 옵션으로 SL1620에서 실행 중인 iperf 클라이언트
Server side:
$ iperf -s -i 10 -l 128K -b 1000M -w 256K -t 60

사용자 지정 옵션으로 SL1620에서 실행 중인 iperf 서버
먼저 다음 명령으로 Bluetooth 콘솔에 들어갑니다:
root@sl1640:~# bluetoothctl [bluetooth]#
Bluetooth 콘솔에 들어가면 아래 단락에서 설명한 다양한 명령으로 Bluetooth 스택을 제어할 수 있습니다.
show 명령으로 보드의 Bluetooth 컨트롤러 정보를 표시할 수 있습니다:
[bluetooth]# show Controller C0:F5:35:AA:7D:8F (public) Name: sl1640 Alias: sl1640 Class: 0x00000000 Powered: no Discoverable: no DiscoverableTimeout: 0x000000b4 Pairable: yes UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb) UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) Modalias: usb:v1D6Bp0246d0541 Discovering: no Roles: central Roles: peripheral Advertising Features: ActiveInstances: 0x00 (0) SupportedInstances: 0x06 (6) SupportedIncludes: tx-power SupportedIncludes: appearance SupportedIncludes: local-name SupportedSecondaryChannels: 1M SupportedSecondaryChannels: 2M SupportedSecondaryChannels: Coded
헤드셋에 연결하려면 먼저 블루투스 컨트롤러의 전원을 켜야 합니다:
[bluetooth]# power on [CHG] Controller C0:F5:35:AA:7D:8F Class: 0x00080000 Changing power on succeeded [CHG] Controller C0:F5:35:AA:7D:8F Powered: yes
그런 다음 컨트롤러를 페어링 가능 모드로 설정합니다:
[bluetooth]# pairable on Changing pairable on succeeded
이제 헤드셋을 검색합니다(헤드셋이 검색 가능 모드인지 확인하십시오):
[bluetooth]# scan on Discovery started [CHG] Controller C0:F5:35:AA:7D:8F Discovering: yes [NEW] Device 2D:9A:A9:4F:54:37 2D-9A-A9-4F-54-37 [NEW] Device 4E:E7:B0:20:2A:11 4E-E7-B0-20-2A-11 [NEW] Device 7F:84:A3:29:E9:E9 7F-84-A3-29-E9-E9 [NEW] Device 6A:B0:95:7E:58:79 6A-B0-95-7E-58-79 [NEW] Device 7E:4D:8F:C4:3B:6F 7E-4D-8F-C4-3B-6F [NEW] Device 40:93:CE:4D:F1:8E 40-93-CE-4D-F1-8E [NEW] Device 47:14:71:A3:79:A9 47-14-71-A3-79-A9 [NEW] Device 67:62:9C:4B:F9:7D 67-62-9C-4B-F9-7D [NEW] Device 8C:F8:C5:BD:6F:1D DTKBTQ3 [NEW] Device 0A:73:76:09:55:C0 BT208
이 명령은 현재 검색 가능한 모든 장치의 MAC 주소를 반환합니다. 페어링하려는 헤드셋의 MAC 주소를 식별해야 합니다.
페어링할 장치의 MAC 주소를 식별한 후 스캔을 비활성화합니다.
[bluetooth]# scan off Discovery stopped [CHG] Controller C0:F5:35:AA:7D:8F Discovering: no
헤드셋을 찾았다면 헤드셋의 MAC 주소와 함께 pair 명령으로 페어링합니다:
[bluetooth]# pair 0A:73:76:09:55:C0 Attempting to pair with 0A:73:76:09:55:C0 [CHG] Device 0A:73:76:09:55:C0 Connected: yes [CHG] Device 0A:73:76:09:55:C0 Bonded: yes [CHG] Device 0A:73:76:09:55:C0 UUIDs: 00001108-0000-1000-8000-00805f9b34fb [CHG] Device 0A:73:76:09:55:C0 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb [CHG] Device 0A:73:76:09:55:C0 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device 0A:73:76:09:55:C0 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device 0A:73:76:09:55:C0 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb [CHG] Device 0A:73:76:09:55:C0 ServicesResolved: yes [CHG] Device 0A:73:76:09:55:C0 Paired: yes Pairing successful [CHG] Device 0A:73:76:09:55:C0 ServicesResolved: no [CHG] Device 0A:73:76:09:55:C0 Connected: no
다음 단계는 장치를 신뢰(trust)하는 것입니다:
[bluetooth]# trust 0A:73:76:09:55:C0 [CHG] Device 0A:73:76:09:55:C0 Trusted: yes Changing 0A:73:76:09:55:C0 trust succeeded
마지막 단계로 헤드셋과 연결을 설정합니다:
[bluetooth]# connect 0A:73:76:09:55:C0 Attempting to connect to 0A:73:76:09:55:C0 [CHG] Device 0A:73:76:09:55:C0 Connected: yes [NEW] Endpoint /org/bluez/hci0/dev_0A_73_76_09_55_C0/sep1 [NEW] Transport /org/bluez/hci0/dev_0A_73_76_09_55_C0/sep1/fd0 Connection successful [BT208]# [ 286.922414] input: BT208 (AVRCP) as /devices/virtual/input/input1 [CHG] Transport /org/bluez/hci0/dev_0A_73_76_09_55_C0/sep1/fd0 Volume: 0x0060 (96) [DEL] Device D4:D2:D6:4F:80:60 445HD_BT_60 [CHG] Device 0A:73:76:09:55:C0 ServicesResolved: ye [BT208]#
연결에 성공하면 콘솔 프롬프트에 연결한 장치의 이름이 표시됩니다.
이제 장치 정보를 확인할 수 있습니다:
[BT208]# info Device 0A:73:76:09:55:C0 (public) Name: BT208 Alias: BT208 Class: 0x00240404 Icon: audio-headset Paired: yes Bonded: yes Trusted: yes Blocked: no Connected: yes LegacyPairing: no UUID: Headset (00001108-0000-1000-8000-00805f9b34fb) UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb) RSSI: -69 TxPower: 4
재생을 테스트하려면 보드에 사운드 파일(.wav 형식)을 업로드해야 합니다(예: scp 사용).
aplay 명령으로 A2DP 싱크에 파일을 재생할 수 있습니다. 명령은 헤드셋의 MAC 주소(아래 예시에서는 0A:73:76:09:55:C0)와 wave 파일 이름(아래 예시에서는 /home/root/example.wav)을 매개변수로 받습니다:
root@sl1640:~# aplay --verbose -D bluealsa:DEV=0A:73:76:09:55:C0 -t wav /home/root/example.wav Playing WAVE '/home/root/example.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo Plug PCM: BlueALSA PCM: /org/bluealsa/hci0/dev_0A_73_76_09_55_C0/a2dpsrc/sink BlueALSA BlueZ device: /org/bluez/hci0/dev_0A_73_76_09_55_C0 BlueALSA Bluetooth codec: SBC Its setup is: stream : PLAYBACK access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 24000 period_size : 6000 period_time : 125000 tstamp_mode : NONE tstamp_type : GETTIMEOFDAY period_step : 1 avail_min : 6000 period_event : 0 start_threshold : 24000 stop_threshold : 24000 silence_threshold: 0 silence_size : 0 boundary : 6755399441055744000
Linux 커널이 Astra Machina에서 실행되기 전에, 저수준 펌웨어와 소프트웨어가 하드웨어를 초기화하고 부팅을 준비합니다. 이 절은 Linux 커널 부팅을 준비하는 소프트웨어 컴포넌트를 개요합니다.
Astra Machina는 다단계 부팅 프로세스를 사용합니다. 이 절에서는 각 컴포넌트를 간략히 설명합니다.
Preboot 펌웨어는 특정 하드웨어 컴포넌트를 초기화하고 Arm TrustZone 환경에서 실행되는 소프트웨어를 로드하는 저수준 펌웨어 모음입니다. Preboot 펌웨어가 완료되면 실행은 부트로더로 전달됩니다. Preboot 펌웨어는 부트 장치에 기록되는 바이너리 이미지로 제공됩니다.
Astra Machina는 Synaptics U-Boot(SU-Boot) 부트로더를 사용하여 추가 하드웨어 초기화와 Linux 커널 부팅을 수행합니다. SU-Boot는 오픈 소스 U-Boot 프로젝트를 기반으로 합니다.
Astra Machina는 주로 Linux 커널을 사용하는 OS를 실행합니다. Linux 커널은 애플리케이션이 실행되는 환경을 제공하고 CPU, 메모리, 장치와 같은 리소스를 관리합니다. 일반적으로 Linux 커널은 Astra Yocto User Guide에 설명된 Yocto 빌드 과정의 일부로 빌드됩니다.
Linux 커널은 장치 트리(Device Tree) 데이터 구조를 사용하여 시스템의 하드웨어 컴포넌트와 구성을 설명합니다. 장치 트리 소스 파일은 Linux 커널 소스 트리의 arch/arm64/boot/dts/synaptics/ 경로에 있습니다. 이러한 파일은 Astra Linux Kernel Main 리포지토리에서 관리됩니다. 이 디렉터리에는 전체 장치 트리를 다시 컴파일하지 않고 장치 트리를 수정할 수 있는 장치 트리 오버레이도 포함됩니다.
루트 파일 시스템(rootfs)은 Linux OS에서 프로그램을 실행하는 데 필요한 모든 사용자 공간 바이너리와 라이브러리, 시스템 구성 파일을 포함합니다. 사전 빌드된 이미지는 Yocto를 사용해 rootfs를 빌드합니다. Yocto를 사용해 rootfs를 빌드하고 구성하는 방법은 Astra Yocto Linux Developer Guide를 참조하십시오.
앞서 언급했듯이, Astra Machina는 부트로더로 U-Boot를 사용합니다. Astra Machina에서는 세 가지 유형의 U-Boot를 사용합니다. SU-Boot 외에도, 장치를 플래시하거나 복구하는 데 사용하는 SPI U-Boot와 USB U-Boot 변형이 있습니다.
| image type | image usage |
|---|---|
| SPI SU-Boot | USB 드라이브를 통해 eMMC 이미지 굽기 |
| SU-Boot | USB 드라이브를 통해 eMMC 이미지 굽기, Linux 부팅 |
USB SU-Boot와 SPI SU-Boot는 eMMC에 이미지가 기록되지 않은 장치를 부팅하거나 eMMC의 모든 내용을 덮어쓰는 업데이트에 사용됩니다.
SPI SU-Boot는 USB SU-Boot와 유사하지만 SU-Boot가 SPI 플래시에 상주합니다. SPI 플래시는 Astra Machina 메인 보드에 있거나 장치에 꽂는 SPI 도터 카드에 있을 수 있습니다. 보드에서 SPI U-Boot가 실행되면 eMMC에 이미지를 기록하는 데 사용할 수 있습니다.
Synaptics U-Boot Source Code
참고
릴리스 v1.6 이후는 eMMC, SPI, USB 버전의 U-Boot에 Synaptics U-Boot를 사용합니다.
참고
SL2619는 현재 USB U-Boot를 지원하지 않습니다.
Astra Machina의 I/O 보드에는 SD_BOOT이라는 점퍼가 있습니다. 이 점퍼는 장치가 eMMC에서 부팅할지 내부 SPI 플래시에서 부팅할지를 제어합니다. 점퍼가 연결되어 있으면 장치는 내부 SPI 플래시에서 부팅합니다. eMMC에서 부팅하려면 점퍼를 제거하십시오.

SD_BOOT-Boot 점퍼가 강조된 Astra Machina 구성도
Astra Machina의 내부 SPI 플래시는 SPI U-Boot가 미리 프로그래밍되어 제공됩니다. SD_BOOT-Boot 점퍼가 연결된 경우 SD 카드 슬롯에 삽입된 SD 카드에서 부팅합니다. SD 카드가 삽입되지 않은 경우 SPI U-Boot는 U-Boot 프롬프트 “=>”로 부팅됩니다. U-Boot 프롬프트를 사용해 변수를 설정하거나 eMMC와 내부 SPI 플래시를 플래시할 수 있습니다.
내부 eMMC 또는 SD 카드에서 부팅할 때, SU-Boot는 자동으로 Linux 커널을 로드합니다. 그러나 부팅 중 시리얼 콘솔에서 아무 키나 눌러 이 과정을 중단할 수 있습니다. U-Boot가 키 입력을 감지하면 U-Boot 프롬프트 “=>”에서 중지합니다. U-Boot 프롬프트를 사용하여 변수를 설정하거나 eMMC와 내부 SPI 플래시를 플래시할 수 있습니다. 기본적으로 U-Boot가 입력을 기다리는 타임아웃은 0으로 설정되어 있으므로 U-Boot가 시작되기 전에 키 입력이 전송되어야 합니다.
전원이 켜지면 Astra Machina는 부트 장치에서 펌웨어, 부트로더, Linux 커널을 읽습니다. 가장 일반적인 부트 장치는 보드의 eMMC 장치입니다. 이 절에서는 eMMC와 내부 SPI 플래시에 부트 이미지를 기록하는 방법을 설명합니다.

Astra 이미지 스크린샷
“Astra System Image”는 여러 subimg 파일과 emmc_part_list, emmc_image_list, emmc_image_list_full을 포함한 디렉터리입니다. emmc_part_list는 eMMC에 사용할 GUID 파티션 테이블(GPT)을 설명합니다. emmc_image_list* 파일은 어떤 서브 이미지 파일을 eMMC의 어느 파티션에 기록할지를 지정합니다.
예: SL1640 파티션 테이블
| Partition name | Contents | Can be removed | Accessed by |
|---|---|---|---|
| factory_setting | MAC 주소 및 기타 출하 시 프로비저닝 파일, 사용자 공간에서 사용 | No | Linux 사용자 공간 |
| key_a | AVB 키, 사용자 키(A 사본) | Yes | 초기 부팅(부트 파티션) |
| tzk_a | TrustZone 커널(A 사본) | Yes | 초기 부팅(부트 파티션) |
| key_b | AVB 키, 사용자 키(B 사본) | Yes | 초기 부팅(부트 파티션) |
| tzk_b | TrustZone 커널(B 사본) | Yes | 초기 부팅(부트 파티션) |
| bl_a | OEM 부트로더(A 사본) | Yes | 초기 부팅(부트 파티션) |
| bl_b | OEM 부트로더(B 사본) | Yes | 초기 부팅(부트 파티션) |
| boot_a | Linux 커널, OEM 부트로더가 로드(A 사본) | No | OEM 부트로더(bl_a) |
| boot_b | Linux 커널, OEM 부트로더가 로드(B 사본) | No | OEM 부트로더(bl_b) |
| firmware_a | GPU / DSP / SM 펌웨어, 초기 부팅 시 로드, 필수(A 사본) | Yes | 초기 부팅(부트 파티션) |
| firmware_b | GPU / DSP / SM 펌웨어, 초기 부팅 시 로드, 필수(B 사본) | Yes | 초기 부팅(부트 파티션) |
| rootfs_a | 루트 파일 시스템, Linux에서 사용, 변경 가능(A 사본) | No | Linux(boot_a) |
| rootfs_b | 루트 파일 시스템, Linux에서 사용, 변경 가능(B 사본) | No | Linux(boot_b) |
| fastlogo_a | 빠른 로고 이미지, OEM 부트로더가 로드, 변경 가능(A 사본) | No | OEM 부트로더(bl_a) |
| fastlogo_b | 빠른 로고 이미지, OEM 부트로더가 로드, 변경 가능(B 사본) | No | OEM 부트로더(bl_b) |
| devinfo | 장치 정보(일련번호, MAC 주소 등), 필수 | Yes | 초기 부팅(부트 파티션) |
| misc | 부팅 제어 설정, 필수 | Yes | 초기 부팅(부트 파티션) |
| home | /home으로 마운트, 커스터마이즈 가능 | No | Linux 사용자 공간 |
USB 인터페이스를 사용한 업데이트 외에도, U-Boot에서 직접 업데이트할 수 있습니다. Astra Machina에는 eMMC와 코어 모듈의 내부 SPI 플래시에 기록된 U-Boot 버전이 포함되어 있습니다. 두 경우 모두 USB 호스트 시스템 없이 이미지 업데이트가 가능합니다. 다만 시리얼 콘솔에 접근하기 위해 USB-TTL 케이블이 필요합니다. 이미지는 외부 USB 드라이브를 통해 로드할 수 있습니다.
참고
eMMC 업데이트 시 시스템 이미지와 함께 eMMC에 기록된 U-Boot 버전도 업데이트됩니다. 내부 SPI 플래시에 기록된 U-Boot 버전은 eMMC 이미지와 독립적입니다. eMMC 이미지를 업데이트하기 전에 호환되는 U-Boot 버전이 설치되어 있는지 릴리스 노트를 확인하십시오. Release Notes Scarthgap 6.12 v2.0.2
U-Boot에서 부팅하는 데에는 위에서 설명한 시리얼 콘솔 사용에 필요한 소프트웨어 외에 추가 소프트웨어가 필요하지 않습니다.
U-Boot 프롬프트에 접근하려면 위의 시리얼 콘솔 설정 절에서 설명한 대로 시리얼 포트용 USB 케이블을 연결해야 합니다. 이렇게 하면 플래싱 과정 동안 콘솔 메시지를 보고 U-Boot 프롬프트에 명령을 입력할 수 있습니다. 또한 eMMC 또는 SPI 이미지 파일 위치에 따라 USB 드라이브나 이더넷 케이블이 필요합니다. USB 드라이브는 4개의 USB Type-A USB 3.0 포트나 USB Type-C USB 2.0 포트(USB Type-C to USB Type-A 어댑터가 필요할 수 있음)에 연결할 수 있습니다.

USB와 이더넷 포트가 강조된 Astra Machina 구성도
참고
일부 보드는 SPI 플래시에 초기 버전의 U-Boot가 프로그래밍되어 출고됩니다. 이 버전은 USB 3.0 컨트롤러를 지원하지 않으므로 USB 드라이브는 USB Type-C USB 2.0 포트(USB Type-C to USB Type-A 어댑터가 필요할 수 있음)에 연결해야 합니다.
eMMC 버전의 U-Boot는 일반적인 부팅 과정에서 OS를 부팅하는 데 사용됩니다. U-Boot 프롬프트에 접근하려면 부팅 중 시리얼 콘솔에서 키 입력으로 표준 부팅을 중단해야 합니다. U-Boot는 키 입력을 감지하면 U-Boot 프롬프트에서 중지합니다. U-Boot Prompt with SU-Boot
내부 SPI 플래시에서 U-Boot를 로드하려면, Booting from SPI에 설명된 대로 SD_BOOT 점퍼를 삽입합니다.
참고
eMMC에서 부팅할 때는 SD_BOOT 점퍼가 연결되어 있지 않은지 확인하십시오. 그렇지 않으면 장치는 내부 SPI 플래시 또는 SD 카드에서 부팅합니다.
외부 USB 드라이브에서 Astra 시스템 이미지를 플래시하려면, 이미지 디렉터리를 USB 드라이브에 복사하기만 하면 됩니다. USB 드라이브에는 Fat32로 포맷된 파티션과 Astra 시스템 이미지를 담을 충분한 용량이 있어야 합니다.
참고
eMMC를 처음 플래시할 때는 USB 드라이브의 eMMCimg 디렉터리에서 emmc_image_list_full을 emmc_image_list로 복사하십시오. 이는 /factory_setting 파티션을 포맷하기 위해 필요합니다. 그렇지 않으면 /factory_setting 파티션 마운트 실패 후 시스템이 유지보수 모드로 부팅됩니다.
eMMC에 이미지를 기록하려면 다음 명령을 사용합니다:
=> usb reset => usb2emmc eMMCimg
여기서 eMMCimg 매개변수는 USB 드라이브의 이미지 디렉터리 이름입니다.
참고
usb reset이 0 Storage Device(s) found를 보고하고 USB 컨트롤러가 하나만 감지되었다면, USB 드라이브는 USB Type-C USB 2.0 포트(USB Type-C to USB Type-A 어댑터가 필요할 수 있음)에 연결해야 합니다.
Astra Machina의 내부 SPI 플래시는 위에서 설명한 방법으로도 업데이트할 수 있습니다. SPI 이미지의 최신 버전은 GitHub에서 확인할 수 있습니다.
외부 USB 드라이브를 사용해 내부 SPI 플래시 이미지를 업데이트하려면, 이미지를 드라이브에 복사합니다. USB 드라이브에는 Fat32로 포맷된 파티션이 필요합니다.
다음 명령으로 SPI 플래시에 이미지를 기록합니다:
=> usb start; fatload usb 0 0x10000000 u-boot-astra-v1.0.1.sl2610.rdk.spi.bin; => sf probe => sf erase 0 0x200000 => sf write 0x10000000 0x0 0x200000