GL-MT300N-V2 (RAMIPS) 20.02 image builder not building with expected packages/settings

Hello,

I'm not quite sure how to properly title this post, but my problem in a nutshell is thus:

I've recently been trying to upgrade my GL-MT300N-v2 device from the 18.06 to the 20.02 RC1 firmware, and I've been having some strange results. It's also worth noting that when I tried upgrading to 19.07 a year ago I had the same problem.

Basically, I have a C application that I have running on the box at all times - it spins up when the device powers on and respawns instantly thanks to my inittab entry for it. After upgrading the device to 19/20, the inittab entry no longer works - as in the app no longer automatically respawns when it dies off. This is pretty critical as my app will die when certain conditions are met and respawn itself until the conditions are resolved. I've isolated the issue from other scripts - i have another shell script that will respawn fine when it dies off. So it's really only the C app that won't respawn. I've ran the app manually and it does run as expected, die, and doesn't respawn.

Another thing I've noticed is that no matter what I do with the imagebuilder as far as libcurl is concerned, it will always be using WolfSSL. My application uses mbedTLS so I have that selected as my SSL library of choice, but no matter what I do, it still builds with WolfSSL and runs with that. That's a separate issue altogether.

Also, I don't know if I'm missing a kernel module or what's going on, but I can't get my network configuration to work. The probe simply can't connect to the internet at all.

I use the imagebuilder and I'm building the image on 20.02 exactly the same as I would on 18.06 - I also verified that the .config files have the same packages selected - I'll post the results of what I have below.

If anyone has any helpful insight, that would be wonderful. I've been bashing my head against this brick wall for a few days now with no luck - would really like to get moved over to this new firmware as it has the arp-scan version I am using.

Thank you in advance!

Here's the output of the .config file as it stands:


...
CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt76x8=y
CONFIG_TARGET_MULTI_PROFILE=y
...
CONFIG_DEVEL=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
 CONFIG_ALL is not set
 CONFIG_ALL_KMODS is not set
 CONFIG_ALL_NONSHARED is not set
 CONFIG_AUTOREBUILD is not set
 CONFIG_AUTOREMOVE is not set
 CONFIG_IMAGEOPT is not set
 CONFIG_LIBCURL_FILE is not set
 CONFIG_LIBCURL_FTP is not set
CONFIG_LIBCURL_MBEDTLS=y
CONFIG_LIBCURL_NGHTTP2=y
CONFIG_LIBCURL_THREADED_RESOLVER=y
CONFIG_LIBCURL_VERBOSE=y
 CONFIG_LIBCURL_WOLFSSL is not set
CONFIG_LIBCURL_ZLIB=y
 CONFIG_PACKAGE_agetty is not set
CONFIG_PACKAGE_arp-scan=y
CONFIG_PACKAGE_arp-scan-database=y
 CONFIG_PACKAGE_attr is not set
 CONFIG_PACKAGE_blkid is not set
 CONFIG_PACKAGE_blockdev is not set
 CONFIG_PACKAGE_bluez-daemon is not set
 CONFIG_PACKAGE_bluez-libs is not set
 CONFIG_PACKAGE_bluez-utils is not set
 CONFIG_PACKAGE_bluez-utils-extra is not set
 CONFIG_PACKAGE_bzip2 is not set
 CONFIG_PACKAGE_ca-certificates is not set
 CONFIG_PACKAGE_cal is not set
 CONFIG_PACKAGE_certtool is not set
 CONFIG_PACKAGE_cfdisk is not set
 CONFIG_PACKAGE_curl is not set
 CONFIG_PACKAGE_dbus is not set
 CONFIG_PACKAGE_dbus-utils is not set
 CONFIG_PACKAGE_dmesg is not set
 CONFIG_PACKAGE_eject is not set
 CONFIG_PACKAGE_fdisk is not set
 CONFIG_PACKAGE_findfs is not set
 CONFIG_PACKAGE_flock is not set
 CONFIG_PACKAGE_fstrim is not set
 CONFIG_PACKAGE_getopt is not set
 CONFIG_PACKAGE_glib2 is not set
 CONFIG_PACKAGE_gnutls-utils is not set
 CONFIG_PACKAGE_hwclock is not set
 CONFIG_PACKAGE_iconv is not set
 CONFIG_PACKAGE_icu is not set
 CONFIG_PACKAGE_icu-data-tools is not set
 CONFIG_PACKAGE_icu-full-data is not set
 CONFIG_PACKAGE_idn2 is not set
 CONFIG_PACKAGE_kmod-cryptodev is not set
 CONFIG_PACKAGE_libatomic is not set
 CONFIG_PACKAGE_libattr is not set
 CONFIG_PACKAGE_libblkid is not set
 CONFIG_PACKAGE_libbz2 is not set
 CONFIG_PACKAGE_libcharset is not set
