전체 글949 Ubuntu ] APT 명령어 기본 사용법 1. 패키지 설치 관련 패키지 업데이트sudo apt update 특정 패키지 설치sudo apt install 특정 버전의 패키지 설치sudo apt remove = .deb 패키지 파일 설치sudo dpkg -i .deb 특정 패키지가 시스템에 설치되어있는지 확인dpkg -l | grep 또는sudo apt --installed | grep 2. 패키지 삭제 관련 특정 패키지 제거sudo apt remove 특정 버전의 패키지 제거sudo apt remove = 패키지 및 설정 파일까지 완전 제거sudo apt purge 더 이상 필요하지 않은 의존성 패키지 제거sudo apt autoremove 다운로드한지 오래된 불필요한 패키지 캐시 삭제sudo apt autoclean .. 2025. 2. 9. Linux Kernel ] Container_of Container_ofContainer_of는 리눅스 커널에서 매우 유용하게 자주 쓰이는 매크로로 구조체 멤버의 포인터로부터 해당 멤버가 속한 구조체의 시작 주소를 얻는데 사용된다. Container_of 매크로의 정의는 다음과 같으며, 인자로 '구조체 멤버의 포인터', '전체 구조체의 타입', '구조체 멤버의 이름'을 받고 '전체 구조체의 시작 주소'를 반환한다. #define container_of(ptr, type, member) ({ \ void *__mptr = (void *)(ptr); \ static_assert(__same_type(*(ptr), ((type *)0)->member) || \ __same_type(*(ptr), void), \ "p.. 2025. 2. 6. Linux Kernel ] Error Handling 커널의 에러 코드 정의 리눅스 커널에서 사용되는 에러 코드들은 아래 파일들에 정의되어 있다.- include/uapi/asm-generic/errno-base.h- include/uapi/asm-generic/errno.h errno-base.h 파일은 기본 에러 코드들을 정의하며, error.h 파일은 errno-base.h 파일을 포함하며 추가적으로 아키텍처나 환경에 따라 확장된 에러 코드를 제공한다. errno-base.h/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */#ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operatio.. 2025. 2. 3. C ] X-Macro X-Macro란? 매크로 X()를 재정의하여 데이터를 다양한 형태로 확장하는 기법으로, 주로 리스트 데이터를 정의하고 이를 바탕으로 열거형 및 이에 맵핑되는 문자열 배열을 생성하는데 사용된다. 사용 예시 #include // 리스트 정의#define ERROR_LIST \ X(ERROR_NONE) \ X(ERROR_INVALID) \ X(ERROR_TIMEOUT) \ X(ERROR_OVERFLOW)// enum 정의enum {#define X(name) name, ERROR_LIST#undef X ERROR_COUNT};// 문자열 배열 생성const char *ErrorNames[] = {#define X(name) #name, ERR.. 2025. 1. 30. Device tree compiler 사용법 Device tree compiler는 Device tree 파일을 컴파일/디컴파일하기 위한 도구로 아키텍처에 종속되지 않는 독립적인 표준을 따른다. 1. 설치 방법$ sudo apt update$ sudo apt install device-tree-compiler 2. 사용법 (dts ↔ dtb/dtbo) 1. 기본 사용법# dtc -I -O -o 2. DTB → DTS 변환 (디컴파일)# dtb -> dts 디컴파일$ dtc -I dtb -O dts -o extracted.dts source.dtb 3. DTS → DTB 변환 (컴파일)# dts -> dtb 컴파일$ dtc -I dts -O dtb -o compiled.dtb source.dts 4. -@ 옵션 (DTS → .. 2025. 1. 27. MDIO ] Clause 22 vs Clause 45 MDIOMDIO(Management Data Input/Output)는 Ethenet PHY(Physical Layer Device)의 상태를 관리하기 위한 2-wire Serial 통신 프로토콜이다. Ethernet 장비에서 MAC(Media Access Controller)과 PHY 간 통신에 사용되며 PHY 관리는 레지스터에 대한 접근 및 수정 작업을 기반으로 이루어진다.MDIO는 IEEE 802.3 표준 Clause 22으로 최초 정의되었으며 초기 사양에서는 최대 32개의 PHY 장치에서 각각 32개의 레지스터에 접근할 수 있었다. 이후 10G 이더넷 장비의 등장으로 더 많은 고급 기능을 지원하기 위해 IEEE802.3ae 표준 Clause 45에서 MDIO의 추가 사양이 정의되었다. 대표적으로는.. 2025. 1. 25. phytool 사용법 phytool은 리눅스 환경에서 MDIO(Maintenance Data Input/Output) 인터페이스를 통해 PHY 레지스터를 읽고 쓸 수 있는 도구로, 이 도구를 사용하면 이더넷 PHY의 설정 값을 쉽게 확인하거나 변경할 수 있다. 설치 방법 $ git clone https://github.com/wkz/phytool.git$ cd phytool/$ make 아래와 같이 /usr/local/bin/ 경로에 실행파일의 심볼릭 링크를 만들어두면 전역에서 사용할 수 있다.# sudo ln -s /path/to/phytool/phytool /usr/local/bin/ 사용 방법phytool은 print, read, write 명령을 지원하며 Clause 22와 Clause 45 일부를 지원한다. 사용.. 2025. 1. 23. Linux ] SFTP로 파일 전송하기 SFTP는 SSH 기반으로 안전하게 파일을 전송할 수 있는 방법이다. 운영체제와 상관없이 사용할 수 있지만 여기서는 Linux PC에서 사용하는 방법을 소개한다. SFTP 명령어를 사용하여 Remote 장치에 접속한다.$ sftp username@192.168.55.1 Host에서 Remote로 파일 업로드 하기sftp> put /path/to/local/file /path/to/remote/destination Remote에서 Host 로 파일 다운로드 하기sftp> get /path/to/remote/file /path/to/local/destination 참고로 디렉토리 전송은 지원하지 않는다.그리고 Remote working directiory는 /home/ 이며 '~' 문자는 사용할.. 2025. 1. 21. Jetson ] USB over Internet 다음은 USB를 통해 연결된 Jetson 장치에 인터넷을 공유하기 위해 Ubuntu Host PC에서 IP 포워딩과 NAT(Network Address Translation)를 설정하는 과정이다. 1. /etc/sysctl.conf 파일 편집기로 열기$ sudo vim /etc/sysctl.conf 2. #net.ipv4_op_forware=1 라인 주석 해제 후 저장net.ipv4_op_forware=1 3. /etc/sysctl.conf에 변경된 설정 바로 적용하기$ sudo sysctl -p 4. NAT 설정하기# sudo iptables -t nat -A POSTROUTING -s -j SNAT --to-source # 만약 Host PC의 인터넷 접속이 되는 IP주소가 192.16.. 2025. 1. 19. Ubuntu ] Kernel version 업그레이드 되지 않게 고정하기 현재 설치되어 있는 커널 버전 확인하기$ dpkg -l | grep linux-image또는$ dpkg -l | grep linux- 현재 사용 중인 커널 버전 확인하기$ uname -r 현재 실행중인 커널 버전에서 더이상 업그레이드 되지 않도록 고정하기 (apt upgrade 명령에서 제외)$ sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic 정상적으로 고정 되어있는지 확인하기$ apt-mark showhold 업그레이드 수행$ sudo apt update && sudo apt upgrade 고정 해제 시$ sudo apt-mark unhold linux-generic linux-image-generic lin.. 2025. 1. 17. 이전 1 2 3 4 5 6 7 ··· 95 다음