|
@@ -51,6 +51,34 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr);
|
|
|
int SpawnTask();
|
|
|
int StoreUsrConfigData(struct SysConfigData *UsrData);
|
|
|
|
|
|
+
|
|
|
+unsigned int isKernelSupportNAT()
|
|
|
+{
|
|
|
+ unsigned int result = 0;
|
|
|
+ unsigned int version = 0;
|
|
|
+ FILE *fp;
|
|
|
+ char cmd[256];
|
|
|
+ char buf[512];
|
|
|
+
|
|
|
+ // Get IP address & net mask
|
|
|
+ strcpy(cmd, "uname -v");
|
|
|
+ fp = popen(cmd, "r");
|
|
|
+ if(fp != NULL)
|
|
|
+ {
|
|
|
+ if(fgets(buf, sizeof(buf), fp) != NULL)
|
|
|
+ {
|
|
|
+ sscanf(buf, "#%d", &version);
|
|
|
+ // DEBUG_INFO("Kernel version: %d\n", version);
|
|
|
+
|
|
|
+ if(version >= 30)
|
|
|
+ result = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pclose(fp);
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
/*===========================================================================
|
|
|
FUNCTION: main
|
|
|
DESCRIPTION:
|
|
@@ -195,7 +223,11 @@ void System_Init()
|
|
|
Eth0_PortSetting_Base(ETH0_PORT_BASE); //192.168.0.20
|
|
|
|
|
|
// ---------- Hardware Init ---------
|
|
|
- system("/sbin/insmod /lib/qcaspi.ko");
|
|
|
+ if(isKernelSupportNAT() == 1)
|
|
|
+ system("/sbin/insmod /lib/qcaspi_nat.ko");
|
|
|
+ else
|
|
|
+ system("/sbin/insmod /lib/qcaspi.ko");
|
|
|
+ // system("/sbin/insmod /lib/qcaspi.ko");
|
|
|
sleep(2);
|
|
|
system("/sbin/ifconfig eth1 192.168.0.11 netmask 255.255.255.0 up");
|
|
|
sleep(1);
|