728x90
반응형

분류 전체보기 902

Embedded System에서 네트워크 인터페이스 구현

Embedded System에서 네트워크 인터페이스 구현Embedded Linux 환경에서 네트워크 인터페이스를 구현하고 네트워크 드라이버를 포팅 및 설정하는 과정은 많은 Embedded 시스템 개발자들에게 필수적인 기술입니다. 이번 포스팅에서는 Rockchip RK3399를 기반으로 네트워크 드라이버를 포팅하고 설정하는 방법에 대해 설명합니다.1. 네트워크 드라이버의 기본 개념네트워크 드라이버는 네트워크 인터페이스 카드(Network Interface Card, NIC)와 상호작용하여 데이터를 송수신하는 소프트웨어입니다. Linux 커널에서 네트워크 드라이버는 주로 net_device 구조체를 통해 네트워크 인터페이스와 통신하며, 주요 작업은 다음과 같습니다:하드웨어 초기화데이터 송수신 처리하드웨어 설..

Linux/Kernel Driver 2025.03.30

AWS IoT 디바이스 자동 등록: Just-in-Time Provisioning과 Bulk Provisioning

AWS IoT 디바이스 자동 등록: Just-in-Time Provisioning과 Bulk Provisioning오늘은 AWS IoT에서 IoT 디바이스를 자동으로 등록하는 방법인 Just-in-Time Provisioning과 Bulk Provisioning에 대해 설명드리겠습니다. 이를 통해 대규모의 IoT 디바이스를 효과적으로 관리하고, IoT 디바이스를 신속하고 안전하게 AWS IoT에 등록할 수 있는 방법을 알아보겠습니다.1. AWS IoT의 디바이스 등록 개요AWS IoT에서는 디바이스를 관리하기 위해 Thing이라는 개념을 사용합니다. IoT 디바이스는 AWS IoT Core에 등록되어야만 데이터 전송, 처리 및 제어 작업을 수행할 수 있습니다. 디바이스 등록은 디바이스 인증과 정책 할당을..

AWS IoT 2025.03.29

Android에서 사용되는 주요 Native Libraries

Android에서 사용되는 주요 Native LibrariesAndroid는 리눅스 커널을 기반으로 하는 운영 체제로, 다양한 계층으로 구성되어 있습니다. 그중 Native Libraries 계층은 성능이 중요한 기능을 제공하는 핵심 요소로, 시스템의 다양한 부분에서 활용됩니다. 이번 글에서는 Android에서 사용되는 주요 Native Libraries를 소개하고, 해당 라이브러리들이 AOSP(Android Open Source Project)에서 어떻게 구현되는지 살펴보겠습니다.1. Bionic (C Library)Android는 전통적인 glibc 대신 Bionic이라는 경량 C 라이브러리를 사용합니다. Bionic은 모바일 환경에 최적화되어 있으며, 속도와 메모리 사용량을 고려하여 설계되었습니다...

Android/Framework 2025.03.29

Real-Time Linux: 개념과 필요성, RT_PREEMPT 패치 적용 및 실시간 특성 구현

Real-Time Linux: 개념과 필요성, RT_PREEMPT 패치 적용 및 실시간 특성 구현리눅스 커널은 그 유연성과 기능으로 인해 임베디드 시스템에서 널리 사용됩니다. 그러나 기본 리눅스 커널은 실시간성을 보장하지 않습니다. 임베디드 시스템에서 정해진 시간 내에 작업이 반드시 완료되어야 하는 경우, Real-Time Linux(RT Linux)가 필요합니다. 이번 포스팅에서는 Real-Time Linux의 개념과 필요성을 이해하고, RT_PREEMPT 패치를 적용하여 실시간 특성을 구현하는 방법을 Rockchip RK3399 플랫폼을 기준으로 설명하겠습니다.Real-Time Linux의 개념 및 필요성Real-Time Linux란?Real-Time Linux는 리눅스 커널에 실시간성을 부여하여 정..

Linux/Kernel Driver 2025.03.29

IoT Thing(디바이스) 등록 및 인증서 발급 방법: 개별 프로비저닝 vs 대량 프로비저닝 (Fleet Provisioning)

IoT Thing(디바이스) 등록 및 인증서 발급 방법: 개별 프로비저닝 vs 대량 프로비저닝 (Fleet Provisioning)안녕하세요. '소프트웨어 공장' 블로그에 오신 것을 환영합니다. 이번 포스팅에서는 AWS IoT Core에서 디바이스를 등록하고 인증서를 발급하는 방법 중 개별 프로비저닝과 대량 프로비저닝 (Fleet Provisioning)에 대해 알아보겠습니다. AWS IoT를 활용하는 IoT 시스템에서 디바이스는 AWS IoT와의 연결을 위해 반드시 등록하고 인증서를 발급받아야 합니다. 이러한 과정에서 개별 프로비저닝과 대량 프로비저닝은 각기 다른 방식으로 디바이스를 등록하고 인증서를 발급합니다. 이 글에서는 두 가지 방법을 비교하고, ESP32와 AWS IoT Device SDK를 활..

