NFS not starting in GL-B1300 (failed to create RPC listeners, exiting)

After following the documentation to install a NFS server here, I have realized the NFS service was not properly starting. Doing some investigations I found we should be having the following processes:

/usr/sbin/rpc.mountd -p 32780    
/usr/sbin/rpc.statd -p 32778 -o 32779
/usr/sbin/portmap

but I was having different processes:

 /sbin/rpcd -s /var/run/ubus.sock -t 30
 /usr/sbin/portmap -f
 /usr/sbin/rpc.nfsd

showmount shows the following error:

# showmount -a localhost
clnt_create: RPC: Timed out

Checking the processes it was missed /usr/sbin/rpc.statd

I tried to start it up by hand but if failed (you can check within /etc/init.d/nfsd how to run it, I just included the -d option for debug):

#  /usr/sbin/rpc.statd -p 32778 -o 32779 -F -d
rpc.statd: Version 2.3.3 starting
rpc.statd: Flags: No-Daemon Log-STDERR TI-RPC
sm-notify: Version 2.3.3 starting
sm-notify: Already notifying clients; Exiting!
rpc.statd: Local NSM state number: 3
rpc.statd: Failed to unregister program 100024, version 1
rpc.statd: Running as root.  chown /var/lib/nfs to choose different user
rpc.statd: Failed to register (statd, 1, udp)
rpc.statd: Failed to register (statd, 1, tcp)
rpc.statd: Failed to register (statd, 1, udp6)
rpc.statd: Failed to register (statd, 1, tcp6)
rpc.statd: failed to create RPC listeners, exiting

I have found some forums, where they do recommend using rpcbind, instead of portmap to solve issued with the rpc.statd.

I tried to find the rpcbind package with no luck for this architecture (arm_cortex-a7_neon-vfpv4). Is that package missed in the packages download page for gl-b1300?

I tried to repeat exactly the same steps in another arm board (Raspberry Pi4) and there it worked like a charm and it has the rpcbind package available here up and running, with those processes correctly in memory:
(Please, note the /usr/sbin/rpc.statd -p 32778 -o 32779 -F is correclty up and running)

/usr/sbin/rpcbind -f -w
/usr/sbin/rpc.statd -p 32778 -o 32779 -F
/usr/sbin/rpc.mountd -p 32780 -F

Are we missing the rpcbind package in the ipq40xx architecture?

If there is no rpcbind package available, Why the /usr/sbin/rpc.statd fails and how to solved it to properly share through NFS?

Any help is much appreciated.

Note, compare the packages installed with both architectures:

RaspberryPi4 (aarch64_cortex-a72)

Configuring kmod-crypto-cts.
Configuring kmod-fs-nfs-common.
Configuring kmod-fs-exportfs.
Configuring kmod-crypto-arc4.
Configuring kmod-fs-nfs-common-rpcsec.
Configuring kmod-fs-nfsd.
Configuring kmod-dax.
Configuring kmod-dm.
Configuring libwrap.
Configuring libkeyutils1.
Configuring kmod-dnsresolver.
Configuring kmod-fs-nfs.
Configuring kmod-fs-nfs-v4.
Configuring libtirpc.
Configuring rpcbind.
Configuring libdevmapper.
Configuring nfs-utils-libs.
Configuring nfs-kernel-server.

GL-B1300 (arm_cortex-a7_neon-vfpv4)

Configuring kmod-crypto-cts.
Configuring kmod-fs-nfs-common.
Configuring kmod-fs-exportfs.
Configuring kmod-crypto-ecb.
Configuring kmod-fs-nfs-common-rpcsec.
Configuring kmod-fs-nfsd.
Configuring libwrap.
Configuring portmap.
Configuring libtirpc.
Configuring kmod-dnsresolver.
Configuring kmod-fs-nfs.
Configuring nfs-kernel-server.

If anyone is interested (solution at the end of this reply)...

Those are the messages trying to mount the shared mountpoint from a client when fails:

root@dataRock64:~# mount -t nfs -v  10.0.2.1:/mnt /tmp/temporal
mount.nfs: timeout set for Sun Nov 10 22:47:51 2019
mount.nfs: trying text-based options 'vers=4.2,addr=10.0.2.1,clientaddr=10.0.2.150'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'vers=4.1,addr=10.0.2.1,clientaddr=10.0.2.150'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'vers=4.0,addr=10.0.2.1,clientaddr=10.0.2.150'
mount.nfs: mount(2): No such file or directory
mount.nfs: trying text-based options 'addr=10.0.2.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 10.0.2.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: portmap query retrying: RPC: Program not registered
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: portmap query failed: RPC: Program not registered
mount.nfs: requested NFS version or transport protocol is not supported

I ended up compiling the rpcbind package (by following this manual) but that made no difference apparently after installing. I was able to start properly the process that files to start (/usr/sbin/rpc.statd -p 32778 -o 32779 -F) but the errors still persisted.

Tried also disabling ipv in case it was related by add below lines in /etc/sysctl.d/99-stuff.conf

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Checked on logs by redirecting output to console with no luck on finding why it was failing.

Solution....
Hence, I upgraded the router to the latest 19.07.0-rc1 version.

With this version, all the processes started normally:

# ps w| grep rpc
  713 root      2212 S    /sbin/rpcd -s /var/run/ubus.sock -t 30
 3833 root         0 IW<  [rpciod]
 4126 rpc       1164 S    /usr/sbin/rpcbind -f -w
 4263 65536     1440 S    /usr/sbin/rpc.statd -p 32778 -o 32779 -F
 4264 root      1764 S    /usr/sbin/rpc.mountd -p 32780 -F

and I am able to mount properly the shared resources.

(Note: do not forget to export real mountpoints not local folder, that never works).

Below an example of successful mount...

root@dataRock64:/# mount -v   10.0.2.1:/mnt/TimeCapsule /tmp/temporal
mount.nfs: timeout set for Mon Nov 11 01:35:59 2019
mount.nfs: trying text-based options 'vers=4.2,addr=10.0.2.1,clientaddr=10.0.2.150'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'vers=4.1,addr=10.0.2.1,clientaddr=10.0.2.150'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'vers=4.0,addr=10.0.2.1,clientaddr=10.0.2.150'
mount.nfs: mount(2): No such file or directory
mount.nfs: trying text-based options 'addr=10.0.2.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 10.0.2.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 10.0.2.1 prog 100005 vers 3 prot UDP port 32780

root@dataRock64:/# df -h | grep temporal
10.0.2.1:/mnt/TimeCapsule  1.9T  793G  1.1T  43% /tmp/temporal