acm-FOMAとは

USB接続が出来るFOMA携帯電話用のLinux Kernel-2.6以降のdriverです。

/drivers/usb/class/cdc-acm.cをdocomoのFOMA用のdriverとして改造、2007.3.31に初リリースしました。

当初、FOMAの機種毎にコード追加してリリースをしていましたが、余りに早い機種発売ラッシュ、それに対応すべく2007.11.17に機種別コードを不要にしました。

従来からMODEMモードのみでしたが、2011.5.28 v0.26.10からはOBEXとATcommandモードの3モードをサポート出来る様になりました。

インスール

1. Install

[root@~]# tar xvfz acm-FOMA.v0.26.10.tar.gz
# cd /usr/src/linux-2.6.38
# patch -p1 <acm-FOMA.v0.26.10.patch
# make menuconfig

CONFIG_USB_ACM_FOMA:                                                                    x
  x                                                                                     x
  x This driver USB Abstract Control Model driver for docomo FOMA Cellular phone.       x
  x (Test Version)                                                                      x
  x                                                                                     x
  x                                                                                     x
  x Symbol: USB_ACM_FOMA [=m]                                                           x
  x Prompt: USB Modem (docomo FOMA) support                                             x
  x   Defined at drivers/usb/class/Kconfig:22                                           x
  x   Depends on: USB                                                                   x
  x   Location:                                                                         x
  x     -> Device Drivers                                                               x
  x       -> USB support                                                                x
  x         -> Support for Host-side USB (USB [=y])                                     x

make modules
make modules_install

OR. An easier installation might be the following method. 

[root@p-4 src]# cd acm-FOMA.v0.26.10
[root@p-4 acm-FOMA.v0.26.10]# make
make -C /lib/modules/2.6.35.13-91.fc14.i686.debug/build M=/usr/src/acm-FOMA.v0.26.10 modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.35.13-91.fc14.i686.debug' に入ります
  CC [M]  /usr/src/acm-FOMA.v0.26.10/acm-FOMA.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /usr/src/acm-FOMA.v0.26.10/acm-FOMA.mod.o
  LD [M]  /usr/src/acm-FOMA.v0.26.10/acm-FOMA.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.35.13-91.fc14.i686.debug' から出ます
[root@p-4 acm-FOMA.v0.26.10]# make install
install -m 744 -c acm-FOMA.ko /lib/modules/2.6.35.13-91.fc14.i686.debug/kernel/drivers/usb/class
depmod -a
install acm-FOMA.ko completed!
[root@p-4 acm-FOMA.v0.26.10]#

デバイスの検出

2. Discovery of device

 When the cable of FOMA Cellular phone is inserted in USB, you confirm the following logs.
[root@~]# tail -n 10 /var/log/messages
[root@~]# tail /var/log/messages
May 28 15:10:28 (none) kernel: usb 1-1: New USB device found, idVendor=04dd, idProduct=9284
May 28 15:10:28 (none) kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
May 28 15:10:28 (none) kernel: usb 1-1: Product: FOMA SH06A
May 28 15:10:28 (none) kernel: usb 1-1: Manufacturer: SHARP
May 28 15:10:28 (none) kernel: usb 1-1: SerialNumber: 1234567890123456
May 28 15:10:28 (none) kernel: acm_FOMA 1-1:1.0: ttyACM0: USB ACM device
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.3: ttyACM1: USB ACM device
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.5: Control and data interfaces are not separated!
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.5: This needs exactly 3 endpoints
May 28 15:10:29 (none) kernel: acm_FOMA 1-1:1.5: ttyACM2: USB ACM device

使いかた

3. usage

[root@~]# epicon -l /dev/ttyACM0

** Welcome to epicon Version-4.8 Copyright Isamu Yamauchi compiled:Feb 11 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyACM0
at
OK
at&f
OK

Disconnected

[root@~]# epicon -l /dev/ttyACM1

** Welcome to epicon Version-4.8 Copyright Isamu Yamauchi compiled:Feb 11 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyACM1
ERROR
Disconnected
[root@~]#
[root@~]# epicon -l /dev/ttyACM2

** Welcome to epicon Version-4.8 Copyright Isamu Yamauchi compiled:Feb 11 2011 **
      exec shell         ~!
      send binary files  ~f
      call rz,sz,sx,rx   ~rz,~sz,~sx,~rx
      call kermit        ~sk,~rk
      external command   ~C
      change speed       ~c
      exit               ~.
      Connected /dev/ttyACM2
at
OK
atd09012345678;
OK
ath
OK

Disconnected