Re: Beginner query regarding usbhid
Rohit Sarkar <[email protected]> Thu, 26 Mar 2020 21:44:55 +0530
| Newsgroups | gmane.linux.newbie,gmane.linux.usb.general |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Mar 26, 2020 at 09:02:55AM -0700, Randy Dunlap wrote:
> On 3/26/20 12:34 AM, Rohit Sarkar wrote:
>
> >>>>>
> >>>>> 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.
> >>
> >> Just run
> >> $ cd <top of kernel source tree>
> >> $ make all
> >> $ sudo make install
> > Further, on my system it takes a significant amount of time to run "make
> > all" for some reason. (30 minutes) even though I have previously
> > built the kernel and not pulled any update.
> > AFAIK, make is only supposed to build the files that have
> > changed. Idk why it is also compiling other files. Most of the time is
> > taken by make running modpost.
> >
> > That is the reason I tried to build and install only the hid folder
>
> OK, I get that.
>
> For a driver that is built as a loadable module, you should be able to
> edit the driver, build it, unload previous version (rmmod),
> load new version (modprobe or insmod), and test it, without having to
> reboot the kernel. [until an oops or BUG or WARN happens]
>
> If you don't "install" the new module file, I think that modprobe will
> look in /lib/modules/kernel_version/* for the module file and find the
> old one. In this case I usually use "insmod path_to_new_driver_file"
> to load & test it.
Hmm, the weird part is that I did run "sudo make modules_install".
Shouldnt that get the latest modules into /lib/modules/{kernel
version}/*. Although it didnt work before rebooting.
I guess insmod path_to_new_driver_file is the best option here.
Thanks,
Rohit
> --
> ~Randy
>