ãã¯ãŒã¯ã·ã§ãããã®ãã®éšåã§ã¯ãIntel Galileo Gen2ãæ¬æ ŒçãªLinuxã³ã³ãã¥ãŒã¿ãŒã«å€ããArduinoãšLinuxã³ã³ããŒãã³ããç°¡åã«ããåãããæ¹æ³ã瀺ããŸãã
microSDã«ãŒããå¿
èŠã§ãïŒ8GBããã³10çªç®ã®ããã©ãŒãã³ã¹ã¯ã©ã¹ããæšå¥šïŒã16GBã«ãŒãã䜿çšããŸããã Macã§ãã¹ãŠã®ã¹ããããå®è¡ããŸããWindowsããã³* nixãã©ãããã©ãŒã ã§ã¯ããã¹ãŠãåæ§ã§ãïŒãã¡ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®å¯Ÿå¿ãããä¿®æ£ãã䜿çšïŒã
SDã«ãŒãã®æºå
Galileoã®
å ŽåãéçºããŒã ã¯ç¹å¥ãªLinuxã€ã¡ãŒãžYoctoããªãªãŒã¹ããŸã
1.æåã«ãã€ã¡ãŒãžã®ææ°ããŒãžã§ã³ãããŠã³ããŒãããå¿
èŠããããŸãã ããã¯ãããšãã°ã
ãã®ãªã³ã¯ã§å®è¡ã§ããŸãã
2.ããŠã³ããŒããããã¡ã€ã«ã解åããŸãã
Mac:Downloads user$ bunzip2 iot-devkit-latest-mmcblkp0.direct.bz2
3. microSDãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããŠèå¥ããŸãïŒã©ãããããçšã®ããŒã¿åºåãæã¡èŸŒã¿ãŸãïŒã
Mac:Downloads user$ diskutil list /dev/disk0
ç§ã®å Žåãã«ãŒãã¯/ dev / disk2ã§ãïŒå®éã®ã«ãŒãã¯ç°ãªãå ŽåããããŸãïŒã
4.ãã®ãã£ã¹ã¯ãã¢ã³ããŠã³ãããŸã
Mac:Downloads user$ diskutil unmountDisk /dev/disk2 Unmount of all volumes on disk2 was successful
5. ãddãã³ãã³ãã䜿çšããŠãã€ã¡ãŒãžãmicroSDã«ãŒãã«ã³ããŒã§ããŸãã
Mac:Downloads user$ sudo dd if=iot-devkit-latest-mmcblkp0.direct of=/dev/disk2 bs=8m 131+1 records in 131+1 records out 1103102976 bytes transferred in 345.586518 secs (3191973 bytes/sec) Mac:Downloads user$ sync
ç»åãã«ãŒãã«ã³ããŒããã«ã¯ãã»ãŒ6åããããŸãã-ãã°ãããåŸ
ã¡ãã ããïŒãã®æç¹ã§ã¯ãããã»ã¹ã®é²è¡ç¶æ³ã¯ç«¯æ«ã«ãŸã£ãã衚瀺ãããŸããïŒã
ãããã®ç°¡åãªæé ãå®äºãããšãmicroSDã«ãŒãã®æºåãæŽããŸãã
æåã«Intel Galileo Gen2ã§Linuxãå®è¡ããŠæ§æããŸã
ãããã®æé ã®éçšã§ãIntel Galileo Gen2ã¯ã»ãŒæ®éã®Linuxã³ã³ãã¥ãŒã¿ãŒã§ããããšã瀺ããŸãã
å®éã«ã¯ãIntel Galileoã¹ãããã«ã«ãŒããæ¿å
¥ããLANã±ãŒãã«ãæ¥ç¶ããé»æºãæ¥ç¶ããŸãã Linuxã³ã³ãã¥ãŒã¿ãŒãããŒãäžã§ãã ããæ確ã«ããããã«ãUARTã³ãã¯ã¿ã«æ¥ç¶ããŠããŸããŸãªèšºæã¡ãã»ãŒãžãåä¿¡ããããŠã³ããŒãã®é²è¡ç¶æ³ãç£èŠããè¿œå ã®ãã³ã³ãœãŒã«ããæŽçããããšã匷ããå§ãããŸãã ãããã°ã©ããŒã
Foca v2.2 ïŒFT232RLã«åºã¥ããŠæ§ç¯ïŒã䜿çšããŸãã
Macã·ã¹ãã ã§ã¯ã
goSerialã¢ããªã±ãŒã·ã§ã³ã䜿çšãããš
䟿å©ã§ãã æ¥ç¶ãã©ã¡ãŒã¿ãŒã¯æ¬¡ã®ãšããã§ãïŒããŒããéžæããŸãïŒã
ã·ã¹ãã ãèµ·åãããšãããã³ããã衚瀺ãããŸãããŠãŒã¶ãŒåïŒrootïŒãå
¥åããå¿
èŠããããŸãã ãã®åŸãLinuxã³ãã³ãã端æ«ã«éä¿¡ã§ããŸãã
ã·ã¹ãã ã®IPã¢ãã¬ã¹ãå®çŸ©ããŸãã
LinuxããŒãžã§ã³ãèŠãŠã¿ãŸãããã
root@quark01979b:~
ããã§ãã·ã¹ãã ãå°ãæ§æã§ããŸãã
- ã䜿ãããããããããã¹ããšãã£ã¿ãŒãã€ã³ã¹ããŒã«ããŸãã
- ã³ã³ãã¥ãŒã¿ãŒåãå€æŽãã
- ã«ãŒããã¹ã¯ãŒããèšå®ãã
- æ£ããã¿ã€ã ãŸãŒã³ãšæéãèšå®ãã
- RTCãæŽæ°ããŸãã
SSHãä»ããŠæ§æãè¡ããŸãïŒãã ããIPã¢ãã¬ã¹ã決å®ãã端æ«ããäœããè¡ãããšãã§ããŸãïŒã
ãããã®èšå®ã®éçšã§ãIntel Galileo Gen2ãã»ãŒãã¹ãŠã®åªããæ©èœãåããLinuxãå®è¡ããããšã瀺ããããšæããŸãã
nanoãã€ã³ã¹ããŒã«ãã
1.ã«ãŒããšããŠSSHçµç±ã§Intel Galileo Gen2ã«æ¥ç¶ããŸãïŒããã©ã«ãã§ã¯ããã¹ã¯ãŒãã¯ç©ºçœã§ãïŒã
2. nano-srcãã©ã«ããŒãäœæããŸãã
Mac:Downloads user$ mkdir nano-src
3.ãã®ãã©ã«ããŒã«è¡ããŸãããã
Mac:Downloads user$ cd nano-src
4. nanoãœãŒã¹ãå«ãã¢ãŒã«ã€ããããŠã³ããŒãããŸãã
Mac:Downloads user$ curl http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz >nano-2.2.6.tar.gz
5.ã¢ãŒã«ã€ããé©åãªãã©ã«ããŒã«è§£åããŸãã
Mac:Downloads user$ tar zxvf nano-2.2.6.tar.gz
6.ãã®æ°ãããã©ã«ããŒïŒnano-2.2.6ïŒã«ç§»åããŸãããã
Mac:Downloads user$ cd nano-2.2.6
7.次ã®ã³ãã³ããå®è¡ããŠãnanoãã³ã³ãã€ã«ããã³ã€ã³ã¹ããŒã«ããŸãã
./configure make make install
8.ãœãŒã¹ãã£ã¬ã¯ããªãåé€ã§ããŸãã
cd .. cd .. rm nano-src -r
ãããã®ç°¡åãªæé ã®åŸããããã¬ã³ããªãŒãšãã£ã¿ãŒãIntel Galileo Gen2ã«ç»å ŽããŸããã
ã³ã³ãã¥ãŒã¿ãŒåãå€æŽãã
æ°ããã€ã³ã¹ããŒã«ããããšãã£ã¿ãŒã®ãããã§ãããã¯éåžžã«ç°¡åã§ãã
nano /etc/hostname
ååããgalileoãã«ä¿®æ£ããŸããïŒæ¬¡ïŒä¿åã確èªããããã«ãCtrl + XããšãEnterãã§çµäºããŸãïŒã ããã«Intel Galileoãåèµ·åã§ããŸãããæ¥ããŸããã...
ã«ãŒããã¹ã¯ãŒããèšå®ãã
ããã§ã¯ãã¹ãŠãç°¡åã§ããæãäžè¬çãªLinuxã®å Žåãšåæ§ã«è¡ãããŸãã
passwd
ãã®åŸãã·ã¹ãã ã¯æ°ãããã¹ã¯ãŒãã®å
¥åãšç¢ºèªãæ±ããŸãïŒæ³šæãå
¥åããæåã¯è¡šç€ºãããŸããïŒã ãã¹ãŠãé 調ã§ããã°ãã·ã¹ãã ã¯ãã¹ã¯ãŒãã®å€æŽã次ã®ã¡ãã»ãŒãžã§ç¢ºèªããŸãã
passwd: password changed.
æ£ããã¿ã€ã ãŸãŒã³ãšæéãèšå®ãã
çŸåšã®æ¥ä»/æå»ã確èªããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
date
次ã®ãããªæ
å ±ïŒ
Mon Jan 26 23:51:15 UTC 2015
ããã«ãã³ãã³ãã®è¡šç€ºå
容ã確èªã§ããŸãã
timedatectl status
çŸåšã®ã¿ã€ã ãŸãŒã³ãçŸåšã®ã¿ã€ã ãŸãŒã³ã«å€æŽããŸãïŒç§ã®å Žåãã¢ã¹ã¯ã¯ã®å ŽåïŒïŒ
timedatectl set-timezone Europe/Moscow
ã䜿çšå¯èœãªãã¿ã€ã ãŸãŒã³ã®ãªã¹ãã¯ã/ usr / share / zoneinfoãã£ã¬ã¯ããªã«ãããŸãã
ç¹°ãè¿ããŸããããã®ã³ãã³ããè¿ãå
容ã確èªããŠãã ããã
timedatectl status
å®éãããã¯ãã§ã«çå®ã®ããã«èŠããŸããããæããããã ãã§ãïŒã¢ã¹ã¯ã¯ã®ã¿ã€ã ã·ããã¯çŸåš+3æéã§ãïŒã ãã®Linuxã€ã¡ãŒãžã§ã¯ãã¿ã€ã ãŸãŒã³ããŒã¿ããŒã¹ã®çŸåšã®æ
å ±ã¯ææ°ã§ã¯ãããŸããã ãã®ç¶æ³ãä¿®æ£ããŸãã
1.çŸåšã®ã¢ã¯ã·ã§ã³çšã®ãã©ã«ããŒãäœæããŸãã
mkdir tz
2.æ°ãããã©ã«ããŒã«ç§»åããŸãããã
cd tz
3.ã¿ã€ã ãŸãŒã³ã®ããŒã¿ããŒã¹ã®çŸåšã®ããŒãžã§ã³ãããŠã³ããŒãããŸãã
wget http://www.iana.org/time-zones/repository/releases/tzdata2014j.tar.gz
4.çµæã®ãã¡ã€ã«ã解åããŸãã
tar xzf tzdata2014j.tar.gz
5.ãšãŒãããã®ã¿ã€ã ãŸãŒã³ãã¡ã€ã«ãã³ã³ãã€ã«ããŸãã
zic europe
ããäžåºŠç¢ºèªããŠãã ããïŒ
timedatectl status
ããŠãã¿ã€ã ãŸãŒã³ã¯ä¿®æ£ãããŸããïŒçŸåšãã·ããã+3æéã§ãããã€ãŸãã¿ã€ã ãŸãŒã³ã«é¢ããæ
å ±ãææ°ã§ããããšã¯æããã§ãïŒã ã¯ããã¯ãNTPã«èšå®ããŸãã ãããè¡ãã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
rdate wwv.nist.gov
ã¿ã€ã ãŸãŒã³ãæŽããæéãçŸå®ã«å¯Ÿå¿ããããã«ãªããŸããã
tzãã©ã«ããŒã¯äžèŠã«ãªããŸãã-åé€ã§ããŸãã
cd .. rm tz -r
RTCã®æŽæ°
å°ãæ°ãæ£ãããIntel Galileoã®SoCã«ã¯
RTC ïŒããã³ããã¯ã¢ããããããªãŒãæ¥ç¶ããããã®ããŒãäžã®å¯Ÿå¿ãããã³ïŒãããããšãæãåºããŠãã ããã 家åºã§CR2032ããããªãŒãšãã®ãã«ããŒãèŠã€ããŸããã ã³ãã¯ã¿ä»ãã®ããªããã£ãã±ãŒãã«ãäœæãããã®ããããªãŒã察å¿ããã³ãã¯ã¿ã«æ¥ç¶ããŸããã ããã§ãç£èŠã¢ãžã¥ãŒã«ãããã¯ã¢ãããããŸããã é©åã«åäœããããã«èšå®ããã ãã§ãã
ãããè¡ãã«ã¯ãRTCã¢ãžã¥ãŒã«ã«çŸåšã®ã·ã¹ãã æå»ãæžã蟌ã¿ãŸãããã®ããã«ã次ã®ã³ãã³ããå®è¡ããŸãã
hwclock -w
次ã®ã³ãã³ãã䜿çšããŠãRTCããæéãèªã¿åãããšãã§ããŸãã
hwclock -r
ä»ãããªãã¯ã§ãã
reboot
ãããã£ãŠãLinuxã«å°ãæ
£ããŠãã人ã«ãšã£ãŠã¯ãç°åžžãªããšã¯äœã瀺ãããŠããŸãããYoctoãæèŒããIntel Galileoã¯ãå®å
šã«ãæ®éã®ãLinuxã³ã³ãã¥ãŒã¿ãŒã§ãã ããããããã¯å®å
šã«çå®ã§ã¯ãããŸãã...
ãã¡ãããå¥ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒããšãã°ã
Debian ïŒãã€ã³ã¹ããŒã«ããããšãã§ããŸãããããã«äœ¿çšã§ããã»ã©å¯æ¥ãªçµ±åã¯ãããŸããã
ArduinoãšLinux
ã¹ã±ããã§Intel Galileoã®Arduinoããã³Linuxã³ã³ããŒãã³ããšå¯Ÿè©±ããã«ã¯ãã·ã¹ãã é¢æ°ïŒconst char *ã³ãã³ãïŒã䜿çšã§ããŸãã ããã¯ãèŠæ±ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã·ã§ã«ã«æž¡ã
æšæºã®Cé¢æ°ã§ãã ãã®æ©èœã䜿çšããŠãArudinoã¹ã±ããã¯ãã³ãã³ãã©ã€ã³ããã¿ãŒããã«ãä»ããŠè¡ã£ãããã«ãLinuxãšãéä¿¡ãããŸãã
ãã¹ãã®ããã«ãããŒãã¢ãã¿ãŒã«æ¬¡ã®æ
å ±ã衚瀺ããç°¡åãªã¹ã±ããã£ãŒãäœæããŸããã
- ãã¹ãåïŒãã¡ã€ã«/ etc / hostnameããïŒã
- çŸåšã®æ¥æïŒ dateã³ãã³ãïŒã
- IPã¢ãã¬ã¹ïŒ ifconfigã³ãã³ãã®çµæã®grep ïŒã
- SoC枩床ïŒããã¡ã€ã«ã/ sys / class / thermal / thermal_zone0 / tempããåŠçãããããŒã¿ïŒã
- uptimeã³ãã³ãã®åºåçµæã
systemïŒïŒé¢æ°ã«å ããŠã圌ã¯ãã¡ã€ã«ã·ã¹ãã ãæäœããé¢æ°fopenïŒïŒãfcloseïŒïŒã䜿çšããŸããã microSDã«ãŒãã®ãªãœãŒã¹ãç¡é§ã«ããªãããã«ã/ tmpãã©ã«ããŒïŒãã®ãã©ã«ããŒã¯RAMã«ãããŸãïŒã®ãã¡ã€ã«ãæäœããŸãã
å®å
šãªã¹ã±ããã³ãŒã char buf[128]; void setup() { Serial.begin(115200); FILE *hostname; hostname = fopen("/etc/hostname", "r"); fgets(buf, 128, hostname); fclose(hostname); Serial.print("HOST: "); Serial.println(buf); } void loop() { system("date > /tmp/my.txt"); // / // my.txt /tmp FILE *fp; fp = fopen("/tmp/my.txt", "r"); fgets(buf, 128, fp); fclose(fp); Serial.print("Now: "); Serial.print(buf); system("ifconfig | grep inet | grep -v inet6 | grep -v 127.0.0.1 | cut -d: -f2 | awk '{printf $1""\n""}' > /tmp/my.txt"); fp = fopen("/tmp/my.txt", "r"); fgets(buf, 128, fp); fclose(fp); Serial.print("Current IP: "); Serial.println(buf); int temp; temp = getQuarkTemp(); Serial.print("The temperature of the Quark SoC is "); Serial.print(temp); Serial.println(" degrees celcius."); system("uptime > /tmp/my.txt"); fp = fopen("/tmp/my.txt", "r"); fgets(buf, 128, fp); fclose(fp); //Serial.print("Current IP: "); Serial.println(buf); Serial.println(); delay(30000); } int getQuarkTemp(){ char temp_raw[6]; FILE *fp; fp = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); fgets(temp_raw, 5, fp); fclose(fp); int temp = atoi(temp_raw); temp /= 100; return temp; }
äœæ¥ã®çµæã¯ãããŒãã¢ãã¿ãŒã§ç¢ºèªã§ããŸãã
ã¹ã±ããã®éçšã§ãå¥ã®ãŠãŒã¶ãŒãæ¥ç¶ãããããã¯ãŒã¯ã±ãŒãã«ãåæãããã°ããããŠã±ãŒãã«ãå
ã®å Žæã«æ»ããŸãããåæ§ã®ã¹ã±ããã䜿çšããŠCAPãæºåããŸãã
ã€ãŸã å®å
šã«åå¥ã«åäœããç°çš®ã³ã³ããŒãã³ãã®ã·ã¹ãã ïŒArduinoãšlinuxïŒã¯ããã§ã«ã¢ããªã·ãã¯ãªãã®ã«å€ããå§ããŠãããéçºã®å¯èœæ§ãåºãããŸãã
ããšãã°ãArduinoã¹ã±ããããPythonã¹ã¯ãªãããäœæããå®è¡å¯èœã«ããŠå®è¡ããããšãã§ããŸãã åæ§ã«ãLinuxã®ããã»ã¹ãArduinoã¹ã±ããã®åäœã«åœ±é¿ããå Žåããã£ãŒãããã¯ãæŽçã§ããŸãïŒããã«ã€ããŠã¯ããã¯ãŒã¯ã·ã§ãããã®ç¬¬3éšã§è©³ãã説æããŸãïŒã
ããããããã ãã§ã¯ãããŸããã次ã®åºçç©ã§ã¯ãEclipseãš
mraaã䜿çšããŠIntel Galileoãããã°ã©ãã³ã°ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã¯ãŒã¯ã·ã§ããã®æåã®éšåãïŒ
Galileo Gen2-æåã®ç¥ãåã ã