How to cross compile TX2's 4.9 kernel

The instructions are given in the documentation for that specific L4T release. To find your L4T release one of these should work:
head -n 1 /etc/nv_tegra_release
dpkg -l | grep 'nvidia-l4t-core'

The URL to the listing of L4T releases (and documentation) is here:
https://developer.nvidia.com/linux-tegra

The document “NVIDIA Jetson Linux Developer Guide” has a section in it, “Kernel Customization”, which contains the information you need.

It is worth noting that downloading just the kernel from the wrong place does not include everything you need. The download for “L4T Driver Package (BSP) Sources” contains “kernel_src.tbz2”. When you unpack “kernel_src.tbz2” you will get more than one directory, and some NVIDIA features, when enabled in the kernel, reference this via relative path.

You will also find that particular tool versions may be required. If you use the instructions with the documentation for that release you should end up with the correct version of tools for an Ubuntu 18.04 host to cross compile.

Note that “tegra18_defconfig” applies only to an L4T R27.x or 28.x release. If you are using a newer release (highly recommended), then it is just “tegra_defconfig”. If you are using documentation suggesting tegra18_defconfig with a newer L4T release, then you are using out of date documents.