[라즈베리파이] 워크큐(Workqueue) 함수 및 로그 Overview
By Guillermo Austin Kim | 2018년 8월 22일 |
이전에 소개한 용어와 함께 간단히 워크가 어떤 흐름으로 실행하는지 간단히 코드와 ftrace 로그를 살펴봅시다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/tty/vt/vt.c]static DECLARE_WORK(console_work, console_callback); 워크를 실행하려면 우선 워크를 초기화해야 하는데 2가지 방법으로 나눌 수 있습니다. 워크를 전역 변수로 지정하는 방법과 커널 코드가 실행할 때 INIT_WORK() 매크로를 써서 워크를 초기화하는 방법입니다. 위 코드에서는 console_work 전역 변수로 워크를 선언했습니다. 워크를 표현하는 구조체는 struct work_struct인데 이 변수가 console_work이고
『2장』 질문: 라즈베리 파이에서 디렉터리에 파일을 저장하거나 이동할 수 없습니다.
By Guillermo Austin Kim | 2020년 6월 20일 |
『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 책의 저자 김동현입니다. 몇몇 독자분들이 실습을 하시면서 질문을 주셨는데요, 한 가지 공유드릴 사항이 있어 글을 남깁니다.먼저 질문을 소개합니다. 질문 Q); 라즈비안에서 제공하는 파일 관리자를 통해 파일을 저장을 시도했는데, 저장이 되지 않는다. '2.3.3 라즈비안 리눅스 커널 빌드' 절의 53 페이지에서 소개된 'build_rpi_kernel.sh' 라는 이름으로 저장했다. 'rpi_kernel_src' 디렉터리에 저장하려 했는데 다음과 같은 에러 창이 보이면서 build_rpi_kernel.sh이 저장돼지 않는다. Answer A) 리눅스 터미널을 열고 다음과 같이 하시면 됩니다. * root@raspberrypi:/home/pi/r
[bash: while, if] 복잡한 조건에 따른 개별 작업 이후 공통된 작업이 있는 경우
By 반달가면 | 2017년 12월 21일 |
case 조건문을 사용하기 어려운 복잡한 여러개의 조건에 따라 뭔가 작업을 한 후에 공통된 작업이 있는 경우 어떻게 할 것인가에 대한 문제다. 하나의 변수에 대하여 여러 조건에 따라 작업을 하는 경우에는 case로 하면 되지만 변수가 다수일 경우에는 if와 elif를 계속 나열해야 하는 귀찮음이 생긴다. (case에 대한 내용은 이전 게시물을 참고하자. 여기로) 간단한 예시를 생각해 보자. 앞에서 있었던 작업에 의해 두가지 변수 a, b의 값이 설정되는데 먼저 a에 대해 우선적으로 특정 조건을 만족하는지 보고 만족하지 않을 경우 b에 대해 특정 조건을 만족하는지 봐야 하는 경우다. # 변수 a의 값이 0이거나, 또는 변수 b의 값이 1인 경우에 따라 변수 c의 값을 설정 if [[ $a -eq
맥에서 사용하던 고장난 외장 하드 복원하기
By 지훈현서 | 2020년 8월 15일 |
요즘에야 클라우드에 많이들 백업을 해 놓기도 하지만,30년 전부터 별도의 하드에 백업을 받는 것이 버릇이 되어 있었습니다. 최근 까지 회사 맥미니에 연결해 놓고 4테라, 8테라 3.5인치 외장 하드디스크를 준비하여 rsync로 백업을 했었습니다.다른 것 보다도 20만장 이상 찍은 사진 원본들을 2중으로 백업을 받았습니다. 아이들 어릴적 사진이 있어 언젠가은퇴하면 따로 정리해야지.. 하는 생각으로 말이지요. 문제는 어느날 .. 아마도 정전 때문이었으리라 생각이 들기도 하는데 맥에서 전혀 읽지 못하는 것이었습니다.한개만 망가졌으면 몰라도 두 개가 동시에 안되는 것이었습니다.식겁해서 디스크 유틸리티로 이것 저것 시도를 해 보았지만 모두 실패를 했습니다.파일시스템은 최신 Apple File System을 사용하