ãã€ã³ã¿ãŒãããã¢ãŠãã¬ãããã®è£œé çµéšã«é¢ããèšäºãžã®ã³ã¡ã³ãã§ã 2ã€ã®ã³ã¡ã³ããç§ã®æ³šç®ãéããŸããã ãã®ãããªããšã¯æ¬è³ªçã«åœ¹ã«ç«ããªããšäž»åŒµãããã®ã¯ãç§ã«ã¯äžå ¬å¹³ã«æããŸãã-äŸãã°ãããããªãããŒãªå°ããªãã®ããªã¢ãŒãã§ããªã»ãããããå¿ èŠããã£ãããšãéåžžã«ããèŠããŠãããç§ã¯äžäººã§ã¯ãªããšæããŸãã ããããããšãã°TP-LINK TL-MR3020 + OpenWRTã䜿çšããããšã§ããã®ãããªåé¡ã解決ã§ãããšããèãã¯ç°¡åã§å®äŸ¡ã§ãã ãŸããããã€ã¹ãããã°ã©ãã³ã°ãããã³ãã€ã¯ãã³ã³ãããŒã©ãŒãåè§£ããã«å®è¡ããããšã決å®ããŸãããèŠããã«ããœãªã¥ãŒã·ã§ã³ãã§ããã ãã¢ã¯ã»ã¹ããããããããã§ãã ãããŠãã»ãšãã©æåããŸããïŒ
åºåããã€ã¹ãšããŠãéåžžã®USBããŒããŒãã䜿çšããŸãã ã¹ãŒããŒããŒã±ããã§ã°ãããäŸ¡æ Œã§å«ãªå質ã®ããŒããŒãã«åºäŒã£ããšããç§ã¯ãã€ãçåã«æã£ãŠããŸãã-ãªããããå¿ èŠãªã®ã§ããïŒ ã¯ããäœã®ããã«ïŒ ããŒããŒãã«ã¯3ã€ã®LEDãããããã®ããŒããŒãããµããŒãããããã€ã¹ããããã°ã©ã ã§å¶åŸ¡ã§ããŸãã LEDãå¶åŸ¡åè·¯ã«çœ®ãæãããšã3ã€ã®è² è·ãå¶åŸ¡ã§ããŸãã ããŸããšããŠ-å ¥åããã€ã¹ãšããŠäœ¿çšããããã®ããã€ã¹ã®ãããªãæ¹è¯ã®å¯èœæ§ã ãã¡ãããéããã¹ãºã¡ãæã€ããšããã€ã¯ãã³ã³ãããŒã©ãŒäžã§æãç°¡åãªããã€ã¹ãçµã¿ç«ãŠãïŒãŸãã¯è³Œå ¥ããïŒããšã¯ã§ããŸãããããã¯çŽãããªãå©ç¹ïŒå ¥å/åºåã®å¢å ãéåžžã®è«çã¬ãã«ãªã©ïŒãæã¡ãŸãã ãããããããŒããŒããã¢ãããŒãã«ã¯å©ç¹ããããŸããããã¯ãããã°ã©ããŒãæããªãMKã«äžæ £ããªäººã ãå©çšã§ããŸãã ä»ãããªãã¯ä»æ¥ãæ©èœããããã€ã¹ãæã«å ¥ããŠäœãããšãã§ããŸãã ããã«ã次ã®å©ç¹ããããŸãã
- ãã®ãœãªã¥ãŒã·ã§ã³ã¯ä»ã®ãã©ãããã©ãŒã ã«ç°¡åã«ç§»æ€ã§ããŸããç§ã¯ãã¹ãããŠããŸããããçè«çã«ã¯ãASUSããŸãã¯ãD-Linkãã«éã蟌ããããé ããã€ã³ã¿ãŒããããå¹³åçã«é åžã§ããŸãïŒUSBãããå ŽåïŒã
 - ã«ãŒã¿ãŒã¯æ¬æ¥ã®ç®çã«äœ¿çšã§ããŸãã
 - ã«ãŒã¿ãŒãåè§£ããŠåè·¯ã劚害ããå¿ èŠã¯ãããŸããïŒãããŠãTL-MR3020ã¯ãåè§£ããã®ã¯ç°¡åã§ã¯ãããŸããïŒã
 - ããã°ã©ãã³ã°ïŒå°ããªã·ã§ã«ã¹ã¯ãªãããšããŠã®ããã°ã©ã ãé€ãïŒãšã³ã³ãã€ã«ã¯å¿ èŠãããŸããã
 - ãã¹ãŠã®ã³ã³ããŒãã³ãã¯ã³ã³ãã¥ãŒã¿ãŒã¹ãã¢ã§è³Œå ¥ã§ããŸãïŒãLEDãç¹æ» ããããã ãã®å Žåãå®éã®å¶åŸ¡ã®ããã«äœ¿çšå¯èœãªç¡ç·ã³ã³ããŒãã³ããããã€ãè³Œå ¥ããå¿ èŠããããŸãïŒããç·ã³ã¹ãã¯1,500ã«ãŒãã«æªæºã§ãã
 
OpenWRTãé 眮ãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãæ§æããŸã
ãã®ã¹ãããã§ã¯ãå®éã«ã«ãŒã¿ãŒãå¿ èŠã§ãã ç§ã¯850rããããŸããã
openwrt.orgã®ã¢ãã«ããŒãžã«ã¯ãå æ¬çãªç¹æ» æé ãèšèŒãããŠããããã©ã³ã¯ã¹ãããã·ã§ããã䜿çšã§ããŸãã ç§èªèº«ã tiç ãªæ 床ã§ããŒã¿çã®å§¿å¢èª¿æŽ12.09ãè¡ãããšãææ¡ããŸãã ããã«ãå ¬éæç¹ã§ã¯ãopenwrt Webãµã€ãã§ã¹ãããã·ã§ããã¯å©çšã§ãããAA12.09ãã€ãã«å ¬éãããŸããã
  ã€ã³ã¹ããŒã«ã¯ãããã€ãã®åºæ¬æäœã§æ§æãããŸãã 
        
        
        
      
    
      - PCã®ãããã¯ãŒã¯æ¥ç¶ãèšå®ããŠãIPã¢ãã¬ã¹ãèªåçã«ååŸããã«ãŒã¿ãŒãã€ãŒãµãããã±ãŒãã«ã§æ¥ç¶ããŸãïŒç¹æ» åŸãWiFiã€ã³ã¿ãŒãã§ãŒã¹ã¯ç¡å¹ã«ãªããŸãïŒ
 - ã«ãŒã¿ãŒç®¡çããŒãžã«ãã°ã€ã³ããŸãïŒããã©ã«ãã¢ãã¬ã¹ã¯192.168.0.254ãŠãŒã¶ãŒïŒadminããã¹ã¯ãŒãïŒadminïŒ
 - [ã·ã¹ãã ããŒã«]> [ãã¡ãŒã ãŠã§ã¢ã¢ããã°ã¬ãŒã]ã¿ãã§ã以åã«ããŠã³ããŒããããã¡ãŒã ãŠã§ã¢ãéžæãã[ã¢ããã°ã¬ãŒã]ãã¯ãªãã¯ããŠãããŠã³ããŒãã€ã³ãžã±ãŒã¿ãŒã2å100ïŒ ã«éãããŸã§åŸ ã¡ãŸãã
 - OpenWRTãããã¯ãŒã¯ãã©ã¡ãŒã¿ã¯ããã©ã«ãã§TP-LINKã®ãã©ã¡ãŒã¿ãšã¯ç°ãªããããã€ã³ã¿ãŒãã§ã€ã¹ãååæåããæãç°¡åãªæ¹æ³ã¯ãã€ãŒãµãããã±ãŒãã«ãåæããŠåæ¥ç¶ããããšã§ãã
 - telnetïŒ192.168.1.1-ããã©ã«ãã§ã¯ãæ°é®®ãªãOpenWRTã®ã¢ãã¬ã¹ïŒçµç±ã§ã«ãŒã¿ãŒã«ã¢ã¯ã»ã¹ããpasswdã³ãã³ãã§ãã¹ã¯ãŒããèšå®ããŸã-ããã§ã«ãŒã¿ãŒã¯SSHçµç±ã§ã¢ã¯ã»ã¹ã§ããŸãïŒtelnetçµç±ã§ã¯ã¢ã¯ã»ã¹ã§ããŸããïŒã
 
