Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 3.95 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/sh
  2. #
  3. # Copyright (C) 2010 OpenWrt.org
  4. #
  5.  
  6. ramips_get_mac_binary()
  7. {
  8.         local mtdname="$1"
  9.         local seek="$2"
  10.         local part
  11.  
  12.         . /lib/functions.sh
  13.  
  14.         part=$(find_mtd_part "$mtdname")
  15.         if [ -z "$part" ]; then
  16.                 echo "ramips_get_mac_binary: partition $mtdname not found!" >&2
  17.                 return
  18.         fi
  19.  
  20.         dd bs=1 skip=$seek count=6 if=$part 2>/dev/null | /usr/sbin/maccalc bin2mac
  21. }
  22.  
  23. ramips_get_mac_nvram()
  24. {
  25.         local mtdname="$1"
  26.         local key="$2"
  27.         local part
  28.         local mac_dirty
  29.  
  30.         . /lib/functions.sh
  31.  
  32.         part=$(find_mtd_part "$mtdname")
  33.         if [ -z "$part" ]; then
  34.                 echo "ramips_get_mac_nvram: partition $mtdname not found!" >&2
  35.                 return
  36.         fi
  37.  
  38.         mac_dirty=$(strings "$part" | sed -n 's/'"$key"'=//p')
  39.         # "canonicalize" mac
  40.         /usr/sbin/maccalc add "$mac_dirty" 0
  41. }
  42.  
  43. ramips_board_name() {
  44.         local machine
  45.         local name
  46.  
  47.         machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)
  48.  
  49.         case "$machine" in
  50.         *"Edimax 3g-6200n")
  51.                 name="3g-6200n"
  52.                 ;;
  53.         *"Allnet ALL0256N")
  54.                 name="all0256n"
  55.                 ;;
  56.         *"ARC FreeStation5")
  57.                 name="freestation5"
  58.                 ;;
  59.         *"Argus ATP-52B")
  60.                 name="argus-atp52b"
  61.                 ;;
  62.         *"Asus WL-330N")
  63.                 name="wl-330n"
  64.                 ;;
  65.         *"Asus WL-330N3G")
  66.                 name="wl-330n3g"
  67.                 ;;
  68.         *"Aztech HW550-3G")
  69.                 name="hw550-3g"
  70.                 ;;
  71.         *"DIR-300 B1")
  72.                 name="dir-300-b1"
  73.                 ;;
  74.         *"DIR-600 B1")
  75.                 name="dir-600-b1"
  76.                 ;;
  77.         *"DIR-600 B2")
  78.                 name="dir-600-b2"
  79.                 ;;
  80.         *"ESR-9753")
  81.                 name="esr-9753"
  82.                 ;;
  83.         *"F5D8235 v1")
  84.                 name="f5d8235-v1"
  85.                 ;;
  86.         *"F5D8235 v2")
  87.                 name="f5d8235-v2"
  88.                 ;;
  89.         *"La Fonera 2.0N")
  90.                 name="fonera20n"
  91.                 ;;
  92.         *"MoFi Network MOFI3500-3GN")
  93.                 name="mofi3500-3gn"
  94.                 ;;
  95.         *"NBG-419N")
  96.                 name="nbg-419n"
  97.                 ;;
  98.         *"NexAira BC2")
  99.                 name="bc2"
  100.                 ;;
  101.         *"NW718")
  102.                 name="nw718"
  103.                 ;;
  104.         *"Omnima MiniEMBWiFi")
  105.                 name="omni-emb"
  106.                 ;;
  107.         *"Petatel PSR-680W"*)
  108.                 name="psr-680w"
  109.                 ;;
  110.         *"PWH2004")
  111.                 name="pwh2004"
  112.                 ;;
  113.         *"RT-G32 B1")
  114.                 name="rt-g32-b1"
  115.                 ;;
  116.         *"RT-N10+")
  117.                 name="rt-n10-plus"
  118.                 ;;
  119.         *"RT-N15")
  120.                 name="rt-n15"
  121.                 ;;
  122.         *"RT-N56U")
  123.                 name="rt-n56u"
  124.                 ;;
  125.         *"Skyline SL-R7205"*)
  126.                 name="sl-r7205"
  127.                 ;;
  128.         *"Sparklan WCR-150GN")
  129.                 name="wcr-150gn"
  130.                 ;;
  131.         *"V22RW-2X2")
  132.                 name="v22rw-2x2"
  133.                 ;;
  134.         *"W502U")
  135.                 name="w502u"
  136.                 ;;
  137.         *"WHR-G300N")
  138.                 name="whr-g300n"
  139.                 ;;
  140.         *"Sitecom WL-341 v3")
  141.                 name="wl341v3"
  142.                 ;;
  143.         *"Sitecom WL-351 v1 002")
  144.                 name="wl-351"
  145.                 ;;
  146.         *"Tenda W306R V2.0")
  147.                 name="w306r-v20"
  148.                 ;;
  149.         *"Ralink V11ST-FE")
  150.                 name="v11st-fe"
  151.                 ;;
  152.         *"WLI-TX4-AG300N")
  153.                 name="wli-tx4-ag300n"
  154.                 ;;
  155.         *"WZR-AGL300NH")
  156.                 name="wzr-agl300nh"
  157.                 ;;
  158.         *"WR512-3GN-like router")
  159.                 name="wr512-3gn"
  160.                 ;;
  161.         *"UR-336UN Wireless N router")
  162.                 name="ur-336un"
  163.                 ;;
  164.         *"AWB WR6202")
  165.                 name="wr6202"
  166.                 ;;
  167.         *"XDX RN502J")
  168.                 name="xdxrn502j"
  169.                 ;;
  170.         *)
  171.                 name="generic"
  172.                 ;;
  173.         esac
  174.  
  175.         echo $name
  176. }
  177.  
  178. ramips_failsafe()
  179. {
  180.         local board
  181.        
  182.         board=$(ramips_board_name)
  183.         # ramips rt305x  switch driver hardcoded lan=eth0.1 & wan=eth0.2 so ignore fs_failsafe_ifname
  184.         # but just for case some additional
  185.         case "$board" in
  186.         wli-tx4-ag300n)
  187.                 ifconfig eth0 ${fs_failsafe_ip:-192.168.1.1} netmask ${fs_failsafe_mask:-255.255.255.0} up
  188.                 ;;
  189.  
  190.         v11st-fe | \
  191.         3g-6200n | \
  192.         rt-n56u | \
  193.         rt-n15 | \
  194.         wl-351)
  195.                 # devices with supported switch may work if hardcoded too. need check!
  196.                 vconfig add eth0 1
  197.                 ifconfig eth0.1 ${fs_failsafe_ip:-192.168.1.1} netmask ${fs_failsafe_mask:-255.255.255.0}
  198.                 ifconfig eth0 up
  199.                 ifconfig eth0.1 up
  200.                 ;;
  201.  
  202.         freestation5 | \
  203.         wcr-150gn)
  204.                 #  devices with lan=eth0.2
  205.                 vconfig add eth0 2
  206.                 ifconfig eth0.2 ${fs_failsafe_ip:-192.168.1.1} netmask ${fs_failsafe_mask:-255.255.255.0}
  207.                 ifconfig eth0 up
  208.                 ifconfig eth0.2 up
  209.                 ;;
  210.  
  211.         *)
  212.                 RT3X5X=`cat /proc/cpuinfo | grep RT3.5`
  213.                 if [ -n "${RT3X5X}" ]; then
  214.                         vconfig add eth0 1
  215.                         ifconfig eth0.1 ${fs_failsafe_ip:-192.168.1.1} netmask ${fs_failsafe_mask:-255.255.255.0}
  216.                         ifconfig eth0 up
  217.                         ifconfig eth0.1 up
  218.                 else
  219.                         ifconfig eth0 ${fs_failsafe_ip:-192.168.1.1} netmask ${fs_failsafe_mask:-255.255.255.0} up
  220.                 fi
  221.                 ;;
  222.         esac
  223. }