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コマンドの応答を確認できます。あとは、前の手順と同じです。 

月曜日 1 15, 2007

MPlayerの導入

Solaris10でもRealPlayerが含まれるようになり便利になりましたが、Windows版とは異なり多くのファイルフォーマットには対応していません。そこで、Unixの世界でマルチメディア・プレーヤとして有名なオープンソースのMPlayerを導入してみます。MPlayerは、MPEG1/2、Quick Time、Windows Media Player等、数多くのフォーマットに対応しています。

ただ、MPlayerのコンパイルは、事前に多くのライブラリを用意する必要があったり、Solarisではソースに一部パッチを適応したりで結構大変です。そこで、前回導入したSFEを利用することにします。(SFEを使うと非常に簡単にインストールできます。)

まず、環境変数を読み込んでspecファイルを最新版にupdateします。

bash-3.00$ . /opt/jdsbld/bin/env.sh
bash-3.00$ cd ~ihara/jdsbuild/trunk
bash-3.00$ svn up

MPlayerのスペックファイルは、SFEmplayer.specですが多くのパッケージに依存していることが分かります。ですので、それらのパッケージを先に1つ1つインストールしていきます。

bash-3.00$ pkgtool build --download SFEmplayer.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
WARNING: skipping package SFEmplayer: required package SFElibsndfile not install
ed
WARNING: and no spec file specified on the command line provides it

・ (多くのrequired packageがインストールされていないとワーニングが出ます)

必要な全パッケージをインストールしていきます。
bash-3.00$ pkgtool build --download SFElibsndfile.spec
bash-3.00$ pkgtool build --download SFElibfame.spec
bash-3.00$ pkgtool build --download SFElibdvdcss.spec
bash-3.00$ pkgtool build --download SFElibdvdread.spec
bash-3.00$ pkgtool build --download SFElibdvdplay.spec
bash-3.00$ pkgtool build --download SFElibmad.spec
bash-3.00$ pkgtool build --download SFEliba52.spec
bash-3.00$ pkgtool build --download SFEliveMedia.spec
bash-3.00$ pkgtool build --download SFElame.spec
bash-3.00$ pkgtool build --download SFEtwolame.spec
bash-3.00$ pkgtool build --download SFEid3lib.spec
bash-3.00$ pkgtool build --download SFEfaad2.spec
bash-3.00$ pkgtool build --download SFElibmpcdec.spec
bash-3.00$ pkgtool build --download SFEsdl.spec
bash-3.00$ pkgtool build --download SFEmplayer.spec
bash-3.00$ pkgtool build --download SFEmplayer-codecs.spec

これで、MPlayerのインストールは完了です。適当なWindows Media  Playerファイルフォーマットのファイルを再生してみます。

bash-3.00$ mplayer /path/to/filename.wmv

MPlayerは、コマンドラインのインターフェースで、それぞれの機能がキーボードに割り当てられています。
例えば、
f: フル画面表示
9: 音量を下げる
0: 音量を上げる
q: 停止
space: 一時停止

その他は、mplayer -helpで確認してみてください。
最後に、MPlayerは、MozillaやFirefox向けのPlug-inとしても提供しています。プラグインもSFEのスペックファイルがありますので、それを使ってインストールします。ただ、こちらの環境ではビルドする前にソースファイルのダウンロード先を修正しないとビルドが失敗したので、以下のようにしてスペックファイルを修正します。

bash-3.00$ cp SFEmplayer-plugin.spec SFEmplayer-plugin.spec.orig
bash-3.00$ cat SFEmplayer-plugin.spec.orig | sed -e 's/#Source:/Source:/g' > SFEmplayer-plugin.spec

その後、修正したスペックファイルを元にビルドします。
bash-3.00$ pkgtool build --download SFEmplayer-plugin.spec

インストールが完了したら、起動しているFirefoxを再起動してみてください。その後、URLを入力するところにabout:pluginsと入れてみるとWindows Media Player等MPlayerがサポートしているフォーマットがプラグインとして追加されていることが分かります。テストを兼ねて、先月、Sunの会長でもあるScottが来日した際にNHKのインタビューがWeb上で見ることができますので確認してみます。