远å ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããã«ã¯ãã€ã³ã¿ãŒãããçµç±ã§ãªããžããªã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸããããã«ã¯ãããŒã«ã«ãããã¯ãŒã¯ã¯ã©ã€ã¢ã³ããšããŠã®æ§æãå¿ èŠã§ãã
  äŸïŒ 
        192.168.1.xã»ã°ã¡ã³ãã§éçIPãæ§æããã«ã¯ãæ¬¡ã®æé ãå®è¡ããŸãã 
      
        
        
        
      
    
        
        
        
      
ããã§ã192.168.1.1ã¯ãããã¯ãŒã¯å ã®ã²ãŒããŠã§ã€ã¢ãã¬ã¹ã§ããã192.168.1.222ã¯æªäœ¿çšã®IPã§ãããããã¯ã¹ã«å²ãåœãŠãããŸãã uci changesã³ãã³ãã¯ãè¡ããããã¹ãŠã®å€æŽã衚瀺ããæ©èœãæäŸããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ãæ£ããæ§æãããŠããªãããã€ã¹ã¯ãå€éšããã¢ã¯ã»ã¹ã§ããªããããããŸã³ããã«ãªãããããã®å¯èœæ§ãç¡èŠããªãããã«ããŠããŸãã ãã¹ãŠåããã©ãã«ãçºçããå ŽåãOpenWRTã¯ããªã«ããªã¢ãŒãããæäŸããŸããããŒãäžãWPSãã¿ã³ãç¹æ» ãå§ãããããã«æŒãç¶ããŸã-MR3020ã¯ãããã¯ãŒã¯ã®ããã©ã«ãèšå®ã§èµ·åããŸãã
        
        
        
      
ãããã¯ãŒã¯ã§DHCPãå®è¡ãããŠããå Žåãèªåæ§æãèšå®ã§ããŸãã
        
        
        
      
    
        
        
        
      
2è¡ç®ã¯ãªãã·ã§ã³ã§ãããããã€ã¹ãèŠã€ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ãããã¯ãŒã¯ããµããŒãããŠããã°ãIPã§ã¯ãªããã¹ãåã§ããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã ãããã¯ãŒã¯äžã®ããã€ã¹ã®æ€çŽ¢ã100ïŒ åé¿ãããå Žåã¯ãéçæ§æã䜿çšããŸãã
        
        
        
      
TP-LINKã«çµã¿èŸŒãŸããŠããçµã¿èŸŒã¿ã®dhcpãµãŒããŒãç¡å¹ã«ããããšã圹ç«ã¡ãŸãã
        
        
        
      
    
        
        
        
      
ããã§ãããã¯ã¹ãã³ã³ãã¥ãŒã¿ãŒããåæãïŒãšã«ãããsshã»ãã·ã§ã³ã¯æåŸã®ã³ãã³ãã®åŸã§æ¢ã«çµäºããŠããŸãïŒãã«ãŒã¿ãŒãŸãã¯ã¹ã€ããã«æ¥ç¶ã§ããŸãã
        
        
        
      
    
