2011年2月17日木曜日

Windows 7 SP1適用後、think vantage system update 4でエラー

 

本日のWindows 7 SP1(Technet)適用後、think vantage system update 4でエラーが発生しました。

以下のようなことらしいです。

http://www.mydigitallife.info/2011/02/14/fix-thinkvantage-system-update-error-after-installing-windows-7-sp1/

定義ファイルにSP1の定義がないためということらしい。

利用しているのは、Windows 7 Pro の 64bitなので、

C:\Program Files (x86)\Lenovo\System Update\session\system\SSClientCommon

から MappingInterface.xmlのバックアップをとり、エディタで開き、以下を適切なところに追加。

<OS>
    <OSTVIA>WIN7-PRO.SP1</OSTVIA>
    <OSeGatherer>
        <Name>WINDOWS 7 Professional</Name>
        <ServiceRelease>Service Pack 1</ServiceRelease>
    </OSeGatherer>
    <OSQuest>Windows 7</OSQuest>
</OS>

ついでにENTなどの他の版も追加。

Think vanatage system update 4が無事実行できました。

 

History:

2011-02-17: Initial release

2011-02-17: Fix typo  (MapppingInterface.xml –> MappingInterface.xml)

2011年2月4日金曜日

Fonera 2202 + L-02A (b-mobile U300)

b-mobile SIM(U300)を挿入したL-02AをFonera 2202に接続してみました。

以下では、Firmwareを入れ替えてdialup ppp接続可能な状態にしたFonera 2202を対象としています。個人用のメモです。

1. L-02A b-mobile APN設定

L-02A接続ソフトウェアを利用して、bmobileのAPN設定をします。
ここでは cid #1に設定しました。
接続方式はPDP over IP
接続先は dm.jplat.net

l-02a-1
ユーザー名は bmobile@U300
パスワードは bmobile
電話番号は *99****1#
l-02a-2


2. L-02A のFonera 2202接続

Fonera 2202にUSB hub経由でb-mobile SIMを挿入したL-02Aを接続します。Fonera 2202の起動直後では、L-02AはCD-ROMと認識されますが、しばらく待つとttyUSB (0-5)が認識されます。Linuxにて L-02Aを利用する場合については、usb_modeswitchを利用しなければ、modemとして認識→tty device fileの作成とならないようですが。。。
以下はdmesgの表示です。
sierra: USB Driver for Sierra Wireless USB modems: v.1.2.9c
fuse init (API version 7.9)
usbcore: registered new interface driver uvcvideo
USB Video Class driver (SVN r215)
scsi 0:0:0:0: CD-ROM            LGE      CD-ROM           1.00 PQ: 0 ANSI: 2
usb-storage: device scan complete
device ath1 entered promiscuous mode
br-lan: port 2(ath1) entering learning state
br-lan: topology change detected, propagating
br-lan: port 2(ath1) entering forwarding state
usb 1-1.4: USB disconnect, address 3
usb 1-1.4: new full speed USB device using ehci_hcd and address 4
usb 1-1.4: configuration #1 chosen from 1 choice
option 1-1.4:1.0: GSM modem (1-port) converter detected
usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB0
ttyusb -> 1 ttyUSB0 option 10046109
option 1-1.4:1.1: GSM modem (1-port) converter detected
usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB1
ttyusb -> 1 ttyUSB1 option 10046109
option 1-1.4:1.2: GSM modem (1-port) converter detected
usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2
ttyusb -> 1 ttyUSB2 option 10046109
option 1-1.4:1.3: GSM modem (1-port) converter detected
usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB3
ttyusb -> 1 ttyUSB3 option 10046109
option 1-1.4:1.4: GSM modem (1-port) converter detected
usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB4
ttyusb -> 1 ttyUSB4 option 10046109
option 1-1.4:1.5: GSM modem (1-port) converter detected
usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB5
ttyusb -> 1 ttyUSB5 option 10046109
/dev以下にttyUSB0~ttyUSB5が作成されます。

3. L-02A 用の設定変更

L-02Aがttyとして認識されたのですが、以下の二つの問題が発覚しました。
  • UMTSでは接続できない。pppのログを見ると/dev/ttyUSB0へのアクセスが失敗。
  • dialup pppでは /dev/ttyUSB0ではアクセス失敗。/dev/ttyUSB1のみ動作する。
理由は不明ですが、対処として、以下の二点を修正を実施しました。
  • /etc/config/ttyusb に L-02Aのセクションを追加。その際に device optionも追加
  • USB ttyデバイスが接続された際に /etc/config/ttyusbから VIDPIDに対応した情報を /etc/config/networkのPPPセクションにコピーするように改変しています。ここで device optionも(もし ttyusb にあれば)コピーするようにします。

