Ihara's Weblog

日曜日 3 18, 2007

省電力

Laptopユーザに朗報です。今回は、Laptopでは必須の機能である省電力。
LaptopにSolaris10をインストールすると分かると思いますが、CPUは最高速で動作し、ファンもフル回転でブーンという音が鳴り続けています。これだと当然、消費電力が高い訳で、バッテリーもすぐなくなってしてしまいます。これは、SolarisにIntel Enhanced Speed Spepのドライバが含まれていないのが原因です。

frkitでAMDのpowernowには対応していましたが、Speedstepには未対応でした。社内ではspeedstepに対応したpowernowドライバがありましたが、2月の初めにこのドライバがopensolarisに提供されたようです。ただ、IntelのSpeed Stepに対してpowernowというのは、正しい名前ではないですので、今後変更が検討されています

ドライバのインストールは、非常に簡単です。frkitからfrkitのスクリプトをダウンロードして実行するだけです。自動で必要なパッケージをダウンロードしてインストールまでしてくれます。

# chmod 755 frkit
# http_proxy=http://your_porxy-server:port (もし、web proxyを利用している場合)
# export http_proxy (もし、web proxyを利用している場合)
# ./frkit

インストールが終わったらリブートします。
# sync
# reboot

ドライバがうまくロードされるとブートメッセージに
NOTICE: Valid _PSS table found: \_PR_.CPU0._PSS
NOTICE: CPU frequency mechanism: Enhanced Intel SpeedStep

あと、いままで大きかったファンの音が小さくなっていることにも気づくと思います。 なお、本ドライバにはpowernowadmというユーティリティも含まれており、CPUの動作周波数を手動でも変更することができます。

# powernowadm
 State    MHz   Watts   Volts
     0   1867    27.0   1.308
     1   1600    23.0   1.228
     2   1333    20.0   1.148
     3   1067    17.0   1.068
     4    800    13.0   0.988 (current)

Powernow mode: automatic

デフォルトは、自動モード。ここで、最大の動作周波数に変更してみます。

# powernowadm 0
 State    MHz   Watts   Volts
     0   1867    27.0   1.308 (new)
     1   1600    23.0   1.228
     2   1333    20.0   1.148
     3   1067    17.0   1.068
     4    800    13.0   0.988 (current)
WARNING: Switching to manual mode
CPU set to 1867 MHz (27.0 Watts)

# powernowadm
 State    MHz   Watts   Volts
     0   1867    27.0   1.308 (current)
     1   1600    23.0   1.228
     2   1333    20.0   1.148
     3   1067    17.0   1.068
     4    800    13.0   0.988

Powernow mode: manual

マニュアルモードに変更され、最速のCPU動作周波数になりました。(ファンの音もずーと回り始めました)再度、オートモードに変更するには以下のようにします。

# powernowadm auto
# powernowadm
 State    MHz   Watts   Volts
     0   1867    27.0   1.308
     1   1600    23.0   1.228
     2   1333    20.0   1.148
     3   1067    17.0   1.068
     4    800    13.0   0.988 (current)

Powernow mode: automatic

一般ユーザで利用する場合には、RBAC(Role Based Access Control)を利用しましょう。
また、GNOMEのフロントパネルにCpuFreq Monitorというアイテムを追加することができます。

低速でCPUが動作している時

最高速でCPUが動作しているとき

土曜日 2 03, 2007

usbsacm driver

先日snv_56がリリースされました。このビルドからusbacmドライバが含まれています。つまり、前に「SolarisでFOMAを使う」で書いたSUNWuacmはインストールしなくてよくなりました。/etc/driver_aliasesを見てみるとデフォルトでは、以下の4つのデバイスが登録されています。

bash-3.00$ cat /etc/driver_aliases | grep usbsacm
usbsacm "usb,class2.2.0"
usbsacm "usbif,class2.2"
usbsacm "usbc88,17da"
usbsacm "usb1410,1110"

ここにSA700iSを追加し、rebootします。