uci set network.lan.proto=static uci set network.lan.ipaddr=192.168.1.222 uci set network.lan.netmask=255.255.255.0 uci set network.lan.gateway=192.168.1.1 uci set network.lan.dns=8.8.8.8 uci changes uci commit /etc/init.d/network restart
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      ããã§ã192.168.1.1ã¯ãããã¯ãŒã¯å ã®ã²ãŒããŠã§ã€ã¢ãã¬ã¹ã§ããã192.168.1.222ã¯æªäœ¿çšã®IPã§ãããããã¯ã¹ã«å²ãåœãŠãããŸãã uci changesã³ãã³ãã¯ãè¡ããããã¹ãŠã®å€æŽã衚瀺ããæ©èœãæäŸããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ãæ£ããæ§æãããŠããªãããã€ã¹ã¯ãå€éšããã¢ã¯ã»ã¹ã§ããªããããããŸã³ããã«ãªãããããã®å¯èœæ§ãç¡èŠããªãããã«ããŠããŸãã ãã¹ãŠåããã©ãã«ãçºçããå ŽåãOpenWRTã¯ããªã«ããªã¢ãŒãããæäŸããŸããããŒãäžãWPSãã¿ã³ãç¹æ» ãå§ãããããã«æŒãç¶ããŸã-MR3020ã¯ãããã¯ãŒã¯ã®ããã©ã«ãèšå®ã§èµ·åããŸãã
ãããã¯ãŒã¯ã§DHCPãå®è¡ãããŠããå Žåãèªåæ§æãèšå®ã§ããŸãã
 uci set network.lan.proto=dhcp uci set network.lan.hostname=etherelay uci commit /etc/init.d/network restart
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      2è¡ç®ã¯ãªãã·ã§ã³ã§ãããããã€ã¹ãèŠã€ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ãããã¯ãŒã¯ããµããŒãããŠããã°ãIPã§ã¯ãªããã¹ãåã§ããã€ã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã ãããã¯ãŒã¯äžã®ããã€ã¹ã®æ€çŽ¢ã100ïŒ åé¿ãããå Žåã¯ãéçæ§æã䜿çšããŸãã
TP-LINKã«çµã¿èŸŒãŸããŠããçµã¿èŸŒã¿ã®dhcpãµãŒããŒãç¡å¹ã«ããããšã圹ç«ã¡ãŸãã
 uci set dhcp.lan.ignore=1 uci commit /etc/init.d/dnsmasq restart
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      ããã§ãããã¯ã¹ãã³ã³ãã¥ãŒã¿ãŒããåæãïŒãšã«ãããsshã»ãã·ã§ã³ã¯æåŸã®ã³ãã³ãã®åŸã§æ¢ã«çµäºããŠããŸãïŒãã«ãŒã¿ãŒãŸãã¯ã¹ã€ããã«æ¥ç¶ã§ããŸãã
ããŒããŒãæ¥ç¶ãšLEDå¶åŸ¡ãã¹ã
H-WRT Webãµã€ãã¯ãããŒããŒãã®ã€ã³ã¹ããŒã«ã«å¿ èŠãªã®ã¯kmod-usb-hidã¢ãžã¥ãŒã«ã®ã¿ã§ããããšãéç¥ããŠããŸãã
ã€ã³ã¹ããŒã«ããŠãã ããïŒ
opkg update opkg install kmod-usb-hid
ããŒããŒããæ¥ç¶ããèªèããããã©ããã確èªããŸãã
 root@OpenWrt:~# dmesg | tail [ 66.380000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 68.780000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 71.180000] hub 1-0:1.0: connect-debounce failed, port 1 disabled root@OpenWrt:~#
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      æ®å¿µïŒ ããã¯ç§ãæåŸ ãããã®ãšã¯ãŸã£ããç°ãªããŸãã åé¡ã¯äœã§ããïŒ
åæ§ã®ãã°ã¬ããŒããããã«èŠã€ãããŸã-éçºè ã¯ã䜿çšãããŠãããããã»ããã®ããŒããŠã§ã¢å¶éã«ãã£ãŠãã®åäœã説æããŸãã ãªã³ããŒãã®USBããã¯äœéããã€ã¹ã«ã¯åããŠããªãããã§ãã çŸæç¹ã§ã¯ãZenã®ã¹ããªããã¯è·¡åœ¢ããªãèžçºããŸããããå€éšUSBãããä»ããŠããŒããŒããæ¥ç¶ããããšã§giveããã«åé¡ã解決ããããšããŸãã
 root@OpenWrt:~# dmesg | tail [ 143.120000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 143.270000] hub 1-1:1.0: USB hub found [ 143.270000] hub 1-1:1.0: 4 ports detected [ 143.580000] usb 1-1.2: new low-speed USB device number 3 using ehci-platform [ 143.730000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/input/input0 [ 143.730000] generic-usb 0003:040B:2000.0001: input: USB HID v1.10 Keyboard [Generic USB Keyboard] on usb-ehci-platform-1.2/input0 [ 143.770000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.1/input/input1 [ 143.780000] generic-usb 0003:040B:2000.0002: input: USB HID v1.10 Mouse [Generic USB Keyboard] on usb-ehci-platform-1.2/input1 root@OpenWrt
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      ã¯ããã«è¯ãã ãã®ãããèšäºã®åé ã§ãã»ãŒå®æããšåçã«ãæäŸæ¹æ³ããèšè¿°ããªããã°ãªããªãã£ããããGeneric USB KeyboardããèªââèããããšããŸãã ããŒããŒãäžã«ã¯åžžã«2ã€ã®ãããã€ã¹ããäœæãããŸããããã®ç¹å®ã®ããŒããŒããããŠã¹ãšãåŒã°ããçç±ãèããªãã§ãã ãã...ãšã«ããããããŒããŠã§ã¢Hello Worldãã§LEDããªã³ã«ããæºåãã§ããŠããŸãã
 cat /dev/input/event0 > /dev/null & printf "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x01\x00\x00\x00\x01" > /dev/input/event0
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      ããã§Caps Lock LEDãå³ããç¹ç¯ããã¯ãã§ãã ãã®äºå®ã«åçŽã«æºè¶³ããŠãã人ã¯ã次ã®ã¹ãããã«é²ãããšãã§ããŸãã äžèšã®ã©ã®ãããªåŠæ³åªæãäžããããŠããã®ãç¥ããã«å ã«é²ãããšãã§ããªã人ã¯ã
  æ··oticãšãã説æïŒ 
       ããŒããŒãïŒãŸãã¯å¥ã®å
¥åããã€ã¹ïŒã§çºçãããã¹ãŠã«ã€ããŠã察å¿ãããã¡ã€ã«ã«è¡šç€ºãããå
¥åã€ãã³ããçæãããŸãïŒãã®å Žå/ dev / input / event0ã§ãããããã¯ä»ã®å
¥åããã€ã¹ãæ¥ç¶ãããŠããªããšããäºå®ã®ããã®ç¹æ®ãªã±ãŒã¹ã§ãïŒã ã€ãã³ãã®æ§é ã¯ãããããŒãã¡ã€ã«input.hã§å®çŸ©ãããŠããŸãã 
      
        
        
        
      
    
        
        
        
      
typeã¯å ¥åèŠçŽ ã®ã¿ã€ãïŒããŒããŒããã¿ã³ãŸãã¯ããŠã¹/ãžã§ã€ã¹ãã£ãã¯ã®åããªã©ïŒã瀺ããcodeã¯åã¿ã€ãã«åºæã®èŠçŽ ã³ãŒãïŒããšãã°ãEV_KEYããŒããŒãã€ãã³ãã®ããŒçªå·ã¯ããã«éä¿¡ãããŸãïŒãããã³å€ã¯ããããçæããã广ãšå€§ããïŒããããµããŒãããããã€ã¹ã®å ŽåïŒã ããšãã°ãããŒããŒãã®QããŒãæŒããšã次ã®ããã«ãªããŸãã
        
        
        
      
    
        
        
        
      
