[라즈베리파이] 인터럽트 핸들러 등록(2) - #CS
By Guillermo Austin Kim | 2018년 5월 25일 |
[라즈베리파이] 인터럽트 핸들러 등록(1) - #CShttp://rousalome.egloos.com/9976901에서 계속 ... 이번에는 다른 코드를 입력해서 인터럽트 핸들러와 인터럽트 디스크립터에 대해 알아볼게요. 다음 패치는 인터럽트 핸들러를 등록한 후 바로 해당 인터럽트 번호로 인터럽트 디스크립터를 커널 함수로 읽어와 인터럽트 설정 정보를 출력합니다. 제대로 인터럽트 핸들러를 등록했는지 점검하고 싶을 때 활용하면 좋은 코드입니다. 파라미터가 인터럽트 번호이므로 인터럽트 번호만 대입하면 다른 함수에서도 호출할 수 있죠. 이제부터 코드를 어떻게 작성했는지 함께 살펴볼까요? 우선 dwc_otg_driver_probe 함수 위에 다음 코드를 입력합니다.1 static void interrupt_de
[Linux][Kernel] 스택 푸쉬(Stack Push) Userspace -> Kernel Spapce
By Guillermo Austin Kim | 2017년 12월 5일 |
커널에서 어떤 코드던 프로세스가 실행되는 운동장은 스택이에요. 프로그램이 실행되면서 스택에 Push/Pop 동작을 엄청나게 자주하는데요. 예전 실리콘 벨리에서 어떤 스타트업 회사가 기획했던 아이디어라고 하는데요.리눅스 커널 API를 하드웨어로 처리하는 아이디어를 구현하려고 했다고 하네요. 그 아이디어의 근거는 리눅스 커널에서 자주 사용하는 API는 몇 개로 한정되어 있다는 거에요. 그럼 너무 자주 실행되는 함수면 어떤 동작을 자주 할까요?스택 Push/Pop이 겠죠. 그래서 inline을 함수를 쓰는 거에요. inline 함수는 컴파일러가 호출되는 함수 내에 inline 함수를추가하기 때문에 스택 Push/Pop 동작을 줄 일 수 있어요. 대신 inline 함수의 심볼 정보는 찾을 수 없죠. 대부분의
tshark에서 패킷 내용을 상세하게 출력(-V 옵션)
By 반달가면 | 2020년 7월 25일 |
tshark에서 -V 옵션을 지정하면 패킷의 내용을 상세하게 출력해 준다. 각 프로토콜 계층마다 헤더(header) 구성 요소별로 실제로 어떤 값이 있는지 볼 수 있다. 전체 패킷에 대해서 다 이렇게 보기는 양이 너무 많을 것이므로, -Y 옵션으로 필터(filter)를 지정하여 조건에 맞는 패킷만 골라낸 후에 자세한 내용을 보는 방식으로 활용할 수 있다. 예를 들어 패킷을 저장한 test.pcap 파일을 읽어서(-r 옵션) HTTP GET 패킷만 골라 상세한 내용을 보고자 한다면 아래와 같이 할 수 있겠다. # test.pcap 파일에서 HTTP GET 패킷만 골라낸 후 상세 내용 출력 tshark -r test.pcap -Y "http.request.method==GET" -V | mor
리눅스 민트 20 XFCE에서 한글 입력 설정하기
By 반달가면 | 2020년 6월 28일 |
우분투 20.04LTS 배포판을 기반으로 해서 새로 공개된 리눅스 민트(Linux Mint) 20 XFCE 배포판을 오라클 버추얼박스에 가상머신으로 설치하여 잠깐 살펴보았는데, 한글 입력과 관련해서 이전과 달라진 부분이 있기에 정리해 두기로. 리눅스 민트 19 XFCE까지만 해도 nabi 패키지를 설치해서 한글 입력 기능을 추가할 수 있었는데(관련 내용은 이전 게시물을 참고하자. 여기로), 리눅스 민트 20에서는 nabi가 제대로 동작하지 않았다. 설치하고 설정까지 다 했는데, 정작 한/영 전환이 제대로 되지 않고 영문만 입력이 된다. 어떻게 할까 하다가, ibus로 설치했다. 아래와 같이 작업을 진행. 우선 ibus, ibus-hangul 패키지를 설치한다. 터미널창에서 아래와 같이