AWS IoT 2025.03.28

HAL 로그 확인 및 디버깅 (logcat, dmesg), HAL이 정상적으로 동작하지 않을 때 문제 해결 방법

HAL 로그 확인 및 디버깅 (logcat, dmesg), HAL이 정상적으로 동작하지 않을 때 문제 해결 방법Android 시스템에서 HAL(Hardware Abstraction Layer)은 하드웨어와 상위 프레임워크를 연결하는 중요한 계층입니다. 그러나 HAL이 정상적으로 동작하지 않는 경우, 이를 분석하고 해결하는 과정이 필요합니다. 이 글에서는 HAL 로그를 확인하는 방법(logcat, dmesg)과 HAL이 정상적으로 동작하지 않을 때 문제를 해결하는 방법을 설명합니다.1. HAL 로그 확인 방법HAL이 정상적으로 동작하는지 확인하려면, 다양한 로그를 분석해야 합니다. Android에서는 logcat과 dmesg 명령어를 사용하여 HAL의 동작을 확인할 수 있습니다.1.1 logcat 로그 확..

Android/Framework 2025.03.28

Embedded Linux Kernel: Custom Kernel 패치 및 빌드

Embedded Linux Kernel: Custom Kernel 패치 및 빌드Embedded 시스템에서 Linux Kernel을 사용하는 경우, 하드웨어 및 소프트웨어 요구사항에 맞춰 커널을 커스터마이징하는 작업은 필수적입니다. 오늘 포스팅에서는 Rockchip RK3399 시스템을 기준으로 Kernel 소스 코드 수정 및 패치 작성 방법과 특정 Embedded 시스템에 맞춘 Kernel 빌드 방법을 설명합니다.1. Kernel 소스 코드 수정 및 패치 작성커널 패치 작성은 기존 커널 소스에 새로운 기능을 추가하거나, 기존 코드를 수정하여 시스템에 적합한 커널 이미지를 생성하는 과정입니다.1.1 Kernel 소스 코드 준비Rockchip GitHub에서 Kernel 소스를 클론합니다:# Kernel 소..

Linux/Kernel Driver 2025.03.28

AWS IoT Thing 등록 및 인증서 발급 방법: Provisioning 종류와 특징

AWS IoT Thing 등록 및 인증서 발급 방법: Provisioning 종류와 특징AWS IoT에서 디바이스를 등록하고 인증서를 발급하는 과정은 보안과 운영 효율성을 고려하여 다양한 방식으로 제공됩니다. 이를 통칭하여 provisioning이라 하며, 적절한 방식으로 디바이스를 프로비저닝해야 원활한 IoT 운영이 가능합니다. 이번 포스팅에서는 AWS IoT에서 제공하는 provisioning 방식의 종류와 특징 및 절차를 설명하겠습니다.1. AWS IoT Provisioning 방식 개요AWS IoT에서 디바이스를 등록하고 인증서를 발급하는 provisioning 방식은 다음과 같이 구분됩니다.Provisioning 방식특징절차JITR (Just-In-Time Registration)디바이스가 처음..

AWS IoT 2025.03.27

Android HAL 레이어에서 Native Library 및 커널 드라이버 연동

Android HAL 레이어에서 Native Library 및 커널 드라이버 연동1. 개요Android 하드웨어 추상화 계층(HAL, Hardware Abstraction Layer)은 애플리케이션과 하드웨어 간의 인터페이스 역할을 수행합니다. HAL을 통해 Android 프레임워크는 하드웨어에 직접 접근하는 것이 아니라 표준화된 API를 사용하여 장치를 제어할 수 있습니다.이번 글에서는 HAL 레이어에서 Native Library 및 커널 드라이버와의 연동 방법을 설명합니다. 또한, AOSP(Android Open Source Project) 코드 예제를 통해 실제 구현 방식도 살펴보겠습니다.2. HAL과 Native Library, 커널 드라이버의 관계Android의 하드웨어 접근 구조는 일반적으로 ..

Android/Framework 2025.03.27

Embedded Linux에서 전력 관리 기술과 Device Driver의 전력 관리 구현

Embedded Linux에서 전력 관리 기술과 Device Driver의 전력 관리 구현임베디드 시스템은 제한된 전력 자원에서 동작하는 경우가 많아 효율적인 전력 관리가 필수적입니다. Linux 커널은 다양한 전력 관리 기법과 API를 제공하여 개발자가 시스템의 전력 소비를 최적화할 수 있도록 돕습니다. 이 글에서는 Embedded Linux에서 전력 관리 기술의 개요와 Device Driver에서 전력 관리를 구현하는 방법에 대해 Rockchip RK3399 시스템을 예제로 설명하겠습니다.1. Embedded Linux에서 전력 관리 기술1.1 전력 관리의 주요 구성 요소Embedded Linux의 전력 관리는 다음과 같은 주요 구성 요소로 이루어집니다:CPU Idle States: 프로세서가 유휴 ..

Linux/Kernel Driver 2025.03.27
728x90
반응형