ããã§ãæåã®8ãã€ãïŒ505b 0ed9 000 * ****ïŒã¯ã€ãã³ãã®æéã§ãããæ¬¡ã®2ãã€ãïŒ0001ïŒã¯ã€ãã³ãã®ã¿ã€ãïŒEV_KEYïŒã次ã«ããŒçªå·ã®2ãã€ãïŒ0010ïŒã§ããããã¯è±æ°åããŒã®ã¹ãã£ã³ã³ãŒãã«å¯Ÿå¿ããŸããšããã§ãããªã¥ãŒã ã³ã³ãããŒã«ãåçã³ã³ãããŒã«ãªã©ã®ããã³ããããŒãæŒããš ããŒããŒãçšã«äœæããã2çªç®ã®ãã³ãã©ãŒïŒãã®å Žå/ dev / input / event1ïŒã«éä¿¡ãããŸãã èªåãªããŒãã€ãã³ãã¯çæãããŸãããããã¯éåžžã«äŸ¿å©ã§ããå ¥åã§åäœããããã€ã¹ã®ãããŒãã¹ãæ©èœã«ã€ããŠæžããããšãæãåºããŠãã ããã æåŸã®4ãã€ãïŒ0000 0001ãŸãã¯0000 0000ïŒã¯ããããããã¬ã¹ãŸãã¯ãªãªãŒã¹ãçºçããããšã瀺ããŸãã ãŒãã§æ§æããããã±ããã¯ç¹å¥ãªåé¢ã€ãã³ãEV_SYNã§ãããã¿ã€ã4ã®ã€ãã³ããå¿ èŠãªçç±ã¯ããããŸããã ã¿ã€ããšã³ãŒãã®å®çŸ©ã¯åãinput.hã§äžããããŠããã®ããã¥ã¡ã³ãã§ãã詳现ã«èª¬æãããŸã ã ãã®åŸã楜ãã¿ãå§ãŸããŸãã ã»ãšãã©ã®ã€ãã³ãã¯ããã€ã¹ãããŠãŒã¶ãŒç©ºéã«éä¿¡ãããŸãããäžéšã®ã€ãã³ãã¯å察æ¹åã«é²ãå¯èœæ§ããããŸãã ããã¯ãäŸãã°ãååãžã§ã€ã¹ãã£ãã¯ãŸãã¯ïŒta-damïŒïŒLEDããµããŒãããããã«è¡ãããŸãã ã€ãŸããã¿ã€ãEV_LEDãLED_CAPSLã³ãŒããããã³1ã/ dev / event / input0ã®å€ã§ã€ãã³ããæžã蟌ããšãããŒããŒãã«Caps Lock LEDãç¹ç¯ããããã«åœä»€ããŸãã Brad Hardsã Linux USBå ¥åãµãã·ã¹ãã ãããã³å ¥åãµãã·ã¹ãã ã® äœ¿çš ïŒLEDãå¶åŸ¡ããããã®ãµã³ãã«ã³ãŒããå«ããŠæåã®èšäºããç¶ãïŒã§ã¯ãå ¥åããã€ã¹ãç¹ã«USBã®æäœã«ã€ããŠããªã詳ãã説æããŠããŸãã åé¡ããã§ã«å®éšçã«è§£æ±ºãããŠããã®ã§ãããããé ãããããšã«æ°ä»ããã®ã¯æ®å¿µã§ãã ãšããã§ãç§ã¯éåžžã«å¹žéã§ãã-ææ°ã®ã¹ãããã·ã§ãããšããŒã¿12.09ã«ã¯1ã€ã®æ©èœããããããã€ã¹ãã¡ã€ã«ãåžžã«èªã¿èŸŒãŸããªããšã€ãã³ãã®éä¿¡ãäžå®å®ã«ãªãã®ã§ãã ãããããŒã ã®ç®çã§ã
        
        
        
      
    
  struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; };
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      typeã¯å ¥åèŠçŽ ã®ã¿ã€ãïŒããŒããŒããã¿ã³ãŸãã¯ããŠã¹/ãžã§ã€ã¹ãã£ãã¯ã®åããªã©ïŒã瀺ããcodeã¯åã¿ã€ãã«åºæã®èŠçŽ ã³ãŒãïŒããšãã°ãEV_KEYããŒããŒãã€ãã³ãã®ããŒçªå·ã¯ããã«éä¿¡ãããŸãïŒãããã³å€ã¯ããããçæããã广ãšå€§ããïŒããããµããŒãããããã€ã¹ã®å ŽåïŒã ããšãã°ãããŒããŒãã®QããŒãæŒããšã次ã®ããã«ãªããŸãã
 root@OpenWrt:~# cat /dev/input/event0 | hexdump 0000000 505b 0ed9 0009 6bdd 0004 0004 0007 0014 0000010 505b 0ed9 0009 6be6 0001 0010 0000 0001 0000020 505b 0ed9 0009 6bec 0000 0000 0000 0000 0000030 505b 0ed9 000a 2756 0004 0004 0007 0014 0000040 505b 0ed9 000a 275e 0001 0010 0000 0000 0000050 505b 0ed9 000a 2762 0000 0000 0000 0000
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      ããã§ãæåã®8ãã€ãïŒ505b 0ed9 000 * ****ïŒã¯ã€ãã³ãã®æéã§ãããæ¬¡ã®2ãã€ãïŒ0001ïŒã¯ã€ãã³ãã®ã¿ã€ãïŒEV_KEYïŒã次ã«ããŒçªå·ã®2ãã€ãïŒ0010ïŒã§ããããã¯è±æ°åããŒã®ã¹ãã£ã³ã³ãŒãã«å¯Ÿå¿ããŸããšããã§ãããªã¥ãŒã ã³ã³ãããŒã«ãåçã³ã³ãããŒã«ãªã©ã®ããã³ããããŒãæŒããš ããŒããŒãçšã«äœæããã2çªç®ã®ãã³ãã©ãŒïŒãã®å Žå/ dev / input / event1ïŒã«éä¿¡ãããŸãã èªåãªããŒãã€ãã³ãã¯çæãããŸãããããã¯éåžžã«äŸ¿å©ã§ããå ¥åã§åäœããããã€ã¹ã®ãããŒãã¹ãæ©èœã«ã€ããŠæžããããšãæãåºããŠãã ããã æåŸã®4ãã€ãïŒ0000 0001ãŸãã¯0000 0000ïŒã¯ããããããã¬ã¹ãŸãã¯ãªãªãŒã¹ãçºçããããšã瀺ããŸãã ãŒãã§æ§æããããã±ããã¯ç¹å¥ãªåé¢ã€ãã³ãEV_SYNã§ãããã¿ã€ã4ã®ã€ãã³ããå¿ èŠãªçç±ã¯ããããŸããã ã¿ã€ããšã³ãŒãã®å®çŸ©ã¯åãinput.hã§äžããããŠããã®ããã¥ã¡ã³ãã§ãã詳现ã«èª¬æãããŸã ã ãã®åŸã楜ãã¿ãå§ãŸããŸãã ã»ãšãã©ã®ã€ãã³ãã¯ããã€ã¹ãããŠãŒã¶ãŒç©ºéã«éä¿¡ãããŸãããäžéšã®ã€ãã³ãã¯å察æ¹åã«é²ãå¯èœæ§ããããŸãã ããã¯ãäŸãã°ãååãžã§ã€ã¹ãã£ãã¯ãŸãã¯ïŒta-damïŒïŒLEDããµããŒãããããã«è¡ãããŸãã ã€ãŸããã¿ã€ãEV_LEDãLED_CAPSLã³ãŒããããã³1ã/ dev / event / input0ã®å€ã§ã€ãã³ããæžã蟌ããšãããŒããŒãã«Caps Lock LEDãç¹ç¯ããããã«åœä»€ããŸãã Brad Hardsã Linux USBå ¥åãµãã·ã¹ãã ãããã³å ¥åãµãã·ã¹ãã ã® äœ¿çš ïŒLEDãå¶åŸ¡ããããã®ãµã³ãã«ã³ãŒããå«ããŠæåã®èšäºããç¶ãïŒã§ã¯ãå ¥åããã€ã¹ãç¹ã«USBã®æäœã«ã€ããŠããªã詳ãã説æããŠããŸãã åé¡ããã§ã«å®éšçã«è§£æ±ºãããŠããã®ã§ãããããé ãããããšã«æ°ä»ããã®ã¯æ®å¿µã§ãã ãšããã§ãç§ã¯éåžžã«å¹žéã§ãã-ææ°ã®ã¹ãããã·ã§ãããšããŒã¿12.09ã«ã¯1ã€ã®æ©èœããããããã€ã¹ãã¡ã€ã«ãåžžã«èªã¿èŸŒãŸããªããšã€ãã³ãã®éä¿¡ãäžå®å®ã«ãªãã®ã§ãã ãããããŒã ã®ç®çã§ã
æåã«ãr31214ãã¡ãŒã ãŠã§ã¢ã§å®éšããŸãããããã®ãããªæ©èœã¯ãããŸããã§ããã®ã§ãããã«LEDãç¹ç¯ããŸããããããèµ·ãããªããã°ãé·ã鿣ããéãæ¢ããŠããã§ããããcat /dev/input/event0 > /dev/null &
ã¹ã¯ãªãã
LEDã®ç®¡çãèªååããã«ã¯ãã¹ã¯ãªãããå¿ èŠã§ãã æ¬¡ã®ã¹ãããã§ããããHTTPã§ãã©ãã·ã¥ããããã«ãããã«/ www / cgi-binãã©ã«ããŒã«å ¥ããŸãïŒ
 cd /www mkdir cgi-bin cd cgi-bin wget http://etherelay.googlecode.com/files/ctlrelay chmod +x ctlrelay
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
        ãã®ããã¹ããšèª¬æã¯æ¬¡ã®ãšããã§ãã 
        
        
        
      
