Location of the kernel binary (when not in /boot)?
Yes. It will be possible to have kernel on different partition
To find the kernel location,
1. see the grub.cfg OR grub.conf file
2. Examine the output of `cat > /proc/cmdline`
/boot
is the standard location for the kernel in desktop/server distributions, but embedded systems vary greatly. Where the kernel is stored entirely depends on your bootloader, and it may not be a file as embedded bootloaders are often not capable of reading Linux filesystems.
For example, with U-Boot (a popular embedded bootloader), you create an image with mkimage
, which may then be written to a separate FAT partition or written in some other system-specific format. If the kernel image is on a FAT partition, that partition is often not mounted under Linux, since Linux never needs to access it (except during upgrades, but most embedded systems don't upgrade their kernel separately from the bootloader).
The upshot is that you have to look for it. If you need help, you need to describe your system very precisely, and even then we may or may not be able to help depending on how popular your embedded system is. If you can't find it on your own, consider asking for support from the providers of the embedded system.
If your embedded device uses U-boot, the kernel image might be written on a particular partition on a NAND flash. See this! If this is the case i think you can locate the binary by looking at your U-boot source code if you have access to it. You can also check the environment variable for clues. This will vary greatly depending on your system so I can't give specifics.