카테고리
생활코딩

5장 인터럽트 실습2

msi가 xhci 드라이버를 잘못 만들었는지 인터럽트를 너무 많이 발생시킨다. 왼쪽부터 36: 인터럽트 번호, 40080: cpu0 발생 횟수, 0: cpu 1, 2, 3 발생횟수, mmc1, mmc0 인터럽트 이름 정도? 모든 인터럽트가 충분하게 많이 일어난다. 인터럽트 53이 524,288번 발생했다. 53번 인터럽트가 있을 때 printk로 메세지를 출력하려 했으나, 횟수가 많아서인지 부팅을 할 수 없다. 횟수가 적은 31번 인터럽트를 […]

카테고리
생활코딩

화면 보호기 동작 방지 with PowerShell

화면 보호기를 막아야 할 필요가 있다. 아래 링크에서 관련 자료를 얻었다. 출처가 설명을 제대로 하지 않아, 적용하기 어려웠다. PowerShell에 최대한 짧게 입력했다. scroll lock키를 무한 동작

카테고리
생활코딩

5장 인터럽트, p345 실습

책이 dwc_otg_driver.c의 request_irq로 인터럽트를 등록을 설명했다. 그러나, 라즈베리 파이4가 dwc-otg_driver.c 함수를 사용하지 않는다. 있긴 있는데, 4로 오면서 의도적으로 사용하지 않는 듯 하다. 아무리 찾아봐도 request_irq를 dump_stack 메세지에서 찾을 수 없다. 내가 본 메세지는 다음과 같다. 일단 request_threaded_irq가 request_irq임은 확실하다. xhci_run이 request_threaded_irq를 호출한다. usb_add_hcd가 xhci_run을 호출한다. … 이런 식으로 kernel_init로 간다. 결국 시스템 시작할 때 인터럽트를 […]

카테고리
생활코딩

과학하고 앉아있네 podcast 다운로드 + plex 관리 스크립트

과거 쎈호스팅에서 mp3를 다운로드를 제공했었는데, 팟빵 앱으로 접근하지 않는 사용자들을 제약하려고 주소를 옮겼다. 겨우 찾았는데, 쎈호스팅과 과학과사람들이 어떤 일을 했는지 이후 다운로드 서비스도 하고 있지 않았다. 귀찮아 방치했는데, 하드디스크로 바꾼 기념으로 찾아보니, 홈페이지가 rss를 제공하고 있었다. bash로 xml을 parsing하기 힘들어 xpath 도움을 받았다. xpath를 쓰지 않았을 때 정규표현식으로 억지로 뽑아냈다. xmllint도 있는데, 맨 처음 한 […]

카테고리
생활코딩

linux kernel 중 container_of 이해와 사용

container_of를 사용하여 double linked list로 연결된 task_struct가 가진 다른 멤버에 접근할 수 있다. 자세한 원리는 모르겠지만, 컴파일러가 offset을 고정시키는데, 구조체를 미리 알고 있기때문에, 거꾸로 세어 나가는 원리인 듯 하다. 이것은 기술인가? 잔머리인가? 두 번 탐색하지 않아도 되기 때문에 많은 부분에서 사용된다 한다.