본문 바로가기

분류 전체보기981

Linux ] hexdump, xxd 사용법 hexdump파일의 내용을 16진수(hex) 형식으로 출력 $ hexdump filename 옵션-C : 주소 + 헥사 바이트 + ASCII 형식 출력-v : 같은 값이 연속되는 줄을 생략해서 *로 표시하지 않고 모두 출력-n N : 처음부터 N 바이트까지만 출력-s N : N 바이트만큼 건너뛰고 출력 시작 xxd vim-common 패키지에 포함된 명령으로, 헥스 덤프 뿐 아니라 바이너리에서 헥스로 또는 반대로 변환할 수 있다. 1. hexdump$ xxd filename 2. bin to hex$ xxd file.bin > file.hex 3. hex to bin$ xxd -r file.hex > new.bin 2025. 7. 18.
Linux ] 명령줄에서 Wi-Fi 연결하는 방법 방법 1. nmcli를 사용하는 방법nmcli는 NetworkManager의 명령줄 도구로, 간단한 명령어로 Wi-Fi에 연결할 수 있다. 1. 무선 인터페이스 확인$ nmcli device wl(Wireless Lan)로 시작하는 wifi 타입의 장치를 확인한다. 예: wlan0, wlp3s0 등 2. 주변 Wi-Fi 네트워크 검색$ nmcli device wifi listIN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY * XX:XX:XX:XX:XX:XX Galaxy S22 4146 Infra 6 130 Mbit/s 76 ▂▄▆_.. 2025. 7. 15.
VSCode ] 원격 디버깅 설정 방법 1. 로컬 VSCode에 'Remote-SSH' 또는 'Remote-Development' Extension 설치 2. 디버깅 대상 언어에 맞는 Debug Extension 설치 3. 타겟에 VS Code Server 설치Remote-SSH를 통해 타겟에 최초 접속 시 타겟에 VS Code Server가 자동 설치되고 ~/.vscode_server 디렉토리가 생성됨 4. Remote-SSH를 사용해 타겟에 접속 5. 워킹 디렉토리 생성하여 열고, 테스트 코드 작성#include int add(int a, int b) { return a + b;}int main() { int x = 10; int y = 20; int result = add(x, y); printf("Re.. 2025. 7. 15.
MIPI CSI-2 MIPI란? MIPI(Mobile Industry Processor Interface)는 ARM, Intel, Qualcomm 등 주요 반도체 기업들이 주도하여 결성한 모바일 인터페이스 표준화 단체이다. 이 단체는 디스플레이, 카메라, 오디오, 전력 관리 등 모바일 및 모바일 유사 기기에서 사용되는 고속·저전력 인터페이스의 표준을 정의하는 것을 목적으로 한다. 이 단체 이름인 MIPI Alliance를 줄여서 MIPI라고 부르는 경우가 많고, 이 단체가 만든 각종 인터페이스 사양(MIPI CSI, MIPI DSI 등)도 흔히 MIPI라고 부른다. MIPI가 제정한 대표적인 프로토콜 CSI (Camera Serial Interface) : 카메라 센서와 프로세서 간 고속 영상 데이터 전송을 위.. 2025. 7. 12.
Jetson Xavier NX ] Pinmux & Device Tree Configuraion 1. 개요 타겟 : Jetson Xavier NX Developer Kit타겟 OS 및 커널 : Jetson Linux 35.5 (5.10.192-tegra)Host PC : Ubuntu 20.04 커널 소스 빌드 환경이 구성된 상태로 진행한다.2025.04.05 - [임베디드 개발/젯슨] - Jetson Xavier NX ] 커널 소스 빌드 아래와 같이 GPIO 4채널을 제어하는 디바이스 드라이버를 작성하여 테스트 해보려고 한다. 이를 위해 핀먹스 및 디바이스트리 수정을 선행한다.GPIO01(PQ.05) : InputGPIO11(PQ.06) : InputGPIO07(PR.00) : OutputGPIO13(PN.01) : Output 2. Pimmux Configuration Jetson 모.. 2025. 7. 9.
듀얼 부팅 시 Ubuntu에서 Windows 파티션(NTFS)을 마운트하는 방법 1. Disks 실행     2. 윈도우가 설치된 디스크 선택, 마운트할 파티션 선택 후 기어 버튼 클릭     3. Edit Mount Options... 클릭    4. 마운트할 포인트 지정하고 OK       5. 재부팅$ sudo reboot 2025. 7. 6.
SmartGit 설치 및 기본 사용법 설치방법 SmartGit은 Git GUI 클라이언트로 Windows, MacOS, Linux 플랫폼을 지원하며, 개인이나 비영리 단체는 무료로 사용할 수 있고 상업적인 용도로 사용하려면 라이센스를 구입해야한다. 1. 아래 사이트에서 .tar.gz 파일을 다운로드 받는다.https://www.syntevo.com/smartgit/download/ SmartGit DownloadsInstallation Instructions If you have an older SmartGit version installed, exit SmartGit (Windows and Linux: using Repositories | Exit, macOS: using Cmd+Q). Windows (installer bundle) .. 2025. 7. 5.
Linux ] systemd에 서비스 등록하는 방법 🐧 systemd란 무엇이고 언제 쓰일까?리눅스 시스템에서 systemd란 백그라운드에서 실행되는 프로그램인을 제어하는 도구이다. 일반적으로 프로그램을 터미널에서 직접 실행하면, 터미널이 종료될 때 프로그램도 같이 종료된다. 하지만 개발자가 프로그램 배포 시 원하는 형태는 다음과 같은 것이다.사용자가 컴퓨터에 로그인하지 않아도 프로그램이 항상 동작해야 함.프로그램이 실패나 오류로 종료되더라도 자동으로 다시 시작해야 함.애플리케이션 실행 중에 발생한 에러와 상태 로그를 쉽게 추적할 수 있어야 함.이런 요구사항을 해결해주는 것이 바로 systemd이다. 즉, 내가 개발한 애플리케이션이 백그라운드에서 안정적으로 실행되고 관리될 수 있도록 한다. 💡 용어 정리데몬 (Daemon) :백그라운드에서 실.. 2025. 7. 3.
리눅스에서 자동화 스크립트 만들기 1. 개인 스크립트를 둘 디렉토리 만들기~/bin 경로에 만들도록 하겠다.$ mkdir -p ~/bin 2. 해당 디렉토리 PATH에 추가하기 ~/.bashrc (사용자 쉘 설정 파일)편집기로 열기$ sudo vim ~/.bashrc 맨 아래 다음 문장 추가export PATH="$HOME/bin:$PATH" 변경사항 적용$ source ~/.bashrc 3. 자동화 스크립트 만들기 다음은 예시이고 본인에게 필요한 스크립트를 작성하면 된다. $ vim ~/bin/build_dtb #!/bin/bashecho "[1/5] Navigating to kernel source directory..."cd ~/projects/bsp/kernel || exit 1echo "[2/5] Setting up.. 2025. 6. 30.
88E1512 (1G Ethernet PHY) 88E1512 데이터시트 분석 1. 제품 개요 Marvell의 Alaska 88E1512는 기가비트 이더넷 PHY(PHYsical Layer Transceiver)로, RGMII 또는 SGMII MAC 인터페이스를 지원하며 10/100/1000BASE-T를 지원한다. 2. 88E151x 시리즈 모델별 차이 이 중 88E1512는 RGMII 또는 SGMII MAC 인터페이스를 지원하며, Copper와 Fiber 연결을 모두 처리할 수 있고 Auto-Media Detect 기능과 다양한 I/O Voltage 지원으로 이 시리즈 중에서는 가장 범용성이 좋다. Auto Media Detect 기능은 Fiber 포트에 광 모듈 꽂으면 자동으로 Fiber 모드로 전환하고 RJ45에 케이블 꽂으면 자동.. 2025. 6. 27.
Ubuntu ] 시스템이 응답하지 않을 때 안전 종료 하는 법 (Magic SysRq key) Magic SysRq key는 리눅스 커널이 제공하는 비상 탈출용 단축키 기능으로, 시스템이 얼었을 때도 일부 커널 기능은 살아 있는 경우, 이 키들을 사용하면 안전하게 재부팅하여 디스크를 보호할 수 있다. Alt + Print Screen를 누른 상태로 REISUB를 순서대로 누름R : 키보드 제어를 커널로 돌림E : 모든 프로세스에 종료(SIGTERM) 요청I : 강제로 모든 프로세스 죽이기 (SIGKILL)S : 메모리상의 데이터를 디스크에 쓰기 (flush)U : 모든 파일시스템을 읽기 전용으로 마운트 해제B : 즉시 시스템 재부팅 (커널은 그대로 작동) 2025. 6. 24.
Ubuntu ] NTP 서버 동기화 (systemd-timesyncd) Ubuntu 18.04 이상 버전에서 NTP(Network Time Protocol) 서버 동기화하는 방법   1. 현재 시간 및 NTP 서버 동기화 상태 확인$ timedatectl    2. 설정 파일 열기$ sudo vim /etc/systemd/timesyncd.conf    3. NTP, FallbackNTP 주석해제하고 NTP 서버 추가[Time]NTP=time.bora.net time.windows.comFallbackNTP=time.google.com ntp.ubuntu.comNTP: 우선적으로 사용할 서버들FallbackNTP: NTP가 실패했을 때 사용할 백업 서버    4. 타임존을 한국 표준시로 변경 (Time zone이 (KST, +0900)가 아닌 경우)$ sudo timedat.. 2025. 6. 21.
Ubuntu 22.04 이상 ] GNOME(GDM)에서 기본 세션을 wayland에서 X11으로 바꾸는 법 Ubuntu 20.04 LTS 까지는 기본 GNOME 세션이 X11(Xorg)이었는데 Ubuntu 22.04 LTS 부터는 wayland로 바뀌었다. 1. /etc/gdm3/custom.conf 파일 에디터로 열기$ sudo vim /etc/gdm3/custom.conf 2. #WaylandEnable=false 주석 해제하고 저장 3. 재부팅 다시 되돌릴 때는 주석처리 후 재부팅하면 된다. 2025. 6. 18.
dkaptcha.kakao.com와(과)의 연결이 예기치 않게 종료되었습니다. 티스토리에서 글 작성 시 다음과 같은 오류 메시지가 뜰 때 해결 방법 dkaptcha.kakao.com은 카카오에서 운영하는 캡차(CAPTCHA) 문제를 제공하고 검증 서버로, 해당 서버와의 연결이 원활하지 않을 때 제목과 같은 오류 메시지가 뜰 수 있다. 캡차(CAPTCHA)란?"Completely Automated Public Turing test to tell Computers and Humans Apart"의 약자로, 컴퓨터와 사람을 구분하기 위한 자동화된 테스트이다. 이 오류를 해결하기 위해서는 브라우저 캐시와 쿠키를 삭제하는 방법이 있다. 브라우저 캐시 및 쿠키 삭제 방법 (구글 크롬 기준) 1. 구글 크롬을 열고, Ctrl + H를 눌러 "방문 기록" 페이지로 이동한다.2. 왼쪽.. 2025. 6. 18.
Ubuntu ] ssh 활성화 방법 다른 PC에서 내 우분투 PC로 SSH 접속할 수 있게 하기 위해 ssh 서버를 활성화하는 방법 1. ssh 서버 설치sudo apt updatesudo apt install openssh-server설치가 완료되면 자동으로 SSH 서비스가 시작된다. 설치 후 SSH 서비스가 제대로 실행 중인지 아래 명령으로 확인할 수 있다.sudo systemctl status ssh정상적으로 실행 중이면 "active (running)"이라고 표시된다. 만약 멈춰있다면 아래 명령어로 수동 시작하거나 부팅 시 자동 실행되도록 설정할 수 있다.sudo systemctl start sshsudo systemctl enable ssh 2. 방화벽 확인SSH는 기본적으로 22번 포트를 사용한다. 포트가 열려 있는지 아.. 2025. 6. 16.
LibreOffice Writer] 자동 고침(AutoCorrect) 옵션 수정 Tools > AutoCorrect > AutoCorrect Options... 클릭 Options 탭 클릭  Use replacement table : 자동 치환 표를 사용하여 특정 문자열을 다른 문자열로 자동 변경 (예: "teh" → "the")Correct TWo INitial Capitals : 단어 앞 두 글자가 대문자일 경우 자동으로 수정 (예: "CAt" → "Cat")Capitalize first letter of every sentence : 문장 첫 글자를 자동으로 대문자로 변경Automatic *bold*/ /italic/, -strikeout- and underline : 특정 기호로 텍스트를 감싸면 자동으로 서식 적용 (예: *굵게*, /기울임/, 등)URL Recognition.. 2025. 6. 15.
C POSIX ] signal 사용법 시그널(signal)이란? 시그널은 운영체제가 프로세스에게 비동기적으로 보내는 이벤트 알림이다. C 프로그램에서는 signal() 함수를 사용해 특정 시그널이 발생했을 때 호출될 사용자 정의 핸들 함수를 지정할 수 있으며, 이를 통해 시그널 발생 시 커스터마이징된 동작을 구현할 수 있다. signal() 함수 원형#include void (*signal(int signum, void (*handler)(int)))(int); int signum : 처리할 시그널 번호 (예: SIGINT, SIGTERM 등)void (*handler)(int) : 시그널 발생 시 호출할 사용자 정의 함수원형이 약간 복잡한데 인자는 int signum, void (*handler)(int)이고, 반환값이 void (*).. 2025. 6. 12.
ADS1015 데이터시트 분석 및 Tested on Raspberry Pi ADS1015 ADS1015는 12-bit ADC(Analog Digital Converter)로 I2C 인터페이스를 지원하는 칩이다. ADC 해상도 : 12-bit입력 채널 : 4개의 single-ended 입력 또는 2개의 differential 입력공급 전압 범위 : 2.0V~5.5V소비전류 : 150uA (at Continuous coversion mode)단일 변환 모드와 연속 변환 모드 제공I2C 인터페이스최대 I2C High-Speed Mode(3.4MHz) 까지 지원ADDR 핀 연결 방식에 따라 4가지 I2C slave address 설정 가능내부 비교기를 통한 전압 임계값 감지 기능 (ALERT 핀 트리거)128SPS 부터 3.3kSPS 까지 Conversion data rate 지원내.. 2025. 6. 9.
리눅스에서 디스크 읽기/쓰기 성능 테스트 하기 리눅스 시스템에서 디스크의 읽기/쓰기 성능을 확인하고 싶을 때는 dd 명령어를 사용하면 간단하게 MB/s 단위로 측정할 수 있다.   1. 마운트된 디스크 확인하기# df 명령은 디스크 사용량을 확인하는 명령이고 -h옵션을 쓰면 사람이 읽기 쉬운 단위로 출력해줌$ df -h  출력 예시. (이 경우 /dev/mmcblk0p1이 루트 디스크로 마운트되어 있는 걸 확인할 수 있다.)Filesystem Size Used Avail Use% Mounted on/dev/mmcblk0p1 58G 12G 44G 21% /     2. 순차 쓰기 성능 테스트dd if=/dev/zero of=testfile bs=100M count=1 oflag=directdd : 파일, 디바이스, 스트림 등 다.. 2025. 6. 6.
VPX, OpenVPX, SOSA 정의 및 주요 표준 신호 VPX란? (VITA 46)VPX는 기존 VMEbus를 발전시켜, 고속 데이터 전송을 지원함과 동시에 열 관리, 기계적 견고성 등 시스템 신뢰성을 대폭 강화한 하드웨어 인터페이스 표준이다. 주로 방위산업, 항공우주, 산업용 컴퓨팅 분야에서 널리 사용된다. VPX는 시스템 크기에 따라 3U, 6U 등의 폼팩터(form factor)를 제공하며, 시스템 규모와 성능 요구에 따라 다양한 구성이 가능하다. OpenVPX란? (VITA 65)한편, OpenVPX는 VPX 표준을 기반으로 시스템 간 호환성과 상호운용성을 보다 명확히 규정한 프로파일 집합이다. OpenVPX는 커넥터 규격뿐만 아니라, 시스템 전체를 구성하는 다양한 요소까지 세부적으로 표준화하고 있다. 예를 들어 모듈 프로파일, 백플레인 프로파일, .. 2025. 6. 4.
Jetson Xavier NX ] 커널 소스 빌드 Jetson Linux 35.5 (5.10.192-tegra)크로스 컴파일 in Ubuntu 22.04 다운로드 링크:https://developer.nvidia.com/embedded/jetson-linux-r3550 BSP 다운로드 : DRIVERS > Driver Package (BSP)샘플 루트 파일 시스템 다운로드 : DRIVERS > Sample Root Filesystem커널 소스 다운로드 : SOURCES > Driver Package (BSP) Sources툴체인 다운로드 : TOOLS > Bootlin Toolchain gcc 9.3 Working directory는 $HOME/NX로 한다. 툴체인 설치# 툴체인을 설치할 폴더를 만들고 압축 해제# mkdir -p 옵션은 경로.. 2025. 6. 3.
Jetson Xavier NX ] SPI loopback test Jetson Xavier NX 개발보드 40핀 헤더에 노출된 SPI를 테스트하는 절차 1. SPI 핀 활성화40핀 헤더에 나와있는 핀들은 대부분 GPIO로 설정이 되어있기 때문에 SPI 용도로 설정을 해주어야 한다. 간단하게는 jetson-io.py를 사용하는 방법이 있다.sudo /opt/nvidia/jetson-io/jetson-io.py jetson-io.py에서 SPI1을 활성화하면 /boot/ 경로에 SPI1 핀 먹스 설정 dtbo 파일이 생성되고 /boot/extlinux/extlinux.conf 파일에 FDT, OVERLAY 키워드를 추가하여 다음 부팅 시 dtbo 파일이 적용되게끔 한다. 혹은 Pinmux spread sheet의 Customer Usage, Pin Direction, .. 2025. 6. 1.
VSCode 멈춤 & 버벅임 문제 해결 VSCode가 멈추거나 버벅일 때 시도해볼 수 있는 해결방법 1. Ctrl + Shift + P 를 눌러 명령 팔레트를 연다. 2. configure runtime arguments를 검색한다. 3. 다음 문장을 주석 해제하여 GPU 가속기능을 비활성화한다. "disable-hardware-acceleration": true, 2025. 5. 31.
듀얼 부팅 PC에서 Linux와 grub 완전히 삭제하기 리눅스 삭제하기 1. 윈도우로 부팅한다. 2. 관리자 권한으로 명령 프롬프트 실행 3. diskpart를 실행한다.diskpart 4. 아래 절차대로 리눅스가 설치된 디스크를 초기화한다.# 디스크 목록 확인list disk# 초기화할 디스크 선택, 디스크 관리(diskmgmt.msc)를 통해 리눅스가 설치된 디스크를 확인한다.sel disk # 디스크 초기화, 전체 데이터가 삭제된다.clean# 새 파티션 생성create partition primary# 파티션 선택sel part 1# 포맷format fs=ntfs quick# 드라이브 문자 할당assign grub 부트로더 삭제하기 1. 윈도우로 부팅한다. 만약 바로 grub에 진입하면 그 전에 bios에 들어가서 부팅 순서를 바꿔야한다. 2. .. 2025. 5. 30.
Raspberry Pi 4 ] Kernel Build Raspberry Pi 4 Model B 사용 Native 환경에서 커널을 빌드하는 법 참고 링크 : https://www.raspberrypi.com/documentation/computers/linux_kernel.html 1. git 설치$ sudo apt update$ sudo apt install git (옵셔널) 현재 커널 버전 확인$ uname -r6.6.51+rpt-rpi-v82. 현재 사용 중인 커널 버전의 커널 소스 다운로드# git clone --depth=1 --branch https://github.com/raspberrypi/linux$ git clone --depth=1 --branch rpi-6.6.y https://github.com/raspberrypi/linux-.. 2025. 5. 28.
Ubuntu ] Failed to fetch... Hash sum mismatch 오류 해결 방법 sudo apt update 실행 시 다음과 같은 오류 메시지가 발생한 경우의 해결 방법Failed to fetch... Hash Sum mismatch  이 오류는 APT 서버에서 받은 파일의 해시값이 로컬에서 기대한 값과 일치하지 않을 때 발생하며, 주로 다운로드 중 중단으로 로컬 캐시가 손상되었거나, 미러 서버와의 동기화 문제로 인해 발생한다.  해당 오류 발생 시, 아래 순서대로 해결을 시도해볼 수 있다  1. 오류 복구 시도sudo apt update --fix-missing  2. APT 캐시 삭제 후 재시도sudo apt-get cleansudo rm -rf /var/lib/apt/lists/*  3. /etc/apt/sources.list 파일을 수정해 다른 APT 미러 서버로 재시도  4.. 2025. 5. 27.
C++] Intel hex to bin 변환 프로그램 (TI C2000 시리즈) Windows 콘솔용 Intel HEX 포맷 파일을 바이너리 파일로 변환하는 프로그램 기존에 잘 쓰던 프로그램이 있었는데 TI C28x 계열 MCU 대상으로 -a, -w 옵션을 사용하면 맨 뒤에 extra bytes가 더 붙는 문제가 있어서 직접 만들었다.  -a : C28x 코어는 주소 체계가 워드(16비트) 단위로 되어 있어서 HEX 파일의 주소도 워드 단위라 모든 address field를 왼쪽으로 1비트 shift해야 한다.-w : C28x 코어는 리틀 엔디안 구조지만 메모리가 워드 단위이다. HEX 파일의 데이터도 워드 단위로 저장되어 있어서 .bin 파일에 저장할 는 워드 내에서 바이트 순서를 스왑해야 한다.-p padding : 패딩 바이트 값 지정 (기본값: FF)-o output.bin .. 2025. 5. 24.
HDMI (Hot Plug, DDC, EDID) HDMI 인터페이스를 기준으로, 모니터를 연결할 때 GPU와 모니터 간 어떤 신호가 오가며 어떤 순서로 디스플레이가 구성되는지 알아보자. HDMI 케이블을 연결하면 다음과 같은 순서로 디바이스 초기화 절차가 진행된다. [1] GPU ↔ 모니터: HDMI 케이블 연결↓[2] GPU: Hot Plug Detect (5V) 신호를 통해 모니터 연결 감지↓[3] GPU → 모니터: DDC (I2C)로 EDID 요청↓[4] 모니터 → GPU: EDID 응답↓[5] GPU: 최적 출력 포맷 결정↓[6] GPU → 모니터: 비디오/오디오 데이터 전송 시작 (TMDS) 1. Hot Plug Detect(HPD)HDMI 커넥터의 19번 핀은 Hot Plug Detect (HPD) 라인으로, 모니터.. 2025. 5. 20.
Linux 쉘 & Windows 명령 프롬프트에서 현재 경로 파일 탐색기로 열기 현재 디렉토리를 파일 탐색기로 열기  Linux 쉘의 경우$ xdg-open .  Windows 명령 프롬프트의 경우> start . 2025. 5. 18.
Linux ] find 명령어 사용법 & 파일 내 특정 문자열을 포함한 파일 찾기 (grep) find 명령어 기본 사용법먼저 find는 파일 이름, 경로, 속성 등으로 파일을 찾는 명령어이다. 주로 파일명으로 파일을 찾는다.find [조건]  : 검색할 위치 지정, . 이면 현재 디렉토리와 그 하위 디렉토리까지 검색한다.[조건]-name "패턴" : 이름 검색 (대소문자 구분), 검색할 문자열을 ""로 감싸고 와일드카드 *, ?를 사용할 수 있다.-iname "패턴" : 이름 검색 (대소문자 무시) -type [f|d|l]: 일반 파일, 디렉토리, 심볼릭 링크 등 파일 종류를 지정한다. -maxdepth [숫자] : 검색 깊이 제한, 1이면 현재 디렉토리만 검색한다.-size [+|-][파일크기] : 파일 크기 기준 검색-mtime [+|-][일] : 수정 일 기준 검색-mmin [+|-][시.. 2025. 5. 15.
반응형