http://www.nhk.or.jp/nhkworld/english/asx/feature69_200k.asx

 
ちなみに、Real Player向けはこちらです。
http://www.nhk.or.jp/nhkworld/english/ram/feature69.ram

いかがですか?これで、またSolarisデスクトップが便利になりました。

月曜日 1 08, 2007

SFE(Sepc Files Extra)を使おう

SFE(Spec Files Extra)とは、LinuxのRPM specファイルに似たようなものでソースコードの展開、パッチの適応、ビルドそしてパッケージング(もちろんSolarisのパッケージ)をしてくれるものです。

http://pkgbuild.sourceforge.net/spec-files-extra/

SFEを利用すると、source tarballのダウンロードからパッケージのインストールまで簡単に行うことができ非常に便利です。まずは、SFEに必要なコンパイル環境を整えます。基本は、Building JDS on OpenSolaris3. JDS Common Build Environmentまでの手順に沿って以下のソフトウェアおよびツールをインストールすればOKです。

  • Sun Studio 11
  • JDS Common Build Enviroment(CBE)

Sun Studio 11は、Sun Developer Network(SDN)にメンバー登録(無償)すれば無償でダウンロードし利用することができます。CBEは、コンパイルに必要なツール群です。インストールは、こちらに書いてあるとおりインストールスクリプトを実行するだけでそれほど難しくありません。(途中で、ここに書いてパッケージをrequired packagesとしてインストールするか聞いてきます。その際にSolarisのメディアが必要になりますので、インストールされているOSのメディアを用意してください)

また通常、ソフトウェアのインストール等は、rootを利用していたと思いますが、RBAC(Role Based Access Control)を使って、一般ユーザに"Software Installation"プロファイル(デフォルトで存在します)を与えることによって一般ユーザでも行うことが可能になります。私の例では、/etc/user_attrの"ihara"アカウントに与えています。

ihara::::type=normal;profiles=Ginetmenu,Software Installation

"3. JDS Common Build Environment"まで準備ができたら、コンパイル環境の環境変数を読み込んでsvnを使いネットワーク経由でSFE(Spec Files Extra)の最新版を持ってきます。また、これらも一般ユーザで行うことができます。

bash-3.00$ . /opt/jdsbld/bin/env.sh 
bash-3.00$ mkdir ~ihara/jdsbuild
bash-3.00$ cd ~ihara/jdsbuild/
bash-3.00$ svn co https://svn.sourceforge.net/svnroot/pkgbuild/spec-files-extra/trunk
A    trunk/SFEgnuplot.spec
A    trunk/SFEgeckosdk.spec
A    trunk/SFErdesktop.spec



Checked out revision 100.
bash-3.00$

完了すると、truckディレクトリ以下に現在利用可能なスペックファイルがダウンロードされていることがわかると思います。これらのspecファイルは、Webからも参照することができます。 これらのspecファイルは日々メンテナンスされています。Revisionがupdateされていた場合は、以下のようにして簡単に最新版に同期することができます。

bash-3.00$ svn up ~ihara/jdsbuild/trunk/
U    /export/home/ihara/jdsbuild/trunk/SFEcoreutils.spec
U    /export/home/ihara/jdsbuild/trunk/SFEsed.spec



Updated to revision 103.
bash-3.00$

これで、環境は整いました。あとは、specファイルを使ってビルドするだけです。ここでは、例としてSFErdesktop.specファイルを使ってrdesktopのインストールを行ってみます。

