본 글에서는 IETF RFC 2464 Transmission of IPv6 Packets over Ethernet Networks 표준에 기술된 이더넷 네트워크 상에서의 IPv6 패킷 전송 방법에 대해 설명한다. RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks 1. 소개 본 표준은 이더넷 네트워크 상에서 전송되는 IPv6 패킷의 프레임 형식과 IPv6 링크로컬 주소를 구성하는 방법, stateless 하게 주소를 자동 설정하는 방법을 기술한다. 또한 Router Solicitation, Router Advdertisement, Neighbor Solictation, Neighbor Advertisement, Redirect 메시지가 이더넷 ..
본 글에서는 네트워크 인터페이스의 유니캐스트 IPv6 주소의 구성 요소인 인터페이스 식별자(Interface Identifier)에 대해 설명한다. 인터페이스 식별자의 소개 및 형식은 IETF RFC 4291 IP Version 6 Addressing Architecture 표준의 2.5.1 절에 정의되어 있다. RFC 4291 : IP Version 6 Addressing Architecture 2.5.1. 인터페이스 식별자(Interface Identifier) IPv6 유니캐스트 주소 내의 인터페이스 식별자는 링크 상에 연결된 네트워크 인터페이스들을 식별하는데 사용된다. 이 식별자는 동일한 서브넷 프리픽스 내에서 고유해야 한다. 동일한 인터페이스 식별자가 링크 상에 연결된 서로 다른 노드들에게 할당..
본 글에서는 IPv6 애니캐스트(Anycast) 주소 형식에 대해 설명한다. IPv6 애니캐스트 주소의 공통 형식은 IETF RFC 4291 IP Version 6 Addressing Architecture 표준의 2.6 절에 정의되어 있다. 또한 예약된(공통으로 사용되는) IPv6 서브넷 애니캐스트 주소 형식은 IETF RFC 2526 Reserved IPv6 Subnet Anycast Address 표준에 정의되어 있다. RFC 4291 : IP Version 6 Addressing Architecture 2.6. 애니캐스트(Anycast) 주소 애니캐스트 주소는 하나 이상의 네트워크 인터페이스(일반적으로 서로 다른 노드에 장착된)에 할당되는 주소이다. 목적지 IPv6 주소가 애니캐스트 주소인 패킷은..
본 글에서는 일반 PC(x64/x86)에 설치된 리눅스 상에서 OpenSSL 을 다운로드하고 빌드하는 법을 설명한다. 본 글에서 사용된 환경은 다음과 같다. OpenSSL 1.1.1d 버전 운영체제 : 우분투 리눅스 (14.04 이후 버전) 사전 필요 사항 gcc 컴파일러를 설치한다. HOST$ sudo apt update -y && sudo apt upgrade -y HOST$ sudo apt install build-essential OpenSSL 다운로드 웹 브라우저를 통해 openssl 홈페이지에서 OpenSSL-1.1.1 버전을 다운로드한다. /index.html OpenSSL is a robust, commercial-grade, and full-featured toolkit for the T..
본 글에서는 오픈소스인 OpenSSL을 임베디드 리눅스용으로 크로스 컴파일하는 방법을 설명한다. 본 글에 사용된 크로스 컴파일 환경은 다음과 같다. OpenSSL 1.1.1d 버전 호스트 PC : 우분투 리눅스 (14.04 이후 버전) 타겟 장치 : ARM 기반 하드웨어 플랫폼, PPC 기반 하드웨어 플랫폼 크로스 컴파일러 ARM : arm-linux-gnueabihf- PPC : powerpc-linux-gnu- 사전 필요 사항 호스트 PC에 각각의 크로스 컴파일러를 설치한다. $ sudo apt update -y && sudo apt upgrade -y $ sudo apt install build-essential gcc-arm-linux-gnueabihf libstdc++6-armhf-cross l..
본 글에서는 유블럭스의 EVK-M8T를 u-center를 이용해 사용하는 방법을 설명한다. 이를 위해 다음 항목들이 필요하다. EVK-M8T 제품 https://www.u-blox.com/en/product/evk-8evk-m8 EVK-8/EVK-M8 u-blox 8/M8 concurrent GNSS evaluation kits www.u-blox.com u-center 프로그램 https://www.u-blox.com/en/product/u-center u-center GNSS evaluation software for Windows www.u-blox.com u-center 프로그램 설치 다운로드한 u-center 설치 프로그램을 실행하여 u-center를 설치한다. 설치마법사에서 EVK을 위한 드라..
본 글에서는 유블럭스사의 EVK-M8T 모듈을 Condor4V 플랫폼에 USB 인터페이스를 통해 연결하는 방법을 설명한다. 주) EVK-M8T 모듈은 USB 또는 RS-232를 통해 플랫폼과 연결될 수 있다. EVK 연결 타겟보드에 EVK을 USB 케이블로 연결한 후, lsusb 명령을 통해 디바이스가 연결된 것을 확인한다. 아래 화면에서 "U-Blox AG" 가 해당 디바이스를 나타낸다. TARGET$ lsusb Bus 001 Device 003: ID 1fc9:0102 NXP Semiconductors Bus 001 Device 005: ID 1546:01a8 U-Blox AG Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 ..
본 글에서는 dfu-util을 리눅스 환경에서 임베디드 리눅스용으로 크로스 컴파일하는 방법을 설명한다. 본 글에서 사용된 크로스 컴파일 환경은 다음과 같다. dfu-util v0.9-101 버전 호스트 PC : 우분투 리눅스 (14.04 이후 버전) 타겟 장치 : ARM 기반 하드웨어 플랫폼 크로스 컴파일러 : arm-linux-gnueabihf- 다른 플랫폼 및 크로스컴파일러를 사용할 경우, 상황에 맞게 변경 적용 가능하다. dfu-util 의 공식 홈페이지는 아래와 같다. dfu-util Homepage dfu-util - Device Firmware Upgrade Utilities Description dfu-util is a host side implementation of the DFU 1.0 ..
본 글에서는 GPS 모듈을 포함한 임베디드 장치의 시스템 시각을 UTC에 동기화하는 방법을 설명한다. 개요 개발환경 개발 환경은 다음과 같다. 개발 머신 우분투 리눅스 14.04 타겟 하드웨어 플랫폼 MCU: i.MX6Q (ARM) GPS모듈: ublox NEO M8U MCU-GPS모듈 인터페이스: UART(NMEA) and GPIO(PPS) 타겟 소프트웨어 플랫폼 OS: 임베디드 리눅스 (커널버전 4.9.11) 타겟: arm-linux-gnueabihf 크로스컴파일러: arm-linux-gnueabihf-gcc-4.8.4 GPS 모듈 인터페이스 NMEA: /dev/ttymxc3 PPS: /dev/pps2 필요 패키지 필요한 패키지는 다음과 같다. pps-tools : User-space tools fo..
장치에서 전송하거나 수신하는 네트워크 패킷을 수집하여 내용을 확인하려면 어떻게 해야 할까. 많은 사람들이 알고 있듯이 WireShark 라는 프로그램이 이러한 기능을 지원한다. 일반 컴퓨터에서는 WireShark 를 인터넷에서 다운로드하고 설치하여 사용할 수 있지만, 임베디드 환경에서는 어떻게 해야 할까. 사실 네트워크 패킷을 수집하는 기능은 pcap 이라는 라이브러리에서 지원한다. WireShark 역시 pcap 라이브러리를 기반으로 네트워크 패킷 수집 기능을 제공하고 있다. 본 글에서는 임베디드 리눅스 플랫폼 상에서 pcap 라이브러리(libpcap, 네트워크 패킷 수집 라이브러리)와 tcpdump 유틸리티(libpcap 을 이용하여 패킷을 수집하는 프로그램)를 이용하여 네트워크 패킷을 수집하는 기능..