yeah, -a 0 (dictionary attack) makes most sense with -m 2501 and -m 16801
the general approach is to use wlangenpmk (or wlangenpmkocl for OpenCL support) from https://github.com/ZerBea/hcxkeys
Again, -m 2501 and -m 16801 make only sense in some particular situations (pre-computing like rainbowtables and having a small set of essid and reusing the pre-computed keys, PMKs). You need to use the tools that you got wisely and how they are supposed to be used. brute-forcing a 32 bytes (or 64 hexadecimal character) long PMK is not how this attack works !
There could be situations where you use other attack types besides -a 0 for PMKs, but I would say they are very, very rare, e.g. if you know the PMKs are somehow generated very badly (non-random) by the system etc.... but this is not the usual case. use hcxtools (yeah, sometimes it's possible to extract some info also with that tool from the capture) or hcxkeys (wlangenpmkocl, wlangenpmk) together with the PMK modes that hashcat supports.
the general approach is to use wlangenpmk (or wlangenpmkocl for OpenCL support) from https://github.com/ZerBea/hcxkeys
Again, -m 2501 and -m 16801 make only sense in some particular situations (pre-computing like rainbowtables and having a small set of essid and reusing the pre-computed keys, PMKs). You need to use the tools that you got wisely and how they are supposed to be used. brute-forcing a 32 bytes (or 64 hexadecimal character) long PMK is not how this attack works !
There could be situations where you use other attack types besides -a 0 for PMKs, but I would say they are very, very rare, e.g. if you know the PMKs are somehow generated very badly (non-random) by the system etc.... but this is not the usual case. use hcxtools (yeah, sometimes it's possible to extract some info also with that tool from the capture) or hcxkeys (wlangenpmkocl, wlangenpmk) together with the PMK modes that hashcat supports.