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 >