본문 바로가기

전체 글

(295)
[wsl] wsl gui 속도 높이기 wsl에 ros 등을 설치해 사용할 때 gui 속도가 느린 경우가 있다. 이 경우 CPU 칩에 내장된 GPU를 사용하거나, 하드웨어 대신 소프트웨어 가속을 이용하고 있을 가능성이 높다.wsl 환경에서 현재 OpenGL 렌더링에 사용 중인 GPU를 찾기 위한 명령은 다음과 같다.glxinfo | grep "OpenGL renderer"Intel 등 내장 그래픽이 뜨는 경우만약 결과 메시지에 GPU 모델이 아니라, Intel 등 내장 그래픽이 나타나는 경우, 아래 명령을 입력해 자신이 사용하고 있는 GPU로 교체한다. 예시의 경우 NVIDIA 그래픽카드 기준이다.export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIAhttps://github.com/microsoft/wslg/wik..
[라즈베리파이] device driver에서 pull up 스위치 설정하기 라즈베리파이5  성능이 좋은 임베디드 기기로 볼 수 있기 때문에, linux kernel module 방식으로 LED를 토글 형식으로 켰다 끌 수 있는 모듈을 개발해봤다. 스위치의 클릭은 while문 기반이 아니라, 버튼 눌림을 인식하는 인터럽트 요청(IRQ) 방식을 배워 구현했다.#include #include #include #include #include #include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("blaxsior GNU/Linux");MODULE_DESCRIPTION("gpio driver => LED / button");/* device & device classes */// save device numberstatic dev_t my_dev..
[wsl] 그래픽 깨짐 현상 최근 wsl2는 GUI 프로그램을 실행할 수 있다. 그런데, 내 환경에서는 GUI가 깨져 보이는 현상이 있었다. 다음 과정을 거쳐 해결했다.그래픽카드 드라이버 업데이트: 자신의 그래픽카드에 맞는 드라이버를 최신 버전으로 업데이트한다.WSL 버전 업데이트: wsl을 업데이트하고 한번 껐다가 켠다.wsl --updatewsl --shutdownwsl이 문제때문에 GUI를 제대로 사용할 수가 없었는데 해결되었다.
[라즈베리파이] 라즈베리파이 5 device driver에서 gpio에 접근 https://www.youtube.com/watch?v=P3Judr4i7QI&list=PLCGpd0Do5-I3b5TtyqeF1UdyD4C-S-dMa&index=5유튜브 강의를 수강하면서 device driver을 구현하고 있었다. 나는 14번 핀에 버튼을, 21번 핀에 LED를 연결한 상태였다. 그런데, 라즈베리파이 5 기준으로 두 핀이 인식되지 않는 문제가 있었다.#define BTN_NO 14 // 14#define LED_NO 21 // 21if(gpio_request(LED_NO, "rpi-gpio-21")) { printk("cannot allocate gpio 21\n"); goto AddError;}/* set gpio 21 as output direction */if(gpio_..
[라즈베리파이] vscode로 커널 개발 시 intellisence 에러 없애기 해결 방법vscode 설정 중 C / C++ intellisence와 관련된 설정 파일인 "c_cpp_properties.json" 파일의 내용을 다음과 같이 수정한다.{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/lib/modules/6.6.51+rpt-rpi-2712/source/include", "/usr/src/linux-headers-6.6.51+rpt-rpi-2712/arch/arm64/include/generated", "/u..
sync / async & blocking / non-blocking sync & asyncsynchronous라는 표현은 "동시에 실행된다"는 의미를 가지고 있다. 작업이 "동시에 실행된다"라고 해석하는 경우 동시성(Concurrent)이나 병렬(Parallelism)이 되는데, 이는 프로그래밍 언어에서 말하는 동기/비동기와는 다른 개념이다. sync나 async는 작업의 동시 실행이 아니라, 작업의 동기화(synchronization) 개념에 가깝다.synchronous: 한 작업의 끝이 다른 작업의 시작과 동기화되어, 작업이 순서대로 실행된다.asynchronous: 한 작업의 끝이 다른 작업의 시작과 동기화되지 않는다. 각 작업은 시스템 흐름(실행)과 독립적이다.SYNCHRONOUS |--------A--------| |---..
[라즈베리파이] PC에서 SSH로 접근 나는 라즈베리파이를 위한 모니터를 가지고 있지 않으므로, PC에서 SSH로 라즈베리파이를 연결해 작업을 처리하고 있다. 이 방법에 대해 정리해본다.라즈베리파이를 wifi와 연결한다.공유기를 통해 라즈베리 파이에 할당된 주소를 찾는다.PC에서 라즈베리파이에 할당된 주소로 SSH 요청을 보내 접근한다.라즈베리파이 wifi 연결라즈베리파이 이미지는 공식 문서에서 제공하는 Raspberry PI Imager라는 프로그램을 이용해 만든다.사용자 정보: 라즈베리파이 유저의 이름 & 비밀번호가 된다. 차후 SSH 접속 시 사용한다.무선 LAN: 라즈베리파이가 기본으로 연결할 wifi 주소와 비밀번호를 입력한다. 두 정보를 작성하고 SSH 사용을 활성화한 후, OS를 만들어 라즈베리파이에 연결하자. 라즈베리파이에 전원..
[운영체제] 뮤텍스, 세마포어, 튜링 동치 경쟁 상태(Race Condition)둘 이상의 프로세스가 읽거나 쓸 때 타이밍이나 순서에 따라 결과 값이 달라질 수 있는 상태임계 구역(Critical Section)여러 프로세스가 공유하는 자원에 대해 한번에 둘 이상의 프로세스가 접근해서는 안되는 영역. 한번에 여러 스레드가 접근하여 값을 변경하면 데이터의 일관성이 깨지는 race condition이 발생할 수 있다. 상호 배제(mutual exclusion): 특정 프로세스가 크리티컬 섹션에서 실행되면 다른 프로세스는 크리티컬 섹션에서 실행 불가진행(progress): 자기 크리티컬 섹션에서 실행되는 프로세스 없고 해당 크리티컬 섹션에 진입하려고 하는 다른 프로세스들 있으면 나머지 구역에서 실행중이지 않은 프로세스들만 다음 누가 그 임계구역에 진입..