/etc/config/ttyusbへの追加部分。vi にて追加。
config 'ttyusb' '10046109'
        option 'vendor' 'NTT Docomo'
        option 'product' 'L-02A'
        option 'vidpid' '10046109'
        option 'driver' 'usbserial'
        option 'username' 'bmobile@u300'
        option 'password' 'bmobile'
        option 'connectcmd' '/tmp/chat_dialer -s -v -T*99***1#'
        option 'speed' '921600'
        option 'atinit' 'ATE0V1&F&D2&C1S0=0S7=60'
       
option 'device' '/dev/ttyUSB1'
        option 'modemtype' 'dialup'

/etc/hotplug.d/ttyusb/11-dialup の追加 (Bold部分)
if [ "${attached}" != "1" ] ; then
  speed=`uci get ttyusb.${VIDPID}.speed`
  username=`uci get ttyusb.${VIDPID}.username`
  password=`uci get ttyusb.${VIDPID}.password`
  connectcmd=`uci get ttyusb.${VIDPID}.connectcmd`
  atinit=`uci get ttyusb.${VIDPID}.atinit`
  devname=`uci get ttyusb.${VIDPID}.device`

# Write to /etc/config/network ppp section
  uci set network.ppp.speed="${speed}"
  uci set network.ppp.username="${username}"
  uci set network.ppp.password="${password}"
  uci set network.ppp.connectcmd="${connectcmd}"
  uci set network.ppp.device="/dev/""${NODE}"
  if [ "${devname}" != "" ] ; then
    uci set network.ppp.device="${devname}"
  fi
  uci commit network

上記の変更を実施し、L-02Aを接続したときの /etc/config/networkのPPPセクション
config 'interface' 'ppp'
        option 'ifname' 'wan'
        option 'proto' 'ppp'
        option 'mtu' '1500'
        option 'linkname' 'wan'
        option 'ipparam' 'wan'
        option 'username' 'bmobile@u300'
        option 'password' 'bmobile'
        option 'speed' '921600'
        option 'connectcmd' '/tmp/chat_dialer -s -v -T*99***1#'
        option 'device' '/dev/ttyUSB1'
        option 'attached' '0'

4. 懸案事項

  • ttyUSB0とttyUSB1によるUMTS接続ができないのはなぜか。
  • dialup接続のときにttyUSB1のみ接続できるのはなぜか。cidと連動しているわけではない。bmobileをcid=2にしても ttyUSB2でdialup PPP接続できるわけではない。


5. History

  • 2011/02/04: Initial release

2011年1月23日日曜日

CQW-MRB Firmware更新失敗→起動不具合→復旧

CQW-MRBにL-02A/b-mobileを接続したときに、時々インターネット接続ができないことがありました。それで、D31HW専用とされている2.02betaを試してみました。ところが、起動不具合となってしましいました。
しばらく、放置していたのですが、年末・年始でなんとか復旧できたので、その経緯をここに記載します。

1. 2.02betaへの更新失敗とログ