# echo "usbsacm \"usb474,71c\"" >> /etc/driver_aliases
# sync; reboot

リブート後、tip等で接続してATコマンドの応答を確認できます。あとは、前の手順と同じです。 

日曜日 12 24, 2006

SolarisでFOMAを使う

先月、SolarisのUSB ACMドライバが公開されました。このドライバを使ってFOMAでパケット通信をしてみました。私の携帯はSA700iSで、PCとの接続はFOMA USB接続ケーブルを使っています。

snv_56以降で本ドライバは含まれていますので必要ありません。(02/03/07 update)

SUNWuacm-i386-1122.tar.gz をダウンロードしてインストールします。

# gzcat SUNWuacm-i386-1122.tar.gz | tar xf -
# pkgadd -d .

The following packages are available:
  1  SUNWuacm     CDC ACM USB-to-serial driver
                  (i386) 11.11,REV=2006.11.20.05.24

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

/etc/iu.apに以下の行を追加してrebootします。
usbsacm -1 0 ldterm ttcompat

リブート後、携帯をUSBケーブルで接続します。その後、prtconvでSA700iSの部分を確認し、"usb474,71c"をusbsacmとして/etc/driver_aliasesとして追加します。

# prtconf -v



device, instance #0
                Hardware properties:
                    name='driver-minor' type=int items=1
                        value=00000000
                    name='driver-major' type=int items=1
                        value=00000002
                    name='configuration#' type=int items=1
                        value=00000001
                    name='usb-product-name' type=string items=1
                        value='FOMA SA700iS'
                    name='usb-vendor-name' type=string items=1
                        value='SANYO Electric Co., Ltd.'
                    name='usb-serialno' type=string items=1
                        value='350271000840655'
                    name='usb-release' type=int items=1
                        value=00000110
                    name='usb-num-configs' type=int items=1
                        value=00000001
                    name='usb-revision-id' type=int items=1
                        value=00000100
                    name='usb-product-id' type=int items=1
                        value=0000071c
                    name='usb-vendor-id' type=int items=1
                        value=00000474
                    name='compatible' type=string items=9
                        value='usb474,71c.100' + 'usb474,71c' + 'usb474,classff.ff.ff' + 'usb474.classff.ff' + 'usb47
4.classff' + 'usb,classff.ff.ff' + 'usb,classff.ff' + 'usb,classff' + 'usb,device'
                    name='reg' type=int items=1
                        value=00000001
                    name='assigned-address' type=int items=1
                        value=00000002


# update_drv -a -i '"usb474,71c"' usbsacm
devfsadm: driver failed to attach: usbsacm
Warning: Driver (usbsacm) successfully added to system but failed to attach
# cat /etc/driver_aliases | grep usbsacm
usbsacm "usb,class2.2.0"
usbsacm "usbif,class2.2"
usbsacm "usbc88,17da"
usbsacm "usb1410,1110"
usbsacm "usb474,71c"
# reboot

リブート後/dev/term/0ができていれば、tipで接続し"at"コマンドが応答するか確認してみます。
bash-3.00$ tip /dev/term/0
connected
at
OK
~
[EOT]

私は、FOMAでもプロバイダとしてmoperaを使いますので、PPPはSolaris10 + PHSでモバイルで設定した内容とほとんど同じです。(違うのは、アクセスポイントとmodemのデバイス名ぐらい)ただ、PHSとFOMA両方使えるようにしたいのでmopera-fomaとして以下の2つのファイルを作成します。

/etc/ppp/peers/mopera-foma
connect "/usr/bin/chat -f /etc/ppp/mopera-foma-chat"
updetach
/dev/term/0
115200
usepeerdns
defaultroute
lock
name mopera

/etc/ppp/mopera-foma-chat
TIMEOUT 10
ABORT "BUSY"
ABORT "NO CARRIER"
"" ATZ
OK "ATDT*99***1#"
TIMEOUT 60
CONNECT "CONNECT"

設定が完了したら、inetmenuでPPP接続をしてみます。 

