리눅스 민트 19 XFCE에서 버추얼박스 게스트 확장 및 한글 입력기 설치
By 반달가면 | 2018년 8월 20일 |
리눅스 민트(Linux Mint) 19 XFCE를 버추얼박스 가상머신에 설치하고 공유 폴더를 사용하기 위해 버추얼박스 게스트 확장(Virtualbox Guest Additions)을 설치하려 했으나, 오류가 발생. 상황은 대략 아래와 같다. 게스트 확장 iso 이미지를 마운트하고 설치를 진행했는데, 설치가 마무리되지 않고 오류 로그(log)를 확인하라는 메세지가 출력되었다. 오류 로그는 /var/log/vboxadd-install.log 파일에 있다. 오류 로그 파일을 열어서 내용을 살펴보니, 제일 앞부분에 /lib/modules/4.15.0-20-generic/build/include/linux/version.h 파일이 없다는(no such file or directory) 내용이 있다. 인터
[라즈베리파이] 워크큐(Workqueue) - 워크를 워크큐 큐잉시 핵심함수 분석
By Guillermo Austin Kim | 2018년 9월 10일 |
From:워크큐(Workqueue) - 워크를 워크큐에 어떻게 큐잉할까?(1) 워크큐(Workqueue) - 워크를 워크큐에 어떻게 큐잉할까?(2) 이제부터 __queue_work() 함수에서 호출하는 다른 워크큐 주요 함수들을 알아봅니다. 시스템 워크큐 뿐만 아니라 다른 워크큐에서도 이용하는 함수들이니 잘 기억할 필요가 있습니다. get_work_pool() 함수get_work_pool() 함수 분석을 시작하겠습니다.[https://elixir.bootlin.com/linux/v4.14.43/source/kernel/workqueue.c#L709]1 static struct worker_pool *get_work_pool(struct work_struct *work)2 {3unsigned lon
[리눅스커널] 동기화: 스핀락(spinlock)을 쓰는 예제 코드 살펴보기
By Guillermo Austin Kim | 2019년 9월 11일 |
스핀락을 표현하는 구조체를 확인했으니 스핀락을 어떤 방식으로 획득하고 해제하는지 살펴보겠습니다. 예제 코드를 보기 전에 spin_lock() 함수와 spin_unlock() 함수의 선언부를 소개합니다. 이번에는 스핀락을 획득할 때 쓰는 spin_lock()와 함수의 선언부를 보겠습니다.static __always_inline void spin_lock(spinlock_t *lock); 입력 인자는 포인터 타입 lock 변수이며 spinlock_t 구조체입니다. 함수 선언부가 void이니 반환 값은 없습니다. __always_inline 매크로로 선언했으니 커널 함수 내에서 자주 호출되는 함수임을 알 수 있습니다. 다음은 스핀락을 해제할 때 쓰는 spin_unlock()와 함수의 선언부를 봅시다
리눅스 VNC 원격접속(x11vnc, remmina) 관련 참고사항
By 반달가면 | 2021년 10월 13일 |
리눅스(데비안/우분투 계열)에서의 VNC 원격접속 사용은 이전에 정리한 게시물을 참고하자. 아래의 링크다. 리눅스(데비안/우분투 계열)에서 VNC 원격접속 사용 (x11vnc, remmina) 위의 게시물에 나온 내용에 추가해서 참고할 점을 정리해 둔다. 우선 ssh 터널을 통해서 VNC 서버(x11vnc)를 실행할 때(관련 내용은 위의 이전 게시물을 참고하자) -display 옵션에 지정할 디스플레이 번호는 아래의 명령으로 확인할 수 있다. echo $DISPLAY 결과는 통상 ":0" 또는 ":0.0"이라고 나올 것이다. 여기에 맞춰서 -display 옵션을 지정해 주면 되겠다. 만약 ":0.0"이라면 클라이언트쪽에서 서버에 ssh 터널을 아래와 같이 만들고 x11vnc