ç§ãèšã£ãããã«ã宿°EV_LEDãLED_NUMLãLED_CAPSLãLED_SCROLLLã¯input.hã§å®çŸ©ãããŠããŸã ã æéã¯æ°ã«ããŸãã-ãŒãã§æã¡ãŸãã ãã¡ãããåä¿¡ããã³ãã³ãã«åºã¥ããŠãªã³ã¶ãã©ã€ã§ãã€ãã³ãããäœæããã¹ã€ããã«äºåã«å ¥åããããã³ãã¬ãŒããéä¿¡ããã ãã§ãªããã³ãŒãã¯ããã³ã³ãã¯ãã«ãªããŸãããäž»ãªã¢ã€ãã¢ã¯ããæç¢ºã§ããããã«æãããŸããã æžã蟌ã¿äžã«ã€ãã³ããã¡ã€ã«ãèªã¿åãå¿ èŠããããŸãããããããæªåé«ãæŸèæãåºãŠããŸããã ç¹°ãè¿ããŸãããããã¯ä»¥åã®ã¢ã»ã³ããªã«ã¯å¿ èŠãããŸããã§ããããå°æ¥çã«ã¯ããããå¿ èŠãªããªãã§ãããã ãããä»ã®ãšãããææ ¢ããå¿ èŠããããŸãã æåŸã®ãã©ã°ã¡ã³ãã¯ã次ã®ãããª1è¡ã§æ§æãããLEDã®çŸåšã®ç¶æ ã®ãã¡ã€ã«ã倿ŽããŸãã
        
        
        
      
    
       #!/bin/sh KB_LEDS=/dev/input/event0 EV_LED="\x00\x11" LED_NUML="\x00\x00" LED_CAPSL="\x00\x01" LED_SCROLLL="\x00\x02" TURN_ON="\x00\x00\x00\x01" TURN_OFF="\x00\x00\x00\x00" DT_DUMMY="\x00\x00\x00\x00\x00\x00\x00\x00" # 16-       NUM_ON=$DT_DUMMY$EV_LED$LED_NUML$TURN_ON NUM_OFF=$DT_DUMMY$EV_LED$LED_NUML$TURN_OFF CAPS_ON=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_ON CAPS_OFF=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_OFF SCROLL_ON=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_ON SCROLL_OFF=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_OFF #"",        if ! ps | grep -qe "[c]at $KB_LEDS"; then cat $KB_LEDS > /dev/null & fi #   "" command GET- #   -      if [ -z "$QUERY_STRING" ]; then COMMAND=$1; else COMMAND=`echo "$QUERY_STRING" | sed -n 's/^.*command=\([^&]*\).*$/\1/p'` printf "Content-type: text/plain\r\n\r\n" fi #     case $COMMAND in num_on) printf $NUM_ON > $KB_LEDS;; num_off) printf $NUM_OFF > $KB_LEDS;; caps_on) printf caps_on > /var/rrr printf $CAPS_ON > $KB_LEDS;; caps_off) printf caps_off > /var/rrr printf $CAPS_OFF > $KB_LEDS;; scroll_on) printf $SCROLL_ON > $KB_LEDS;; scroll_off) printf $SCROLL_OFF > $KB_LEDS;; num_pulse) printf $NUM_ON > $KB_LEDS sleep 1 printf $NUM_OFF > $KB_LEDS ;; caps_pulse) printf $CAPS_ON > $KB_LEDS sleep 1 printf $CAPS_OFF > $KB_LEDS ;; scroll_pulse) printf $SCROLL_ON > $KB_LEDS sleep 1 printf $SCROLL_OFF > $KB_LEDS ;; *) WRONG_ARG=1;; esac #       if [ -z $WRONG_ARG ] then STATE_FILE=/var/ledstate DEFAULT_STATE={\"num\":false,\"caps\":false,\"scroll\":false} if ! [ -e $STATE_FILE ]; then echo $DEFAULT_STATE > $STATE_FILE; fi AFFECTED_LED=`echo $COMMAND | sed -r -e 's/_[az]+$//'` NEW_STATE=`echo $COMMAND | sed -r -e 's/^[az]+_//' -e 's/on/true/' -e 's/off|pulse/false/'` sed -i -r 's/"'"$AFFECTED_LED"'":[az]+/"'"$AFFECTED_LED"'":'"$NEW_STATE"'/' $STATE_FILE fi
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      ç§ãèšã£ãããã«ã宿°EV_LEDãLED_NUMLãLED_CAPSLãLED_SCROLLLã¯input.hã§å®çŸ©ãããŠããŸã ã æéã¯æ°ã«ããŸãã-ãŒãã§æã¡ãŸãã ãã¡ãããåä¿¡ããã³ãã³ãã«åºã¥ããŠãªã³ã¶ãã©ã€ã§ãã€ãã³ãããäœæããã¹ã€ããã«äºåã«å ¥åããããã³ãã¬ãŒããéä¿¡ããã ãã§ãªããã³ãŒãã¯ããã³ã³ãã¯ãã«ãªããŸãããäž»ãªã¢ã€ãã¢ã¯ããæç¢ºã§ããããã«æãããŸããã æžã蟌ã¿äžã«ã€ãã³ããã¡ã€ã«ãèªã¿åãå¿ èŠããããŸãããããããæªåé«ãæŸèæãåºãŠããŸããã ç¹°ãè¿ããŸãããããã¯ä»¥åã®ã¢ã»ã³ããªã«ã¯å¿ èŠãããŸããã§ããããå°æ¥çã«ã¯ããããå¿ èŠãªããªãã§ãããã ãããä»ã®ãšãããææ ¢ããå¿ èŠããããŸãã æåŸã®ãã©ã°ã¡ã³ãã¯ã次ã®ãããª1è¡ã§æ§æãããLEDã®çŸåšã®ç¶æ ã®ãã¡ã€ã«ã倿ŽããŸãã
  {ãnumãïŒtrueããcapsãïŒfalseããscrollãïŒfalse}  ãã®ãããªãã¡ã€ã«ããªãå Žåããã¹ãŠã®åœã®å€ã§äœæãããŸãã  OpenWRTã§ã¯ããã£ã¬ã¯ããª/ var /ã¯RAMã«ãããŸããããã¯ããã¹ãŠã®LEDããªãã®å Žåãåèµ·åã®ãã³ã«ãã¡ã€ã«ãäœæãããããšãæå³ããŸãã å±
å¿å°ã®è¯ãå°ããªã¹ããŒã ïŒ  HTTPãªã¯ãšã¹ããããã©ã¡ãŒã¿ãŒãååŸããæ¹æ³ãããã§èªã¿ãŸã ïŒããªãåã«èªã¿ãŸãããããªã³ã¯ãã³ãŒãè¡ã ãã§ä¿åããŸããã§ããããããã§ã¯éåžžã«ãã䌌ãŠããŸãïŒã  CGIçµç±ã§åŒã³åºãããå Žåãã¹ã¯ãªããã¯ãContent-typeïŒtext / plainãã衚瀺ããŸãããã以å€ã®å Žåãã¯ãšãªçµæã¯200ïŒOKïŒã§ã¯ãªã502ïŒBad GatewayïŒã«ãªããèŽåœçã§ã¯ãªããããã§ãã 
      ããã§ãLEDã®å¶åŸ¡ãç°¡åã«ãªããŸããã ããšãã°ããScroll LockãLEDããªã³ã«ããã«ã¯ã次ã®ããã«èšè¿°ããŸãã
