리눅스 20

xterm: Xt error: Can't open display. xterm: DISPLAY is not set. exit code 1, cmd 'xterm -e gdb -ex run --args'

ros2 launch를 이용해 gdb를 실행하려고 할 때 나타났다. xterm 명령어가 윈도우 시스템의 디스플레이를 열지 못하고 있는 것을 나타낸다. 주로 리눅스 환경에서 발생하고 그래픽 환경이 설정되어 있지 않거나 SSH을 통해 원격으로 접속하고 있는데 X11 포워딩이 올바르게 설정되어 있지 않은 경우 발생할 수 있다. 해결방법 1. X11 포워딩 설정: SSH 세션을 열 때 X 옵션을 이용해 X11 포워딩을 활성화한다. ssh -X username@remote_host 2. 디스플레이환경 변수 설정: 로컬에서 X11 디스플레이 주소를 원격 서버의 DISPLAY 환경 변수에 설정해야 한다. 원격 서버에서 echo $DISPLAY 명령을 실행해디스플레이 주소가 출력되는지 확인하고 필요하면 설정한다. 이후..

리눅스/오류 2023.11.08

modprobe와 커널 모듈

modprobe 명령은 커널 모듈을 로드할 때 해당 모듈의 설정을 활성화할 수 있다. modprobe 명령을 사용하여 모듈을 로드하면 모듈 설정을 자동으로 적용할 수 있다. 커널 모듈 컴퓨터 운영 체제인 리눅스의 일부분이다. 리눅스는 컴퓨터를 동작시키고 다양한 일을 수행하는 중요한 역할을 하는 소프트웨어이다. 커널 모듈은 이러한 소프트웨어가 여러 기능을 추가하는데 사용된다. 컴퓨터에 연결된 장치(프린터, 저장 장치 등)와 통신하기 위해 필요한 소프트웨어를 만들 때 커널 모듈을 이용하며, 이 모듈은 장치와 컴퓨터가 통신할 수 있도록 돕는다.

리눅스/정보 2023.09.17

장치 인식, USB 포트 잡기

배터리, PIO 등 센서에 연결된 포트를 고정시키기 위해 이용했다. 1. /dev/tty 로 되어 있는 장치를 확인하기 위해 포트를 확인한다. ls -al /dev/tty* 2. 좀 더 자세한 정보를 보려면 다음 명령을 이용한다. udevadm info -a -n /dev/ttyUSB0 # /dev/ttyUSB0 정보를 알 수 있다. 시리얼 통신(RS-232)을 이용하는 장치를 사용 중이었다. 명령 결과에서 RS232라고 출력되는 포트를 확인하고 코드에서 장치 연결을 해주니 작동이 확인됐다. 하지만 재부팅을 할 때마다 포트가 변경되었고 (ttyUSB0 - ttyUSB1) 포트를 고정시키는 방법을 찾아 해결할 수 있었다. USB 포트 고정시키기 (tistory.com) USB 포트 고정시키기 USB 포트는..

리눅스/정보 2023.09.04

USB 포트 고정시키기

USB 포트는 /etc/udev/rules.d/99-usb_serial.rules 에서 정의해줄 수 있다. 보통 idVendor, idProduct, serial 로 충분한 것 같은데 이 모두가 동일한 경우 ID_USB_INTERFACE_NUM을 정의해줌으로써 해결할 수 있다. idVendor, idProduct, serial는 다음을 통해 확인한다. udevadm info -a -n [장치 이름] | grep '{idVendor}' | head -n1 # 예시 udevadm info -a -n /dev/ttyUSB0 | grep '{idVendor}' | head -n1 udevadm info -a -n [장치 이름] | grep '{idProduct}' | head -n1 udevadm info -a..

리눅스/정보 2023.09.04

Setting up python-wxversion (3.0.2.0+dfsg-8build1) ... Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] ImportError: No module named..

증상이 나타난 후 python-wxversion 설치, 삭제가 에러로 멈추었다. 다른 프로그램 설치도 진행이 안 되었다. 강제 삭제 시도를 한다. sudo dpkg --purge --force-remove-reinstreq python-wxversion 혹은 sudo dpkg --remove --force-remove-reinstreq python-wxversion 둘 다 안 된다면 다음 명령을 시도한다. sudo rm -rf /var/lib/dpkg/info/python-wxversion* # dpkg 재구성 sudo dpkg --configure -a

리눅스/오류 2023.09.04

파일 목록 표시, ls와 ll

ls : 해당 경로에서의 파일 목록을 표시해준다. ll : ls -l과 같은 역할을 한다. ls -a : 숨겨진 파일까지 표시해준다. ls -l : 권한, 소유자, 갱신일까지 표시해준다. ls -R : 위치한 디렉토리 하부 디렉토리 파일까지 모두 출력해준다. ls -h : 파일을 간단하게 보여준다. ls -r : 출력 결과를 내림차순으로 정렬한다. ls -t : 출력 결과를 파일이 수정된 시간을 기준으로 정렬한다.

리눅스/정보 2023.08.21

백그라운드 실행

ctrl+z 누르면 프로그램이 종료된 것이 아니고 백그라운드로 실행된다. 아래의 명령을 입력하면 작업 중이던 프로그램이 다시 보이게 된다. fg # foreground를 의미한다 아래의 명령을 입력하면 어떤 프로그램이 백그라운드로 돌고 있는지 터미널에 출력해준다. jobs 이때 +가 붙어있는 프로그램이 진행 중인 프로그램이고 그다음 프로그램은 -가 붙어있다. 종료를 시키고 싶으면 예를 들어 4라고 써 있는 프로그램을 종료시키고 싶으면 다음을 실행한다. kill %4 좀 더 확실한 방법은 다음과 같다. kill -9 %4 &가 명령어 뒤에 붙으면 명령어가 실행될 때 백그라운드로 실행된다. ls -alR / > result.txt 2> error.log & 위의 명령은 ls -alR / : 현재 파일 시스템..

리눅스/정보 2023.08.07