CQW-MRBの管理画面から、2.02betaのfirmwareに更新を実施したところ、PCからの有線・無線の接続ができなくってしまいました。シリアル接続の方法はわかっていますから、(http://john-doe-memorandum.blogspot.com/2010_09_01_archive.html , 38400bps) 接続してみたところ、kernel 起動後 root file systemのmountに失敗し、panicとなっていることがわかりました。

U-Boot 1.1.4 (Dec  7 2009 - 14:15:23)
U-Boot code: 00000000 -> 0001A204  BSS: -> 0001F15C
CPU Clock: 200 MHz
1.8V Vdd Output: 1.793
2.5V Vdd Output: 2.531
途中省略
Bluetooth: L2CAP ver 2.8
Bluetooth: L2CAP socket layer initialized
Bluetooth: BNEP (Ethernet Emulation) ver 1.2
Bluetooth: BNEP filters: protocol multicast
SQUASHFS error: sb_bread failed reading block 0x8da
SQUASHFS error: Unable to read metadata cache entry [2369cd]
SQUASHFS error: Unable to read inode [2369cd:12d6]
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

上記のログによると、root file systemとしているsquashfsの読込みに失敗し、その結果、Kernel panicとなり、起動不具合を起こしているようです。

2. MRB-CQW 1.04 firmwareへの復旧

以下の資料を参考にしました。
  • openwrt Webサイト (http://www.openwrt.org/)
  • u-boot解説の各サイト (u-boot本家はどこなのでしょうか)
  • 「国産ルーターをLinuxサーバーにする」, 日経Linux 2010 8月号
  • 正常時の起動ログ (下記)
Hit any key to stop autoboot: 0
## Starting application at 0x10040000 ...
Uncompressing Linux................................................................................... done, booting the kernel.
Linux version 2.6.16-star (root@vance.localdomain) (gcc version 3.4.6) #1414 Tue Jun 15 10:42:15 CST 2010
CPU: FA526id(wb) [66015261] revision 1 (ARMv4)

Creating 5 MTD partitions on "STR9100 NOR Flash":
0x00000000-0x00040000 : "ARMBOOT"
0x00040000-0x001a0000 : "Linux Kernel1"
0x001a0000-0x003e0000 : "ROOT FS1"
0x003e0000-0x00400000 : "Configs"
0x00040000-0x003e0000 : "Upgrade"
その結果、判明したことは以下の通りです。
  • CQW-MRBのfirmwareのその大きさ(3689KB)から推測すると、Kernel, root file system(squashfs)がまとめられており、kernel/root file systemを個別に作成する必要はなさそうだ。
  • Kernelの起動は、0x10040000へのジャンプで始まっている。ここはFlash memoryの領域らしい。printenvでも確認できる。
  • Firmwareは一度、tftp serverからRAMにdownloadし、そこからFlash memoryにコピーする。

復旧までの作業は以下の通りです。
  • PCにtftp serverをインストールし、CQW-MRB 1.04 firmwareをtftp serverのroot directoryに配置する。
  • CQW-MRBの筐体を開け、PCとシリアルケーブルで接続する。PCではシリアル端末接続可能な端末プログラム(teratermなど)を起動する。シリアル接続に対応するCOM portを指定することとbit rateは384000にする。
  • CQW-MRBに電源を接続し、u-bootのメッセージが表示されたら、端末プログラムから何かのキーを押して、起動を中止させる。
  • u-bootのプロンプトが出てきたところで、環境変数のserveripとipaddrを設定する。serveripはtftp serverのip address、ipaddrは自機(CQW-MRB)のip address。
Star Vela # setenv serverip 192.168.1.1 
Star Vela # setenv ipaddr 192.168.1.2
Star Vela # saveenv
  • tpftpserverから1.04 firmwareをdownload。download先は、とりあえず0x40000 (正常時の起動ログによる、0x40000 から “upgrade”となっているのという単純な理由)をコピー先とする。
Star Vela # tftpboot 0x40000 cqwmrb_v104.bin
netboot_common, argc= 3
init RTL8201CP
Select server or client model: 1/2
client model start
TFTP from server 192.168.1.1; our IP address is 192.168.1.2
Filename 'cqwmrb_v104.bin'.
Load address: 0x40000
Loading: #################################################################
途中省略            
done
Bytes transferred = 3776514 (39a002 hex)
  • RAMからFlash memoryにコピー。Flashは一度、消去をかけてからのcopyになるようです。
Star Vela # cp.b 0x40000 0x10040000 0x39a002
Copy to Flash...
Erasing sector 11 @ 10040000... OK
Erasing sector 12 @ 10050000... OK
途中省略
Erasing sector 67 @ 103C0000... OK
Erasing sector 68 @ 103D0000... OK
Erased 58 sectors
0x0039a002        done
  • 試しに0x10040000から起動
Star Vela # go 0x10040000
## Starting application at 0x10040000 ...
Uncompressing Linux................................................................................... done, booting the kernel.
Linux version 2.6.16-star (root@vance.localdomain) (gcc version 3.4.6) #1414 Tue Jun 15 10:42:15 CST 2010
CPU: FA526id(wb) [66015261] revision 1 (ARMv4)
Machine: STAR STR9100
途中省略
Bluetooth: L2CAP ver 2.8
Bluetooth: L2CAP socket layer initialized
Bluetooth: BNEP (Ethernet Emulation) ver 1.2
Bluetooth: BNEP filters: protocol multicast
VFS: Mounted root (squashfs filesystem) readonly.
Freeing init memory: 100K
init started: BusyBox v1.11.1 (2010-06-15 10:42:52 CST)
starting pid 615, tty '': '/etc/rc.sh'
Cannot run '/etc/rc.sh': No such file or directory
  • OKならば、resetで再起動。

3. 今後

なぜ、2.02betaのfirmware updateに失敗し、再起動不具合が発生してしまったのか、余裕ができたら、再度updateを実施してみる。
2011-01-23: 20.02betaに無事upgradeできました。


4. History

  • 2011-01-22: Initial Release
  • 2011-01-23: 2.02beta upgradeについて記載