On 3/26/20 9:14 AM, Rohit Sarkar wrote: > 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. Yes. > I guess insmod path_to_new_driver_file is the best option here. -- ~Randy