{"id":4988,"date":"2022-01-24T14:13:41","date_gmt":"2022-01-24T05:13:41","guid":{"rendered":"https:\/\/now0930.pe.kr\/wordpress\/?p=4988"},"modified":"2022-01-24T14:20:23","modified_gmt":"2022-01-24T05:20:23","slug":"linux-usb-driver-xbox3605","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/linux-usb-driver-xbox3605\/","title":{"rendered":"linux usb driver xbox360(5)"},"content":{"rendered":"\n<p>\ub4dc\ub514\uc5b4 \ub9c8\uc9c0\ub9c9\uc774\ub2e4. xbox \ud328\ub4dc\ub97c \ub9c8\uc6b0\uc2a4\ucc98\ub7fc \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc5b4 \uc774\ub807\uac8c \ub3d9\uc791\ud558\ub3c4\ub85d \uc218\uc815\ud588\ub2e4. \ucc98\uc74c \uc5f0\uacb0\ud558\uba74 \uc870\uc774\uc2a4\ud2f1\uc73c\ub85c \ub3d9\uc791\ud558\uace0, \uac00\uc6b4\ub370 \ubc84\ud2bc\uc744 \ub204\ub974\uba74 \ub9c8\uc6b0\uc2a4\ub85c \ub3d9\uc791\ud558\ub3c4\ub85d \ud588\ub2e4. \ub9ac\ub205\uc2a4\uc5d0\uc11c \uc870\uc774\uc2a4\ud2f1 \uc4f8 \uc77c\uc774 \uc788\ub098?? \ucd08\uae30\uac12\uc744 \ub9c8\uc6b0\uc2a4\ub85c \ubc14\uafe8\uc5b4\uc57c \ud588\ub2e4.<\/p>\n\n\n\n<p>input_device\uc5d0 name\uc744 \uc124\uc815\ud558\uc9c0 \uc54a\uace0 \ub4f1\ub85d\ud558\uba74 xserver\ub85c \uc774\ubca4\ud2b8\ub97c \uc804\ub2ec\ud560 \uc218 \uc5c6\ub2e4. input_device\uc5d0 name\uc744 \uc124\uc815\ud558\uc9c0 \uc54a\uc73c\uba74 evtest\uc5d0 \uc774\ub984\uc774 \ud45c\uc2dc\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<p>xbox \uc2a4\ud2f1\uc73c\ub85c \ub4e4\uc5b4\uc624\ub294 \uac12\uc744 \uadf8\ub300\ub85c \uc0ac\uc6a9\ud558\uba74 \uac12\uc774 \ub108\ubb34 \ucee4\uc11c \ucee4\uc11c\uac00 \ud654\uba74 \ub05d\uc5d0\uc11c \ub05d\uae4c\uc9c0 \uc810\ud504\ud55c\ub2e4. \ub300\ub7b5 2,000\uc73c\ub85c \ub098\ub234\ub2e4. \ubc14\uafd4 \ub9d0\ud558\uba74 \ud070 \uac12\uc744 \uc9e7\uc740 \uc2dc\uac04\uc5d0 \ud55c\ubc88\uc5d0 \uc804\ub2ec\ud558\uae30 \uc704\ud574 \uc870\uc774\uc2a4\ud2f1\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ubc84\ud2bc\uc744 \ub204\ub974\uba74 rising edge, falling edge \ub450 \ubc88 \ub3d9\uc791\ud55c\ub2e4. \ube44\ud2b8 \uc2dc\ud504\ud2b8\ub85c \ud2b9\uc815 \uac12\uc744 \ub9cc\uc871\ud558\uba74 \ubaa8\ub4dc\uac00 \ubc14\ub00c\ub3c4\ub85d \ud588\ub2e4. \uc778\ud130\ub7fd\ud2b8 \ub4f1\ub85d\ud560 \ub54c rising, falling edge \ud544\ud130\ub9c1 \ud560 \uc218 \uc788\ub294\ub370, urb\ub85c \ub4f1\ub85d\ud558\uba74 \uadf8\ub7f0 \uac8c \uc5c6\ub294 \ub4ef \ud558\ub2e4. \uc9f1\uad6c\ub97c \ub9ce\uc774 \uad74\ub838\ub2e4.<\/p>\n\n\n\n<p>xpad.c \ub4dc\ub77c\uc774\ubc84\ub97c \ub530\ub77c \ud55c \uc218\uc900\uc774\uc9c0\ub9cc \ucee4\uc2a4\ud130 \ub9c8\uc774\uc9d5\uc744 \ud574 \ubcf4\uba74\uc11c \ubb34\uc5c7\uc744 \ubaa8\ub974\uace0 \ubb34\uc5c7\uc744 \ud559\uc2b5\ud588\ub294\uc9c0 \uc54c \uc218 \uc788\uc5c8\ub2e4. \ucc45\ub9cc \ubcf4\uace0\uc11c\ub294 \uc808\ub300 \uc774\ud574\ud558\uc9c0 \ubabb\ud588\uc744 \uc9c0\uc2dd\uc774\ub2e4. \uc0ac\uc6a9\ub418\ub294 \ud568\uc218\ub4e4\uc740 \uc18c\uc2a4 \ucf54\ub4dc\ub97c \ubcf4\uc9c0 \uc54a\ub294 \ud55c \uc808\ub300 \uc0ac\uc6a9\ud558\uc9c0 \ubabb\ud560 \ud568\uc218 \ub4e4\uc774\ub2e4. \uc774\ubbf8 \ub0b4\uac00 \uace0\ubbfc\ud588\ub358 \ub0b4\uc6a9\uc744 \ub204\uad70\uac00 \ud574\uacb0\ud558\uc5ec \ucf54\ub4dc\ub85c \uad6c\ud604\ud588\ub2e4. \uc18c\uc2a4\ucf54\ub4dc \uac80\uc0c9\uc744 \uc790\uc8fc \ud574\uc57c \uc2dc\uac04\uc744 \uc904\uc77c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>xpad.c\uc5d0 \ubcf4\uba74 \uc0ac\uc6a9\ud560 struct\uc5d0 \uad00\uc2ec\uc788\ub294 \uc8fc\uc18c\ub97c \ubaa8\ub450 \ub54c\ub824 \ub123\uc5c8\ub2e4. \uad6c\uc870\uac00 \ubcf5\uc7a1\ud558\uace0, \uc8fc\uc18c\uac00 \ub108\ubb34 \ub9ce\uc544 \ubd81\ub9c8\ud06c\ucc98\ub7fc \uc8fc\uc18c\ub97c \uad00\ub9ac\ud574\uc57c \ud55c\ub2e4. \ucee4\ub110\uc5d0\uc11c \ub0b4\ub824\uc624\uba74 \ud56d\uc0c1 \uba54\ubaa8\ub9ac\ub97c \ud574\uc81c\ud560 \uc218 \uc788\ub3c4\ub85d \ud588\ub2e4. \ubcf4\uba74 \ubcfc\uc218\ub85d container_of \ub9e4\ud06c\ub85c\ub85c \uc704\ub825\uc744 \uc2e4\uac10\ud55c\ub2e4. \ubd80\ubd84\uc744 \uc54c\uba74 \uad6c\uc870\uccb4 \uba64\ubc84\uc5d0 \ubb34\uc81c\ud55c\uc73c\ub85c \uc811\uadfc\ud560 \uc218 \uc788\ub2e4. \uc640!! \uc774\uac70 \uc0dd\uac01\ud574\ub0b8 \uc0ac\ub78c\uc774 \uc815\ub9d0 \ub300\ub2e8\ud558\ub2e4.<\/p>\n\n\n\n<p>\ub098\ub3c4 \uc774\uc81c usb, character device\uc5d0\uc11c \ud558\uc0b0\ud574\ub3c4 \ub420 \ub4ef \ud558\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"xbox \ub9c8\uc6b0\uc2a4\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/QRCJR07WL9E?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><a href=\"https:\/\/github.com\/now0930\/xbox_driver\">https:\/\/github.com\/now0930\/xbox_driver<\/a><\/p>\n\n\n\n<p>\ucc38\uc870 \uc790\ub8cc<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/20943322\/accessing-keys-from-linux-input-device\">Accessing Keys from Linux Input Device<\/a><\/li><li><a href=\"https:\/\/www.kernel.org\/doc\/html\/v4.13\/input\/event-codes.html\">Input Event Code<\/a><\/li><li><a href=\"https:\/\/www.tutorialspoint.com\/cprogramming\/c_bitwise_operators.htm\">bit operation<\/a><\/li><li><a href=\"https:\/\/roien.tistory.com\/31\">Input Handler<\/a><\/li><li><a href=\"https:\/\/unix.stackexchange.com\/questions\/25601\/how-do-mouse-events-work-in-linux\">event handler<\/a><\/li><li><a href=\"https:\/\/unix.stackexchange.com\/questions\/428399\/how-can-i-run-a-shell-script-on-input-device-event\">bash event handler<\/a><\/li><li><a href=\"https:\/\/askubuntu.com\/questions\/390329\/weather-from-terminal\">wrtt.in<\/a><\/li><li><a href=\"https:\/\/forums.raspberrypi.com\/viewtopic.php?t=186843\">Raspi input device<\/a><\/li><li><a href=\"https:\/\/unix.stackexchange.com\/questions\/57788\/create-xorg-input-device-configuration-file-for-only-a-specific-device\">match id<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\ub4dc\ub514\uc5b4 \ub9c8\uc9c0\ub9c9\uc774\ub2e4. xbox \ud328\ub4dc\ub97c \ub9c8\uc6b0\uc2a4\ucc98\ub7fc \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc5b4 \uc774\ub807\uac8c \ub3d9\uc791\ud558\ub3c4\ub85d \uc218\uc815\ud588\ub2e4. \ucc98\uc74c \uc5f0\uacb0\ud558\uba74 \uc870\uc774\uc2a4\ud2f1\uc73c\ub85c \ub3d9\uc791\ud558\uace0, \uac00\uc6b4\ub370 \ubc84\ud2bc\uc744 \ub204\ub974\uba74 \ub9c8\uc6b0\uc2a4\ub85c \ub3d9\uc791\ud558\ub3c4\ub85d \ud588\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4997,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[775,949,1023,53,1022,950],"class_list":["post-4988","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-12","tag-c","tag-driver","tag-led","tag-linux","tag-skeleton","tag-usb"],"jetpack_featured_media_url":"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2022\/01\/20220123_235728-scaled.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/4988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=4988"}],"version-history":[{"count":10,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/4988\/revisions"}],"predecessor-version":[{"id":5001,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/4988\/revisions\/5001"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media\/4997"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=4988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=4988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=4988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}