Răsfoiți Sursa

Merge pull request #103 from skilau/DetectAndAutoLoadEthernetDrivers

Add support for auto detecting the USB Ethernet adapter, and loading its respective driver
gtxaspec 3 ani în urmă
părinte
comite
f392d1b109
3 a modificat fișierele cu 47 adăugiri și 8 ștergeri
  1. 7 3
      README.md
  2. 38 4
      SD_ROOT/wz_mini/etc/init.d/wz_user.sh
  3. 2 1
      SD_ROOT/wz_mini/wz_mini.conf

+ 7 - 3
README.md

@@ -152,12 +152,16 @@ USB Ethernet Adapter support:
 
 ```
 ENABLE_USB_ETH="true"
-ENABLE_USB_ETH_MODULES="asix,r8152,cdc_ether"
+ENABLE_USB_ETH_MODULE_AUTODETECT="true"
+ENABLE_USB_ETH_MODULE_MANUAL=""
 ```
 
-available modules: asix, ax88179_178a, cdc_ether, r8152
+To have the Ethernet NIC be auto-detected and loaded automatically, set the ENABLE_USB_ETH_MODULE_AUTODETECT value to true.
 
-the next time you boot your camera, make sure your USB Ethernet Adapter is connected to the camera and ethernet.  The camera has to be setup initially with Wi-Fi for this to work.  After setup, Wi-Fi is no longer needed, as long as you are using the USB Ethernet Adapter.  Note that using USB Ethernet disables the onboard Wi-Fi.  Specify the driver you need for your specific USB Ethernet adapter. asix is listed by default.
+To load a specific USB Ethernet NIC driver, set ENABLE_USB_ETH_MODULE_MANUAL to one of the following:
+asix, ax88179_178a, cdc_ether, r8152
+
+The next time you boot your camera, make sure your USB Ethernet Adapter is connected to the camera and ethernet. The camera has to be setup initially with Wi-Fi for this to work.  After setup, Wi-Fi is no longer needed, as long as you are using the USB Ethernet Adapter.  Note that using USB Ethernet disables the onboard Wi-Fi.
 
 ---
 

+ 38 - 4
SD_ROOT/wz_mini/etc/init.d/wz_user.sh

@@ -304,10 +304,44 @@ if [[ "$ENABLE_USB_ETH" == "true" ]]; then
 
 	insmod $KMOD_PATH/kernel/drivers/net/usb/usbnet.ko
 
-	for i in $(echo "$ENABLE_USB_ETH_MODULES" | tr "," "\n")
-	do
-	insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko
-	done
+	# Auto-Detect an Ethernet Driver and load it
+	if [[ "$ENABLE_USB_ETH_MODULE_AUTODETECT" == "true" ]]; then
+		for DEVICE in `lsusb | awk '{print $6}'| tr '[:upper:]' '[:lower:]'`; do
+			case $DEVICE in
+			'077b:2226' | '0846:1040' | '2001:1a00' | '0b95:1720' | '07b8:420a' |\
+			'08dd:90ff' | '0557:2009' | '0411:003d' | '0411:006e' | '6189:182d' |\
+			'0df6:0056' | '07aa:0017' | '1189:0893' | '1631:6200' | '04f1:3008' |\
+			'17ef:7203' | '0b95:772b' | '0b95:7720' | '0b95:1780' | '0789:0160' |\
+			'13b1:0018' | '1557:7720' | '07d1:3c05' | '2001:3c05' | '2001:1a02' |\
+			'1737:0039' | '04bb:0930' | '050d:5055' | '05ac:1402' | '0b95:772a' |\
+			'14ea:ab11' | '0db0:a877' | '0b95:7e2b' | '0b95:172a' | '066b:20f9')
+				echo "Loading ASIX Ethernet driver..."
+				modprobe asix
+				;;
+			'0b95:1790' | '0b95:178a' | '0df6:0072')
+				echo "Loading AX88179 Gigabit Ethernet driver..."
+				modprobe ax88179_178a
+				;;
+			'1004:61aa' | '046d:c11f' | '1410:b001' | '1410:9010' | '413c:8195' |\
+			'413c:8196' | '413c:819b' | '16d5:650a' | '12d1:14ac' | '0bda:8152')
+				echo "Loading USB CDC Ethernet driver..."
+				modprobe cdc_ether
+				;;
+			'0bda:8152')
+				echo "Loading Realtek RTL8152 driver..."
+				modprobe r8152
+				;;
+			esac
+		done
+	fi
+
+	# Manually load any other Ethernet Drivers if asked for
+	if [[ "$ENABLE_USB_ETH_MODULE_MANUAL" != "" ]]; then
+		for i in $(echo "$ENABLE_USB_ETH_MODULES" | tr "," "\n")
+		do
+			insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko
+		done
+	fi
 
 	bonding_setup eth0 wlan0
 

+ 2 - 1
SD_ROOT/wz_mini/wz_mini.conf

@@ -12,7 +12,8 @@ WEB_CAM_FPS_RATE="25"
 CUSTOM_HOSTNAME="WCV3"
 
 ENABLE_USB_ETH="false"
-ENABLE_USB_ETH_MODULES="asix"
+ENABLE_USB_ETH_MODULE_AUTODETECT="true"
+ENABLE_USB_ETH_MODULE_MANUAL=""
 
 ENABLE_USB_DIRECT="false"
 USB_DIRECT_MAC_ADDR="02:01:02:03:04:08"