Category: Ubuntu
-
armbian build 프레임웍을 이용해서 Orange Pi 5 Plus에서 preempt_rt 커널 사용하기
기존 포스팅에서 armbian build를 이용해서 쉽게 6.12 커널을 사용 (이미 preempt_rt 패치가 적용되어 있음) 해서 이미지를 만들고 사용까지 했었습니다. 하지만, armbian의 6.12 커널의 경우, Orange Pi 5 Plus에서 가지고 있는 다양한 주변회로 (i2c, can, spi 등)을 사용하기 위한 dtb가 존재하지 않습니다. 따라서 일반적인 사용은 가능하되, 최적화되어 있다고는 보기 어렵습니다. armbian build에서는 이 경우를 대비해 커널의…
-
armbian build에서 customizing 방법 정리
기본 Repository에 있는 패키지 중 필요한 것들 먼저 설치할 때는 PACKAGE_LIST_BOARD 옵션 사용. 임의의 repository 추가, 패키지 설치, 스크립트 실행 시, userpatches/customize-image.sh 파일을 수정 사용자 계정을 만들고, 처음 로그인 시 작업 수행하는 경우, packages/bsp/common/usr/lib/armbian/armbian-firstlogin 파일 수정 add_user() 함수 내에서 다음의 구문 아래에 적절한 곳에 추가.
-
Orange Pi 5 Plus에 preempt_rt 커널 적용 및 설치
Orange Pi 5를 로봇의 메인 제어기로 사용할 경우, preempt_rt 패치가 필요한 상황이 있습니다. 이를 위해서 제일 편리한 방법은 Armbian build 프레임웍을 사용하는 것입니다. Armbian은 싱글보드 컴퓨터의 시스템 이미지를 생성하기 위한 소프트웨어 프레임웍으로, 아주 간단하게 이미지를 생성하여, SD카드 등에 쉽게 적용이 가능합니다. 자세한 설명은 https://www.armbian.com/ 와 https://docs.armbian.com/Developer-Guide_Overview/ 이곳을 참고하시면 됩니다. Armbian 개발 환경을 위해서는 Ubuntu (Docker…
-
Ubuntu에서 PREEMPT_RT 커널 빌드 및 적용
ROS2의 ros2_control에서 control_manager를 사용할 경우, preempt_rt 커널 (soft realtime)을 사용할 것을 권장하고 있다. 커널 빌드는 매번 하고 있긴 한데, 일단은 방법을 정리해두면 나중에도 찾기 쉬울듯 하여 정리함. 커널 버전은 그냥 rt 패치가 존재하는 가장 최신 버전을 사용하면 될듯. 필요한 패키지 설치 다음으로 커널 소스 및 RT 패치 파일을 받아옴. 압축을 풀고, 패치 적용 기존 config…
-
chrony를 이용한 로컬 네트워크 기기들 시간 동기화
로컬 네트워트에 여러 PC들이 연결되어 있고, 이 PC들 간에 데이터를 주고 받을 때, Time Stamp가 동기화 될 필요가 있습니다. 특히 ROS2와 같은 경우, Topic 등의 데이터들이 수집되는 상황에서 각 메시지들의 시간 값이 틀리게 되면, 에러를 발생하는 주요 원인이 됩니다. 이를 위해서 시간 동기화를 하여야 되는데, 각 PC들이 인터넷 망에 연결된 상황이라면, 주기적으로 외부 NTP 서버를…
-
로컬 네트워크에 인터넷망 공유하기
로봇 시스템의 경우, 내부망과 외부로 연결하기 위한 인터넷망을 분리하여 설계하는 경우가 있습니다. 내부 기기들은 로컬망으로, 로봇을 원격으로 접속하기 위한 인터넷망을 따로 두는 경우인데, 보통 2개 이상의 디바이스 or PC가 들어가는 경우입니다. 대략 그림으로 설명해보면, 이렇게 되어 있을 경우, PC2에서는 인터넷망에 접속이 불가능하므로 외부망으로 연결이 되지 않습니다. 패키지를 설치하거나 할 경우에 약간 불편한 경우가 발생하는데, iptables를…
-
Jetson Orin NX에서 Realsense Camera D435i 인식 및 사용하기
하여간 이 Jetson 개발자 놈들은 뭐하나 쉽게 넘어가는 꼴을 못보는듯 합니다. Jetpack5에서 Jetpack6으로 넘어가는데도 시간이 한참을 걸리더만, Jetpack6에 올라가서는 Realsense 카메라들이 인신이 안되는 버그가 있습니다. 원인은 해당 드라이버를 포함하지 않아서이고, 이를 해결하기 위해선 커널 소스를 받아 해당 드라이버를 재빌딩해서 복사해 줘야 합니다. 특히 D435i의 경우 IMU가 내장되어 있는데, 이 IMU의 센서데이터를 USB HID 프로토콜을 이용해서…
-
Install Nvidia Driver on Ubuntu 24.04
Ubuntu 24.04를 설치하면 자동으로 Nvidia 그래픽카드 드라이버가 설치된다. Nvidia에서 직접 제공하는 Repository를 사용하면, 쉽게 최신 버전의 그래픽 카드 드라이버를 설치할 수 있다. 먼저 현재 설치되어 있는 드라이버를 삭제한다. 다음으로, Nvidia Repository의 키를 등록 및 Repository 추가를 위한 패키지 설치한다. 이제, apt를 업데이트하고, 드라이버를 설치한다. 이때 cuda를 설치하면 해당 CUDA의 버전에 맞게 안정된 드라이버를 같이 설치해준다.…
-
Ubuntu에서 Neovim을 vim 대체로 사용하기
설치는 간단히 다음과 같이 입력하여 설치 다음으로, 기본 vi, vim 커맨드를 입력시 자동으로 nvim으로 연결하도록 설정한다. 여기서 /user/bin/nvim을 선택하면, vim 입력시 nvim이 실행이 됨. 마찬가지로 vi에 대해서도 설정. 마찬가지로 1번 선택. alias나 심볼릭 링크를 번거롭게 설정하는 대신, 위와 같이 설정하면 간단히 해결됨.
-
Ubuntu에서 네트워크 디바이스 정보 확인 방법
Ubuntu에서 ifconfig, ip 등의 명령어를 이용하여, 현재 연결된 상태 및 IP 등을 확인할 수 있다. 하지만, 현재 연결된 네트워크 카드의 디바이스명이나 연결된 인터페이스 이름을 확인하려면 다음의 명령으로 가능하다. 여러 개의 Ethernet 포트가 있고, 서로 다른 디바이스로 구성되어 있는 경우, 특정 디바이스에만 연결해야 하는 경우에 필요하다. 위와 같이 입력하면, 현재 시스템에 있는 모든 네트워크 디바이스의 리스트와…