Home‎ > ‎Actiontec MI424WR Rev-f‎ > ‎

Going through Actiontec's source code



feature_config.c

Location: opensource-mi424wr-rev-ef/rg/pkg/build/feature_config.c

Intro and Actiontec's Backup Image

Since My first attempt at compiling the Actiontec code failed I thought about looking at feature_config.c file which showed up in the output of make.  It looks like this file has the mapping for enabling and disabling different features.  For example 
ACTION_TEC_SMALL_IMG=y 
that compilation_readme.txt says is for creating a small image/backup image, is checked in the feature_config.c using 
if (!token_get("ACTION_TEC_SMALL_IMG"))
and it sets tokens for the rest of the toolchain.  A few different pieces that it the small firmware varies on are:

/* ACTION_TEC */
if (!token_get("ACTION_TEC_SMALL_IMG"))
{
   /* Dynamic DNS */
   token_set_y("CONFIG_RG_DDNS");

   /* MAC cloning */
   token_set_y("CONFIG_RG_MAC_CLONING");

   /* SSH */
   /* Not set by default for flash size (footprint) reasons. */
   if (token_get("CONFIG_RG_JPKG"))
token_set_y("CONFIG_RG_SSH"); 
   
   /* SNTP Server */
   token_set_y("CONFIG_RG_SNTPS");

   /* DHCP Relay */
   token_set_y("CONFIG_RG_DHCPR"); 

}

Limiting features for Verizon branded and Actiontec

While, looking through the file, I found a few interesting things  There are a whole lot of stuff that are set with the flag for ACTION_TEC_VERISON:

such as 
    /* ACTION_TEC */
    /* For Verizon, No IPIP/IPGRE need */
    if (!token_get("ACTION_TEC_VERIZON") && !token_is_y("ACTION_TEC_VERIZON"))
token_set_y("CONFIG_RG_TUNNELS");

Looking just through the comments, I found out that:


Disabling Auto DST

/* ACTION_TEC */
if (!token_get("ACTION_TEC_VERIZON") && !token_is_y("ACTION_TEC_VERIZON"))
   token_set_y("CONFIG_RG_AUTO_DST");


Let WPS (Wifi Protected Setup) use WEP 

    if (token_get("MODULE_RG_WPS"))
    {
token_set_y("CONFIG_RG_WPS");
token_set_y("CONFIG_RG_WSC");
if (!token_is_y("ACTION_TEC_VERIZON") && 
   !token_is_y("ACTION_TEC_NCS"))
   token_set_y("CONFIG_RG_WPS_ONLY_WPA");
    }

Crippling PPTP (PPTPC and L2TPC)

/* ACTION_TEC */
/* 
* For Verizon & NCS, no PPTP connection in wizard is needed.
* MI424WR and MC524 has no MODULE_RG_PPTP, so disable here for PPTPC
*/
if (
   (!token_get("ACTION_TEC_VERIZON") && !token_is_y("ACTION_TEC_VERIZON"))
&&
   (!token_get("ACTION_TEC_NCS") && !token_is_y("ACTION_TEC_NCS"))
  )
{
   token_set_y("CONFIG_RG_PPTPC");
   token_set_y("CONFIG_RG_L2TPC");
}




Don't use HTTP_AUTH

   if (!token_get("ACTION_TEC_VERIZON") && !token_is_y("ACTION_TEC_VERIZON"))
token_set_y("CONFIG_RG_HTTP_AUTH");

Actiontec has no need for these

/*For Actiontec, no need these tools*/
/* mke2fs, e2fsck */
/* mkdosfs, dosfsck */
/* sfdisk */
/* ntfs-3g, libntfs-3g.so */

/* mkntfs */


Features that we don't want to market yet

    /* This is the temporary location for new features which are yet not
     * categorized into a marketing priced module - features should NOT 
     * live here forever!! 
     */
    if (token_get("CONFIG_NEW_NONE_PRICED_FEATURES"))
    {
token_set_y("CONFIG_RG_PROXY_ARP");
token_set_y("CONFIG_RG_TFTP_UPGRADE");
token_set_y("CONFIG_RG_SSI_PAGES");
    }


Verizon or Frontier?


    /* ACTION_TEC */
    if(token_get("ACTION_TEC_FRONTIER")) 
        token_set("ACTION_TEC_VENDOR_NAME", "FRONTIER");
    else
        token_set("ACTION_TEC_VENDOR_NAME", "VERIZON");
    /* ACTION_TEC */

OpenSSL

I also found out this:

/* decide inside openssl what exactly we want:
* since PPP needs 4 header files from openssl */
token_set_y("CONFIG_RG_OPENSSL_COMMON");