CONFIG_PACKAGE_libcurl=y
 CONFIG_PACKAGE_libdb47 is not set
 CONFIG_PACKAGE_libdb47xx is not set
 CONFIG_PACKAGE_libdbus is not set
 CONFIG_PACKAGE_libedit is not set
 CONFIG_PACKAGE_libevent2 is not set
 CONFIG_PACKAGE_libevent2-core is not set
 CONFIG_PACKAGE_libevent2-extra is not set
 CONFIG_PACKAGE_libevent2-openssl is not set
 CONFIG_PACKAGE_libevent2-pthreads is not set
 CONFIG_PACKAGE_libexpat is not set
 CONFIG_PACKAGE_libfdisk is not set
 CONFIG_PACKAGE_libffi is not set
 CONFIG_PACKAGE_libgdbm is not set
 CONFIG_PACKAGE_libgmp is not set
 CONFIG_PACKAGE_libgnutls is not set
 CONFIG_PACKAGE_libgnutls-dane is not set
 CONFIG_PACKAGE_libgomp is not set
 CONFIG_PACKAGE_libical is not set
 CONFIG_PACKAGE_libiconv is not set
 CONFIG_PACKAGE_libiconv-full is not set
 CONFIG_PACKAGE_libidn2 is not set
 CONFIG_PACKAGE_libintl is not set
 CONFIG_PACKAGE_libintl-full is not set
 CONFIG_PACKAGE_libltdl is not set
 CONFIG_PACKAGE_liblzma is not set
CONFIG_PACKAGE_libmbedtls=y
 CONFIG_PACKAGE_libmnl is not set
 CONFIG_PACKAGE_libmount is not set
 CONFIG_PACKAGE_libncurses is not set
 CONFIG_PACKAGE_libncurses-dev is not set
 CONFIG_PACKAGE_libnettle is not set
CONFIG_PACKAGE_libnghttp2=y
 CONFIG_PACKAGE_libopenldap is not set
 CONFIG_PACKAGE_libopenssl is not set
CONFIG_PACKAGE_liboping=y
CONFIG_PACKAGE_libpcap=y
 CONFIG_PACKAGE_libprotobuf-c is not set
 CONFIG_PACKAGE_libreadline is not set
CONFIG_PACKAGE_librt=y
 CONFIG_PACKAGE_libsasl2 is not set
 CONFIG_PACKAGE_libsmartcols is not set
 CONFIG_PACKAGE_libsodium is not set
 CONFIG_PACKAGE_libsqlite3 is not set
 CONFIG_PACKAGE_libssh2 is not set
