Project

General

Profile

Compex WPJ342 » History » Version 16

Roger Pueyo Centelles, 07/24/2014 04:38 PM

1 1 Roger Pueyo Centelles
h1. Compex WPJ342
2 1 Roger Pueyo Centelles
3 1 Roger Pueyo Centelles
This document explains several ways to compile compile qMp for a "Compex WPJ342":http://www.compex.com.sg/productdetailinfo.asp?model=WPJ342&acc1Panel=2.
4 1 Roger Pueyo Centelles
5 1 Roger Pueyo Centelles
h2. Standard compilation
6 1 Roger Pueyo Centelles
7 4 Roger Pueyo Centelles
1) Get the OpenWrt Attitude Adjustment 12.09 SDK for the WPJ342 from Compex: http://www.compex.com.sg/openwrtdownload.aspx
8 1 Roger Pueyo Centelles
9 4 Roger Pueyo Centelles
2) Save the OpenWrt SDK file to your working directory and extract it (as of 23rd July 2014, the latest version is sdkowrt-140604.tar.bz2, which comes inside the file b140604.rar):
10 1 Roger Pueyo Centelles
11 1 Roger Pueyo Centelles
<pre>
12 4 Roger Pueyo Centelles
tar -xf sdkowrt-140604.tar.bz2
13 1 Roger Pueyo Centelles
</pre>
14 1 Roger Pueyo Centelles
15 1 Roger Pueyo Centelles
and enter to the newly created directory "sdkowrt-140604".
16 1 Roger Pueyo Centelles
17 1 Roger Pueyo Centelles
3) By default this SDK builds the firmware for the WPJ344 board, not the WPJ342. The Makefile file needs to be slightly changed. Open it with your text editor and find the section "standard_config:":
18 1 Roger Pueyo Centelles
19 1 Roger Pueyo Centelles
<pre>
20 1 Roger Pueyo Centelles
standard_config:
21 1 Roger Pueyo Centelles
	cp $(CONFIG_PATH)/wpj344.config $(OWRT_DIST_LOCAL_PATH)/.config
22 1 Roger Pueyo Centelles
	rm -rf $(OWRT_DIST_LOCAL_PATH)/tmp
23 1 Roger Pueyo Centelles
</pre>
24 1 Roger Pueyo Centelles
25 1 Roger Pueyo Centelles
Replace it with:
26 1 Roger Pueyo Centelles
27 1 Roger Pueyo Centelles
<pre>
28 1 Roger Pueyo Centelles
standard_config:
29 1 Roger Pueyo Centelles
	cp $(CONFIG_PATH)/wpj342.config $(OWRT_DIST_LOCAL_PATH)/.config
30 1 Roger Pueyo Centelles
	rm -rf $(OWRT_DIST_LOCAL_PATH)/tmp
