20151214_jeffrey - silenceuncrio/diary GitHub Wiki
- 0950 ๅนซๅฟ IoS ๅฐ็ตๆธฌ้ BLE Beacon ่ท้ข
- 1015 review diary and write index
- 1040 write engineering notebook
- 1100 mail from Jammy - Re: [Share]issues for openHAB gateway solution.
- 1300 survey ๅฆไฝไพ้ฒ่ก ๅฐ openWrt ็ uhttpd ็ experiments
-
1335 ๅจ JS9331 ๅฏซ CGI
- include cgilib via menuconfig and make
- 1515 ๅฉ็จ web ๅทๅๆฐ็ๅบไปถ
- 1530 ๅฏซ CGI - pritf
- 1610 ๅฏซ CGI - #include <cgi.h>
- 1740 ๅฏซ CGI - issue: ไธ่ฆๅผๅซ cgiFree()
- 1750 ่ท Jammy ่ไธไธ่งฃ้ๆฝๅจๅฟ็ต
ไธๆฉไพๅ
ๅนซๅฟ IoS ๅฐ็ตๆธฌ้ BLE Beacon ่ท้ข
็ฎๅๅฎๆน็ๅฐๆฟๅญๆ้ ๅชๅฐ 20 ๅ
ฌๅฐบๅทฆๅณ
review diary and write index
write engineering notebook
Re: [Share]issues for openHAB gateway solution.
Jammy ๆผ 2015/12/13 ไธๅ 03:07 ๅฏซ้:
Dear Jeffrey,
ๆๆณๅ้ฅ็ๆฏ๏ผๅจๆ้ฒๆ้ ปๅ๏ผPioneerๆๅซๆsurveyไธไธsmart gatewayใ
ๆไปฅๆ็ถๆๆๆพๅไพ็ฏ็paperไพ็(IEEE explorerไธ็)๏ผ
ๅฐ่ฑกไธญ้ไบๅๅฎ้ฝๆ็ๅฐๆไบบ็จ(smart gateway็้่จๆนๅผไนๆฏๅๆนไบ่....)
ๆ็ฆฎๆไธๅฏไปฅ่ฉฆ่ๆ้ไบpaperๆพๅบไพ(ๆ่ฉฒๅจๅ ฌๅธ)ๆไธๅปบ่ญฐๅจ้ๅๆๅๅ้ๆจฃ็survey๏ผ
ๆ่ช็บ้ๆๅๅทฒ็ถๆไบ๏ผ
ๆดๅ็ณป็ตฑๆถๆงๅทฒ็ถๅฎ็พฉ้ๅ๏ผ
่ไธๅฐฑ็ฎๆๅ ๅ่ฝ..้ไพไธๆฌก๏ผๆไนไธ่ช็บๆฅญ็ๆ่ฉฒๅ้็จฎๅญธๆ กๆๅญๅจ็็ ็ฉถ๏ผ
ๅ ถๅฏฆ้ๅฅๆฏ้ๅฟไน่ซ...ไฝ่ณๅฐๆๅ้็จฎ่ฆๆจก็ๅ ฌๅธๆฏ้ๆจฃใๆณไธๅๅ่ญฐ็ๆฏ่ผๆฏไธๅๅพๅคง็็ ็ฉถ้ก็ฎ๏ผ
(ๆดไธๆไนๅพๅ่ญฐๆน็ๅพ็ๅ่ฒ ็ตๆ)ๆ่ช็บๆๅ็พๅจๆ่ฉฒๅ็
ๆญไธๅๆ็ฐกๅฎ็RESTful benchmarkๆฉๅถ๏ผๅฎ็พฉๆๅ็็ณป็ตฑไธๆฌกๅฏไปฅๅญๅจๅคๅฐ่จๆฏๆต้(ๅฎ็พฉ็ฉบ้ไธญ็sensor/reactor or control box)ใ
ๅฆๆuhttpd็ๆธฌ่ฉฆไธ้่ฆ้กๅค็effort๏ผNginx้่ฆ๏ผ้ฃๆซๆๅฟฝ็ฅNginxใ
ๅฆๆhttp RESTfulๅฎๅ จไธๆทไฝฟ็จ๏ผไนๅฐฑๆฏ่ชชcontrol centerๅฏๆฅๅsensor/reactorๆธ้้ ๅฐๆผsmart room/smart officeไฝฟ็จ๏ผ้ๅๆๅๆๅๆๅฏไปฅ่ชๅฎๆๅ็่จญ่จๆฏ้่ๆๅๆๆฉ็่ฆๆ ผๅฎ็พฉ)๏ผๆ่ฉฒๅจ้ไบ็ ็ฉถไธญ็ๅ่ญฐๅฐๆพๅ้ฉ็๏ผๆๆฏ่ช่กๅฎ็พฉ(http+REST/http+self-defined/???+???/...etc)ใ
ๆๅ่ญฐๆฏ่ผ้ๅไบๆพๅจๅฟ่ฃก๏ผๅณไฝฟ็ฎๅไธๆๆ๏ผๆไธๅคฉไปๅไนๆๅๅบๅ่ฒ ๏ผๅฐๆไธ่ฝไธ็ฅ้ๆ้ๅๆฑ่ฅฟใ
Best Regards,
Jammy
ๅจ Sat, 12 Dec 2015 11:27:32 +0800, jeffrey [email protected]ๅฏซ้:
Jammy ้ๅฐไฟกๅชๅฏ็ตฆๆ่ๅทฒ
ๅๅๆ็ๅฐ
้ฃๆชไปๆฉไธไพๅๆๅฅ่ซๆ็ไบ
้ๆๆ้บผๆธฌๅฃๅๆธฌ่ฉฆ็ไบๆ
ๆ็ถๆ้ๆไธๆธ ๆฅๆ้บผๅไบ
ๅ survey ไธไธๅฆไฝไพ้ฒ่ก ๅฐ openWrt ็ uhttpd ็ experiments
่ ปๅฟซๅฐฑๆไบ็ฎๆจ, ๅ ็บๅคง้จๅ็ถฒๅ้ฝๆจ่ฆ้ไธๅฅ Apache JMeterโข
ไธ่ผไบ JMeter ไนๅพ็ผ็พ่ชๅทฑๅพๅคๆๅฟ้ฝๆฏๅค้ค็
ๅทฒ็ถๅฏไปฅ็ดๆฅๅจ JS9331 ๅฏซ CGI ไพๅๆธฌ่ฉฆไบ
็ดๆฅไพๅฏซ event.cgi ๅฅฝไบ
ๆ้่ฆ็ขบ่ช JS9331 ไธๆ cgi ๅ json ้ๅ
ฉๅ library
Coji ไธๅจไบ...
่ชๅทฑไพๅง
ไธๆญฅไธๆญฅ
ๅจ่ชๅทฑ้ป่ ฆไธๆฐๅขๅ ฉๅ่ณๆๅคพ
- C:\Users\JEFFREY\Desktop\si_projects\js9331_event_cgi
- D:\ubuntu_share\js9331_event_cgi
ๆฐๅข Source Insight project
- project name: js9331_event_cgi
- project data files: C:\Users\JEFFREY\Desktop\si_projects\js9331_event_cgi
- project source directory: D:\ubuntu_share\js9331_event_cgi
ๅจๆ็ JS9331 ้็ผ็ฐๅข Ubuntu ไธญ็ openwrt ็ฎ้ไธ
jeffrey@jeffrey-virtual-machine:~/openwrt$ make menuconfig
Library ้ธๅฎๆ Enter ้ฒๅ
ฅ
ๅพไธๆๆ็ๅฐ cgilib
ไธ้ๅฏฆๅจไธ็ฅ้้ธ built-in ๆ module
.config - OpenWrt Configuration
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Libraries โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Arrow keys navigate the menu. <Enter> selects submenus --->. โ
โ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, โ
โ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> โ
โ for Search. Legend: [*] built-in [ ] excluded <M> module < > โ
โ โโโโโ^(-)โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ... โ โ
โ โ < > ccid........................... Generic USB CCID smart card rโ โ
โ โ < > cgilib................................................ Simpleโ โ
โ โ < > check....................................... Unit testing fraโ โ
โ โ ... โ โ
โ โโโโโv(+)โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ <Select> < Exit > < Help > < Save > < Load > โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ไธ็ดๆๅฐๆไธ้ข้ฝๆฒ็ๅฐ jsonc ็ library
.config - OpenWrt Configuration
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Libraries โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Arrow keys navigate the menu. <Enter> selects submenus --->. โ
โ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, โ
โ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> โ
โ for Search. Legend: [*] built-in [ ] excluded <M> module < > โ
โ โโโโโ^(-)โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ... โ โ
โ โ < > libjson...................... javascript object notation (comโ โ
โ โ -*- libjson-c..................................... javascript objโ โ
โ โ < > libldns............................ A library to simplify DNSโ โ
โ โ ... โ โ
โ โโโโโv(+)โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ <Select> < Exit > < Help > < Save > < Load > โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅๆฏๆ็ๅฐ libjson-c ๅ้ขๆไบ *
ๆ่ฉฒๆฏ built-in ็ๆๆ
็ดขๆง้ฃ cgilib ไน้ธ built-in, ้่ฆๆ Y
็ดๆฅๆฒ make
jeffrey@jeffrey-virtual-machine:~/openwrt$ make menuconfig
configuration written to .config
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
jeffrey@jeffrey-virtual-machine:~/openwrt$ make
make[1] world
make[2] target/compile
make[3] -C target/linux compile
make[2] package/cleanup
make[2] package/compile
make[3] -C package/libs/toolchain compile
make[3] -C package/libs/libnl-tiny compile
make[3] -C package/libs/libjson-c compile
make[3] -C package/utils/lua compile
make[3] -C package/libs/libubox compile
make[3] -C package/system/ubus compile
make[3] -C package/system/uci compile
make[3] -C package/network/config/netifd compile
make[3] -C package/system/opkg host-compile
make[3] -C package/system/ubox compile
make[3] -C package/libs/lzo compile
make[3] -C package/libs/zlib compile
make[3] -C package/libs/ncurses compile
make[3] -C package/libs/ncurses compile
make[3] -C package/utils/util-linux compile
make[3] -C package/utils/ubi-utils compile
make[3] -C package/system/procd compile
make[3] -C package/utils/jsonfilter compile
make[3] -C package/base-files compile
make[3] -C package/system/fstools compile
make[3] -C package/boot/uboot-envtools compile
make[3] -C package/libs/gettext compile
make[3] -C package/libs/libiconv compile
make[3] -C package/libs/libtool compile
make[3] -C package/libs/cyassl compile
make[3] -C package/libs/ocf-crypto-headers compile
make[3] -C package/libs/openssl compile
make[3] -C package/libs/polarssl compile
make[3] -C package/libs/ustream-ssl compile
make[3] -C package/network/services/uhttpd compile
make[3] -C package/network/utils/iwinfo compile
make[3] -C package/utils/lua host-compile
make[3] -C package/utils/px5g compile
make[3] -C package/firmware/linux-firmware compile
make[3] -C package/kernel/linux compile
make[3] -C package/network/utils/iptables compile
make[3] -C package/network/config/firewall compile
make[3] -C feeds/luci/contrib/package/luci compile
make[3] -C feeds/luci/contrib/package/freifunk-common compile
make[3] -C package/libs/libreadline compile
make[3] -C package/network/services/samba36 compile
make[3] -C feeds/luci/contrib/package/luci-addons compile
make[3] -C feeds/oldpackages/libs/cgilib compile
make[3] -C feeds/packages/libs/libgpg-error compile
make[3] -C feeds/packages/libs/libgcrypt compile
make[3] -C feeds/oldpackages/utils/ntfs-3g compile
make[3] -C feeds/oldpackages/net/ser2net compile
make[3] -C feeds/packages/libs/alsa-lib compile
make[3] -C feeds/packages/utils/alsa-utils compile
make[3] -C feeds/packages/utils/attr compile
make[3] -C feeds/packages/utils/bzip2 compile
make[3] -C package/libs/libpcap compile
make[3] -C package/libs/uclient compile
make[3] -C feeds/packages/net/cshark compile
make[3] -C feeds/packages/libs/faad2 compile
make[3] -C feeds/packages/libs/speex compile
make[3] -C feeds/packages/multimedia/ffmpeg compile
make[3] -C feeds/packages/libs/flac compile
make[3] -C feeds/packages/libs/libffi host-compile
make[3] -C package/libs/gettext host-compile
make[3] -C package/libs/libiconv host-compile
make[3] -C feeds/packages/libs/glib2 host-compile
make[3] -C feeds/packages/libs/libffi compile
make[3] -C feeds/packages/libs/glib2 compile
make[3] -C feeds/packages/libs/libaudiofile compile
make[3] -C feeds/packages/libs/libid3tag compile
make[3] -C feeds/packages/libs/libmad compile
make[3] -C feeds/packages/libs/libmms compile
make[3] -C feeds/packages/libs/libmpdclient compile
make[3] -C feeds/packages/libs/libogg compile
make[3] -C feeds/packages/libs/libsndfile compile
make[3] -C feeds/packages/libs/libvorbis compile
make[3] -C feeds/packages/libs/libvorbisidec compile
make[3] -C feeds/packages/utils/minicom compile
make[3] -C feeds/packages/sound/mpc compile
make[3] -C package/network/utils/curl compile
make[3] -C feeds/packages/sound/mpd compile
make[3] -C feeds/packages/net/vsftpd compile
make[3] -C package/kernel/gpio-button-hotplug compile
make[3] -C package/network/services/hostapd compile
make[3] -C package/network/utils/iw compile
make[3] -C package/kernel/mac80211 compile
make[3] -C package/kernel/w1-gpio-custom compile
make[3] -C package/libs/uclibc++ compile
make[3] -C package/network/config/swconfig compile
make[3] -C package/network/ipv6/odhcp6c compile
make[3] -C package/libs/gmp compile
make[3] -C package/libs/nettle compile
make[3] -C package/network/services/dnsmasq compile
make[3] -C package/network/services/dropbear compile
make[3] -C package/network/services/odhcpd compile
make[3] -C package/network/utils/linux-atm compile
make[3] -C package/network/utils/resolveip compile
make[3] -C package/network/services/ppp compile
make[3] -C package/network/utils/iperf compile
make[3] -C package/system/mtd compile
make[3] -C package/system/opkg compile
make[3] -C package/utils/busybox compile
make[3] -C package/utils/fuse compile
make[2] package/install
make[3] package/preconfig
make[2] target/install
make[3] -C target/linux install
make[3] -C target/toolchain install
make[2] package/index
jeffrey@jeffrey-virtual-machine:~/openwrt$
make ้ไบ
็ถๅพๅง
JS9331 ้็ผๆฟ OpenWrt ๅ
ฅ้ๆ็จ
...
4.3.6. ็ผ่ฏ OpenWrt ๆบ็
...
็ผ่ฏๅฎๆๅ็ OpenWrt ๅบไปถๅฏไปฅๅจโopenwrt /bin/ar71xxโไธๆพๅฐใ
jeffrey@jeffrey-virtual-machine:~/openwrt/bin/ar71xx$ ls
md5sums
openwrt-ar71xx-generic-root.squashfs
openwrt-ar71xx-generic-root.squashfs-64k
openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-uImage-gzip.bin
openwrt-ar71xx-generic-uImage-lzma.bin
openwrt-ar71xx-generic-vmlinux.bin
openwrt-ar71xx-generic-vmlinux.elf
openwrt-ar71xx-generic-vmlinux.gz
openwrt-ar71xx-generic-vmlinux.lzma
openwrt-ar71xx-generic-vmlinux-lzma.elf
OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2
packages
jeffrey@jeffrey-virtual-machine:~/openwrt/bin/ar71xx$
ๆธไธ่ชช openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin ๅฐฑๆฏ OpenWrt ๅบไปถ
้ฃๆ่ฆๆ้บผๆ้ๅๅบไปถไธๅฐ JS9331 ไธๅข?
JS9331 ้็ผๆฟไฝฟ็จๆๅ
...
3. ๅผๅๆฟๅบไปถ้ๅ็งๅฝ่ฏดๆ
้่ฃกๆ่ชชๆ
ๆ็ๆๅฐฑ็จๆ็ฐกๅฎ็
3.1.1 openwrt ็ฝ็ป็งๅ
ๅจ่ชๅทฑ้ป่
ฆๆฐๅข่ณๆๅคพ
D:\ubuntu_share\js9331_firmware
็ถๅพๅฐ openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin
่ค่ฃฝๅฐ่ฉฒ่ณๆๅคพๅป
jeffrey@jeffrey-virtual-machine:~/openwrt/bin/ar71xx$ cp openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin /mnt/hgfs/share/js9331_firmware/
ๅฐฑ็ ง่ๆๅไธๅฏซ็ๅนนไบ
้ๅฅฝ web ไป้ขๆ้ๆฐๅซๆ่ผธๅ ฅๅธณ่ๅฏ็ขผ
ๅ้กงๆๅๅๅไบ็้บผไบๆ
้ฒ menuconfig ๆ Y
้ธไบ cgilib
<*> cgilib................................................ Simple
Exit and Save ไนๅพๆฒไบ make
jeffrey@jeffrey-virtual-machine:~/openwrt$ make
make[1] world
make[2] target/compile
make[3] -C target/linux compile
make[2] package/cleanup
make[2] package/compile
make[3] -C package/libs/toolchain compile
make[3] -C package/libs/libnl-tiny compile
make[3] -C package/libs/libjson-c compile
...
make[3] -C feeds/oldpackages/libs/cgilib compile
...
make[3] -C package/utils/fuse compile
make[2] package/install
make[3] package/preconfig
make[2] target/install
make[3] -C target/linux install
make[3] -C target/toolchain install
make[2] package/index
jeffrey@jeffrey-virtual-machine:~/openwrt$
็ถๅพๆๅพๅฐไบ openWrt ๅบไปถไธๅ openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin
็ถๅพ็ดๆฅๅฉ็จ็พๆ็ web interface ๅทๅๆฐ็ๅบไปถ
็ญไบๅ ฉไธๅ้้ๆฐ็ปๅ ฅไบ web
ๆ้ฉ็ก้ช
ไพๅฏซ CGI ๅง
- main.c
#include <stdio.h>
int
main(void) {
printf("event.cgi: hello world\n");
return 0;
}
jeffrey@jeffrey-virtual-machine:/mnt/hgfs/share/js9331_event_cgi$ mips-openwrt-linux-gcc main.c -o event.cgi
ไธๅณ event.cgi
ๅฐ /tmp
ๅป
root@JoySince:/# cd /tmp/
root@JoySince:/tmp# ls
TZ hosts luci-sessions state
dhcp.leases lock overlay sysinfo
dnsmasq.d log resolv.conf
etc luci-indexcache resolv.conf.auto
event.cgi luci-modulecache run
root@JoySince:/tmp# chmod 755 event.cgi
root@JoySince:/tmp# ls
TZ hosts luci-sessions state
dhcp.leases lock overlay sysinfo
dnsmasq.d log resolv.conf
etc luci-indexcache resolv.conf.auto
event.cgi luci-modulecache run
root@JoySince:/tmp#
่จๅพไฟฎๆนๆฌ้
root@JoySince:/tmp# ./event.cgi
event.cgi: hello world
ๅฅฝ
ๆๅ็ไธๅฐๆญฅ
่ค่ฃฝๅฐ CGI ็ฎ้ไธ
root@JoySince:/tmp# cp event.cgi /www/cgi-bin/
root@JoySince:/tmp# ls /www/cgi-bin/
event.cgi luci
็ถฒๅๅๆฒ http://192.168.1.251/cgi-bin/event.cgi
ๅพๅฐ
Bad Gateway
The process did not produce any response
็ฎไบ
้ๅงๅฅ cgilib ไบ
- main.c
#include <cgi.h>
s_cgi *cgi;
int
main(void) {
cgi = cgiInit();
cgiSetType("application/json");
cgiHeader();
printf("{\"hello\": \"world\"}");
cgiFree (cgi);
return 0;
}
ๅบๅ้กไบ
jeffrey@jeffrey-virtual-machine:/mnt/hgfs/share/js9331_event_cgi$ mips-openwrt-linux-gcc main.c -o event.cgi
main.c:2:17: fatal error: cgi.h: No such file or directory
#include <cgi.h>
^
compilation terminated.
ๅพ 579 ็ compile ๅนณๅฐๆพไธไบ้ปๅญ
mips-openwrt-linux-uclibc-gcc -L/home/jeffrey/UGW-5.4/proscend/apps/webcgi/../icos -s -L./ -L/home/jeffrey/UGW-5.4/staging_dir/target-mips_r2_uClibc-0.9.30.1_vrx288_gw_he_vdsl_lte/usr/lib -Wl,-rpath,/tmp -licos -lcgi -ljson-c -o z_lan_vif.cgi z_lan_vif.o
mips-openwrt-linux-uclibc-strip z_lan_vif.cgi
cp z_lan_vif.cgi www/cgi-bin/
Compile wan_more_conn.c ...
mips-openwrt-linux-uclibc-gcc -std=gnu99 -Wall -Wstrict-prototypes -D__ICOS__ -D_GNU_SOURCE -D__DEBUG__ -O0 -DMCSVTAG="\"\"" -D_PDM_SHDSL -D_PDM_HTB -D_MODEL_ID=5790 -D_BRAND_ID=50 -D_MODEL_NAME="P-793H v3" -D_DATECODE=20151023 -I/home/jeffrey/UGW-5.4/proscend/apps/webcgi/../icos/include -I/home/jeffrey/UGW-5.4/proscend/apps/webcgi/include -I/home/jeffrey/UGW-5.4/proscend/apps/webcgi/cgilib-0.7 -I/home/jeffrey/UGW-5.4/staging_dir/target-mips_r2_uClibc-0.9.30.1_vrx288_gw_he_vdsl_lte/usr/include -c -o wan_more_conn.o wan_more_conn.c
ๅจ JS9331 ็้็ผๅนณๅฐๅฐ็ผ็พไบไธๅ library
jeffrey@jeffrey-virtual-machine:/mnt/hgfs/share/js9331_event_cgi$ ls /home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/
glib-2.0 libgmodule-2.0.so libntfs-3g.so.85
iptables libgmodule-2.0.so.0 libntfs-3g.so.85.0.0
libasound.so libgmodule-2.0.so.0.4101.0 libogg.a
libasound.so.2 libgmp.a libogg.so
libasound.so.2.0.0 libgmp.so libogg.so.0
libatm.a libgmp.so.10 libogg.so.0.8.2
libatm.so libgmp.so.10.2.0 libpanel.a
libatm.so.1 libgobject-2.0.a libpanel.so
libatm.so.1.0.0 libgobject-2.0.so libpanel.so.5
libattr.a libgobject-2.0.so.0 libpanel.so.5.9
libattr.so libgobject-2.0.so.0.4101.0 libpcap.a
libattr.so.1 libgpg-error.a libpcap.so
libattr.so.1.1.2448 libgpg-error.so libpcap.so.1.3
libaudiofile.a libgpg-error.so.0 libpcap.so.1.3.0
libaudiofile.so libgpg-error.so.0.10.0 libpolarssl.so
libaudiofile.so.1 libgthread-2.0.a libpolarssl.so.1.3.9
libaudiofile.so.1.0.0 libgthread-2.0.so libpolarssl.so.7
libavcodec.a libgthread-2.0.so.0 libpostproc.a
libavcodec.so libgthread-2.0.so.0.4101.0 libpostproc.so
libavcodec.so.54 libhistory.a libpostproc.so.52
libavcodec.so.54.23.100 libhistory.so libpostproc.so.52.0.100
libavdevice.a libhistory.so.6 libreadline.a
libavdevice.so libhistory.so.6.2 libreadline.so
libavdevice.so.54 libhogweed.a libreadline.so.6
libavdevice.so.54.0.100 libhogweed.so libreadline.so.6.2
libavfilter.a libhogweed.so.2 libsndfile.a
libavfilter.so libhogweed.so.2.5 libsndfile.so
libavfilter.so.2 libiconv-stub libsndfile.so.1
libavfilter.so.2.77.100 libid3tag.so libsndfile.so.1.0.25
libavformat.a libid3tag.so.0 libspeex.a
libavformat.so libid3tag.so.0.3.0 libspeexdsp.a
libavformat.so.54 libintl-stub libspeexdsp.so
libavformat.so.54.6.100 libip4tc.so libspeexdsp.so.1
libavutil.a libip4tc.so.0 libspeexdsp.so.1.5.0
libavutil.so libip4tc.so.0.1.0 libspeex.so
libavutil.so.51 libip6tc.so libspeex.so.1
libavutil.so.51.54.100 libip6tc.so.0 libspeex.so.1.5.0
libblkid.a libip6tc.so.0.1.0 libssl.a
libblkid.so libiptc.so libssl.so
libblkid.so.1 libiptc.so.0 libssl.so.1.0.0
libblkid.so.1.1.0 libiptc.so.0.0.0 libswresample.a
libblobmsg_json.so libiwinfo.so libswresample.so
libbz2.so libjson.a libswresample.so.0
libbz2.so.1.0 libjson-c.a libswresample.so.0.15.100
libbz2.so.1.0.6 libjson-c.so libswscale.a
libcgi.a libjson-c.so.2 libswscale.so
libcgi.so libjson-c.so.2.0.1 libswscale.so.2
libcgi.so.1 libjson_script.so libswscale.so.2.1.100
libcgi.so.1.0.0 libjson.so libubi-utils.a
libcrypto.a libjson.so.0 libubox.a
libcrypto.so libjson.so.0.1.0 libubox.so
libcrypto.so.1.0.0 libltdl.a libubus.so
libcurl.a libltdl.so libucimap.a
libcurl.so libltdl.so.7 libuci.so
libcurl.so.4 libltdl.so.7.3.0 libuClibc++-0.2.4.so
libcurl.so.4.3.0 liblua.a libuClibc++.a
libcurses.a liblualib.so libuClibc++.so
libcurses.so liblua.so libuClibc++.so.0
libcyassl.so liblua.so.5.1.5 libuclient.so
libcyassl.so.5 liblzo2.a libulockmgr.a
libcyassl.so.5.1.0 liblzo2.so libulockmgr.so
libfaad.a liblzo2.so.2 libulockmgr.so.1
libfaad.so liblzo2.so.2.0.0 libulockmgr.so.1.0.1
libfaad.so.2 libmad.a libustream-ssl.so
libfaad.so.2.0.0 libmad.so libuuid.a
libffi.a libmad.so.0 libuuid.so
libffi.so libmad.so.0.2.1 libuuid.so.1
libffi.so.6 libmenu.a libuuid.so.1.3.0
libffi.so.6.0.1 libmenu.so libvalidate.so
libFLAC.a libmenu.so.5 libvorbis.a
libFLAC.so libmenu.so.5.9 libvorbisenc.a
libFLAC.so.8 libmms.a libvorbisenc.so
libFLAC.so.8.2.0 libmms.so libvorbisenc.so.2
libform.a libmms.so.0 libvorbisenc.so.2.0.10
libform.so libmms.so.0.0.2 libvorbisfile.a
libform.so.5 libmount.a libvorbisfile.so
libform.so.5.9 libmount.so libvorbisfile.so.3
libfuse.a libmount.so.1 libvorbisfile.so.3.3.6
libfuse.so libmount.so.1.1.0 libvorbisidec.a
libfuse.so.2 libmpdclient.a libvorbisidec.so
libfuse.so.2.9.0 libmpdclient.so libvorbisidec.so.1
libgcrypt.a libmpdclient.so.2 libvorbisidec.so.1.0.3
libgcrypt.so libmpdclient.so.2.0.5 libvorbis.so
libgcrypt.so.20 libncurses.a libvorbis.so.0
libgcrypt.so.20.0.1 libncurses.so libvorbis.so.0.4.7
libgio-2.0.a libncurses.so.5 libxtables.so
libgio-2.0.so libncurses.so.5.9 libxtables.so.10
libgio-2.0.so.0 libnettle.a libxtables.so.10.0.0
libgio-2.0.so.0.4101.0 libnettle.so libz.a
libglib-2.0.a libnettle.so.4 libz.so
libglib-2.0.so libnettle.so.4.7 libz.so.1
libglib-2.0.so.0 libnl-tiny.so libz.so.1.2.8
libglib-2.0.so.0.4101.0 libntfs-3g.a lua
libgmodule-2.0.a libntfs-3g.so pkgconfig
ๆไปฅๆๅจไฝฟ็จ mips-openwrt-linux-gcc
็ๆๅ
ๆ่ฉฒไฝฟ็จ -L
ไพๅ่จดๅฎๅปๅช้ๆพๅฝๅผๅบซ
ๆไนๆ่ฉฒๅ่จด mips-openwrt-linux-gcc
ๅๅช้ๆพ cgi.h
ๆๅฐ
jeffrey@jeffrey-virtual-machine:/mnt/hgfs/share/js9331_event_cgi$ ls /home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/
af_vfs.h etip.h libavfilter mac80211-backport speex
alsa faad.h libavformat mad.h termcap.h
atmarpd.h ffi.h libavutil menu.h term.h
atmarp.h ffitarget.h libiptc mp4ff.h tremor
atmd.h FLAC libipulog mp4ffint.h ubi-media.h
atm.h form.h libltdl mpd ubi-user.h
atmsap.h fuse libmms ncurses_dll.h ubus_common.h
attr fuse.h libmount ncurses.h ubusmsg.h
audiofile.h gcrypt.h libnl-tiny neaacdec.h uci_blob.h
aupvlist.h gio-unix-2.0 libopkg net uci_config.h
blkid glib-2.0 libpostproc nettle uci.h
bzlib.h gmp.h libswresample ntfs-3g ucimap.h
cgi.h gpg-error.h libswscale ogg uClibc++
crypto id3tag.h libubi.h openssl ulockmgr.h
curl ip6tables.h libubi-tiny.h panel.h unctrl.h
cursesapp.h iptables libubox pcap uuid
cursesf.h iptables.h libubus.h pcap-bpf.h vorbis
curses.h iwinfo lnum_config.h pcap.h xtables.h
cursesm.h iwinfo.h ltdl.h pcap-namedb.h xtables-version.h
cursesp.h json luaconf.h polarssl zconf.h
cursesw.h json-c lua.h pppd zlib.h
cursslk.h lauxlib.h lualib.h readline
cyassl libavcodec lzo sndfile.h
eti.h libavdevice mac80211 sndfile.hh
ไพๅๅ็ธฝ็ต
ๆๆณๅจ /mnt/hgfs/share/js9331_event_cgi
็ฎ้ไธ
ไฝฟ็จ mips-openwrt-linux-gcc
ไพ็ทจ่ญฏ main.c
ไฝฟๅ
ถ็ข็ๅท่กๆช event.cgi
- /mnt/hgfs/share/js9331_event_cgi/main.c
#include <stdio.h>
#include <cgi.h>
s_cgi *cgi;
int main(void) {
cgi = cgiInit();
cgiSetType("application/json");
cgiHeader();
printf("{\"hello\": \"world\"}");
cgiFree (cgi);
return 0;
}
ๆ้่ฆๅ่จด mips-openwrt-linux-gcc
ไธไปถไบ
-I/home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/
-L/home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/
-lcgi
command ๆฒ่ตทไพๆๅไธ้ข้ไธๅจ
mips-openwrt-linux-uclibc-gcc -I/home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/ -L/home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/ -lcgi -o event.cgi main.c
ๅๅ
jeffrey@jeffrey-virtual-machine:/mnt/hgfs/share/js9331_event_cgi$ mips-openwrt-linux-uclibc-gcc -I/home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/ -L/home/jeffrey/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/ -lcgi -o event.cgi main.c
jeffrey@jeffrey-virtual-machine:/mnt/hgfs/share/js9331_event_cgi$ ls
event.cgi main_0.c main.c
็ดๆฅไธๅณๅฐ JS9331 ็ /www/cgi-bin
็ฎ้
root@JoySince:/www/cgi-bin# ls
event.cgi luci
็ถฒๅๅๆฒ http://192.168.1.251/cgi-bin/event.cgi
ๅพๅฐ
Bad Gateway
The process did not produce any response
shit
Debug ็้็จๅพๅฐ่ฉญ็ฐ็็ต่ซ
- /mnt/hgfs/share/js9331_event_cgi/main.c
#include <stdio.h>
#include <cgi.h>
s_cgi *cgi;
int main(void) {
cgi = cgiInit();
cgiSetType("application/json");
cgiHeader();
printf("{\"hello\": \"world\"}");
// cgiFree (cgi);
return 0;
}
ไธ่ฆๅผๅซ cgiFree()
ๅ้กๅฐฑ่งฃๆฑบไบ
้ๅฏฆๅจ่ ป่ฉญ็ฐ็
ๅๅๆ่ท Jammy ่ไบไธไธ
- Jammy ็ถๅ ตๆ็ไบไธไบๅ IoT Protocol ็ธ้ๅญธ่ก่ซๆ
- Jammy ๆฒๆๅป็ CoAP ๆ MQTT ็่ฆๆ ผ
- ่ไบไธไธ Jammy ๅฐฑ้ๅฟไบ
- Jammy ่กจ็คบไป่ฆ่ถๅฟซๅฐ mantis wiki ็ smart lighting ้จๅๅฏซๅฎ็ตฆ Aaron ็จ
ๆๆฟ่ซพไบไธไบไบ
- ้ไปไธๅฐ nodemcu ๅฐ่ป