bash-3.00$ cd ~ihara/jdsbuild/trunk/
bash-3.00$ pkgtool build --download SFErdesktop.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
INFO: Finding sources
INFO: Downloading source http://umn.dl.sourceforge.net/sourceforge/rdesktop/rdesktop-1.5.0.tar.gz
INFO: Running pkgbuild -ba [...] SFErdesktop.spec (SFErdesktop)
INFO: SFErdesktop PASSED
INFO: Installing SFErdesktop
Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
SFErdesktop | PASSED |
上記のとおり、 rdesktop-1.5.0.tar.gzのダウンロードからコンパイル、パッケージの作成、インストールが成功しました。ダウンロードしたソースファイルと作成されたパッケージは、それぞれ~ihara/packages/SOURCESと~ihara/packages/PKGS以下に保存されます。

bash-3.00$ cd ~ihara/packages
bash-3.00$ ls
BUILD    PKGMAPS  PKGS     SOURCES  SPECS    SPKGS
bash-3.00$ ls ~ihara/packages/SOURCES/
default-copyright.txt  rdesktop-1.5.0.tar.gz
bash-3.00$ ls ~ihara/packages/PKGS/
SFErdesktop

アンインストールは、pkgrmでもできますがpkgtoolを使うと以下のようにおこないます。

bash-3.00$ pkgtool uninstall-pkgs ~ihara/jdsbuild/trunk/SFErdesktop.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
INFO: Uninstalling SFErdesktop

Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
SFErdesktop | UNINSTALLED | 

また、パッケージによってはインストールの際に他のパッケージを先に入れておく必要な場合もあります。例えば、SFEetermの場合、SFEimlib2とSFElibastを先にbuildおよびインストールします。

bash-3.00$ pkgtool build --download ~ihara/jdsbuild/trunk/SFEeterm.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
WARNING: skipping package SFEeterm: required package SFEimlib2 not installed
WARNING: and no spec file specified on the command line provides it
WARNING: skipping package SFEeterm: required package SFElibast not installed
WARNING: and no spec file specified on the command line provides it
WARNING: skipping package SFEeterm: required package SFEimlib2 not installed
WARNING: and no spec file specified on the command line provides it
WARNING: skipping package SFEeterm: required package SFElibast not installed
WARNING: and no spec file specified on the command line provides it

Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
SFEeterm | DEP_FAILED | Dependency check failed
最後に、ソフトウェアのバージョンアップは頻繁に行われています、依存関係等でパッチの適応やコンパイルに失敗することもあります。もしバグを見つけた場合やビルド等に問題があった場合は、ここにバグ登録しましょう。また、パッチや追加のspecファイルの提供もwelcomeのようです。多くのソフトウェアがSFEを通じてインストールできるようになればと思います。

金曜日 12 29, 2006

Webサーバのroot特権排除してセキュアに

世の中の外向けのWebサーバは、ポート80番で動いているものがほとんどだと思います。ご存知のとおり、標準では1024番以下は特権ポートと呼ばれ、通常rootでないとbindすることができません。このため、Webサーバの場合ポート80番で起動という、ただそれだけでスーパーユーザのrootが必要になっているのが実情です。
Solaris10では、最小特権という概念が含まれており、UID=0(root)をチェックする代わりに、特権コールを実施する際には、それに必要な特権を持っているか否かをチェックしています。つまり、単なるWebサーバであればrootではなく"一般ユーザ + 1024番以下でbindできる特権"で起動することができます。これによってWebサーバの脆弱性をついたroot特権の奪取を防ぐことができます。以下にその設定手順を記載します。

まずは、普通に起動して確認してみます。
# cd /etc/apache2/
# cp httpd.conf-example httpd.conf
# svcadm enable apache2
# svcs -a | grep apache2
online 18:23:33 svc:/network/http:apache2
# ps -ef | grep httpd
webservd 1684 1681 0 18:23:34 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1685 1681 0 18:23:34 ? 0:00 /usr/apache2/bin/httpd -k start
root 1681 1 0 18:23:33 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1686 1681 0 18:23:34 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1683 1681 0 18:23:34 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1682 1681 0 18:23:34 ? 0:00 /usr/apache2/bin/httpd -k start

子プロセスは、apache側の設定でwebservdにsetuidされていますが、親プロセスはrootです。しかも以下でわかるように全特権持っています。