31 1 Roger Pueyo Centelles
</pre>
32 1 Roger Pueyo Centelles
33 1 Roger Pueyo Centelles
4) Run @make@ to compile OpenWrt (without qMp, by now):
34 1 Roger Pueyo Centelles
35 1 Roger Pueyo Centelles
<pre>
36 1 Roger Pueyo Centelles
make
37 1 Roger Pueyo Centelles
</pre>
38 1 Roger Pueyo Centelles
39 3 Roger Pueyo Centelles
This will take a while and will download several megabytes of files to ~/dl-openwrt. If you want extra verbosity, run @make V=99@ to get details of the compilation.
40 2 Roger Pueyo Centelles
41 5 Roger Pueyo Centelles
5) The compilation will fail, since the @hotplug2@ package sources are no longer available at the destination stated in its Makefile. Edit @openwrt/package/hotplug2/Makefile@ with your favourite editor and replace this:
42 5 Roger Pueyo Centelles
43 5 Roger Pueyo Centelles
<pre>
44 5 Roger Pueyo Centelles
PKG_SOURCE_PROTO:=svn
45 5 Roger Pueyo Centelles
PKG_SOURCE_VERSION:=$(PKG_REV)
46 5 Roger Pueyo Centelles
PKG_SOURCE_SUBDIR:=hotplug2-$(PKG_VERSION)
47 5 Roger Pueyo Centelles
PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2
48 5 Roger Pueyo Centelles
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
49 5 Roger Pueyo Centelles
#PKG_SOURCE_URL:=http://isteve.bofh.cz/~isteve/hotplug2
50 5 Roger Pueyo Centelles
#PKG_MD5SUM:=ea2c01d027b4002e4e6b0ff266f51a51
51 5 Roger Pueyo Centelles
</pre>
52 5 Roger Pueyo Centelles
53 5 Roger Pueyo Centelles
with this:
54 5 Roger Pueyo Centelles
55 5 Roger Pueyo Centelles
<pre>
56 5 Roger Pueyo Centelles
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
57 5 Roger Pueyo Centelles
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/
58 5 Roger Pueyo Centelles
PKG_MD5SUM:=7bab8ba67555a8400424f3c92ec67579
59 5 Roger Pueyo Centelles
</pre>
60 5 Roger Pueyo Centelles
61 5 Roger Pueyo Centelles
See https://dev.openwrt.org/changeset/41503 for details.
62 5 Roger Pueyo Centelles
63 5 Roger Pueyo Centelles
6) Retry compilation:
64 5 Roger Pueyo Centelles
65 5 Roger Pueyo Centelles
<pre>
66 5 Roger Pueyo Centelles
make
67 6 Roger Pueyo Centelles
</pre>
68 5 Roger Pueyo Centelles
69 7 Roger Pueyo Centelles
7) Compilation should finish successfully, showing this last message and no more errors:
70 5 Roger Pueyo Centelles
71 7 Roger Pueyo Centelles
<pre>
72 7 Roger Pueyo Centelles
make[1]: Leaving directory '/B/qMp/WPJ342/WPJ342_36088/openwrt'
73 7 Roger Pueyo Centelles
</pre>
74 7 Roger Pueyo Centelles
75 7 Roger Pueyo Centelles
8) The binary file openwrt-ar71xx-generic-wpj342-squashfs-factory.img in the @openwrt/bin/ar71xx/@ directory:
76 7 Roger Pueyo Centelles
77 7 Roger Pueyo Centelles
<pre>
78 7 Roger Pueyo Centelles
$ ls openwrt/bin/ar71xx/openwrt-ar71xx-generic-wpj342-squashfs-factory.img 
79 7 Roger Pueyo Centelles
openwrt/bin/ar71xx/openwrt-ar71xx-generic-wpj342-squashfs-factory.img
80 7 Roger Pueyo Centelles
</pre>
81 7 Roger Pueyo Centelles
82 7 Roger Pueyo Centelles
Now OpenWrt is compiled. qMp packages still have to be added to the compilation.
83 7 Roger Pueyo Centelles
84 7 Roger Pueyo Centelles
9) Enter the @openwrt@ directory and edit the file @feeds.conf.default@ and add the following line:
85 7 Roger Pueyo Centelles
86 7 Roger Pueyo Centelles
<pre>
87 7 Roger Pueyo Centelles
src-git qmp git://qmp.cat/qmp.git
88 14 Roger Pueyo Centelles
src-git routing git://github.com/openwrt-routing/packages.git 
89 14 Roger Pueyo Centelles
</pre>
90 14 Roger Pueyo Centelles
91 14 Roger Pueyo Centelles
If you intend to compile qMp 3.0.1 Clearance, add instead these two lines:
92 14 Roger Pueyo Centelles
93 14 Roger Pueyo Centelles
<pre>
94 14 Roger Pueyo Centelles
src-git qmp git://qmp.cat/qmp.git
95 13 Roger Pueyo Centelles
src-svn routing https://github.com/openwrt-routing/packages@670
96 7 Roger Pueyo Centelles
</pre>
97 7 Roger Pueyo Centelles
98 7 Roger Pueyo Centelles
10) Update and install the feeds:
99 7 Roger Pueyo Centelles
<pre>
100 7 Roger Pueyo Centelles
./scripts/feeds update -a
101 7 Roger Pueyo Centelles
./scripts/feeds install -a
102 7 Roger Pueyo Centelles
</pre>
103 7 Roger Pueyo Centelles
104 7 Roger Pueyo Centelles
11) Using @menuconfig@ select the @qmp-small-node@ package:
105 7 Roger Pueyo Centelles
106 7 Roger Pueyo Centelles
<pre>
107 7 Roger Pueyo Centelles
make menuconfig
108 7 Roger Pueyo Centelles
</pre>
109 7 Roger Pueyo Centelles
110 7 Roger Pueyo Centelles
Browse to @qMp@ and select @qmp-small-node@:
111 7 Roger Pueyo Centelles
112 7 Roger Pueyo Centelles
<pre>
113 7 Roger Pueyo Centelles
<*> qmp-small-node................... Required addons for small qMp mesh node
114 7 Roger Pueyo Centelles
</pre>
115 7 Roger Pueyo Centelles
116 7 Roger Pueyo Centelles
12) Exit saving the configuration.
117 7 Roger Pueyo Centelles
118 7 Roger Pueyo Centelles
13) Compile again:
119 7 Roger Pueyo Centelles
120 7 Roger Pueyo Centelles
<pre>
121 7 Roger Pueyo Centelles
make
122 7 Roger Pueyo Centelles
</pre>
123 7 Roger Pueyo Centelles
124 9 Roger Pueyo Centelles
14) After the compilation process, the qMp image for the Compex WPJ342 is located at *openwrt/bin/ar71xx/openwrt-ar71xx-generic-wpj342-squashfs-factory.img*. You can flash it using your preferred method (web interface, TFPT, etc.). If you use TFTP, it seems that the board does not reboot automatically after writing the image to the NAND flash memory, so this must be done manually.
125 9 Roger Pueyo Centelles
126 9 Roger Pueyo Centelles
15) The image comes without a password for the @root@ user. Log in via @telnet@ or using the web interface and set it.
127 9 Roger Pueyo Centelles
128 10 Roger Pueyo Centelles
p=. !{width:500px}Compex_WPJ342-qMp_3.0.1_Clearance.jpg!:http://dev.qmp.cat/attachments/download/157/Compex_WPJ342-qMp_3.0.1_Clearance.jpg
129 10 Roger Pueyo Centelles
qMp 3.0.1 Clearance running on a Compex WPJ342The NC software architecture diagram. Click on the image to see it full-size.
130 9 Roger Pueyo Centelles
131 2 Roger Pueyo Centelles
h2. Compiling with the latest OpenWrt Attitude Adjustment 12.09 revision
132 2 Roger Pueyo Centelles
133 2 Roger Pueyo Centelles
The OpenWrt SDK provided by Compex is based on Attitude Adjustment 12.09 revision 36088, which does not contain several bugfixes and repository changes included in the following ones. It can be a good idea to build OpenWrt from the last revision, still version Attitude Adjustment 12.09.
134 2 Roger Pueyo Centelles
135 2 Roger Pueyo Centelles
1) Follow steps 1 to 3 in the [[Compex_WPJ342#Standard-compilation|Standard Compilation]] section.
136 2 Roger Pueyo Centelles
137 2 Roger Pueyo Centelles
2) Check the latest revision number for OpenWrt. Go to https://dev.openwrt.org/changeset and get the last change/revision number (as of 23rd July 2014 it is *41811*).
138 2 Roger Pueyo Centelles
139 2 Roger Pueyo Centelles
3) Edit the Makefile with your favourite text editor and replace this:
140 2 Roger Pueyo Centelles
141 2 Roger Pueyo Centelles
<pre>
142 1 Roger Pueyo Centelles
OWRT_DIST_SVN_REV = 36088
143 3 Roger Pueyo Centelles
144 3 Roger Pueyo Centelles
...
145 3 Roger Pueyo Centelles
146 2 Roger Pueyo Centelles
OWRT_PKGS_SVN_REV = 36089
147 2 Roger Pueyo Centelles
</pre>
148 2 Roger Pueyo Centelles
149 1 Roger Pueyo Centelles
with the latest revision:
150 1 Roger Pueyo Centelles
151 2 Roger Pueyo Centelles
<pre>
152 2 Roger Pueyo Centelles
OWRT_DIST_SVN_REV = 41811
153 3 Roger Pueyo Centelles
154 3 Roger Pueyo Centelles
...
155 3 Roger Pueyo Centelles
156 2 Roger Pueyo Centelles
OWRT_PKGS_SVN_REV = 41811
157 2 Roger Pueyo Centelles
</pre>
158 2 Roger Pueyo Centelles
159 2 Roger Pueyo Centelles
4) Check the latest revision number for LuCi. Go to http://svn.luci.subsignal.org and get the last revision number (as of 23rd July 2014 it is *10459*).
160 2 Roger Pueyo Centelles
161 2 Roger Pueyo Centelles
5) Edit the Makefile with your favourite text editor and replace this:
162 2 Roger Pueyo Centelles
163 2 Roger Pueyo Centelles
<pre>
164 2 Roger Pueyo Centelles
FEEDS_LUCI_SVN_REV = 9656
165 2 Roger Pueyo Centelles
</pre>
166 2 Roger Pueyo Centelles
167 2 Roger Pueyo Centelles
with the latest revision:
168 1 Roger Pueyo Centelles
169 1 Roger Pueyo Centelles
<pre>
170 1 Roger Pueyo Centelles
FEEDS_LUCI_SVN_REV = 10459
171 4 Roger Pueyo Centelles
</pre>
172 7 Roger Pueyo Centelles
173 7 Roger Pueyo Centelles
6) Edit the file @config/wpj342.config@ with your favourite editor. Replace this:
174 7 Roger Pueyo Centelles
175 7 Roger Pueyo Centelles
<pre>
176 7 Roger Pueyo Centelles
# CONFIG_PACKAGE_libip6tc is not set
177 7 Roger Pueyo Centelles
</pre>
178 7 Roger Pueyo Centelles
179 12 Roger Pueyo Centelles
with this:
180 12 Roger Pueyo Centelles
181 7 Roger Pueyo Centelles
<pre>
182 7 Roger Pueyo Centelles
CONFIG_PACKAGE_libip6tc=y
183 7 Roger Pueyo Centelles
</pre>
184 7 Roger Pueyo Centelles
185 16 Roger Pueyo Centelles
Also add the line @CONFIG_PACKAGE_libjson-c=y@, for instance just before this:
186 16 Roger Pueyo Centelles
187 16 Roger Pueyo Centelles
<pre>
188 16 Roger Pueyo Centelles
CONFIG_PACKAGE_libjson=y
189 16 Roger Pueyo Centelles
</pre>
190 16 Roger Pueyo Centelles
191 16 Roger Pueyo Centelles
like here:
192 16 Roger Pueyo Centelles
193 16 Roger Pueyo Centelles
<pre>
194 16 Roger Pueyo Centelles
CONFIG_PACKAGE_libjson-c=y
195 16 Roger Pueyo Centelles
CONFIG_PACKAGE_libjson=y
196 16 Roger Pueyo Centelles
</pre>
197 16 Roger Pueyo Centelles
198 16 Roger Pueyo Centelles
Otherwise compilation will fail.
199 16 Roger Pueyo Centelles
200 16 Roger Pueyo Centelles
201 12 Roger Pueyo Centelles
7) Run @make@ to start compilation:
202 7 Roger Pueyo Centelles
203 12 Roger Pueyo Centelles
<pre>
204 12 Roger Pueyo Centelles
make
205 12 Roger Pueyo Centelles
</pre>
206 12 Roger Pueyo Centelles
207 12 Roger Pueyo Centelles
or @make V=99@ for extra verbosity.
208 4 Roger Pueyo Centelles
209 15 Roger Pueyo Centelles
8) Compilation should finish successfully. The binary file openwrt-ar71xx-generic-wpj342-squashfs-factory.img in the @openwrt/bin/ar71xx/@ directory:
210 15 Roger Pueyo Centelles
211 15 Roger Pueyo Centelles
<pre>
212 15 Roger Pueyo Centelles
$ ls openwrt/bin/ar71xx/openwrt-ar71xx-generic-wpj342-squashfs-factory.img 
213 15 Roger Pueyo Centelles
openwrt/bin/ar71xx/openwrt-ar71xx-generic-wpj342-squashfs-factory.img
214 15 Roger Pueyo Centelles
</pre>
215 15 Roger Pueyo Centelles
216 15 Roger Pueyo Centelles
Now OpenWrt is compiled. qMp packages still have to be added to the compilation.
217 15 Roger Pueyo Centelles
218 15 Roger Pueyo Centelles
9) Enter the @openwrt@ directory and edit the file @feeds.conf.default@.
219 15 Roger Pueyo Centelles
220 15 Roger Pueyo Centelles
Remove @;for-12.09.x" from the line @src-git routing git://github.com/openwrt-routing/packages.git;for-12.09.x@ and add the qMp packages feed. From this:
221 15 Roger Pueyo Centelles
222 15 Roger Pueyo Centelles
<pre>
223 15 Roger Pueyo Centelles
src-git routing git://github.com/openwrt-routing/packages.git;for-12.09.x
224 15 Roger Pueyo Centelles
</pre>
225 15 Roger Pueyo Centelles
226 15 Roger Pueyo Centelles
to this:
227 15 Roger Pueyo Centelles
228 15 Roger Pueyo Centelles
<pre>
229 15 Roger Pueyo Centelles
src-git routing git://github.com/openwrt-routing/packages.git
230 15 Roger Pueyo Centelles
src-git qmp git://qmp.cat/qmp.git
231 15 Roger Pueyo Centelles
</pre>
232 16 Roger Pueyo Centelles
233 16 Roger Pueyo Centelles
234 16 Roger Pueyo Centelles
10) Update and install the feeds:
235 16 Roger Pueyo Centelles
<pre>
236 16 Roger Pueyo Centelles
./scripts/feeds update -a
237 16 Roger Pueyo Centelles
./scripts/feeds install -a
238 16 Roger Pueyo Centelles
</pre>
239 16 Roger Pueyo Centelles
240 16 Roger Pueyo Centelles
11) Using @menuconfig@ select the @qmp-small-node@ package:
241 16 Roger Pueyo Centelles
242 16 Roger Pueyo Centelles
<pre>
243 16 Roger Pueyo Centelles
make menuconfig
244 16 Roger Pueyo Centelles
</pre>
245 16 Roger Pueyo Centelles
246 16 Roger Pueyo Centelles
Browse to @qMp@ and select @qmp-small-node@:
247 16 Roger Pueyo Centelles
248 16 Roger Pueyo Centelles
<pre>
249 16 Roger Pueyo Centelles
<*> qmp-small-node................... Required addons for small qMp mesh node
250 16 Roger Pueyo Centelles
</pre>
251 16 Roger Pueyo Centelles
252 16 Roger Pueyo Centelles
12) Exit saving the configuration.
253 16 Roger Pueyo Centelles
254 16 Roger Pueyo Centelles
13) Compile again:
255 16 Roger Pueyo Centelles
256 16 Roger Pueyo Centelles
<pre>
257 16 Roger Pueyo Centelles
make
258 16 Roger Pueyo Centelles
</pre>
259 16 Roger Pueyo Centelles
260 16 Roger Pueyo Centelles
14) After the compilation process, the qMp image for the Compex WPJ342 is located at *openwrt/bin/ar71xx/openwrt-ar71xx-generic-wpj342-squashfs-factory.img*. You can flash it using your preferred method (web interface, TFPT, etc.). If you use TFTP, it seems that the board does not reboot automatically after writing the image to the NAND flash memory, so this must be done manually.
261 16 Roger Pueyo Centelles
262 16 Roger Pueyo Centelles
15) The image comes without a password for the @root@ user. Log in via @telnet@ or using the web interface and set it.
263 15 Roger Pueyo Centelles
264 4 Roger Pueyo Centelles
h2. Compiling from OpenWrt trunk
265 4 Roger Pueyo Centelles
266 4 Roger Pueyo Centelles
1) Get the OpenWrt trunk SDK for the WPJ342 from Compex: http://www.compex.com.sg/openwrtdownload.aspx
267 4 Roger Pueyo Centelles
268 4 Roger Pueyo Centelles
2) Save the OpenWrt SDK file to your working directory and extract it (as of 23rd July 2014, the latest version is sdk-r40719-b140527-ath10k.tar.bz2):
269 4 Roger Pueyo Centelles
270 4 Roger Pueyo Centelles
<pre>
271 4 Roger Pueyo Centelles
tar -xf sdk-r40719-b140527-ath10k.tar.bz2
272 4 Roger Pueyo Centelles
</pre>
273 4 Roger Pueyo Centelles
274 4 Roger Pueyo Centelles
3) Enter the newly created directory @sdk-r40719-b140527-ath10k@.
275 4 Roger Pueyo Centelles
276 4 Roger Pueyo Centelles
4) If you want to compile with the latest trunk revision, check the latest revision number for OpenWrt. Go to https://dev.openwrt.org/changeset and get the last change/revision number (as of 23rd July 2014 it is *41811*). Edit the Makefile and replace this:
277 4 Roger Pueyo Centelles
278 4 Roger Pueyo Centelles
<pre>
279 4 Roger Pueyo Centelles
OWRT_DIST_SVN_REV = 40719
280 4 Roger Pueyo Centelles
</pre>
281 4 Roger Pueyo Centelles
282 4 Roger Pueyo Centelles
with:
283 4 Roger Pueyo Centelles
284 4 Roger Pueyo Centelles
<pre>
285 4 Roger Pueyo Centelles
OWRT_DIST_SVN_REV = 41811
286 4 Roger Pueyo Centelles
</pre>
287 4 Roger Pueyo Centelles
288 4 Roger Pueyo Centelles
5) Run @make@, or @make V=99@ for extra compilation verbosity:
289 4 Roger Pueyo Centelles
290 4 Roger Pueyo Centelles
<pre>
291 4 Roger Pueyo Centelles
make
292 2 Roger Pueyo Centelles
</pre>