ramips: enhance user-space board detection
[openwrt.git] / target / linux / ramips / base-files / lib / ramips.sh
1 #!/bin/sh
2 #
3 # Copyright (C) 2010-2013 OpenWrt.org
4 #
5
6 RAMIPS_BOARD_NAME=
7 RAMIPS_MODEL=
8
9
10 ramips_board_detect() {
11         local machine
12         local name
13
14         machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)
15
16         case "$machine" in
17         *"8devices Carambola")
18                 name="carambola"
19                 ;;
20         *"Edimax 3g-6200n")
21                 name="3g-6200n"
22                 ;;
23         *"AirLive Air3GII")
24                 name="air3gii"
25                 ;;
26         *"Edimax BR-6425")
27                 name="br6425"
28                 ;;
29         *"Allnet ALL0239-3G")
30                 name="all0239-3g"
31                 ;;
32         *"Allnet ALL0256N")
33                 name="all0256n"
34                 ;;
35         *"Allnet ALL5002")
36                 name="all5002"
37                 ;;
38         *"ARC FreeStation5")
39                 name="freestation5"
40                 ;;
41         *"Argus ATP-52B")
42                 name="argus-atp52b"
43                 ;;
44         *"BR6524N")
45                 name="br6524n"
46                 ;;
47         *"Asus WL-330N")
48                 name="wl-330n"
49                 ;;
50         *"Asus WL-330N3G")
51                 name="wl-330n3g"
52                 ;;
53         *"Aztech HW550-3G")
54                 name="hw550-3g"
55                 ;;
56         *"DIR-300 B1")
57                 name="dir-300-b1"
58                 ;;
59         *"DIR-600 B1")
60                 name="dir-600-b1"
61                 ;;
62         *"DIR-600 B2")
63                 name="dir-600-b2"
64                 ;;
65         *"DIR-620 A1")
66                 name="dir-620-a1"
67                 ;;
68         *"DIR-615 H1")
69                 name="dir-615-h1"
70                 ;;
71         *"DIR-615 D")
72                 name="dir-615-d"
73                 ;;
74         *"DIR-645")
75                 name="dir-645"
76                 ;;
77         *"DAP-1350")
78                 name="dap-1350"
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         *"Hauppauge Broadway")
90                 name="broadway"
91                 ;;
92         *"La Fonera 2.0N")
93                 name="fonera20n"
94                 ;;
95         *"Asus RT-N13U")
96                 name="rt-n13u"
97                 ;;
98         *"MoFi Network MOFI3500-3GN")
99                 name="mofi3500-3gn"
100                 ;;
101         *"NBG-419N")
102                 name="nbg-419n"
103                 ;;
104         *"NexAira BC2")
105                 name="bc2"
106                 ;;
107         *"NW718")
108                 name="nw718"
109                 ;;
110         *"Omnima EMB HPM")
111                 name="omni-emb-hpm"
112                 ;;
113         *"Omnima MiniEMBWiFi")
114                 name="omni-emb"
115                 ;;
116         *"Petatel PSR-680W"*)
117                 name="psr-680w"
118                 ;;
119         *"Planex MZK-W300NH2"*)
120                 name="mzk-w300nh2"
121                 ;;
122         *"PWH2004")
123                 name="pwh2004"
124                 ;;
125         *"RT-G32 B1")
126                 name="rt-g32-b1"
127                 ;;
128         *"RT-N10+")
129                 name="rt-n10-plus"
130                 ;;
131         *"RT-N15")
132                 name="rt-n15"
133                 ;;
134         *"RT-N56U")
135                 name="rt-n56u"
136                 ;;
137         *"Skyline SL-R7205"*)
138                 name="sl-r7205"
139                 ;;
140         *"Sparklan WCR-150GN")
141                 name="wcr-150gn"
142                 ;;
143         *"V22RW-2X2")
144                 name="v22rw-2x2"
145                 ;;
146         *"W502U")
147                 name="w502u"
148                 ;;
149         *"WHR-G300N")
150                 name="whr-g300n"
151                 ;;
152         *"Sitecom WL-341 v3")
153                 name="wl341v3"
154                 ;;
155         *"Sitecom WL-351 v1 002")
156                 name="wl-351"
157                 ;;
158         *"Tenda 3G300M")
159                 name="3g300m"
160                 ;;
161         *"Tenda W306R V2.0")
162                 name="w306r-v20"
163                 ;;
164         *"TEW-691GR")
165                 name="tew-691gr"
166                 ;;
167         *"TEW-692GR")
168                 name="tew-692gr"
169                 ;;
170         *"Ralink V11ST-FE")
171                 name="v11st-fe"
172                 ;;
173         *"WLI-TX4-AG300N")
174                 name="wli-tx4-ag300n"
175                 ;;
176         *"WZR-AGL300NH")
177                 name="wzr-agl300nh"
178                 ;;
179         *"WR512-3GN-like router")
180                 name="wr512-3gn"
181                 ;;
182         *"UR-336UN Wireless N router")
183                 name="ur-336un"
184                 ;;
185         *"AWB WR6202")
186                 name="wr6202"
187                 ;;
188         *"XDX RN502J")
189                 name="xdxrn502j"
190                 ;;
191         *)
192                 name="generic"
193                 ;;
194         esac
195
196         [ -z "$RAMIPS_BOARD_NAME" ] && RAMIPS_BOARD_NAME="$name"
197         [ -z "$RAMIPS_MODEL" ] && RAMIPS_MODEL="$machine"
198
199         [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
200
201         echo "$RAMIPS_BOARD_NAME" > /tmp/sysinfo/board_name
202         echo "$RAMIPS_MODEL" > /tmp/sysinfo/model
203 }
204
205 ramips_board_name() {
206         local name
207
208         [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
209         [ -z "$name" ] && name="unknown"
210
211         echo "$name"
212 }