Re: Beginner query regarding usbhid
Randy Dunlap <[email protected]> Thu, 26 Mar 2020 08:56:32 -0700
| Newsgroups | gmane.linux.newbie,gmane.linux.usb.general |
|---|---|
| Message-ID | <[email protected]> |
On 3/25/20 11:53 PM, Rohit Sarkar wrote:
> On Wed, Mar 25, 2020 at 11:07:55PM -0700, Randy Dunlap wrote:
>> On 3/25/20 10:31 PM, Rohit Sarkar wrote:
>>> On Wed, Mar 25, 2020 at 02:40:27PM -0700, Randy Dunlap wrote:
>>>> On 3/25/20 10:13 AM, Rohit Sarkar wrote:
>>>>> On Wed, Mar 25, 2020 at 04:41:38PM +0100, Hubert CHAUMETTE wrote:
>>>>>> Le 25/03/2020 15:47, Rohit Sarkar a écrit :
>>>>>>> I was trying to mess around with the driver that drives my mouse. I
>>>>>>> found out that it is usbhid. I then added a printk statement to the init
>>>>>>> and exit function of usbhid.
>>>>>>> I then compiled and installed the usbhid drivers. Post that I ran
>>>>>>> `sudo modprobe -r usbhid` and `sudo modprobe usbhid` but couldnt observe
>>>>>>> any logs in dmesg.
>>>>>>>
>>>>>>> I am certain I am missing something fundamental. Could someone help me
>>>>>>> with this.
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Did you check whether your module was effectively loaded with lsmod?
>>>>>> What log level did you use in your printk statement? Depending on your
>>>>>> system default loglevel your logs might not be printed. A quick fix
>>>>>> would be to use one of the lowest levels (pr_emerg, but pr_err might
>>>>>> suffice).
>>>>>> Regards,
>>>>>
>>>>> Hey,
>>>>> I did check that module was loaded. And one of the signs was that my
>>>>> mouse started working after insmod :).
>>> Hi,
>>>> Hi,
>>>> I'm not convinced that your modified usbhid module was loaded.
>>> Hmm, here's my dmesg logs if that helps:
>>> "
>>> [ 382.132319] usbcore: deregistering interface driver usbhid
>>> [ 391.077410] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:3938:1031.0002/input/input26
>>> [ 391.136724] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:3938:1031.0002/input/input27
>>> [ 391.137285] hid-generic 0003:3938:1031.0002: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:00:14.0-2/input0
>>> [ 391.137480] usbcore: registered new interface driver usbhid
>>> [ 391.137483] usbhid: USB HID core driver
>>> "
>>
>> I can't tell that helps any.
>>
>>>> Could an older (original) usbhid module be reloaded so that the mouse
>>>> started working again? That would also explain the lack of (new) messages.
>>> I think so too. But how do I verify if this is the case?
>>>
>>>> What kernel version are you using? Is it a distro kernel?
>>> I am currently running a bleeding edge kernel that I built. ie 5.6-rc7.
>>>> Are you trying to replace the usbhid module in a distro kernel or are
>>>> you building the entire kernel?
>>> I am building the entire kernel
>>>>> I used printk(KERN_ALERT "some message") for logging. I also tried with
>>>>> KERN_ERR but no luck.
>>>>>
>>>>> The command I used for building was "make -C /home/rohit/LINUX/kernels/staging M=$(pwd)"
>>>>> and for installing the modules: "sudo make -C /home/rohit/LINUX/kernels/staging M=$(pwd) modules_install"
>>>>> both were executed from the usbhid directory.
>>>>
>>>> why those commands? seems unusual.
>>> My Linux kernel source is in the directory mentioned in the commands. So
>>> it is same as running "make M=drivers/hid/usbhid/" from the linux kernel
>>> source root.
>>
>> So /home/rohit/kernels/staging is the top-level kernel source directory?
>>
>> "M=dir" is for external modules to be built. AFAICT you are not building any
>> external modules.
> Oh, I think M=dir options just makes the Makefile build the folder
> specified. I see such an output when I run the make command which makes
> me feel that the make command I am using is actually building the
> modules:
You should be able to build the usbhid sub-directory ("folder") like this:
$ cd /home/rohit/LINUX/kernels/staging
$ make drivers/hid/usbhid/
but maybe what you are doing is equivalent to this.
> "
> drivers/hid/usbhid❯ make -C /home/rohit/LINUX/kernels/staging M=$(pwd) staging/git/master !
> make: Entering directory '/home/rohit/LINUX/kernels/staging'
> AR /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/built-in.a
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/hid-core.o
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/hiddev.o
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/hid-pidff.o
> LD [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbhid.o
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbkbd.o
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbmouse.o
> MODPOST 3 modules
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbhid.mod.o
> LD [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbhid.ko
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbkbd.mod.o
> LD [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbkbd.ko
> CC [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbmouse.mod.o
> LD [M] /home/rohit/LINUX/kernels/staging/drivers/hid/usbhid/usbmouse.ko
> make: Leaving directory '/home/rohit/LINUX/kernels/staging'
> "
--
~Randy