bash-3.00$ inetmenu -t
Select an interface :
1) Dialup
2) Ethernet:iprb0
3) Wireless:iwi0
#? 1
Select an ISP :
1) mopera
2) mopera-foma
#? 2
Serial connection established.
Using interface sppp0
Connect: sppp0 <--> /dev/term/0
LCP: Rcvd Code-Reject for Identification id 118
local  IP address XXX.XXX.XXX.XXX
remote IP address XXX.XXX.XXX.XXX
primary   DNS address 220.159.212.200
secondary DNS address 220.159.212.201
cat: /etc/ipf/pfil.ap をオープンできません。
Interface: sppp0
IP Address: XXX.XXX.XXX.XXX

無事接続できました。やっぱり、64kの@FreeDよりは早いです。もちろん、接続後はFirefox, Thunderbird等を使ってWeb閲覧、メールできます。これでまた、Solarisがデスクトップとして一段と使えるようになりました。ただ、少し確認したところFOMAの機種で動くものと動かないものがありそうです。

火曜日 12 19, 2006

Solaris10 + PHSでモバイル

Solaris10では、Solaris9とは比べものにならない程多くのデバイスをサポートするようになりました。私が確認できた1つとして、PCMCIAモデムカード(NTT Docomo P-in Free 1S)があります。実は1年ほど前このカードを利用できることを確認し、PCからWindowsを完全に削除しSolaris10のみにしました。ただ、NTT DocomoのPHSは、来年度でサービス停止が決まっています。。残念。ちなみに、現在の私のPCは、Sony VGN-S93PSYで Nevada(build54)をインストールしています。

付属のPCMCIAアダプタをつけたカードを挿してATコマンドを実行してみます。tipで接続してconnectedの後にatと打って"OK"がでてくることを確認できればmodemとして利用できます。その後、"~."とタイプしてtipを終了します。

# tip /dev/cua/pc0
connected
at
OK
~.
[EOF]

次に、pppの設定をします。ここでは、プロバイダとしてmoperaを利用している例を挙げます。接続に必要な情報はこちらを参照しました。

作成・修正するファイルは、以下のとおりです。
/etc/ppp/mopera-chat
/etc/ppp/options
/etc/ppp/pap-secrets
/etc/ppp/peers/mopera

/etc/ppp/peers/mopera
connect "/usr/bin/chat -f /etc/ppp/mopera-chat"
updetach
/dev/cua/pc0
115200
usepeerdns
defaultroute
lock
name mopera

/etc/ppp/mopera-chat
TIMEOUT 10
ABORT "BUSY"
ABORT "NO CARRIER"
"" ATZ
OK "ATDT0570800166#6401"
TIMEOUT 60
CONNECT "CONNECT"

moperaは、パスワードが必要ありませんが以下のように記述しておきます。
/etc/ppp/pap-secrets
mopera * *

また、/etc/ppp/optionsの空ファイルを作ります。
# touch /etc/ppp/options

これで、設定は完了です。inetmenuを利用することでppp接続が簡単にできます。

bash-3.00$ inetmenu -t
Select an interface :
1) Dialup
2) Ethernet:iprb0
3) Wireless:iwi0
#? 1
Select an ISP :
1) mopera
#? 1
Serial connection established.
Using interface sppp0
Connect: sppp0 <--> /dev/cua/pc0
possibly broken peer detected; restarting LCP
LCP: Rcvd Code-Reject for Identification id 5
local  IP address XXX.XXX.XXX.XXX
remote IP address XXX.XXX.XXX.XXX
primary   DNS address 220.159.212.200
secondary DNS address 220.159.212.201
cat: /etc/ipf/pfil.ap をオープンできません。
Interface: sppp0
IP Address: XXX.XXX.XXX.XXX

bash-3.00$
bash-3.00$ ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
sppp0: flags=10010008d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4,FIXEDMTU> mtu 1456 index 11
        inet XXX.XXX.XXX.XXX --> XXX.XXX.XXX.XXX netmask ffffff00
bash-3.00$

Calendar

Feeds

Search

Links

Navigation

Referrers