# ppriv 1681
1681: /usr/apache2/bin/httpd -k start
flags = <none>
E: all
I: basic
P: all
L: all

次に、apache2を止めて最小特権の設定をしてみます。設定は、SMFのプロパティに追加していくだけです。なお、Solaris10ではwebservdというユーザ、グループ名が最初から用意されていますので、これを使うことにします。

# svcadm disable apache2
# svcs -a | grep apache2
disabled 18:24:26 svc:/network/http:apache2

# svccfg -s apache2
svc:/network/http:apache2> setprop start/user = astring: webservd
svc:/network/http:apache2> setprop start/group = astring: webservd
svc:/network/http:apache2> setprop start/privileges = astring: basic,!proc_session,!proc_info,!file_link_any,net_privaddr
svc:/network/http:apache2> setprop start/limit_privileges = astring: basic,!proc_session,!proc_info,!file_link_any,net_privaddr
svc:/network/http:apache2> setprop start/use_profile = boolean: false
svc:/network/http:apache2> setprop start/supp_groups = astring: :default
svc:/network/http:apache2> setprop start/working_directory = astring: :default
svc:/network/http:apache2> setprop start/project = astring: :default
svc:/network/http:apache2> setprop start/resource_pool = astring: :default
svc:/network/http:apache2> end

変更内容をupdateします。
# svcadm refresh apache2

ログファイルの所有者をwebservd:webservdにします。
# cd /var/apache2/logs
# chown webservd:webservd access_log error_log

httpd.confを編集しpid、lockファイルの保存先を変更します。
# cd /etc/apache2
# vi httpd.conf
変更は、以下の2点です。

#LockFile /var/apache2/logs/accept.lock

LockFile /var/apache2/logs/accept.lock

PidFile /var/run/apache2/httpd.pid

PidFile /var/apache2/run/httpd.pid

ディレクトリとして新規に/var/apache2/runを作成し、所有者をwebservd:webservdにします。
# mkdir /var/apache2/run
# chown webservd:webservd /var/apache2/run

以上で設定は完了ですので、再度apache2を起動し動作確認します。

# svcadm enable apache2
# svcs apache2
STATE STIME FMRI
online 18:28:21 svc:/network/http:apache2
bash-3.00# ps -ef | grep httpd
webservd 1722 1719 0 18:28:22 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1720 1719 0 18:28:22 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1719 1 0 18:28:21 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1721 1719 0 18:28:22 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1723 1719 0 18:28:22 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1724 1719 0 18:28:22 ? 0:00 /usr/apache2/bin/httpd -k start

上記のとおり、親プロセスも含めすべてwebservdで実行されていることがわかります。次に以下のように特権を確認してみると最低限必要な特権3つしか持っていません。

# ppriv -v 1719
1719: /usr/apache2/bin/httpd -k start
flags = <none>
E: net_privaddr,proc_exec,proc_fork
I: net_privaddr,proc_exec,proc_fork
P: net_privaddr,proc_exec,proc_fork
L: net_privaddr,proc_exec,proc_fork

もちろん、80番ポートで待っています。
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Tue, 26 Dec 2006 09:34:43 GMT
Server: Apache/2.0.58 (Unix) DAV/2




ついでですが、apache2のプロパティを最小特権設定前に戻す方法を以下に記載します。
# svcadm disable apache2
# svccfg -s apache2
svc:/network/http:apache2> listsnap
last-import
running
initial
start
svc:/network/http:apache2> revert initial
svc:/network/http:apache2> exit
# svcadm refresh apache2
# svcadm enable apache2
# ps -ef | grep http
webservd 1759 1755 0 18:42:02 ? 0:00 /usr/apache2/bin/httpd -k start
root 1755 1 0 18:42:01 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1760 1755 0 18:42:02 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1758 1755 0 18:42:02 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1757 1755 0 18:42:02 ? 0:00 /usr/apache2/bin/httpd -k start
webservd 1756 1755 0 18:42:02 ? 0:00 /usr/apache2/bin/httpd -k start

日曜日 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