./ctlrelay scroll_on
ãªãã«ããïŒ
./ctlrelay scroll_off
ç¹æ» ããããšãã§ããŸãïŒscroll_pulseïŒã å€ãã®äººãå°æ¬ããŠããããã«ãã¢ãã³ãã¢ã¬ã«ã¯ã«ã¯ãã§ã«å€ãã®äººã«ããèšã£ãŠããŸãã ããã¯ãšãŠã楜ããã§ãïŒã ããã§ããæ¬¡ã®æ®µéã«é²ãã§äœæããŠã¿ãŸããã...
Webã€ã³ã¿ãŒãã§ãŒã¹
WebãµãŒããŒãªãã®Webã€ã³ã¿ãŒãã§ã€ã¹ãšã¯äœã§ããïŒ ãã®å¯çšæ§ã確èªããŸãã
opkg status uhttpd
åºåã«StatusïŒinstall user installedãšããè¡ãå«ãŸããŠããå ŽåïŒããã³Attitude Adjustment 12.09 betaã䜿çšããå Žåã¯ãããªããŸãïŒããµãŒããŒã¯æ¢ã«ã€ã³ã¹ããŒã«ãããŠããŸãã ãã以å€ã®å Žåã¯ãã€ã³ã¹ããŒã«ããŠèµ·åãæ§æããŸãã
 opkg update opkg install uhttpd /etc/init.d/uhttpd enable /etc/init.d/uhttpd start
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
        次ã«ãWebããŒãžãå¿
èŠã§ãã 
        
        
        
      
æåã¯JQuery.getïŒïŒã䜿çšãããã£ãã®ã§ãããGETãªã¯ãšã¹ããæ°åè¡ãããã«JQueryã䜿çšããå¿ èŠã¯ãªãããšãããããŸããã 2ã€ã®JavaScript颿°ããããŸãã æåã®ã³ãã³ãïŒã¢ã¯ã·ã§ã³ïŒã¯ã¹ã¯ãªãããå®è¡ããGETãªã¯ãšã¹ãã®ãã³ãã³ãããã©ã¡ãŒã¿ãŒã«ãã³ãã³ãããæž¡ããŸãã ã³ã³ãããŒã«ã®onclickã€ãã³ãã§å®çŸ©ãããŠãããã®ã ããã¯éåžžã«ãšã¬ã¬ã³ãã§ã¯ãªãããšã¯ééããããŸãããããã¹ãŠãã©ã®ããã«æ©èœãããã«ã€ããŠã®è¯ãã¢ã€ãã¢ãæäŸããŸãã 2çªç®ã®é¢æ°get_statusïŒïŒã¯ ã onloadã€ãã³ãã«ãã£ãŠããªã¬ãŒãããLEDã®çŸåšã®ç¶æ ïŒã¹ã¯ãªããã®æåŸã«åœ¢æããããã®ïŒããã¡ã€ã«ã«èŠæ±ããããŒãžã³ã³ãããŒã«ã«åæ ããŸãã ä¿¡ããããªãã»ã©ã®å¶ç¶ã«ãããç¶æ ãã¡ã€ã«ã¯é£æ³é åã®JSON衚çŸã§ããã JSON.parseïŒïŒã䜿çšããŠããŒã¿ã«éåžžã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã 0.5ç§ããšã«ãªã¯ãšã¹ããç¹°ãè¿ãããšã«ãããå¥ã®ã¯ã©ã€ã¢ã³ãããè¡ãããç¶æ ã®å€åã远跡ã§ããŸãã url fuie = Math.randomïŒïŒãžã®è¿œå 㯠ãã¢ãã¬ã¹ãæ¯åäžæã«ãªãããã«å¿ èŠã§ã-ãã©ãŠã¶ãŒã¯ãããŒãžãæ¢ã«ãã£ãã·ã¥ã«ããããšãèæ ®ããŠãããŒãžã®èŠæ±ãæåŠã§ããªããªããŸãã 倿°ã®ååããæšæž¬ã§ããããã«ãInternet Explorerã¯ç¹ã«ãã®åäœãèµ·ãããããã§ãã
        
        
        
      
    
       <!DOCTYPE html> <html> <head> <title>Relay control</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript"> function command(action) { url="/cgi-bin/ctlrelay?command="+action; url=url+"&fuie=" + Math.random(); var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET",url,false); xmlhttp.send(); } function get_status() { var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { ledstate = JSON.parse(xmlhttp.responseText) for (led in ledstate) { document.getElementById(led).checked=ledstate[led] } } } xmlhttp.open("GET","/ledstate?fuie="+ Math.random(),false); xmlhttp.send(); setTimeout("get_status()",500); } </script> </head> <body onload="get_status()"> <div class="controls"> <div class="control"> <label for="scroll">Scroll Lock LED</label> <input id="scroll" type="checkbox" onclick="if (this.checked) command ('scroll_on'); else command ('scroll_off')"> </div> <div class="control"> <label for="caps">Caps Lock LED</label> <input id="caps" type="checkbox" onclick="if (this.checked) command ('caps_on'); else command ('caps_off')"> </div> <div class="control"> <label for="num">Num Lock LED</label> <button id="num" type="button" onclick="command('num_pulse')">1s blink</button> </div> </div> </body> </html>
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      æåã¯JQuery.getïŒïŒã䜿çšãããã£ãã®ã§ãããGETãªã¯ãšã¹ããæ°åè¡ãããã«JQueryã䜿çšããå¿ èŠã¯ãªãããšãããããŸããã 2ã€ã®JavaScript颿°ããããŸãã æåã®ã³ãã³ãïŒã¢ã¯ã·ã§ã³ïŒã¯ã¹ã¯ãªãããå®è¡ããGETãªã¯ãšã¹ãã®ãã³ãã³ãããã©ã¡ãŒã¿ãŒã«ãã³ãã³ãããæž¡ããŸãã ã³ã³ãããŒã«ã®onclickã€ãã³ãã§å®çŸ©ãããŠãããã®ã ããã¯éåžžã«ãšã¬ã¬ã³ãã§ã¯ãªãããšã¯ééããããŸãããããã¹ãŠãã©ã®ããã«æ©èœãããã«ã€ããŠã®è¯ãã¢ã€ãã¢ãæäŸããŸãã 2çªç®ã®é¢æ°get_statusïŒïŒã¯ ã onloadã€ãã³ãã«ãã£ãŠããªã¬ãŒãããLEDã®çŸåšã®ç¶æ ïŒã¹ã¯ãªããã®æåŸã«åœ¢æããããã®ïŒããã¡ã€ã«ã«èŠæ±ããããŒãžã³ã³ãããŒã«ã«åæ ããŸãã ä¿¡ããããªãã»ã©ã®å¶ç¶ã«ãããç¶æ ãã¡ã€ã«ã¯é£æ³é åã®JSON衚çŸã§ããã JSON.parseïŒïŒã䜿çšããŠããŒã¿ã«éåžžã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã 0.5ç§ããšã«ãªã¯ãšã¹ããç¹°ãè¿ãããšã«ãããå¥ã®ã¯ã©ã€ã¢ã³ãããè¡ãããç¶æ ã®å€åã远跡ã§ããŸãã url fuie = Math.randomïŒïŒãžã®è¿œå 㯠ãã¢ãã¬ã¹ãæ¯åäžæã«ãªãããã«å¿ èŠã§ã-ãã©ãŠã¶ãŒã¯ãããŒãžãæ¢ã«ãã£ãã·ã¥ã«ããããšãèæ ®ããŠãããŒãžã®èŠæ±ãæåŠã§ããªããªããŸãã 倿°ã®ååããæšæž¬ã§ããããã«ãInternet Explorerã¯ç¹ã«ãã®åäœãèµ·ãããããã§ãã
å°ããªãã¥ã¢ã³ã¹-ãã©ãŠã¶ãŒã¯ãã¡ãããµãŒããŒäžã®/ varãã©ã«ããŒã«ã¢ã¯ã»ã¹ã§ããªããããã·ã³ããªãã¯ãªã³ã¯ã䜿çšããŠãå°éãããå Žæããledstateãã¡ã€ã«ãèªã¿åãæ©äŒãäžããŸãã
ln -s /var/ledstate /www/ledstate
ãã®ããŒãžãããŠã³ããŒãããããã®ãªã³ã¯ã¯ããããã«å€æŽãããŠããŸãããèšäºã®ã»ãŒæåŸã«ãããŸãã ããã§ãããŒããŒãã®LEDãç¹æ» ãããŠããã§ãã¯ããã¯ã¹ãã€ã€ãããšãã§ããŸãã ããããç¹æ» ããLEDãä»ã§ã¯èª°ãé©ããªããšããäºå®ãèæ ®ããŠããªããŠããå®çšçãªèгç¹ããã¯çµ¶å¯Ÿã«åœ¹ã«ç«ããªãããšã«åæããå¿ èŠããããŸãã ãããã£ãŠãéã«åãããããŸãããïŒ
ã¹ããŒã
ããŒããŒãããã§ã«åè§£ããŠãããŒããåãå€ãããšãã§ããŸãã
      ããŒããŒãLEDã¹ã€ããã³ã°åè·¯ããæ¬¡ã®ïŒéåžžã«åçŽåãããïŒã¢ãã«ïŒãªã³ç¶æ ã®å ŽåïŒã§ç€ºããŸãã
      å³1.ããŒããŒãLEDããªã³ã«ãã
