{"id":302,"date":"2008-10-09T10:05:36","date_gmt":"2008-10-09T01:05:36","guid":{"rendered":"http:\/\/blog.bitmeister.jp\/?p=302"},"modified":"2010-02-14T23:34:50","modified_gmt":"2010-02-14T14:34:50","slug":"imon-mini-%c3%97-ubuntu%e3%81%a7linux-pc%e3%82%92%e8%b5%a4%e5%a4%96%e7%b7%9a%e3%83%aa%e3%83%a2%e3%82%b3%e3%83%b3%e3%81%a7%e6%93%8d%e4%bd%9c","status":"publish","type":"post","link":"https:\/\/blog.bitmeister.jp\/?p=302","title":{"rendered":"iMON-MINI \u00d7 Ubuntu\u3067Linux-PC\u3092\u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u3067\u64cd\u4f5c"},"content":{"rendered":"<p>\u5f53\u793e\u3067\u306f\u3001Linux(Ubuntu8.04)\u306b\u97f3\u697d\u30d7\u30ec\u30fc\u30e4\u30fc\u3092\u5165\u308c\u3066BGM\u3092\u6d41\u3059\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u3059\u304c\u3001<br \/>\n\u96fb\u8a71\u304c\u3042\u3063\u305f\u3068\u304d\u306b\u6b62\u3081\u305f\u308a\u3059\u308b\u306e\u306b\u3001PC\u304b\u3089\u64cd\u4f5c\u3059\u308b\u306e\u304c\u9762\u5012\uff01<br \/>\n\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u3067\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u300cLinux\u3067\u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u300d\u306f\u691c\u7d22\u3059\u308b\u3068\u3044\u308d\u3044\u308d\u3042\u308b\u3088\u3046\u3067\u3001<br \/>\n<a href=\"http:\/\/blog.gcd.org\/archives\/50846722.html\">\u3053\u306e\u30b5\u30a4\u30c8<\/a>\u3092\u53c2\u8003\u306bPC-OP-RS1\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046\u304b\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\u3001<br \/>\n\u9001\u4fe1\u6a5f\u80fd\u306f\u3044\u3089\u306a\u3044\u306e\u3068\u3001\u30ea\u30e2\u30b3\u30f3\u3092\u5225\u306b\u7528\u610f\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044<br \/>\n\uff08\u3042\u308b\u3082\u306e\u304c\u4f7f\u3048\u308c\u3070OK\u3067\u3059\u304c\u3001\u4f7f\u3048\u306a\u3044\u304b\u3082\u3057\u308c\u306a\u3044\uff09\u306e\u3067\u3001<br \/>\n\u3082\u3046\u5c11\u3057\u8abf\u3079\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p><!--more--><br \/>\n<a href=\"http:\/\/d.hatena.ne.jp\/logkeeper\/20050622\/1119452542\">\u3053\u3061\u3089\u306e\u30b5\u30a4\u30c8<\/a>\u3067\u3001\u53d7\u4fe1\u3060\u3051\u3067\u3042\u308c\u3070\u7279\u5225\u306a\u5de5\u4f5c\u306f\u3044\u3089\u306a\u3044\u3088\u3046\u306a\u8a18\u8ff0\u304c\u3042\u3063\u305f\u306e\u3067\u3001<br \/>\n\u3068\u308a\u3042\u3048\u305a\u3053\u306e\u30b5\u30a4\u30c8\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308biMON\u306e\u6bd4\u8f03\u7684\u5b89\u4fa1\u306a\u3082\u306e\u3092\u63a2\u3057\u51fa\u3057\u3066<br \/>\n\u52d5\u304b\u3057\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u30ea\u30e2\u30b3\u30f3\uff09<br \/>\n\u3000iMON-MINI <a href=\"http:\/\/www.ask-corp.jp\/products\/RC029.html\">http:\/\/www.ask-corp.jp\/products\/RC029.html<\/a><br \/>\n\u3000\u5b9f\u58f2\u4fa1\u683c\u306f4,000\u304f\u3089\u3044\u3002<\/p>\n<p>PC\uff09<br \/>\n\u3000linux (Ubuntu8.04) kernel 2.6.24-19<\/p>\n<p>\u3084\u3063\u305f\u3053\u3068\uff09<br \/>\n\u3000lirc\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3001\u52d5\u304b\u3057\u3066\u307f\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u304c\u3001\u3088\u304f\u308f\u304b\u3089\u305a\u65ad\u5ff5\u3002<br \/>\n\u3000\u305f\u3060\u3001dmesg\u3092\u307f\u308b\u3068\u3001\u30c7\u30d0\u30a4\u30b9\u3092\u63a5\u7d9a\u3057\u305f\u3068\u304d\u306bHID\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3001<br \/>\n\u3000lirc\u306f\u3042\u304d\u3089\u3081\u3066\u3001HID\u3068\u3057\u3066\u53d6\u308c\u308b\u30c7\u30fc\u30bf\u3067\u4f55\u304b\u3067\u304d\u306a\u3044\u304b\u8abf\u3079\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u3000\u7d50\u8ad6\u304b\u3089\u3044\u3048\u3070\u3001\/dev\/usb\/hiddev1\u3068\u304b\u3092\u8aad\u3080\u3068\u30ea\u30e2\u30b3\u30f3\u306e\u30c7\u30fc\u30bf\u304c\u53d6\u308c\u307e\u3057\u305f\u3002<br \/>\n\u3000iMON\u3092PC\u306eUSB\u30dd\u30fc\u30c8\u306b\u3064\u306a\u3044\u3067\u3001<\/p>\n<pre>    &gt; sudo od -x \/dev\/usb\/hiddev1<\/pre>\n<p>\u3000\u3068\u304b\u3084\u3063\u3066\u3001\u30ea\u30e2\u30b3\u30f3\u306e\u30dc\u30bf\u30f3\u3092\u30dd\u30c1\u30dd\u30c1\u3057\u3066\u307f\u308c\u3070\u308f\u304b\u308a\u307e\u3059\u3002<br \/>\n\u3000\u203bhiddev1\u306e\u3068\u3053\u308d\u306f\u74b0\u5883\u306b\u3088\u3063\u3066\u7570\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3000\u3053\u308c\u3067\u53d6\u308c\u308b\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u306e\u3067\u3001\u899a\u3048\u305f\u3066\u306epython\u3067\u7c21\u5358\u306a\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u3064\u304f\u3063\u3066\u3001<br \/>\n\u3000\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30bf\u4fdd\u5b58\u3001\u30ea\u30e2\u30b3\u30f3\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\u3002<br \/>\n\u3000\u203b\u4eca\u56de\u306f\u3061\u3083\u3093\u3068python\u306e\u6559\u79d1\u66f8\u3092\u307f\u306a\u304c\u3089\u66f8\u3044\u305f\u306e\u3067\u3001\u5c11\u3057\u306f\u30de\u30b7\u306b\u304b\u3051\u307e\u3057\u305f\u3002<\/p>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u4ed5\u69d8\uff09<br \/>\n\u3000\u30c7\u30fc\u30bf\u4fdd\u5b58\u30b3\u30de\u30f3\u30c9\u3067\u3001\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3001\u305d\u306e\u30c7\u30fc\u30bf\u306b\u540d\u524d\u3092\u4ed8\u3051\u307e\u3059\u3002<br \/>\n\u3000\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30e2\u30f3\u30b3\u30de\u30f3\u30c9\uff08\u30de\u30b7\u30f3\u8d77\u52d5\u4e2d\u306f\u52d5\u304b\u3057\u3063\u3071\u306a\u3057\uff09\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u3001\u305d\u306e\u540d\u524d\u3068<br \/>\n\u3000\u5b9f\u884c\u3059\u308b\u30b3\u30de\u30f3\u30c9\u306e\u5bfe\u5fdc\u3092\u66f8\u304d\u307e\u3059\u3002<\/p>\n<p>\u30bd\u30fc\u30b9\uff09<br \/>\n\u3000\u5404\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9\u306fusage\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u3000\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30bf\u4fdd\u5b58\u30b3\u30de\u30f3\u30c9 mkdata.py<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n#!\/usr\/bin\/python\r\n\r\nimport sys\r\n\r\nusage = &#039;&#039;&#039;\r\nmkdata.py &#x5B;--device=devicefile] &#x5B;--length=length] conffile\r\n  devicefile:\r\n    hiddev file (default auto-set)\r\n  length:\r\n    ir-command length (default &quot;128&quot;)\r\n&#039;&#039;&#039;\r\n\r\nvendor_id = 0x15c2\r\nproduct_id = 0x0041\r\ncheckfile=&#039;\/sys\/class\/usb\/hiddev%d\/device\/modalias&#039;\r\ndevbase=&#039;\/dev\/usb\/hiddev%d&#039;\r\n\r\nfor index in range(15):\r\n  try:\r\n    fd = file(checkfile % index,&#039;r&#039;)\r\n    line = fd.readline()\r\n    if line.startswith(&#039;usb:v%04Xp%04X&#039; % (vendor_id,product_id)):\r\n      devfile = devbase % index\r\n      break\r\n    fd.close()\r\n  except:\r\n    pass\r\n\r\nirlength = 128\r\nconffile = &#039;data.conf&#039;\r\nfor arg in sys.argv&#x5B;1:]:\r\n  if arg.find(&#039;--device=&#039;) != -1:\r\n    devfile = arg.split(&#039;=&#039;)&#x5B;1]\r\n  elif arg.find(&#039;--length=&#039;) != -1:\r\n    irlength = arg.split(&#039;=&#039;)&#x5B;1]\r\n  elif arg == &#039;--help&#039; or arg == &#039;-h&#039;:\r\n    print usage\r\n    sys.exit()\r\n  else:\r\n    conffile = arg\r\n\r\nwritefd = file(conffile,&#039;w&#039;)\r\nwhile True:\r\n  keyword = raw_input(&quot;Input Keyword (exit for &#039;q&#039;): &quot;)\r\n  keyword = keyword.strip(&#039;n&#039;)\r\n  if keyword == &#039;q&#039;:\r\n    break\r\n  print &#039;Please push your remote controller&#039;\r\n  fd = file(devfile,&#039;rb&#039;)\r\n  readbin = fd.read(irlength)\r\n  fd.close()\r\n  datastr = &quot;&quot;\r\n  for readch in readbin:\r\n    datastr += &#039;%02x &#039; % ord(readch)\r\n  # output\r\n  writefd.write(keyword + &#039;,&#039; + datastr+&#039;n&#039;)\r\n\r\nwritefd.close()\r\n<\/pre>\n<p>\u3000\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30e2\u30f3\u30b3\u30de\u30f3\u30c9 hidird.py<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n#!\/usr\/bin\/python\r\n\r\nimport sys\r\nimport os\r\n\r\nusage = &#039;&#039;&#039;\r\nhidird.py &#x5B;--device=devicefile] &#x5B;--dataconf=data_conffile] &#x5B;--commandconf=command_conffile]\r\n  devicefile:\r\n    hidraw device file name (default auto-set)\r\n  data_conffile:\r\n    IR data information configuration file (default &quot;data.conf&quot;)\r\n  command_conffile:\r\n    Definition of relation between IR-Data and Console-Command (default &quot;ircmd.conf&quot;)\r\n&#039;&#039;&#039;\r\n\r\nvendor_id = 0x15c2\r\nproduct_id = 0x0041\r\ncheckfile=&#039;\/sys\/class\/usb\/hiddev%d\/device\/modalias&#039;\r\ndevbase=&#039;\/dev\/usb\/hiddev%d&#039;\r\n\r\nfor index in range(15):\r\n  try:\r\n    fd = file(checkfile % index,&#039;r&#039;)\r\n    line = fd.readline()\r\n    if line.startswith(&#039;usb:v%04Xp%04X&#039; % (vendor_id,product_id)):\r\n      devfile = devbase % index\r\n      print &#039;device file:&#039;+devfile\r\n      break\r\n    fd.close()\r\n  except:\r\n    pass\r\n\r\nir_conffile = &#039;data.conf&#039;\r\nexec_conffile = &#039;ircmd.conf&#039;\r\n\r\nfor arg in sys.argv&#x5B;1:]:\r\n  if arg.find(&#039;--device=&#039;) != -1:\r\n    devfile = arg.split(&#039;=&#039;)&#x5B;1]\r\n  elif arg.find(&#039;--dataconf=&#039;) != -1:\r\n    ir_conffile = arg.split(&#039;=&#039;)&#x5B;1]\r\n  elif arg.find(&#039;--commandconf=&#039;) != -1:\r\n    exec_conffile = arg.split(&#039;=&#039;)&#x5B;1]\r\n  else:\r\n    print usage\r\n    sys.exit()\r\n\r\nir_datalength=16\r\n\r\n# read IR map\r\ntry:\r\n  fd = file(ir_conffile,&#039;r&#039;)\r\nexcept:\r\n  print &quot;Cannot find the file:&quot;+ir_conffile\r\n  sys.exit()\r\n\r\nirmap = {}\r\nfor readline in fd:\r\n  irpair = readline.split(&#039;,&#039;)\r\n  irbin = &#x5B;]\r\n  for value in irpair&#x5B;1].split(&#039; &#039;):\r\n    if value != &#039;&#039; and value != &#039;n&#039;:\r\n      irbin.append(chr(int(value,16)))\r\n  irmap&#x5B;tuple(irbin)] = irpair&#x5B;0]\r\n  ir_datalength = len(irbin)\r\nfd.close()\r\n\r\nwhile True:\r\n  try:\r\n    fd = file(devfile,&#039;rb&#039;)\r\n    #readbin = fd.read(ir_datalength)\r\n    readbin = tuple(fd.read(ir_datalength))\r\n    fd.close()\r\n    if irmap.has_key(readbin):\r\n      print &quot;Receive:&quot;+irmap&#x5B;readbin]\r\n      try:\r\n        fd = file(exec_conffile,&#039;r&#039;)\r\n        for line in fd:\r\n          if line.startswith(irmap&#x5B;readbin]+&quot;,&quot;):\r\n            os.system(line.split(&#039;,&#039;)&#x5B;1])\r\n        fd.close()\r\n      except:\r\n        pass\r\n    else:\r\n      print &quot;Receive:Unknown ir-data&quot;\r\n      sys.exit()\r\n  except:\r\n    break\r\n<\/pre>\n<p>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\uff09<br \/>\n\u3000(\u53c2\u8003)\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30e2\u30f3\u30b3\u30de\u30f3\u30c9\u7528\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb ircmd.conf<\/p>\n<pre>power-on,echo power on\r\npower-off,echo pushed poweroff\r\nvolume-up,mpc volume +3\r\nvolume-down,mpc volume -3\r\nmute,mpc pause\r\nplay,mpc toggle\r\n<\/pre>\n<p>\u88dc\u8db3\uff09<br \/>\n\u3000\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30e2\u30f3\u30b3\u30de\u30f3\u30c9\u3067\u3059\u304c\u3001<br \/>\n\u3000\u624b\u3067\u30ea\u30e2\u30b3\u30f3\u3092\u3055\u3048\u304e\u3063\u305f\u308a\u3057\u305f\u6642\u306b\u3001\u5909\u306a\u30c7\u30fc\u30bf\u304c\u3068\u308c\u3066Unknown\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u3059\u304c\u3001<br \/>\n\u3000\u306a\u305c\u304b\u4eca\u306e\u74b0\u5883\u3067\u306f\u3044\u3063\u305f\u3093Unknown\u306b\u306a\u308b\u3068\u305a\u30fc\u3063\u3068Unknown\u306b\u306a\u308b\u3001\u3068\u3044\u3046\u72b6\u614b\u306b\u9665\u308a\u307e\u3057\u305f\u3002<br \/>\n\u3000\u3068\u308a\u3042\u3048\u305a\u3001Unknown\u306b\u306a\u3063\u305f\u3089\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d42\u4e86\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3001\u30c7\u30fc\u30e2\u30f3\u30b3\u30de\u30f3\u30c9\u3092\u30eb\u30fc\u30d7\u3059\u308b\u6b21\u306e\u3088\u3046\u306a<br \/>\n\u3000\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u66f8\u3044\u3066\u5bfe\u51e6\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3000\u30eb\u30fc\u30d7\u30b9\u30af\u30ea\u30d7\u30c8 irloop<\/p>\n<pre>#!\/bin\/sh\r\n\r\ncd \/home\/xxx\/irctrl\r\n\r\nkillall -9 hidird.py &gt; \/dev\/null 2&gt;&amp;1\r\nwhile true\r\ndo\r\n  .\/hidird.py\r\n  sleep 1\r\ndone<\/pre>\n<p>\u53c2\u8003\u30b5\u30a4\u30c8\uff1a<\/p>\n<ul>\n<li><a href=\"http:\/\/blog.gcd.org\/archives\/50846722.html\">\u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u3092 Linux \u304b\u3089\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb<\/a><\/li>\n<li><a href=\"http:\/\/www.ask-corp.jp\/products\/RC029.html\">iMON-MINI (\u65e5\u672c\u4ee3\u7406\u5e97)<\/a><\/li>\n<li><a href=\"http:\/\/brakemeier.de\/electronics\/vdr\/lirc-imon.html\">LIRC\u3067iMON<\/a><\/li>\n<li><a href=\"http:\/\/d.hatena.ne.jp\/logkeeper\/20050622\/1119452542\">lirc\u306f\u3001\u30ec\u30b7\u30fc\u30d0\u30fc\u3092\u4f5c\u3089\u306a\u304f\u3066\u3082\u4f7f\u3048\u307e\u3059!!<\/a><\/li>\n<li><a href=\"http:\/\/www.lirc.org\/\">LIRC<\/a><\/li>\n<\/ul>\n<p>12\/16\u6ce8\u8a18\uff1a\u672c\u8a18\u4e8b\u8a18\u8f09\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3059\u304c\u3001\u3044\u3063\u305f\u3093\u7570\u5e38\u306a\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b\u3068iMON\u3092\u629c\u304d\u5dee\u3057\u3057\u306a\u3044\u3068\u5fa9\u6d3b\u3057\u306a\u3044\u554f\u984c\u304c\u3042\u308a\u307e\u3059\u3002\u3054\u8981\u671b\uff08\u3068\u79c1\u306e\u4f59\u88d5\uff09\u304c\u3042\u308c\u3070\u89e3\u6790\u3057\u3066\u5bfe\u51e6\u3057\u307e\u3059\u3002\uff08\u305f\u3076\u3093\u30ea\u30bb\u30c3\u30c8\u3059\u308b\u3088\u3046\u306a\u30c7\u30fc\u30bf\u3092iMON\u306b\u9001\u308b\u5fc5\u8981\u304c\u3042\u308b\u3068\u601d\u3044\u307e\u3059\u3002\uff09<br \/>\n<strong>2010\/2\/13\u8ffd\u8a18\uff1a<\/strong><br \/>\n\u30b3\u30e1\u30f3\u30c8\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u306e\u3067\u3001\u5c11\u3057\u8a73\u3057\u304f\u4f7f\u3044\u65b9\u3092\u66f8\u304d\u307e\u3059\u3002<br \/>\n\u2606\u30c4\u30fc\u30eb\u306e\u4f7f\u3044\u65b9<\/p>\n<p>\u30fb\u5927\u307e\u304b\u306a\u6d41\u308c<br \/>\n1. mkdata.py\u3067\u3001\u30ea\u30e2\u30b3\u30f3\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u305f\u6642\u306b\u53d7\u4fe1\u3057\u305f\u30c7\u30fc\u30bf\u306b\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u524d\u3092\u3064\u3051\u308b\u3002<br \/>\n2. 1\u3067\u3064\u3051\u305f\u540d\u524d\u3092\u4f7f\u3063\u3066\u3001\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u305f\u3068\u304d\u306b\u5b9f\u884c\u3055\u305b\u305f\u3044\u30b3\u30de\u30f3\u30c9\u3092\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304f\u3002<br \/>\n3. hidird.py\u3092\u8d77\u52d5\u3057\u3001\u5b9f\u969b\u306b\u30ea\u30e2\u30b3\u30f3\u306e\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u305f\u3068\u304d\u306b\u3001\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3055\u305b\u308b\u3002<\/p>\n<p>\u30fb\u8a73\u3057\u3044\u8aac\u660e<br \/>\n1. \u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30bf\u306b\u540d\u524d\u3092\u3064\u3051\u308b\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u3001\u30c7\u30fc\u30bf\u304c\u53d6\u308c\u308b\u30c7\u30d0\u30a4\u30b9\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u3001&#8221;\/dev\/usbmon4&#8243;\u306e\u5834\u5408\u3001<\/p>\n<pre style=\"background-color:#000000; padding: 5px 5px 5px 5px; font-size: 11px; color: #ffffff\">\r\nmkdata.py --device=\/dev\/usbmon4 data.conf\r\n<\/pre>\n<p>\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u306a\u304a\u3001\/dev\/usbmon4\u304b\u3089\u53d6\u5f97\u3067\u304d\u308b\u30c7\u30fc\u30bf\u306e\u30b5\u30a4\u30ba\uff08\u305d\u308c\u305e\u308c\u306e\u30ea\u30e2\u30b3\u30f3\u30c7\u30fc\u30bf\u3092\u8b58\u5225\u3059\u308b\u306e\u306b\u5fc5\u8981\u306a\u30b5\u30a4\u30ba\uff09\u304c128\u30d0\u30a4\u30c8\u3067\u306a\u3051\u308c\u3070\u3001mkdata.py\u30b3\u30de\u30f3\u30c9\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u3001&#8211;length=256 (256\u30d0\u30a4\u30c8\u306e\u5834\u5408)\u306e\u3088\u3046\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>mkdata.py\u3092\u8d77\u52d5\u3059\u308b\u3068\u3001<br \/>\nInput Keyword (exit for &#8216;q&#8217;):<br \/>\n\u3068\u8868\u793a\u3055\u308c\u307e\u3059\u306e\u3067\u3001\u305f\u3068\u3048\u3070\u518d\u751f\u30dc\u30bf\u30f3\u3092\u767b\u9332\u3057\u305f\u3044\u306e\u3067\u3042\u308c\u3070\u3001<br \/>\n&#8216;play&#8217;<br \/>\n\u306e\u3088\u3046\u306a\u6587\u5b57\u5217\u3092\u5165\u529b\u3057\u3066\u304b\u3089\u3001\u30ea\u30e2\u30b3\u30f3\u306e\u518d\u751f\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u4e0b\u3055\u3044\u3002<br \/>\n\u305d\u3046\u3059\u308b\u3068\u3001data.conf\u306b&#8217;play&#8217;\u3068\u3044\u3046\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u518d\u751f\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u305f\u6642\u306b\/dev\/usbmon4\u306b\u51fa\u529b\u3055\u308c\u308b\u30c7\u30fc\u30bf\u306e\u5bfe\u5fdc\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>2. \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f<br \/>\n\u5148\u7a0b\u3001play\u3068\u3044\u3046\u30ad\u30fc\u30ef\u30fc\u30c9\u3067\u30c7\u30fc\u30bf\u3092\u3068\u3063\u305f\u306e\u3067\u4f8b\u3048\u3070\u3001<br \/>\nplay,echo pushed play button<br \/>\n\u3068\u3044\u3046\u5185\u5bb9\u3067\u4fdd\u5b58\u3057\u307e\u3059\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u306fircmd.conf\u3068\u3057\u307e\u3059\u3002<\/p>\n<p>3. hidird.py\u306e\u5b9f\u884c<\/p>\n<pre style=\"background-color:#000000; padding: 5px 5px 5px 5px; font-size: 11px; color: #ffffff\">\r\nhidird.py --device=\/dev\/usbmon4\r\n<\/pre>\n<p>\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n\u3059\u308b\u3068\u3001\u30ea\u30e2\u30b3\u30f3\u306e\u518d\u751f\u30dc\u30bf\u30f3\u3092\u304a\u3059\u3068\u3001&#8217;pushed play button&#8217;\u3068\u3044\u3046\u8868\u793a\u304c\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u51fa\u3066\u304f\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f53\u793e\u3067\u306f\u3001Linux(Ubuntu8.04)\u306b\u97f3\u697d\u30d7\u30ec\u30fc\u30e4\u30fc\u3092\u5165\u308c\u3066BGM\u3092\u6d41\u3059\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u3059\u304c\u3001 \u96fb\u8a71\u304c\u3042\u3063\u305f\u3068\u304d\u306b\u6b62\u3081\u305f\u308a\u3059\u308b\u306e\u306b\u3001PC\u304b\u3089\u64cd\u4f5c\u3059\u308b\u306e\u304c\u9762\u5012\uff01 \u3068\u3044\u3046\u3053\u3068\u3067\u3001\u8d64\u5916\u7dda\u30ea\u30e2\u30b3\u30f3\u3067\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[18,39,40],"class_list":["post-302","post","type-post","status-publish","format-standard","hentry","category-tech","tag-linux","tag-39","tag-40"],"_links":{"self":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts\/302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=302"}],"version-history":[{"count":14,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts\/302\/revisions"}],"predecessor-version":[{"id":418,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts\/302\/revisions\/418"}],"wp:attachment":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}