ãã¹ãããã°ã©ã ãšããŠãEasysyncãå®è¡ããããšæããŸããã ããã¯ãdropboxã®ã¹ã¿ã€ã«ã§ãã¡ã€ã«ãåæããããã®ãªãŒãã³ããã°ã©ã ã§ããããšãç¹°ãè¿ããŸãã ããã°ã©ã ã¯Qt 4ã䜿çšããŠäœæãããUnisonã¯åæãšã³ãžã³ãšããŠäœ¿çšãããŸãã ãã®èšäºã§ã¯ãQIPSãUnisonãEasysync for MIPSã¢ãŒããã¯ãã£ã®ã³ã³ãã€ã«æ¹æ³ã«ã€ããŠèª¬æããããŒã ã«ãŒã¿ãŒã§Easysyncãå®è¡ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
æäººã®ã¡ã¢ã
ã«ãŒã¿ãŒã¯ãå¹³åçãªãŠãŒã¶ãŒã«ã¯çããããã»ããµãŒã䜿çšããŸãã ããŒã ãŠãŒã¶ãŒã¯ãx86ã¢ãŒããã¯ãã£ãIntelããã³AMDããã»ããµã«æ £ããŠããŸãã Asus RT-N16ã¯ã MIPSã¢ãŒããã¯ãã£ãåããBroadcom BCM4718 ããã»ããµã䜿çšããŠããŸãã ã«ãŒã¿ãŒèªäœã®ãªãœãŒã¹ã¯ããã°ã©ã ããã«ãããã®ã«ååã§ã¯ãªãå¯èœæ§ããããããéåžžãããã°ã©ã ã¯ããã°ãã©ã¶ãŒïŒäœ¿ãæ £ãããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒãªã©ïŒã§ã³ã³ãã€ã«ãããŸãããç®çã®ã¢ãŒããã¯ãã£çšã§ãã ãã®ããã»ã¹ã¯ã¯ãã¹ã³ã³ãã€ã«ãšåŒã°ããŸãã
éå ·
- 皌åäžã®Linuxã³ã³ãã¥ãŒã¿ãŒãå¿ èŠã§ãã Ubuntuã䜿çšããŸããã
- ã³ã³ãã€ã©ïŒgccãg ++ïŒ;
- æšæºCãC ++ã©ã€ãã©ãªã
- GNU makeãTARãGZIPãGITãªã©ã®åœ¢åŒã®ãŠãŒãã£ãªãã£ã Ubuntuã®å Žåãã»ãšãã©ã¯ãã§ã«ã€ã³ã¹ããŒã«ãããŠããŸãã
æé
- æåã«å¿ èŠãªããšã¯ãDD-WRTã®ããã°ã©ã ãã©ã®ããã«çµã¿ç«ãŠãããããçè§£ããããšã§ãã Wikiã®ããŒãžã¯ææ°ã§ãã ç¹ã«è峿·±ãã®ã¯ã æé ã»ã¯ã·ã§ã³ã§ãã ãœãŒã¹ããDD-WRTãæ§ç¯ããããã«äœ¿çšãããããŒã«ãã§ãŒã³ïŒä»¥äžãããŒã«ãã§ãŒã³ãšåŒã³ãŸãïŒãžã®ãªã³ã¯ããããŸãã ãã®å Žåã®ããŒã«ãã§ãŒã³ã¯ãç®çã®ã¢ãŒããã¯ãã£çšã«æ¢ã«ã³ã³ãã€ã«ãããŠããUclibcã©ã€ãã©ãªãšã³ã³ãã€ã©ã§ãã ãããã£ãŠãããŒã«ãã§ãŒã³ã¯DD-WRT Webãµã€ãããããŠã³ããŒãããŸãã ããã«ã¯æžãããŠããŸãããããã¹ãŠãx86_64ã¢ãŒããã¯ãã£ã§æ§ç¯ãããŠããŸãã ãããã£ãŠãã¿ãŒããã«ã§uname -mãšå ¥åããŠãã64ïŒx86_64ãŸãã¯amd64ïŒã®å€ã衚瀺ãããªãå Žåã¯ãæ°ããããŒãžã§ã³ã®Linuxãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã å¥ã®æ¹æ³ã¯ãèªåã§ããŒã«ãã§ãŒã³ãæ§ç¯ããããšã§ãããå¿ èŠãªã·ã¹ãã ãã€ã³ã¹ããŒã«ããããšã奜ã¿ãŸããã ããŠã³ããŒãã®å®äºïŒçŸåšã¯716 MBïŒãåŸ ã£ãŠãããæ¬¡ã®æé ã«é²ã¿ãŸãã
- ã¢ãŒã«ã€ããéããŸããã¢ãŒã«ã€ãã«ã¯ãããŸããŸãªã¢ãŒããã¯ãã£ã®ããŒã«ãã§ãŒã³ãå«ãŸããŠããŸãã toolchain-mipsel_gcc4.1.2ãå¿ èŠã§ãã ãã®ãã©ã«ããŒã/ home / fralik /ã§è§£åããŸããã ãªãtoolchain-mipsel_gcc4.1.2ãªã®ãïŒ Mipselãoptwareãã«ãŒã¿ãŒã®mipselããã±ãŒãžããã€ã³ã¹ããŒã«ãããŠããããšã確èªããããããã€ããªãŒããŒã¯æäœããæé«ïŒãªãã«ãšã³ãã£ã¢ã³ïŒã®é ã«äœ¿çšãããŸãã ç§ã®æèŠã§ã¯ãååã«mipselãå«ãæ®ãã®ãã©ã«ããŒã¯ãDD-WRTã«ãŒãã«ã³ã³ããŒãã³ãã®æ§ç¯ã«äœ¿çšãããŸãã
- ããŒã«ãã§ãŒã³ããã¹ã«è¿œå ããŸãã
- PATH = $ PATH ïŒã / toolchain-mipsel_gcc4.1.2 / bin /
- cdã
- mipsel-linux-gcc --version
GCCããŒãžã§ã³æ å ±ã衚瀺ãããŸãã - ãã¹ãŠãæ©èœããããšã確èªããã«ã¯ã2ã€ã®helloworldããã°ã©ã ã䜿çšã§ããŸãã helloworld-ccïŒ
- #include <stdlib.h>
- #include <stdio.h>
- int main ïŒ ïŒ {
- printf ïŒ "Hello worldïŒ \ n " ïŒ ;
- 0ã è¿ã ãŸã ã
- }
fileã³ãã³ãã䜿çšããŠåéããã³æ€èšŒããŸãã
mipsel-linux-gcc helloworld-cc -o helloworld-c
ãã¡ã€ã« helloworld-c
å¿ èŠïŒhelloworld-cïŒELF 32ãããLSBå®è¡å¯èœãã¡ã€ã«ãMIPSãMIPS32ããŒãžã§ã³1ïŒSYSVïŒãåçãªã³ã¯ïŒå ±æã©ã€ãã©ãªã䜿çšïŒãã¹ããªãããªã
ã«ãŒã¿ã§helloworld-cãå®è¡ããå®éã«æ©èœã確èªã§ããŸãã çŸåšhelloworld-cpp.cppïŒ
#define NEED_PRINTF 1
#include <iostream>
int main ïŒ ïŒ {
std :: cout << "Hellow worldïŒ" << std :: endl ;
0ã è¿ã ãŸã ã
}
ã¿ãŒããã«å ïŒ
mipsel-linux-g ++ helloworld-cpp.cpp -o helloworld-cpp
æåã®è¡ã«æ³šæããŠãã ããïŒ ããããªããšãããã°ã©ã ã¯ã³ã³ãã€ã«ãããããšã©ãŒãçæãããŸãã
/home/fralik/toolchain-mipsel_gcc4.1.2/bin/../lib/gcc/mipsel-linux-uclibc/4.1.2/../../../../include/c++/4.1.2/ cstdioïŒ126ïŒãšã©ãŒïŒ ':: printf'ã¯å®£èšãããŠããŸãã
åéãããã¹ãŠãã«ãŒã¿ãŒã§æ©èœããããšã確èªããŸãã - Qtããã«ããããšãã§ãã çµã¿èŸŒã¿Linuxçšã®Qtã©ã€ãã©ãªãããŠã³ããŒãããŸã ã ããŒã ãã£ã¬ã¯ããªã§ãã¢ãŒã«ã€ããè§£åããŸããã
- ã¿ãŒããã«ã§Qtã䜿çšããŠãã©ã«ããŒã«ç§»åããŸãã mkspecs / qwsãã©ã«ããŒã«æ³šæããå¿
èŠããããŸãã ããŸããŸãªã¢ãŒããã¯ãã£ã®Makeãã¡ã€ã«ãä¿åããŸãã ããšãã°ã mkspecs / qws / linux-mips-g ++ / qmake.confã®ããã«ãªããŸãã
linux-mips-g ++ãã©ã«ããŒãlinux-mipsel-g ++ã«ã³ããŒããŸãã
cp -R mkspecs / qws / linux-mips-g ++ / mkspecs / qws / linux-mipsel-g ++
- mkspecs / qws / linux-mipsesl-g ++ / qmake.confãã¡ã€ã«ãç·šéããŠãmips-linux- *ã§ã¯ãªãmipsel-linux- *ã³ãã³ãã䜿çšããããã«ããŸãã ç§ã䜿çšãããã©ã°ãšããŠ
-mel -march = mips32r2
- 次ã«ãQtã®æ§æã«é²ã¿ãŸãã ãã ããæåã«libxext-devãã€ã³ã¹ããŒã«ããŸããã€ã³ã¹ããŒã«ããªããšããšã©ãŒãçºçããŸãã
åºæ¬çãªXLibæ©èœãã¹ãã倱æããŸããïŒ
sudo apt-get install libxext-dev
ã /æ§æ-no-cups -release -shared -no-qt3support -no-phonon -no-audio-backend -no-javascript-jit -no-webkit -qt-sql-lite -no-script -no-scripttools -opensource -no-gui -no-nis -no-opengl -nomakeã®äŸ-nomakeãã¢
å¿ èŠïŒ
Qtã¯ãã«ãçšã«æ§æãããŸããã ãmakeããå®è¡ããã ãã§ãã ãã¹ãŠããã«ãããããããmake installããå®è¡ããå¿ èŠããããŸãã Qtã¯/usr/local/Trolltech/Qt-4.7.2ã«ã€ã³ã¹ããŒã«ãããŸã
ã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒãå床å®è¡ããŸãã
ã /æ§æ-no-cups -release -shared -no-qt3support -no-phonon -no-audio-backend -no-javascript-jit -no-webkit -qt-sql-sqlite -no-script -no-scripttools -platform linux-g ++- 64 -xplatform qws / linux-mipsel-g ++ -opensource -no-gui -no-nis -embedded mips -little-endian -no-opengl -nomake examples -nomake demos
åããŠçŸåšã®ã¢ãŒããã¯ãã£çšã«Qtãæ§æãããšãã2åç®ã¯MIPSçšã«æ§æããŸããã 2çªç®ã®ã³ãã³ãã§ã¯ã xplatformåŒæ°ã¯ã¹ããã6ã§äœæãããã©ã«ããŒãæããŠããã ãã§ããäžèŠãªãã®ã®ãµããŒããåé€ããŸããïŒno-qt3supportãno-phononãno-audio-backendã-nomakeã®äŸãªã©ã
ãã®çµæã次ã®ã¡ãã»ãŒãžã衚瀺ãããŸãã
Qtã¯ãã«ãçšã«æ§æãããŸããã ãmakeããå®è¡ããã ãã§ãã ãã¹ãŠããã«ãããããããmake installããå®è¡ããå¿ èŠããããŸãã Qtã¯/usr/local/Trolltech/QtEmbedded-4.7.2-mipsã«ã€ã³ã¹ããŒã«ãããŸã
- makeãå®è¡ããŸã ã ã¹ã¢ãŒã¯ãŸãã¯çŽ
è¶ã飲ãããšãã§ããŸãã =ïŒ
ãã®ã¹ãããã§ã¯ãå¥ã®åé¡ããããŸãã
.obj / release-shared-emb-mips / qrect.oïŒé¢æ° `QRectF :: toAlignedRectïŒïŒconst 'ïŒ qrect.cpp :(ãtext + 0x1468ïŒïŒ `ceilf 'ãžã®æªå®çŸ©ã®åç § qrect.cpp :(ãtext + 0x1488ïŒïŒ `ceilf 'ãžã®æªå®çŸ©ã®åç §
äºå®ãceilf颿°ã¯uclibcã©ã€ãã©ãªã§ã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸããã ãã¡ãããã©ã€ãã©ãªãåæ§ç¯ããŠããã«ãã®é¢æ°ã远å ã§ããŸãããDD-WRTããŒã«ãã§ãŒã³ã䜿çšããŸããã€ãŸããã«ãŒã¿ãŒã«ã¯ceilf颿°ã®ãªãã©ã€ãã©ãªããããŸã ã ãã®ã¹ãããã§ãç§ã¯é·ãéã¿ã³ããªã³ãšèžãã ceilfãã£ã¬ã³ãžãceilã«å€ããããšããŸããã ããããQtã¯æºãããªããã®ã§ããã ç¹ã«QRectã¯ã©ã¹ãå¿ èŠãªãããšãèãããšãã¡ã¹ã䜿çšããªããã°ãªããŸããã§ããã ãã¡ã€ã«ã/ qt-everywhere-opensource-src-4.7.2 / src / corelib / tools / qrect.cppãéã ã2379è¡ç®ãèŠã€ããŸãã
int xmax = intïŒïŒfloatïŒïŒïŒintïŒxp + wïŒïŒ;
ã€ãŸããåŒã³åºãã眮ãæããŸãqCeilïŒxp + yïŒ
ã«ïŒãããŒãïŒïŒïŒintïŒxp + yïŒ
ã/ qt-everywhere-opensource-src-4.7.2 / src / corelib / tools / qtimeline.cppãã¡ã€ã«ã®è¡640ãšåæ§ã«ãè¡2381ã§åæ§ã®æäœãå®è¡ããŸã
ããäžåºŠmakeãåŒã³åºããŸããä»åã¯ããã»ã¹ãæ£åžžã«å®äºããã¯ãã§ãã - 宿œããŸã
sudo make install
MIPSã®äžã«Qtã©ã€ãã©ãªãããããšã確èªããŸãïŒã€ã³ã¹ããŒã«ã/usr/local/Trolltech/QtEmbedded-4.7.2-mipsãã©ã«ããŒã§è¡ããããšããQtã®ä¿èšŒã«ããããããããã¹ãŠã/ usr / local / Trolltech / Qtã«ã€ã³ã¹ããŒã«ãããŸãã-4.7.2 ïŒïŒ
ãã¡ã€ã« / usr / local / Trolltech / Qt-4.7.2 / lib / libQtCore.so.4.7.2
/usr/local/Trolltech/Qt-4.7.2/lib/libQtCore.so.4.7.2ïŒELF 32ãããLSBå ±æãªããžã§ã¯ããMIPSãMIPS32ããŒãžã§ã³1ïŒSYSVïŒãåçã«ãªã³ã¯ïŒå ±æã©ã€ãã©ãªã䜿çšïŒãã¹ããªãããªã
- Easysyncã®ã¢ã»ã³ããªã«æž¡ããŸãã
ïŒããã€ãã®ãã£ã¬ã¯ããªã«ç§»åããŸããããšãã°ã
cdã
git clone gitïŒ // github.com / fralik / Easysync.git
cd easysync /ãµãŒããŒ
/ usr / local / Trolltech / Qt-4.7.2 / bin / qmake easysync-server.pro
äœã
ïŒãã§ãã¯ïŒ
ãã¡ã€ã«ãã«ã/ easysync-server - ä»ããŠããŸã³ãå¿
èŠã§ãã ãã®æçšæ§ã«ããããããããªãããŠã§ã¢ã«ã¯ãããŸããã ã«ãŒã¿ãŒã§çŽæ¥åéããŸãã sshãŸãã¯telnetçµç±ã§ã«ãŒã¿ãŒã«ã¢ã¯ã»ã¹ããŸãã
ipkg-opt install buildroot ocaml
mkdir / mnt / unison
cd / mnt / unison
wget httpïŒ // www.seas.upenn.edu / ãbcpierce / unison //ããŠã³ããŒã/ release / stable / unison-2.40.61.tar.gz
tar xvfz unison-2.40.61.tar.gz
ocaml mkProjectInfo.ml > Makefile.ProjectInfo
ïŒãŠããŸã³ãåéããåã«ãlibncursesããlibcursesãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããå¿ èŠããããŸã
ln -s / opt / lib / libncurses.so.5.7 / opt / lib / libcurses.so.5.7
ln -s / opt / lib / libcurses.so.5.7 / opt / lib / libcurses.so.5
ln -s / opt / lib / libcurses.so.5 / opt / lib / libcurses.so
NATIVE = false UISTYLE = textã«ããŸã
ã / unison -version
cp /ãŠããŸã³/ãªãã/ãã³/ãŠããŸã³
ããã§éèŠãªã®ã¯ã ocaml mkProjectInfo.ml> Makefile.ProjectInfoã§ãã ããããªããã°ãããã¯äžå¯èœã§ãã - ããã§ãåéãããã¹ãŠãå®è¡ããå¿
èŠããããŸãã ã«ãŒã¿ãŒã®ã¢ãã¬ã¹ã192.168.2.1ã§ããã / mntãã£ã¬ã¯ããªãæžã蟌ã¿çšã«å©çšå¯èœã§ãããšããŸããã
scp / usr / local / Trolltech / Qt-4.7.2 / lib / libQtCore.so.4.7.2 root @ 192.168.2.1ïŒ/ opt / lib
scp / usr / local / Trolltech / Qt-4.7.2 / lib / libQtNetwork.so.4.7.2 root @ 192.168.2.1ïŒ/ opt / lib
scp / usr / local / Trolltech / Qt-4.7.2 / lib / libQtSql.so.4.7.2 root @ 192.168.2.1ïŒ/ opt / lib /
cd < Easysync /ãµãŒããŒ>
ïŒEasysync-serverã1ã€ã®ãã¡ã€ã«ã«ãŸãšããŠãã«ãŒã¿ãŒãžã®è»¢éã容æã«ããŸãã
ã / build_package_dd-wrt.sh
scp dd-wrt_bundle.tar.gz root @ 192.168.2.1ïŒ/ mnt - / mntãã©ã«ããŒã®ã«ãŒã¿ãŒã«ç§»åãã easysync-server-mipsel32.tar.gzãè§£åããŸãã
tar xvfz easysync-server_mipsel.tar.gz
ln -s / opt / lib / libQtCore.so.4.7.2 / opt / lib / libQtCore.so.4.7
ln -s / opt / lib / libQtCore.so.4.7 / opt / lib / libQtCore.so.4
ln -s / opt / lib / libQtCore.so.4 / opt / lib / libQtCore.so
ln -s / opt / lib / libQtSql.so.4.7.2 / opt / lib / libQtSql.so.4.7
ln -s / opt / lib / libQtSql.so.4.7 / opt / lib / libQtSql.so.4
ln -s / opt / lib / libQtSql.so.4 / opt / lib / libQtSql.so
ln -s / opt / lib / libQtNetwork.so.4.7.2 / opt / lib / libQtNetwork.so.4.7
ln -s / opt / lib / libQtNetwork.so.4.7 / opt / lib / libQtNetwork.so.4
ln -s / opt / lib / libQtNetwork.so.4 / opt / lib / libQtNetwork.so
- ããã«ãEasysyncãªãã§ãŠããŸã³ã®åäœã確èªããããšã¯çã«ããªã£ãŠããŸãïŒãŠããŸã³èªäœã®ããã¥ã¡ã³ããš Easysync ã€ã³ã¹ããŒã«ãã¡ã€ã«ãåç
§ã§ããŸã ïŒã ãŠããŸã³ãã»ããã¢ããããåŸãã«ãŒã¿ãŒã«æ»ãã config.ini.sampleãã¡ã€ã«ãç·šéããŠå®è¡ããŸãã
./setup_dd-wrt.sh
ããã§ããŒã ã«ãŒã¿ãŒã«åæãµãŒããŒãã§ããŸããã å€éšããã«ãŒã¿ãŒã«æ¥ç¶ã§ããå Žåãåæã¯ã©ãããã§ãæ©èœããŸãã
ç°¡åãªã¹ã¯ã€ãŒãº
- Webãµã€ãã®ããŒã«ãã§ãŒã³ã䜿çšããŠãDD-WRTçšã®ããã°ã©ã ãæ§ç¯ã§ããŸãã C ++ããã°ã©ã ã®å Žåã #define NEED_PRINTFã䜿çšããå¿ èŠããããŸãã
- optwareã¢ã»ã³ããªã«ã¯äžèŽããªãã«ãããããããã«ãŒã¿ãŒã§çµã¿ç«ãŠãããšãã§ããŸãã ååãšããŠãã¯ãã¹ã³ã³ãã€ã«ãå®è¡ã§ããŸãããããã¯çè§£ã§ããŸããã§ããã
- Qtã«ã¯MIPSãé©çšããŠãã»ãšãã©åé¡ã¯ãããŸãããããã°ã©ã ã®ã¯ãã¹ãã©ãããã©ãŒã ãžã®+1ã§ãã
- Easysyncã¯çŸåšãããŒã ã«ãŒã¿ãŒã«ãæèŒãããŠããŸãïŒ åèµ·ååŸããµãŒãã¹ãèªåçã«éå§ãããªãããšã«æ³šæããŠãã ããã ã»ãšãã©ã®å Žåãã€ã³ã¹ããŒã«æžã¿ãšããŠããŒã¯ãããŸããïŒã€ã³ã¹ããŒã«ãã©ã°ã¯/ tmpã«æ ŒçŽãããŠããããïŒã / opt / bin / easysync-server -iã§å床ã€ã³ã¹ããŒã«ãããã / opt / etc / init.d / easysync-server startã§ã€ã³ã¹ããŒã«ããã«å®è¡ã§ããŸãã
Easysyncã«èå³ããããããœãŒã¹ããã³ã³ãã€ã«ããããªã人ã®ããã«ãæ¢ã«ã³ã³ãã€ã«ãããããŒãžã§ã³ãå©çšå¯èœã§ã ã
2016幎5æ30æ¥æŽæ°
NabytovychãŠãŒã¶ãŒã¯ãäžéšã®ãªã³ã¯ãå€ããªã£ãŠããããšã瀺åããŠããŸãã ããŒã«ãã§ãŒã³ãšQtãžã®ãªã³ã¯ãæŽæ°ããŸããã