ããã¿ãã»ã°ã¡ã³ãã®3ã€ã®ãã¹ãæžã¿ãã¯ã©ããã«ã¯ãLEDãå«ãŸããŠããã ãã§ã黿µã®ã¿ãç°ãªããŸããéåžžã¯çŽ18mAã§ãããæã«ã¯3mAã§ãã ä»ã®ã¹ããŒã ãå¯èœã§ããããšã«çæããå¿ èŠããããŸãã
æãç°¡åãªã®ã¯ãå°ããªé»å§ãšé»æµãåãæ¿ããå¿ èŠãããå Žåã§ãïŒããã€ã¹ã®ãªã¢ãŒãããªã»ããããŸãã¯ä»ã®ãã¿ã³/ããžãã¯ä¿¡å·ã®ãšãã¥ã¬ãŒã·ã§ã³ïŒã éåžžã®ãªããã«ãã©ãŒã§ã§ããŸãïŒ
      ã¹ããŒã 2.è«çä¿¡å·ã®åœ¢æ
ãããã¯ãŒã¯ããã®é»åã§ããã€ã¹ãå¶åŸ¡ããã«ã¯ããœãªããã¹ããŒããªã¬ãŒã䜿çšããŸãã
      å³3.ãœãªããã¹ããŒããªã¬ãŒå¶åŸ¡
170ã«ãŒãã«ã®äŸ¡æ Œã®ãããç§ã¯åœå ã®ãªã¬ãŒK293KP13Pã䜿çšããŸããã èšèšãããŠããè² è·ã®æå€§é»æµã¯1Aã§ãã å¶åŸ¡LEDãæµãã黿µã¯ã䜿çšãããªã¬ãŒã®ã¿ã€ãã®æå°å€ïŒããã¥ã¡ã³ããŒã·ã§ã³ã§ã¯I F minã§ç€ºãããŸãïŒããäœãããªãã§ãã ããã ããŒããŒãããŒãã®é»æµãå°ãªãå ŽåïŒLEDã®1ã€ã®åºåããªãã«ããã®ã£ããå ã®é»æµã枬å®ããå ŽåïŒã远å ã®ãã©ã³ãžã¹ã¿ã¹ã€ããã圹ç«ã¡ãŸãã
      ã¹ããŒã 4.ããŒãä»ãããœãªããã¹ããŒããªã¬ãŒã®æ¥ç¶
é»å§ã§å¶åŸ¡ããããœãªããã¹ããŒããªã¬ãŒãŸãã¯ãå€å žçãªã黿°æ©æ¢°åŒãªã¬ãŒã䜿çšãããå Žåã圌ã¯ç¯çŽããŸãã
      ã¹ããŒã 5.黿°æ©æ¢°åŒãªã¬ãŒå¶åŸ¡
ãœãªããã¹ããŒããªã¬ãŒã¯éåžžã«é«äŸ¡ã§ããããã匷åãªã»ã©é«äŸ¡ã§ãã åŸæ¥ã®ãªã¬ãŒã¯ãããå€ãã®ãã«ãŒãã«ãããã®ã¢ã³ãã¢ããäžããŸãããæ¬ ç¹ããããŸãã ãã®äžã«ã¯ããªã³ç¶æ ã§ã®å€§ããªé»æµæ¶è²»ããããŸãã å³ãšåãã¢ãã«ã®3ã€ã®ãªã¬ãŒãåæã«ãªã³ã«ãããšãUSBããæ¶è²»ããã黿µã¯ã»ãŒ300 mAã«ãªããŸãã ããŒããããŸãããã«ã¯ãããããªãå Žåã¯ããšããã¿ãŒïŒå³ã®ç Žç·ïŒã§ã¯ãªããç¬ç«ãããœãŒã¹ã«ãšããã¿ãŒãæ¥ç¶ããŸãã
ã¹ããŒã 4ãš5ã¯ããã¡ããããå ±éã¢ããŒããïŒããŒãã®ã¢ããŒããã€ãªãŒããšããã©ã¹ãã®éã®æµæããã§ãã¯ããŸã-0ãªãŒã ã§ãªããã°ãªããŸããïŒã®ã¹ããŒã ã«åŸã£ãŠLEDããªã³ã«ãªã£ãŠããããŒããŒãã§ã®ã¿åäœããŸãã ããã«ç ©ããããããªãå Žåã¯ãããŒã®ä»£ããã«äœé»åã®å ãªã¬ãŒã䜿çšã§ããŸãã éåžžã®LEDã®ä»£ããã«ç¹ç¯ããLEDããšã«5ã25 mAã®é»æµã§åäœããŸããã€ãŸãã99ïŒ ã®ç¢ºçã§ãã¹ãŠã®ããŒããŒããªãã·ã§ã³ã«é©ããŠããŸãã æå€§60 Vã®é»å§ãšæå€§300 mAã®é»æµãåãæ¿ããå¿ èŠãããå Žåã¯ããªã¬ãŒãåãå€ããŠãå ãªã¬ãŒãçŽæ¥äœ¿çšã§ããŸãã
      ã¹ããŒã 6.ãªãããªã¬ãŒã䜿çšãã黿°æ©æ¢°åŒãªã¬ãŒã®å¶åŸ¡
  ã¹ããŒã ãšãã®å®è£
