TX2i WiFi support

Modules start with debug information (which makes file size larger). To make modules smaller they can be stripped (this usually is not needed and is ok for most cases to leave the debug symbols in place). See this for stripping:
https://devtalk.nvidia.com/default/topic/1055518/jetson-agx-xavier/kernel-module-size-kernel_supplements-tbz2-has-huge-different-size-/post/5354775/#5354775
https://forums.developer.nvidia.com/t/kernel-module-size-kernel-supplements-tbz2-has-huge-different-size/76335/3

If using command line tools from the cross compiler on a host PC for stripping (“there’s more than one way to strip a cat module”):
<tool_chain_path>/aarch64-linux-gnu-strip --strip-unneeded <path-of-kernel-module.ko>


…apparently this feature must be integrated and thus you are correct to place the Image file in “/boot” (this would not be necessary if “=m” was allowed…module additions do not require replacing an entire kernel). However, one of the steps you missed (or at least did not mention) is to set CONFIG_LOCALVERSION (this is one you can directly edit in the “.config” file, but if you use a menu editor it works this way as well):
CONFIG_LOCALVERSION="-tegra"

If you have set to “=y”, and then you must also save from the menu editor prior to exiting. You can then verify what the file has via this:

egrep 'CONFIG_(HID|HID_LOGITECH|LOGITECH_FF)([=]| is not set)' /where/ever/it/is/.config

Do be careful to save a copy of the original “/boot/Image”. If you have serial console, and want to boot to an alternate Image without removing the original (you’d have to know to interrupt boot at the right moment via serial console), then you could for example:

sudo -s
cd /boot
cp Image Image-original
cp /where/ever/it/is/new/version/Image Image-logitech
# Edit "/boot/extlinux/extlinux.conf", duplicate and edit the
# "LABEL" blocks. The end of the file would look something
# like this:
LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image-original
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

LABEL logitech
      MENU LABEL logitech
      LINUX /boot/Image-logitech
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

In serial console you will see this very early on boot, and hitting any key when this shows up drops you into the U-Boot kernel selection menu:

U-Boot 2016.07-g0eb73f4 (Mar 13 2019 - 00:20:34 -0700)

TEGRA186
Model: NVIDIA P2771-0000-500
DRAM:  7.8 GiB
MC:   Tegra SD/MMC: 0, Tegra SD/MMC: 1
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@2490000
Hit any key to stop autoboot:  0 
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
213 bytes read in 115 ms (1000 Bytes/s)
p2771-0000 eMMC boot options
1:	primary kernel
Enter choice:  

If you hit a key just prior to “Enter choice:”, then you will drop into U-Boot command line, which you do not want to do. This doesn’t harm anything, but it is too early. If you do this, then simply type “boot” and enter, and then almost immediately you will get to the kernel selection menu and be able to enter a choice there instead. The “1” key would be for the original Image, the “2” key (since it is the second “LABEL” block) would run the Image-logitech.

Once you have booted you can verify the “uname -r” command still ends with “-tegra” (which is what CONFIG_LOCALVERSION sets), and that you have content at:
/lib/modules/$(uname -r)/kernel/

Then you can verify that the options were added in some form (something other than “=n”…since menu config says this can only be integrated, this means it should show “=y”…any “=m” would be invalid for your purposes since menu editor did not all “=y”):

zcat /proc/config.gz | egrep 'CONFIG_(HID|HID_LOGITECH|LOGITECH_FF)([=]| is not set)'

Incidentally, one of the reasons to use a menu editor (like “make nconfig”) is in fact to know that “=m” is not possible for some cases, and to not allow editing to become “=m” in those cases. The fact that you still see “=m” for a feature which does not allow this implies the feature probably won’t work, and could even result in kernel errors.

For all features which are “=m”, if the file path “/lib/modules/$(uname -r)/kernel/” does not exist, then all such modular features will fail (the kernel would not be able to find those files…conversely, if your “uname -r” does not change, then all old modules will be found and it isn’t necessary to install them all again).

I also did not see if you had a correct initial configuration prior to making your config editor changes. Assuming you started with the “/proc/config.gz” of the system when the original Image was running, then all is good (or if you started with “make <options> tegra_defconfig”). I’m guessing it would not have compiled if you did not do this, so you probably did have an initial start config which was valid.