CONFIG_PACKAGE_libstdcpp=y
 CONFIG_PACKAGE_libtasn1 is not set
 CONFIG_PACKAGE_libunbound is not set
 CONFIG_PACKAGE_libunistring is not set
 CONFIG_PACKAGE_libuuid is not set
 CONFIG_PACKAGE_libwolfssl is not set
 CONFIG_PACKAGE_libxml2 is not set
 CONFIG_PACKAGE_libxml2-dev is not set
 CONFIG_PACKAGE_libxml2-utils is not set
 CONFIG_PACKAGE_libzstd is not set
 CONFIG_PACKAGE_logger is not set
 CONFIG_PACKAGE_look is not set
 CONFIG_PACKAGE_losetup is not set
 CONFIG_PACKAGE_lsblk is not set
 CONFIG_PACKAGE_lscpu is not set
 CONFIG_PACKAGE_mbedtls-util is not set
 CONFIG_PACKAGE_mcookie is not set
 CONFIG_PACKAGE_meson is not set
 CONFIG_PACKAGE_more is not set
 CONFIG_PACKAGE_mount-utils is not set
 CONFIG_PACKAGE_namei is not set
 CONFIG_PACKAGE_ninja is not set
 CONFIG_PACKAGE_noping is not set
 CONFIG_PACKAGE_nsenter is not set
 CONFIG_PACKAGE_openldap-server is not set
 CONFIG_PACKAGE_openldap-utils is not set
 CONFIG_PACKAGE_openssl-util is not set
 CONFIG_PACKAGE_oping is not set
 CONFIG_PACKAGE_p11-kit is not set
 CONFIG_PACKAGE_partx-utils is not set
 CONFIG_PACKAGE_prlimit is not set
 CONFIG_PACKAGE_protobuf is not set
 CONFIG_PACKAGE_protobuf-lite is not set
 CONFIG_PACKAGE_python-pip-conf is not set
 CONFIG_PACKAGE_python3 is not set
 CONFIG_PACKAGE_python3-asyncio is not set
 CONFIG_PACKAGE_python3-base is not set
 CONFIG_PACKAGE_python3-cgi is not set
 CONFIG_PACKAGE_python3-cgitb is not set
 CONFIG_PACKAGE_python3-codecs is not set
 CONFIG_PACKAGE_python3-ctypes is not set
 CONFIG_PACKAGE_python3-dbm is not set
 CONFIG_PACKAGE_python3-decimal is not set
 CONFIG_PACKAGE_python3-dev is not set
 CONFIG_PACKAGE_python3-distutils is not set
 CONFIG_PACKAGE_python3-email is not set
 CONFIG_PACKAGE_python3-gdbm is not set
 CONFIG_PACKAGE_python3-lib2to3 is not set
 CONFIG_PACKAGE_python3-light is not set
 CONFIG_PACKAGE_python3-logging is not set
 CONFIG_PACKAGE_python3-lzma is not set
 CONFIG_PACKAGE_python3-multiprocessing is not set
 CONFIG_PACKAGE_python3-ncurses is not set
 CONFIG_PACKAGE_python3-openssl is not set
 CONFIG_PACKAGE_python3-pip is not set
 CONFIG_PACKAGE_python3-pkg-resources is not set
 CONFIG_PACKAGE_python3-pydoc is not set
 CONFIG_PACKAGE_python3-setuptools is not set
 CONFIG_PACKAGE_python3-sqlite3 is not set
 CONFIG_PACKAGE_python3-unittest is not set
 CONFIG_PACKAGE_python3-urllib is not set
 CONFIG_PACKAGE_python3-xml is not set
 CONFIG_PACKAGE_rename is not set
 CONFIG_PACKAGE_script-utils is not set
 CONFIG_PACKAGE_setterm is not set
 CONFIG_PACKAGE_sfdisk is not set
 CONFIG_PACKAGE_sqlite3-cli is not set
 CONFIG_PACKAGE_swap-utils is not set
 CONFIG_PACKAGE_terminfo is not set
 CONFIG_PACKAGE_uclibcxx is not set
 CONFIG_PACKAGE_unbound-anchor is not set
 CONFIG_PACKAGE_unbound-checkconf is not set
 CONFIG_PACKAGE_unbound-control is not set
 CONFIG_PACKAGE_unbound-control-setup is not set
 CONFIG_PACKAGE_unbound-daemon is not set
 CONFIG_PACKAGE_unbound-host is not set
 CONFIG_PACKAGE_unshare is not set
 CONFIG_PACKAGE_uuidd is not set
 CONFIG_PACKAGE_uuidgen is not set
 CONFIG_PACKAGE_wall is not set
 CONFIG_PACKAGE_whereis is not set
 CONFIG_PACKAGE_wipefs is not set
 CONFIG_PACKAGE_xz-utils is not set
CONFIG_PACKAGE_zlib=y
 CONFIG_PACKAGE_zlib-dev is not set
 CONFIG_PACKAGE_zstd is not set
 CONFIG_SIGNED_PACKAGES is not set
CONFIG_ZLIB_OPTIMIZE_SPEED=y
1 Like

its not possible to deselect wolfssl via the imagebuilder if you select curl...

the rest of your issues dont seem to be related to the imagebuilder... ditch the .config file approach and stick with a traditional PACKAGES which you re-create for 21.02...

1 Like

Sorry, I probably wasn't clear when I mentioned curl - I use libcurl, and in the past I've built plenty of images using the imagebuilder GUI where I was able to specify mbedtls over wolfSSL.

Could you elaborate more on what you mean by ditching the .config approach? On 18/19's image builder - this works
image

on 21, it still uses wolfSSL

Appreciate the response

This is an odd statement... why would you expect 18 and 21.02 to be 'exactly the same' and be an indicator of anything?

as stated... this is known... you need to compile from source to select alternative libcurl bases...

I suppose my initial expectation was that being presented with the same configuration options and selecting the same configuration option values would generate similar results - I guess I don't find that thinking as odd - it seems as if I was mistaken per your post, which is why I had the question in the first place.

And duly noted. Thanks for your help.

in master if you have more than a handful of packages... something is likely to change once every 2-3months...

  • device names
  • package names
  • package dependencies

when facing issues it is best to strip everything back to the minimum and re-test... passing imagebuilder options via a command line PACKAGES variable is much simpler than .config

regarding the inittab issue... you could try using 'pservice' or enable procd/C-app debugging... it's likely due to permissions / state detection or could potentially be a bona-fide bug...