From mboxrd@z Thu Jan 1 00:00:00 1970 From: R0b0t1 Subject: UHID Device Reports Do Not Generate OS Activity Date: Sat, 10 Feb 2018 03:33:41 -0600 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a114115ae38e6f00564d8577b" Return-path: Received: from mail-lf0-f41.google.com ([209.85.215.41]:38909 "EHLO mail-lf0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750909AbeBJJdo (ORCPT ); Sat, 10 Feb 2018 04:33:44 -0500 Sender: linux-input-owner@vger.kernel.org List-Id: linux-input@vger.kernel.org To: linux-input@vger.kernel.org, linux-usb@vger.kernel.org --001a114115ae38e6f00564d8577b Content-Type: text/plain; charset="UTF-8" Hello, I am trying to simulate a keyboard using the uhid interface. The fake device shows up in dmesg, but attempting to press the "a" key does nothing I can see. No input appears in the active terminal, nor in an xev window. The program receives UHID_OPEN, UHID_START, and UHID_CLOSE. Many different report descriptors were tried. The one currently uncommented is the one distributed with the USB implementor forum's HID report descriptor tool. The other is one found in a description of a boot device compatible keyboard. Thanks in advance, R0b0t1 --001a114115ae38e6f00564d8577b Content-Type: text/x-csrc; charset="US-ASCII"; name="kbd.c" Content-Disposition: attachment; filename="kbd.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jdh5y6km0 I2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdGRpby5o PgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN0cmlu Zy5oPgoKI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNsdWRlIDxmY250bC5oPgojaW5jbHVkZSA8cG9s bC5oPgoKI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgojaW5jbHVkZSA8bGludXgvdWhpZC5oPgoKI2Rl ZmluZSBoYW5kbGVfZXJyb3IobSkgXAoJZG8geyBwZXJyb3IobSk7IGV4aXQoRVhJVF9GQUlMVVJF KTsgfSB3aGlsZSAoMCkKCnN0YXRpYyB1bnNpZ25lZCBjaGFyIHJkZXNjW10gPSB7CgkweDA1LCAw eDAxLAoJMHgwOSwgMHgwNiwKCTB4YTEsIDB4MDEsCgoJMHgwNSwgMHgwNywKCTB4MTksIDB4ZTAs CgkweDI5LCAweGU3LAoJMHgxNSwgMHgwMCwKCTB4MjUsIDB4MDEsCgkweDc1LCAweDAxLAoJMHg5 NSwgMHgwOCwKCTB4ODEsIDB4MDIsCgoJMHg5NSwgMHgwMSwKCTB4NzUsIDB4MDgsCgkweDgxLCAw eDAzLAoKCTB4OTUsIDB4MDUsCgkweDc1LCAweDAxLAoJMHgwNSwgMHgwOCwKCTB4MTksIDB4MDEs CgkweDI5LCAweDA1LAoJMHg5MSwgMHgwMiwKCgkweDk1LCAweDAxLAoJMHg3NSwgMHgwMywKCTB4 OTEsIDB4MDMsCgoJMHg5NSwgMHgwNiwKCTB4NzUsIDB4MDgsCgkweDE1LCAweDAwLAoJMHgyNSwg MHg2NSwKCTB4MDUsIDB4MDcsCgkweDE5LCAweDAwLAoJMHgyOSwgMHg2NSwKCTB4ODEsIDB4MDAs CgoJMHhjMAp9OwoKLyoKc3RhdGljIHVuc2lnbmVkIGNoYXIgcmRlc2NbXSA9IHsKCTB4MDUsIDB4 MDEsIC8vIFVzYWdlIFBhZ2UgKEdlbmVyaWMgRGVza3RvcCkKCTB4MDksIDB4MDYsIC8vIFVzYWdl IChLZXlib2FyZCkKCgkweGExLCAweDAxLCAvLyBDb2xsZWN0aW9uIChBcHBsaWNhdGlvbikKCQoJ Ly8gTW9kaWZpZXIgcmVwb3J0LgoJMHg3NSwgMHgwMSwgLy8gUmVwb3J0IFNpemUgKDEpCgkweDk1 LCAweDA4LCAvLyBSZXBvcnQgQ291bnQgKDgpCgkweDA1LCAweDA3LCAvLyBVc2FnZSBQYWdlIChL ZXkgQ29kZXMpCgkweDE5LCAweGUwLCAvLyBVc2FnZSBNaW5pbXVtICgyMjQpCgkweDI5LCAweGU3 LCAvLyBVc2FnZSBNYXhpbXVtICgyMzEpCgkweDE1LCAweDAwLCAvLyBMb2dpY2FsIE1pbmltdW0g KDApIC0gU2hvcnRlbiAoMHgxNCk/CgkweDI1LCAweDAxLCAvLyBMb2dpY2FsIE1heGltdW0gKDEp CgkweDgxLCAweDAyLCAvLyBJbnB1dCAoRGF0YSwgVmFyaWFibGUsIEFic29sdXRlKQoKCS8vIFJl c2VydmVkIGJ5dGUuCgkweDk1LCAweDAxLCAvLyBSZXBvcnQgQ291bnQgKDEpCgkweDc1LCAweDA4 LCAvLyBSZXBvcnQgU2l6ZSAoOCkKCTB4ODEsIDB4MDEsIC8vIElucHV0IChDb25zdGFudCkKCgkv LyBMRUQgcmVwb3J0LgoJMHg5NSwgMHgwNSwgLy8gUmVwb3J0IENvdW50ICg1KQoJMHg3NSwgMHgw MSwgLy8gUmVwb3J0IFNpemUgKDEpCgkweDA1LCAweDA4LCAvLyBVc2FnZSBQYWdlIChMRURzKQoJ MHgxOSwgMHgwMSwgLy8gVXNhZ2UgTWluaW11bSAoMSkKCTB4MjksIDB4MDUsIC8vIFVzYWdlIE1h eGltdW0gKDUpCgkweDkxLCAweDAyLCAvLyBPdXRwdXQgKERhdGEsIFZhcmlhYmxlLCBBYnNvbHV0 ZSkKCgkvLyBMRUQgcmVwb3J0IHBhZGRpbmcuCgkweDk1LCAweDAxLCAvLyBSZXBvcnQgQ291bnQg KDEpCgkweDc1LCAweDAzLCAvLyBSZXBvcnQgU2l6ZSAoMykKCTB4OTEsIDB4MDEsIC8vIE91dHB1 dCAoQ29uc3RhbnQpCgoJLy8gS2V5IGNvZGUgcmVwb3J0LgoJMHg5NSwgMHgwNiwgLy8gUmVwb3J0 IENvdW50ICg2KQoJMHg3NSwgMHgwOCwgLy8gUmVwb3J0IFNpemUgKDgpCgkweDE1LCAweDAwLCAv LyBMb2dpY2FsIE1pbmltdW0gKDApCgkweDI2LCAweGZmLCAweDAwLCAvLyBMb2dpY2FsIE1heGlt dW0gKDI1NSkKCTB4MDUsIDB4MDcsIC8vIFVzYWdlIFBhZ2UgKEtleSBDb2RlcykKCTB4MTksIDB4 MDAsIC8vIFVzYWdlIE1pbmltdW0gKDApCgkweDI5LCAweGZmLCAvLyBVc2FnZSBNYXhpbXVtICgy NTUpCgkweDgxLCAweDAwLCAvLyBJbnB1dCAoRGF0YSwgQXJyYXkpCgoJMHhjMAkJLy8gRW5kIENv bGxlY3Rpb24KfTsKKi8KCgpzdGF0aWMgaW50CnVoaWRfd3JpdGUoaW50IGZkLCBjb25zdCBzdHJ1 Y3QgdWhpZF9ldmVudCAqaGUpCnsKCXNzaXplX3QgciA9IHdyaXRlKGZkLCBoZSwgc2l6ZW9mKCpo ZSkpOwoJaWYgKHIgPCAwKSB7CgkJZnByaW50ZihzdGRlcnIsICJ3cml0ZTogY2Fubm90IHdyaXRl IHRvIHVoaWQ6ICVtXG4iKTsKCQlyZXR1cm4gLWVycm5vOwoJfSBlbHNlIGlmIChyICE9IHNpemVv ZigqaGUpKSB7CgkJZnByaW50ZihzdGRlcnIsICJ3cml0ZTogd3Jvbmcgc2l6ZSB3cml0dGVuIHRv IHVoaWQ6ICVsZCAhPSAlbHVcbiIsCgkJCQlyLCBzaXplb2YoKmhlKSk7CgkJcmV0dXJuIC1FRkFV TFQ7Cgl9IGVsc2UgcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQKdWhpZF9ldmVudChpbnQgZmQpCnsK CXN0cnVjdCB1aGlkX2V2ZW50IGhlOwoJc3NpemVfdCBzejsKCWlmICgoc3ogPSByZWFkKGZkLCAm aGUsIHNpemVvZihoZSkpKSA9PSAtMSkKCQloYW5kbGVfZXJyb3IoInJlYWQiKTsKCglzd2l0Y2gg KGhlLnR5cGUpIHsKCWNhc2UgVUhJRF9TVEFSVDoKCQlmcHJpbnRmKHN0ZGVyciwgIlVISURfU1RB UlQgZnJvbSB1aGlkLWRldi5cbiIpOwoJCWJyZWFrOwoJY2FzZSBVSElEX1NUT1A6CgkJZnByaW50 ZihzdGRlcnIsICJVSElEX1NUT1AgZnJvbSB1aGlkLWRldi5cbiIpOwoJCWJyZWFrOwoJY2FzZSBV SElEX09QRU46CgkJZnByaW50ZihzdGRlcnIsICJVSElEX09QRU4gZnJvbSB1aGlkLWRldi5cbiIp OwoJCXJldHVybiAwOwoJY2FzZSBVSElEX0NMT1NFOgoJCWZwcmludGYoc3RkZXJyLCAiVUhJRF9D TE9TRSBmcm9tIHVoaWQtZGV2LlxuIik7CgkJYnJlYWs7CgljYXNlIFVISURfT1VUUFVUOgoJCWZw cmludGYoc3RkZXJyLCAiVUhJRF9PVVRQVVQgZnJvbSB1aGlkLWRldi5cbiIpOwoJCS8vIFRPRE86 IEhhbmRsZSBvdXRwdXQuCgkJYnJlYWs7CgljYXNlIFVISURfT1VUUFVUX0VWOgoJCWZwcmludGYo c3RkZXJyLCAiVUhJRF9PVVRQVVRfRVYgZnJvbSB1aGlkLWRldi5cbiIpOwoJCWJyZWFrOwoJZGVm YXVsdDoKCQlmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgZXZlbnQgZnJvbSB1aGlkLWRldjogJXUu XG4iLCBoZS50eXBlKTsKCX0KCglyZXR1cm4gMTsKfQoKaW50Cm1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKewoJaW50IGZkOwoJc3NpemVfdCBzejsKCXN0cnVjdCB1aGlkX2V2ZW50IGhlOwoK CWlmICgoZmQgPSBvcGVuKCIvZGV2L3VoaWQiLCBPX1JEV1IgfCBPX0NMT0VYRUMpKSA9PSAtMSkK CQloYW5kbGVfZXJyb3IoIm9wZW4iKTsKCglzdHJ1Y3QgcG9sbGZkIGZkc1sxXSA9IHsKCQl7LmZk ID0gZmQsIC5ldmVudHMgPSBQT0xMSU59Cgl9OwoKCW1lbXNldCgmaGUsIDAsIHNpemVvZihoZSkp OwoJaGUudHlwZSA9IFVISURfQ1JFQVRFMjsKCXN0cmNweSgoY2hhciAqKWhlLnUuY3JlYXRlLm5h bWUsICJrYi1kYWVtb24tZGV2aWNlIik7CgltZW1jcHkoaGUudS5jcmVhdGUyLnJkX2RhdGEsIHJk ZXNjLCBzaXplb2YocmRlc2MpKTsKCWhlLnUuY3JlYXRlMi5yZF9zaXplID0gc2l6ZW9mKHJkZXNj KTsKCWhlLnUuY3JlYXRlMi5idXMgPSBCVVNfVVNCOwoJaGUudS5jcmVhdGUyLnZlbmRvciA9IDB4 MTVkOTsKCWhlLnUuY3JlYXRlMi5wcm9kdWN0ID0gMHgwYTM3OwoJaGUudS5jcmVhdGUyLnZlcnNp b24gPSAwOwoJaGUudS5jcmVhdGUyLmNvdW50cnkgPSAwOwoJaWYgKHVoaWRfd3JpdGUoZmQsICZo ZSkpCgkJaGFuZGxlX2Vycm9yKCJ1aGlkX3dyaXRlIik7CgoJY2hhciBjb250ID0gMTsKCXdoaWxl IChjb250KSB7CgkJaW50IG4gPSBwcG9sbChmZHMsIHNpemVvZihmZHMpLCBOVUxMLCBOVUxMKTsK CQlpZiAobiA9PSAtMSkKCQkJaGFuZGxlX2Vycm9yKCJwcG9sbCIpOwoKCQlmb3IgKGludCBpID0g MDsgaSA8IG47IGkrKykgewoJCQlpZiAoZmRzW2ldLmZkID09IGZkICYmCgkJCQlmZHNbaV0ucmV2 ZW50cyAmIFBPTExJTikKCQkJCWNvbnQgPSB1aGlkX2V2ZW50KGZkc1tpXS5mZCk7CgkJfQoJfQoK CW1lbXNldCgmaGUsIDAsIHNpemVvZihoZSkpOwoJaGUudHlwZSA9IFVISURfSU5QVVQyOwoJaGUu dS5pbnB1dDIuc2l6ZSA9IDg7CgloZS51LmlucHV0Mi5kYXRhWzBdID0gMHgwMDsKCWhlLnUuaW5w dXQyLmRhdGFbMV0gPSAweDAwOwoJaGUudS5pbnB1dDIuZGF0YVsyXSA9IDB4MDQ7CgloZS51Lmlu cHV0Mi5kYXRhWzNdID0gMHgwMDsKCWhlLnUuaW5wdXQyLmRhdGFbNF0gPSAweDAwOwoJaGUudS5p bnB1dDIuZGF0YVs1XSA9IDB4MDA7CgloZS51LmlucHV0Mi5kYXRhWzZdID0gMHgwMDsKCWhlLnUu aW5wdXQyLmRhdGFbN10gPSAweDAwOwoJaWYgKHVoaWRfd3JpdGUoZmQsICZoZSkpCgkJaGFuZGxl X2Vycm9yKCJ1aGlkX3dyaXRlIik7CgoJbWVtc2V0KCZoZSwgMCwgc2l6ZW9mKGhlKSk7CgloZS50 eXBlID0gVUhJRF9JTlBVVDI7CgloZS51LmlucHV0Mi5zaXplID0gODsKCWhlLnUuaW5wdXQyLmRh dGFbMF0gPSAweDAwOwoJaGUudS5pbnB1dDIuZGF0YVsxXSA9IDB4MDA7CgloZS51LmlucHV0Mi5k YXRhWzJdID0gMHgwMDsKCWhlLnUuaW5wdXQyLmRhdGFbM10gPSAweDAwOwoJaGUudS5pbnB1dDIu ZGF0YVs0XSA9IDB4MDA7CgloZS51LmlucHV0Mi5kYXRhWzVdID0gMHgwMDsKCWhlLnUuaW5wdXQy LmRhdGFbNl0gPSAweDAwOwoJaGUudS5pbnB1dDIuZGF0YVs3XSA9IDB4MDA7CglpZiAodWhpZF93 cml0ZShmZCwgJmhlKSkKCQloYW5kbGVfZXJyb3IoInVoaWRfd3JpdGUiKTsKCQoJbWVtc2V0KCZo ZSwgMCwgc2l6ZW9mKGhlKSk7CgloZS50eXBlID0gVUhJRF9ERVNUUk9ZOwoJaWYgKHVoaWRfd3Jp dGUoZmQsICZoZSkpCgkJaGFuZGxlX2Vycm9yKCJ1aGlkX3dyaXRlIik7Cgl1aGlkX2V2ZW50KGZk KTsKCgoJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQo= --001a114115ae38e6f00564d8577b--