ã«ã¯å€ãã®åçŽåããããŸãïŒ 
 åžžã«èæ
®ãã¹ãããšã¯ãèŠçŽ ã®é»æ°çå®å
šæ§ã§ãã ãã¹ãããã€ã¹ïŒ ç¹ã«ãããããé
ç·ã®ã©ããã«ã¶ãäžããããããŒãã«ã®ãžã£ã³ã¯ããªã³ã«ãªã£ããšãã«å¿ããããå¯èœæ§ã®ãããã¹ãããã€ã¹ïŒã§ããããããã¯ãŒã¯æ¥ç¶ãæäŸããå Žåã誀ã£ãп޻ç·éšã«è§Šããããšããä¿è·ããå¿
èŠããããŸãã ããããªããšã絶察ã«å®éã®é»æµãæµããå¯èœæ§ããããŸãã 
       åè·¯ã«ãã¥ãŒãºã远å ããããšããå§ãããŸãã åè·¯5ã®ãã©ã³ãžã¹ã¿ã¯ãã»ãŒæå€§ã®ã³ã¬ã¯ã¿é»æµã§åäœããŸããããªãã黿µãå°ããããããå°ãªããšããã匷åãªãã©ã³ãžã¹ã¿ã䜿çšããããšããå§ãããŸãã ãœãªããã¹ããŒããªã¬ãŒã®åºåã§ãã¢ãŒã¿ãŒãŸãã¯ä»ã®èªå°è² è·ã§äœæ¥ããå Žåããã³ãã³ã°RCåè·¯ãé
眮ããå¿
èŠããããŸãã ã³ã³ããŒãã³ãã¯ãæãè¿ãïŒç§ã«ãšã£ãŠïŒéåžžã«é«äŸ¡ãªã©ãžãªã¹ãã¢ã§ã®å¯çšæ§ãšäŸ¡æ Œã®åºæºã«ãã£ãŠã®ã¿éžæãããŸãã-éžæè¢ãããå Žåã¯ãéåžžã®å£²ãæããåºãç¯å²ã®IFã§ææã®é»æµã®ããœãªããããã£ããéžæããã¹ã€ããã³ã°ã§è³ªåãéããŸãã ããã«ãæç€ºãããã¹ã€ããã³ã°ã¢ãã«ã¯äžæ£ç¢ºã§ããããŒããŒãããŒãã¯ãã¢ããŒãã§2.5 V以äžã®é»å§ã§ã®ã¿ãLEDãã«å¯ŸããŠé»æµæºãšããŠåäœããŸãâå¯èœã§ããã°ã亀æãããLEDãšåæ§ã®é»å§éäžã確ä¿ããããšããŸãããå§å¡äŒã¯ä»£æ¿ããæããªãã£ããã 
      
        
        
        
      
    
ãªãã·ã§ã³3ãš6ããã¬ããããŒãã§åéããŸããããæ¬¡ã®ããã«ãªããŸããã
      ããã¯ãæŠå¿µå®èšŒãã«ä»ãªããªããšããäºå®ã«ãããããããç§èªèº«ã®åé¯ããè§£éã§ã¯ããããå°ãªããšãå°ãã®ãçŸããããããããšãæãã§ããã ãããã¯ä»ã®æä»£ã§ããå€èŠ³ã¯æ©èœçè² è·ä»¥äžã«ããããŠæã«ã¯çç±ãªãè©äŸ¡ãããŸãã ããã¯ç§ãã¡ãæ¬¡ã®æ®µéã«å°ããŸãã
åç²§åãšãã¢ã³ã¹ãã¬ãŒã·ã§ã³
HTMLãã-ããã¡ãŒãã«ããšã®ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ãã¬ã©ã¹ç¶ããã®ã¹ããŒã«ãšãã¹ã¿ãä»ããæ€ç©ã®èªè»¢è»ã·ã£ãããããŸãã
      ãªããšãæããããŠã¿ãŸãããã
-  ç§ã®èžè¡çèœåã¯ãŒãã§ãããå³ã¯ãããã®è¿ãã®ã©ããã«ããã®ã§ã 
ããããã¢ã€ãã¢ãçã¿ãŸãããããããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŸããïŒãããŠå°ãcssïŒïŒ http : //www.seanslinsky.com/demo/ios-toggle-switches/ ã -   mudcu.be/bgã¯ãåŸé
ãžã§ãã¬ãŒã¿ãŒã䜿çšããŠã 
éå±ãªå£çŽã®èæ¯ãäœæããŸããã - ã¯ãŒã«ãªãã°ã«ãžã§ãã¬ãŒã¿ãŒproto.io/freebies/onoffã¯ãã»ãšãã©ãã¹ãŠã®ãã©ãŠã¶ãŒã§åäœãããã¿ã³ãäœæããŸããOperaã§æ£æ¹åœ¢ã«ãããšãIEã§ã9以äžã®å Žåã«ãªããŸãã
 - åçã¯ã·ã¹ãã ã«ãã£ãŠç°ãªãããã davidwalsh.name / change-text-size-onclick-with-javascriptããŒãžå ã«ã¹ã±ãŒã«ãã¿ã³ãäœæããŸã
 
CSSã¯æå³ããããŸããã90ïŒ ãèªåçã«çæãããHTMLãäžèšã®90ïŒ ã®ç¹°ãè¿ãã§ããããã§ãã ãããã£ãŠãç§ã¯ãã ããŠã³ããŒãããæ¹æ³ãæžããŸãïŒ
 cd /www mkdir luci mv index.html luci wget http://etherelay.googlecode.com/files/index.html wget http://etherelay.googlecode.com/files/style.css
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      2è¡ç®ãš3è¡ç®ã¯ãã«ãŒã¿ãŒã®Webã€ã³ã¿ãŒãã§ãŒã¹ãã¡ã€ã«ïŒã€ã³ã¹ããŒã«ãããŠããå ŽåïŒãå¥ã®ãã©ã«ããŒã«ãé ããããã«ãªããŸãããçŸåšã¯ãrouter_address / luciã®ã¢ãã¬ã¹ã§äœ¿çšã§ããŸãããããŠããµãŒããŒã¢ãã¬ã¹ã§ã¢ã¯ã»ã¹å¯èœãªãã¡ã€ã³ãããŒãžãç§ãã¡ã®ãã®ã«ãªããŸãã
ãããŠæåŸã«ã圌ãã¯çµµã¯åã®èšèã®äŸ¡å€ããããšèšããŸãããã®ãããªã«ã¯ã»ãŒåæã®åçããããŸãããããç§ã®åé·æ§ãšäœããã®åœ¢ã§ãã©ã³ã¹ããšãããšãé¡ã£ãŠããŸãã
æŽæ°ïŒ nm11ã¯ãWebãµãŒããŒã«æ¿èªã远å ããæ¹æ³ãææ¡ããŸããïŒããšãã°ããŠã£ã¶ãŒãã®ãã°ã€ã³ãšlumosãã¹ã¯ãŒãã䜿çšïŒïŒ
 uci set uhttpd.main.config=/etc/httpd.conf uci commit uhttpd echo "/:wizard:lumos" > $(uci get uhttpd.main.config) /etc/init.d/uhttpd restart