2014年2月19日水曜日

Android-002 root化(HTL21,HTL22)

2.HTC J(HTL21)編 [2/6]

手持ちのHTL21アップデートの履歴。
入手日2013年02月17日 ソフトウェアの番号:1.15.970.1 Androidバージョン:4.1.1
更新日2013年03月13日 ソフトウェアの番号:1.29.970.1
更新日2013年08月22日 ソフトウェアの番号:1.36.970.1
au製品アップデート情報のページ 
HTC J butterfly HTL21 アップデート情報
最終は 2013年12月11日 ソフトウェアの番号:1.39.970.1 のもよう
当方は2013年08月22日の1.36.970.1にしてからアップデートはせず放置していた。

(1)1.36.970.1から1.15.970.1 にバージョンダウン
【誤報でした】au HTL21 HTC J butterflyのダウングレードが可能に、やってみた (HTC速報Dev)
このHTC速報Devを見たあと、つぎの、 小物置き場
に、
HTC J One/HTC J butterfly用ダウングレードツール
【対応端末】HTC J butterfly(ソフトウェア番号:1.36.970.1および1.39.970.1)
というのが早そうなので試した。以下2つのzipファイルを用意して、

[firmware.zip]
・HTC J butterfly HTL21(ソフトウェア番号:1.36.970.1用)
は、1369701_firmware.zip にリネームする。
MD5 (1369701_firmware.zip) = eba04a7b8eced5253e6f7afb312ab020

[PL99IMG_DLX_WLJ_JB_45_KDDI_JP_1.15.970.1_R_Radio_1.00.10.1127_3_NV_2.28_01C_release_signed.zip]
は、rom.zip にリネームする。
MD5 (rom.zip) = bbdb74f082b9ca6b98e7419bf1a32d12

をdowngrad_toolに配置して、downgrad_tool>run_me.bat を実行するが、
途中で止まってしまった。
downgrad_tool>run_me.bat
|<途中省略>
Attempt put_user exploit...
0p21 of=/sdcard/mmcblk0p21_misc_backup
2045+0 records in
2045+0 records out
1047040 bytes transferred in 0.357 secs (2932885 bytes/sec)
1_misc_fake of=/dev/block/mmcblk0p21
2045+0 records in
2045+0 records out
1047040 bytes transferred in 0.137 secs (7642627 bytes/sec)
shell@android:/data/local/tmp # exit
shell@android:/data/local/tmp $ exit
RUUを適用します。触らずにそのままお待ちください。

0 秒待っています。続行するには何かキーを押してください ...
< waiting for device >
...
(bootloader) Start Verify: 3
OKAY [  0.039s]
finished. total time: 0.040s

0 秒待っています。続行するには何かキーを押してください ...
< waiting for device >
sending 'zip' (35212 KB)...
|<ここで止まった。>
sending 'zip' (35212 KB)...
FAILED (status read failed (Too many links))
finished. total time: 5464.188s

 0 秒待っています。続行するには何かキーを押してください ...
< waiting for device >
なにか足りないものがあるのだろう。これは弱った。あきらめずに、run_me.batを読んで、1行ごと手打ちで実行してみることにした。たぶんfastboot flash zip rom.zipあたりで止まっているのだろうと予想した。
C:\Users\myuser>adb shell
shell@android:/ $ cd /data/local/tmp
cd /data/local/tmp
shell@android:/data/local/tmp $ ls -l
ls -l
-rwxr-xr-x shell    shell       55296 2014-01-22 18:33 device.db
-rwxr-xr-x shell    shell      396588 2014-01-22 18:47 run_root_shell
shell@android:/data/local/tmp $ ls -l /sdcard/mmc*
ls -l /sdcard/mmc*
-rwSrwSr-T root     sdcard_rw  1047040 2014-02-16 17:32 mmcblk0p21_misc_backup
-rw-rw-r-- root     sdcard_rw  1047040 2014-02-16 17:31 mmcblk0p21_misc_fake
shell@android:/data/local/tmp $ ./run_root_shell
./run_root_shell
Device detected: HTL21 (JRO03C)
Attempt acdb exploit...
failed to open /dev/msm_acdb due to Permission denied.
Attempt fj_hdcp exploit...
Attempt msm_cameraconfig exploit...
Detected kernel physical address at 0x80608000 form iomem
Attempt put_user exploit...

1|shell@android:/data/local/tmp # cmp -l /dev/block/mmcblk0p21 /sdcard/mmcblk0p2
1_misc_backup
lk0p21 /sdcard/mmcblk0p21_misc_backup                                         <
/dev/block/mmcblk0p21 /sdcard/mmcblk0p21_misc_backup differ byte 162
/dev/block/mmcblk0p21 /sdcard/mmcblk0p21_misc_backup differ byte 163
/dev/block/mmcblk0p21 /sdcard/mmcblk0p21_misc_backup differ byte 165
/dev/block/mmcblk0p21 /sdcard/mmcblk0p21_misc_backup differ byte 166
/dev/block/mmcblk0p21 /sdcard/mmcblk0p21_misc_backup differ byte 169
1|shell@android:/data/local/tmp # cmp -l /dev/block/mmcblk0p21 /sdcard/mmcblk0p2
1_misc_fake
lk0p21 /sdcard/mmcblk0p21_misc_fake                                           <
shell@android:/data/local/tmp #

|mmcblk0p21のパッチは正しいようだ。
|<途中省略>

HTL21\downgrad_tool>fastboot flash zip rom.zip
sending 'zip' (821718 KB)...
OKAY [ 43.181s]
writing 'zip'...
(bootloader) adopting the signature contained in this image...
(bootloader) signature checking...
(bootloader) rom parsing start ...
(bootloader) rom parsing finish ...
(bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) checking main version...
(bootloader) checking hboot version...
(bootloader) start image[sbl3] unzipping & flushing...
(bootloader) [RUU]UZ,sbl3,0
(bootloader) [RUU]UZ,sbl3,100
(bootloader) signature checking...
(bootloader) ...... Successful
(bootloader) start image[boot] unzipping & flushing...
(bootloader) [RUU]UZ,boot,0
(bootloader) [RUU]UZ,boot,14

|<途中省略>

(bootloader) [RUU]WP,radio,0
(bootloader) [RUU]WP,radio,33
(bootloader) [RUU]WP,radio,67
(bootloader) [RUU]WP,radio,100
(bootloader) ...... Successful
(bootloader) start image[rcdata] unzipping & flushing...
(bootloader) [RUU]UZ,rcdata,0
(bootloader) [RUU]UZ,rcdata,100
(bootloader) [RUU]WP,rcdata,0
(bootloader) [RUU]WP,rcdata,100
(bootloader) ...... Successful
OKAY [294.154s]
finished. total time: 337.335s

HTL21\downgrad_tool>fastboot reboot

rebooting...

finished. total time: 0.031s
再起動で、ソフトウェアの番号:1.15.970.1 にバージョンダウンされていた。

(2)root化やSuperCID化、BootLoaderUnlockの作業
HTC J butterfly : root化について (HTC速報Dev)

HTC_J_butterfly_rootkit_v1.1>runme.bat
この「runme.bat」で行った。この画面通りの指示でSuperCID以外は処理できた。

(3)Spoof-CID.batの作業
Unlock_code.bin を得ようとすると、
Error Code: 160.
Error Reason: MID Not Allowed. となってしまった。
そこで、
HTC J butterfly HTL21 のSuperCID化・ブートローダアンロック・rooting・S-OFF
の「SuperCIDを11111111から22222222にする」の通りに実行してOKになった。

3.HTC J One(HTL22)編 [3/6]

手持ちのHTL22アップデートの履歴。
入手日2013年10月9日 ソフトウェアの番号:1.07.970.4 Androidバージョン:4.1.2
au製品アップデート情報のページ 
HTC J One HTL22 アップデート情報
最終は 2013年12月19日 ソフトウェアの番号:2.21.970.2 のもよう
当方は入手日2013年10月9日の1.07.970.4のままアップデートはせず放置していた。
HTC J One HTL22のS-OFFが可能に、M7_WLJ専用「revone-wlj」が公開へ S-OFF手順
このHTC速報Devを見たあと、つぎの、
HTL22ことHTC J ONEのブートローダーアンロックとS-OFFからのroot権限取得、そしてAndroid4.2へバージョンアップなど
が、とてもよくまとまっていたので、この作業内容に沿って処理した。

手順は順番の通りに進めばよかったのに、
「au公式のAndroid4.2.2へのバージョンアップ」を飛ばしてしまった。
Android4.2.2のOTAは、 OTA_M7_WLJ_JB422_SENSE50_MR_KDDI_JP_2.15.970.1-1.07.970.4_release_3331417doal9gnjh1c57xx.zip として、Downloadされるが、これは、純正リカバリのままでないとアップデートできないことがあとで判った。すでに「カスタムリカバリの導入」でCWMを書いてしまったので、Android4.2.2にアップデートしそこなっている。

■追記 2015.4.9に行った作業

●Android4.2.2(2.15.970.1)へのアップデート
以下のzipファイルを入手して、PN07IMG.zipにリネームし、SDカードに入れる。
% mv RUU_M7_WLJ_JB422_SENSE50_MR_KDDI_JP_2.15.970.1_Radio_1.23.11.0829_NV_3.39_01C_333116_unsigned_htcsoku_PN07IMG_2.zip PN07IMG.zip
% ls -l PN07IMG.zip
 942854287  4  9 15:02 PN07IMG.zip
% md5 PN07IMG.zip
MD5 (PN07IMG.zip) = d1991b572323b87ebf1fa8fa38dc5b4c
FASTBOOTから、HBOOT起動して20分くらいでRUUが完了した。
無事に、Android4.2.2になった。

●SIM Unlockもやってみる。
mmcblk0p19を書き換える。
# dd if=/dev/block/mmcblk0p19 of=/misc.img
2045+0 records in
2045+0 records out
1047040 bytes (1022.5KB) copied, 0.083626 seconds, 11.9MB/s
# ls -l misc.img
-rw-rw-rw-    1 root     root       1047040 Apr  9 01:07 misc.img
emacsから直接Hexで入力する、M-x hexl-insert-hex-char
misc.imgをバイナリで開き1023のところを00→11に変更
imac:% md5 misc.img misc.img.org
MD5 (misc.img) = d5fb24d61836bb12fcde8c9026808e9b
MD5 (misc.img.org) = a436015adc35e0e661a1ba573a092c72

% cmp -l misc.img.org misc.img
   4132   0  21 (Octal)

imac:% adb push misc.img /
# dd if=/misc.img of=/dev/block/mmcblk0p19
2045+0 records in
2045+0 records out
1047040 bytes (1022.5KB) copied, 0.120494 seconds, 8.3MB/s
# reboot
BIGLOBEのSIMを挿しての通信はLTEをつかんでいる。安定しており常用しても問題ないようだ。

Android-001 root化(ISW13HT)

手持ちのAndroid端末6台を初心者ながらroot化してみた。root化の作業の知識はほとんどなく、ワンクリックツールで以前に
2013年4月26日金曜日 記事 Nexus7-01 4.2.2(JDQ39)
2013年4月29日月曜日 記事 GalaxyNexus-01 4.2.2(JDQ39)
の2台をroot化したことがあるくらいで、このときと同様に、今回、もし失敗して端末起動しなくなったら、そっとジャンク箱にしまい込むつもりで臨んだ。が、喜ばしいことにとりあえず6台はroot化に成功した。
そのとき、ググって参照したページをメモに残す。有用な情報を掲載くださった方々に感謝します。
※ 以下、目新しい情報はありません。同じようにやって見た。という話題・内容です。
※ 作業しながら本メモを書いていないので記憶に間違いがあるかもです。
# Android端末6台の一覧
1.au HTC J (ISW13HT)
2.au HTC J butterfly (HTL21)
3.au HTC J One (HTL22)
4.au Xperia acro HD (IS12S)
5.docomo Xperia AX (SO-01E)
6.EMOBILE Nexus 5 (EM01L)

0.事前準備・予備知識

以下のコマンドでiMacにて作業前バックアップを取った。
% adb backup -f 20YYMMDD_shared.ab -apk -shared -all -system
復元は、
% adb restore 20YYMMDD_shared.ab
自分がインストールしたアプリとsdcardなどのユーザエリアの退避復元は問題なく行えた。-shared -allで、sdcardパスであるshared/0/やshared/1/が対象になるようだ。

・Win7機のAndroidドライバはHTC Sync Manager
 setup_2.4.36.0_htc.exe をインストールする。
・Android SDKはGet the Android SDK > Download から
 installer_r22.3-windows.exeをc:\android-sdk-windowsにインストールする。
 さらにPath=c:\android-sdk-windows\platform-tools; パスを通す。
・C:\Windows\System32\ja-JP\devmgmt.msc
 デバイスマネージャをデスクトップにショートカット。
 これは、> Android USB Devices をみて、
  + My HTC ... HTC機接続で「このデバイスは正常に動作しています。」確認用。
・Android端末設定
 開発者向けオプション USBデバッグ ON(必須)
 セキュリティ     不明な提供元 ON
 ディスプレイ     スリープを無効にする ON
・HTC機種ブートローダHBOOTの入りかた
 電源OFFで、<POWER>+<VOL DOWN>同時押しして、7秒後に<POWER>を離す。
 コマンドでは、$ adb reboot bootloader
・リカバリモードへはブートローダのHBOOTメニューからRECOVERYを選ぶ
 コマンドでは、$ adb reboot recovery

1.HTC J(ISW13HT)編 [1/6]

手持ちのISW13HTアップデートの履歴。
入手日2012年07月13日 ソフトウェアの番号:1.20.970.2 Androidバージョン:4.0.3
更新日2012年07月13日 ソフトウェアの番号:1.31.970.1
更新日2012年10月16日 ソフトウェアの番号:2.05.970.3
更新日2013年03月19日 ソフトウェアの番号:2.06.970.4
au製品アップデート情報のページ 
HTC J ISW13HT アップデート情報
最終は 2013年11月19日 ソフトウェアの番号:2.07.970.7 のもよう
当方は2013年03月19日の2.06.970.4にしてからアップデートはせず放置していた。

(1)2.06.970.4から2.05.970.3 にバージョンダウン
ISW13HT(Version 2.06.970.4)のS-OFFまでの手順について (HTC速報Dev)

<バイナリエディタ確認メモ>
Emacsでmmcblk0p23.orgを開いて M-x hexl-mode
00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000090: 436c 6561 7241 7574 6f49 6d61 6765 2000 ClearAutoImage . 000000a0: 322e 3036 2e39 3730 2e34 0000 0000 0000 2.06.970.4...... 000000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ % cmp -l mmcblk0p23.org mmcblk0p23 #cmpコマンドは8進 164 66 65  #16進 36 → 35 170 64 63  #16進 34 → 33 000000a0: 322e 3035 2e39 3730 2e33 0000 0000 0000 2.05.970.3......
バージョンダウンの実行は、このページの
http://htcsoku.info/htcsokudev/rudimentary-knowledge/ruu/
「本体でSDカード(外部メモリ)から直接RUUを行う方法」で行った。
RUU_VALENTE_WX_ICS_40_S_KDDI_JP_2.05.970.3_Radio_1.53.30.0905_NV_1.17_01C_release_284185_signed.exe から、rom.zipを取り出して、PK07IMG.zipにリネームする。
ファイル:545552438 9 21 2012 PK07IMG.zip
MD5 (PK07IMG.zip) = 3ad984581a5e5f08763e6087fd1bce7f

このPK07IMG.zipを/sdcardに配置し、HBOOTを起動すると次の画面になった。
rebootすると、2.05.970.3へのダウングレードができていた。

(2)root化やSuperCID化、BootLoaderUnlockなどの作業
このページの 「※3、バージョン2.05.970.3の方」にある
HTCJrootkit_v3.1.rarのrootkitを用いた。
HTC J Valente : 各バージョンのroot化について (HTC速報Dev)
を見て、SuperCID、アンロック、recovery起動、SuperSuを行った。

さらにISW13HTのroot化、アンロック、S-OFF、SIMフリー化までは、丁寧でとてもわかりやすい。
SIMフリー化の解説もあったが、auの回線で使う可能性があるので処理はしなかった。

(3)S-OFFの作業
この「FacePalm」で行った。この通りに処理できた。


2014年1月6日月曜日

obsA7-008 無線LAN

アクセスポイント(無線LANブリッジ)として使用する場合の設定を行ったときのメモです。

1.無線LAN子機 WLI-UC-GN

BUFFALO WLI-UC-GN、このWLI-UC-GNは、 obs600でも使用していたもの (記事2011年6月19日 obs600-10 BUFFALOアダブタ) で、やや安定感が低く時々はドライバをUnload/Loadしながらで、やがて使わなくなっています。linux-2.6.36のときから、linux-3.2.40にアップグレードした今回のドライバではどうでしょうか。
WLI-UC-GN抜き差ししやすいように、短めの延長ケーブルを使っている。
ドライバのビルドせずともWLI-UC-GNアダプタを刺すだけで認識した。
% tail -f /var/log/syslog
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: new high-speed USB device number 6 using orion-ehci
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: New USB device found, idVendor=0411, idProduct=015d
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: Product: 802.11 n WLAN
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: Manufacturer: Ralink
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: SerialNumber: 1.0
Jan  6 11:11:05 obsa7 kernel: usb 1-1.2: reset high-speed USB device number 6 using orion-ehci
Jan  6 11:11:05 obsa7 kernel: ieee80211 phy18: Selected rate control algorithm 'minstrel_ht'
Jan  6 11:11:05 obsa7 kernel: Registered led device: rt2800usb-phy18::radio
Jan  6 11:11:05 obsa7 kernel: Registered led device: rt2800usb-phy18::assoc
Jan  6 11:11:05 obsa7 kernel: Registered led device: rt2800usb-phy18::quality
Jan  6 11:11:05 obsa7 kernel: usbcore: registered new interface driver rt2800usb
# lsmod
Module                  Size  Used by
rt2800usb              12586  0
rt2800lib              39792  1 rt2800usb
crc_ccitt               1045  1 rt2800lib
rt2x00usb               7293  1 rt2800usb
rt2x00lib              29900  3 rt2x00usb,rt2800lib,rt2800usb
まず始めは、rtl8192cu な GW-USValue-EZを試みたがうまく設定できなかった。
この rt2800usb はすんなりと動いた。
% uname -a #OBSA7標準のこのバージョンを使用
Linux obsa7 3.2.40 #1 Mon Oct 21 14:10:25 JST 2013 armv5tel GNU/Linux

2.ralinkファームウェアインストール

# aptitude install firmware-ralink
The following NEW packages will be installed:
  firmware-ralink
0 packages upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 21.4 kB of archives. After unpacking 96.3 kB will be used.
Get: 1 http://ftp.plathome.co.jp/pub/debian/ wheezy/non-free firmware-ralink all 0.36+wheezy.1 [21.4 kB]
Fetched 21.4 kB in 0s (82.6 kB/s)
Selecting previously unselected package firmware-ralink.
(Reading database ... 33634 files and directories currently installed.)
Unpacking firmware-ralink (from .../firmware-ralink_0.36+wheezy.1_all.deb) ...
Setting up firmware-ralink (0.36+wheezy.1) ...

# rt2*.bin rt3*.bin rt73.bin がインストールされる
# ls /lib/firmware/
RTL8192E     mts_cdma.fw  rt2661.bin  rt3090.bin  ti_5052.fw
RTL8192SU    mts_edge.fw  rt2860.bin  rt73.bin   whiteheat.fw
edgeport     mts_gsm.fw   rt2870.bin  rtl_nic   whiteheat_loader.fw
kaweth      rt2561.bin   rt3070.bin  rtlwifi
keyspan_pda  rt2561s.bin  rt3071.bin  ti_3410.fw

3.hostapdのインストール

% wget http://hostap.epitest.fi/releases/hostapd-2.0.tar.gz
% tar zxf hostapd-2.0.tar.gz
% cd hostapd-2.0/hostapd
% cp defconfig .config
% echo CONFIG_LIBNL32=y >> .config

% diff defconfig .config  #CONFIG_IEEE80211N=yも変更した
139c139
< #CONFIG_IEEE80211N=y
---
> CONFIG_IEEE80211N=y
269a270
> CONFIG_LIBNL32=y

% sudo apt-get libnl-genl-3-dev libssl-dev
% make
# make install
# /usr/local/bin/hostapd -v
hostapd v2.0
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2012, Jouni Malinen  and contributors

#hostapd.confはとりあえず動いた状態でまだ吟味できていない
# cat /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=nl80211
country_code=JP
ieee80211d=1
ssid=MYSSID
channel=6
hw_mode=g
wpa=2
wpa_passphrase=MYPASSPHRASE
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ieee80211n=1
wmm_enabled=1
#

4.hostapdの実行

# /usr/local/bin/hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
rfkill: Cannot open RFKILL control device
Using interface wlan0 with hwaddr 4c:e6:76:XX:XX:XX and ssid "MYSSID"
^C 起動を確認して中断し、backgroundの-Bをつけて起動。
# /usr/local/bin/hostapd -B /etc/hostapd/hostapd.conf

# iwconfig 2>&1|egrep -v "^$|no wireless"
wlan0     IEEE 802.11bgn  Mode:Master  Frequency:2.437 GHz  Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

mon.wlan0  IEEE 802.11bgn  Mode:Monitor  Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 4c:e6:76:XX:XX:XX
          inet6 addr: fe80::4ee6:76ff:XXX:YYYY/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:36414 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4066244 (3.8 MiB)  TX bytes:39695195 (37.8 MiB)

# tail -f /var/log/syslog
Jan  6 11:44:59 obsa7 kernel: device wlan0 entered promiscuous mode
Jan  6 11:44:59 obsa7 kernel: br0: port 2(wlan0) entering forwarding state
Jan  6 11:44:59 obsa7 kernel: br0: port 2(wlan0) entering forwarding state
Jan  6 11:45:02 obsa7 ntpd[3148]: Listen normally on 32 wlan0 fe80::4ee6:76ff:XXX:YYYY UDP 123
Jan  6 11:45:02 obsa7 ntpd[3148]: peers refreshed
Jan  6 11:45:10 obsa7 kernel: wlan0: no IPv6 routers present
Jan  6 11:45:14 obsa7 kernel: br0: port 2(wlan0) entering forwarding state

Jan  6 11:45:58 obsa7 hostapd: wlan0: STA 84:7a:88:XX:XX:XX IEEE 802.11: authenticated
Jan  6 11:45:58 obsa7 hostapd: wlan0: STA 84:7a:88:XX:XX:XX IEEE 802.11: associated (aid 1)
Jan  6 11:45:58 obsa7 hostapd: wlan0: STA 84:7a:88:XX:XX:XX RADIUS: starting accounting session 52CA18AB-00000000
Jan  6 11:45:58 obsa7 hostapd: wlan0: STA 84:7a:88:XX:XX:XX WPA: pairwise key handshake completed (RSN)
syslogにこのようなメッセージで"WPA: pairwise key handshake completed"がでてるとOK。

5.rt2800usbドライバのアンロード/ロード

別ドライバGW-USValue-EZなどrtl8192cuをテストするのにドライバのアンロード/ロードをするたびに、wlan0,wlan1,wlan2...とインターフェイス名が変わるのはおもしろくないので、wlan0固定で使えるように以下のようなスクリプトを書いて回避するようにした。
インターフェイス名はこのファイルが影響するもよう
# tail -3 /etc/udev/rules.d/70-persistent-net.rules

# USB device 0x:0x (rt2800usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="4c:e6:76:3c:a9:01", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

#70-persistent-net.rulesの後ろ3行を削除して、ドライバをロードすると、
#いつも"wlan0" になるが、もっとスマートな方法がありそうな...

# cat /etc/init.d/bridge.sh
#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
LINK=`cat /etc/LIF`  #もしくはLINK=eth0
WIF=${WIF:=eth1}
case "$1" in
  start)
    echo -n "Configuring bridge interfaces..."
    ps ax|grep dhclient|grep -qv grep
    if [ $? != 1 ]; then
       killall dhclient
    fi
    lsmod | grep -q rt2800usb
    if [ $? != 1 ]; then
       rmmod rt2800usb rt2800lib crc_ccitt rt2x00usb rt2x00lib
    fi
    RDIR="/etc/udev/rules.d"
    RULE="70-persistent-net.rules"
    RSRC=${RDIR}/${RULE}
    WLAN="wlan0"
    if [ -f $RSRC ]; then
           grep -q $WLAN $RSRC
           if [ $? = 0 ]; then
              RTMP="/tmp/${RULE}"
              cp -p $RSRC $RTMP
              POS1=`egrep -n $WLAN $RTMP |head -1| cut -d: -f1`
              POS0=`expr ${POS1} - 2`
              sed -e ${POS0},${POS1}d $RTMP > $RSRC
           fi
    fi
   #diff /tmp/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules
   # vi /etc/udev/rules.d/70-persistent-net.rules  ...  sed /wlan0/d
    brctl addbr br0
    brctl addif br0 $LINK
    ifconfig $LINK 0.0.0.0 up
    sleep 1
    modprobe rt2800usb
    ( sleep 2; /sbin/dhclient -q ${WIF}; sleep 5; \
      /usr/local/bin/hostapd -B /etc/hostapd/hostapd.conf ) &
    echo "done."
      ;;
  stop)
    echo -n "Deconfiguring bridge interfaces..."
    ps ax|grep hostapd|grep -qv grep
    if [ $? != 1 ]; then
        killall hostapd
    fi
    killall dhclient
    ifconfig -a|grep -q br0
    if [ $? != 1 ]; then
       ifconfig br0 0.0.0.0 down
    fi
    ifconfig $LINK 0.0.0.0 down
    lsmod | grep -q rt2800usb
    if [ $? != 1 ]; then
       rmmod rt2800usb rt2800lib crc_ccitt rt2x00usb rt2x00lib
    fi

    brctl delif br0 $LINK
    brctl show|grep -q $LINK
    if [ $? != 1 ]; then
       brctl delif br0 $LINK
    fi
    brctl show|grep -q br0
    if [ $? != 1 ]; then
       brctl delbr br0
    fi
    echo -n "dhclient $LINK . "
    /sbin/dhclient -q $LINK
    echo "done."
      ;;
  *)
    echo "Usage: $0 {start|stop}" >&2
    exit 1
      ;;
esac
#
/etc/network/interfaces に指定するのがスマートなのでしょうが、テスト時の柔軟さを優先すると、スクリプト書きが好みです。 安定して動作するか、転送速度・性能を含めて経過観察していきたい。

6.WLI-UC-GN稼働状況(追記2014.4.21)

OBS A7 は実に安定している。堅牢ということばが似合うルータだ。
遅ればせながら、# aptitude update と # aptitude safe-upgrade を行い
kernel-image や OpenSSL を含むアップデートを行う前に、wlan0のインターフェイス を確認しておく。
% date
Mon Apr 21 09:39:04 JST 2014

% uptime
 09:39:29 up 93 days, 19:35,  2 users,  load average: 0.05, 0.09, 0.06

% ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 4c:e6:76:3c:a9:01
          inet6 addr: fe80::4ee6:76ff:fe3c:a901/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:34453010 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36020512 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2098197015 (1.9 GiB)  TX bytes:3952858575 (3.6 GiB)
wlan0は連続93日稼働で、TX側36020512パケットで(3.6 GiB)となっている。
br0       Link encap:Ethernet  HWaddr 00:0a:85:09:01:74
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:85ff:fe09:174/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44300752 errors:0 dropped:2 overruns:0 frame:0
          TX packets:67218375 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5603503687 (5.2 GiB)  TX bytes:83616546596 (77.8 GiB)
ちなみにブリッジinterface br0には77.8 GiB流量があったようだ。
ここまでの約3ヶ月、WLI-UC-GNは問題なく、とても良く働いてくれている。

そして、iPerfでobsA7とiMac間をパフォーマンス測定すると。
(obsA7側) % iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.30 port 5001 connected with 192.168.1.62 port 65098
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  37.5 MBytes  31.1 Mbits/sec

(iMac側) % iperf -c obsa7
------------------------------------------------------------
Client connecting to obsa7, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  5] local 192.168.1.62 port 65098 connected with 192.168.1.30 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.1 sec  37.5 MBytes  31.2 Mbits/sec
およそ無線LANでは、31Mbits/secと計測できた。

ちなみに有線LANだと。以下のように132Mbits/secと計測した。
(obsA7側) % iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.30 port 5001 connected with 192.168.1.61 port 65039
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   157 MBytes   132 Mbits/sec

(iMac側) % iperf -c obsa7
------------------------------------------------------------
Client connecting to obsa7, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  5] local 192.168.1.61 port 65039 connected with 192.168.1.30 port 5001
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec   157 MBytes   132 Mbits/sec
# iwconfig
wlan0     IEEE 802.11bgn  Mode:Master  Frequency:2.437 GHz  Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
mon.wlan0  IEEE 802.11bgn  Mode:Monitor  Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
今は、/etc/hostapd/hostapd.conf のhw_mode=gだが、ここが11nでいつか動けばいいなぁ。

2013年12月31日火曜日

obsA7-007 exim4でsmtp.google.comに

前回のobsA7-006 exim4とmydns.jp に続いて、スマートホスト先をsmtp.google.comにして見た。

1.yahooとgoogleの差分

dc_relay_はコメントにして、dc_smarthostをsmtp.mail.yahoo.co.jpからsmtp.gmail.comにする。
#ためしているだけで、通常はyahoo.co.jpを使用する予定。
# diff update-exim4.conf.conf_yahoo update-exim4.conf.conf
23c23
< dc_relay_domains='smtp.mail.yahoo.co.jp'
---
> #dc_relay_domains='smtp.mail.yahoo.co.jp'
25c25
< dc_relay_nets='local_sample.or.jp:*.local_sample.or.jp:*.mail.yahoo.co.jp'
---
> #dc_relay_nets='local_sample.or.jp:*.local_sample.or.jp:*.mail.yahoo.co.jp'
28c28
< #dc_smarthost='smtp.gmail.com::587'
---
> dc_smarthost='smtp.gmail.com::587'
30c30
< dc_smarthost='smtp.mail.yahoo.co.jp::587'
---
> #dc_smarthost='smtp.mail.yahoo.co.jp::587'
SMTP-AUTH認証用 passwd.client の変更
# egrep -v '^#' /etc/exim4/passwd.client
*.google.com:GUSERID@gmail.com:PASSWORD
ここが、*.google.comでなく smtp.google.comだと、
SMTP>> STARTTLS でReady to start TLSになるものの
SMTP>> AUTH PLAIN ******************************
のAUTH PLAINにならずに、
SMTP>> MAIL FROM:
となって送信出来なかった。
送信サーバは gmail-smtp-msa.l.google.com になるのかと思われる。

2.メール送信テスト

<toGoogle.sh>
#! /bin/sh
set -x
export DT="TEST_test `date`"
(echo "Subject: $DT"; echo "To: au_user@ezweb.ne.jp";\
 echo "From: GUSERID@gmail.com"; echo ""; echo "$DT" ;\
 echo "from `hostname`") | \
/usr/sbin/exim4 -v -f GUSERID@gmail.com au_user@ezweb.ne.jp

# このスクリプトを実行
% ./toGoogle.sh                  [82] (13-12-31 Tue 14:00:59 PM)
+ date
+ export DT=TEST_test Tue Dec 31 14:01:01 JST 2013
+ /usr/sbin/exim4+  -v -f GUSERID@gmail.com au_user@ezweb.ne.jp
echo Subject: TEST_test Tue Dec 31 14:01:01 JST 2013
+ echo To: GUSERID@gmail.com
+ echo From: GUSERID@gmail.com
+ echo
+ echo TEST_test Tue Dec 31 14:01:01 JST 2013
+ hostname
+ echo from obsa7
LOG: MAIN
  <= GUSERID@gmail.com U=a7user P=local S=399
delivering 1VxrRt-0003XY-GO
R: smarthost for au_user@ezweb.ne.jp
T: remote_smtp_smarthost for au_user@ezweb.ne.jp
Transport port=25 replaced by host-specific port=587
Connecting to gmail-smtp-msa.l.google.com [74.125.129.108]:587 ... connected
  SMTP<< 220 mx.google.com ESMTP ae5sm111949890pac.18 - gsmtp
  SMTP>> EHLO obsa7
  SMTP<< 250-mx.google.com at your service, [106.172.137.192]
         250-SIZE 35882577
         250-8BITMIME
         250-STARTTLS
         250-ENHANCEDSTATUSCODES
         250 CHUNKING
  SMTP>> STARTTLS
  SMTP<< 220 2.0.0 Ready to start TLS
  SMTP>> EHLO obsa7
  SMTP<< 250-mx.google.com at your service, [106.172.137.192]
         250-SIZE 35882577
         250-8BITMIME
         250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
         250-ENHANCEDSTATUSCODES
         250 CHUNKING
  SMTP>> AUTH PLAIN ****************************************
  SMTP<< 235 2.7.0 Accepted
  SMTP>> MAIL FROM: SIZE=1434 AUTH=a7user@obsa7.local
  SMTP<< 250 2.1.0 OK ae5sm111949890pac.18 - gsmtp
  SMTP>> RCPT TO:
  SMTP<< 250 2.1.5 OK ae5sm111949890pac.18 - gsmtp
  SMTP>> DATA
  SMTP<< 354  Go ahead ae5sm111949890pac.18 - gsmtp
  SMTP>> writing message and terminating "."
  SMTP<< 250 2.0.0 OK 1388466065 ae5sm111949890pac.18 - gsmtp
  SMTP>> QUIT
LOG: MAIN
  => au_user@ezweb.ne.jp R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [74.125.129.108] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com"
LOG: MAIN
  Completed

a7user@obsa7:~%

3.第三者中継テスト

25番ポート開けておくと、結構Relay要求があるようだ。現行のOBS600のログ。
To: UUUUU@HHHHH.mydns.jp
Subject: Logwatch for obs (Linux)
Date: Mon, 16 Dec 2013 06:26:54 +0900

################### Logwatch 7.4.0 (05/02/12) ####################
        Processing Initiated: Mon Dec 16 06:26:37 2013
        Date Range Processed: yesterday
                              ( 2013-Dec-15 )
                              Period is day.
        Detail Level of Output: 0
        Type of Output/Format: mail / text
        Logfiles for Host: obs
##################################################################

--------------------- EXIM Begin ------------------------

--- Refused Relays 64 times

--- Bad Hosts ---

--- Failed Reverse Lookups
--- 18  Time(s)
念のため、このサイトhttp://www.rbl.jp/svcheck.phpを利用させていただいて確認した。
第三者中継テスト
第三者中継テストのためobsa7_sample.mydns.jpに接続しています...

((((( 途中省略 ))))))

>>> RSET
relay NOT accepted!!
中継テスト その19

>>> RSET
relay NOT accepted!!
接続を閉じています...

>>> QUIT
第三者中継テストの結果

全てのテストが行われました, no relays accepted.
最後の行が"no relays accepted"だと合格のようだ。

obsA7-006 exim4とmydns.jp

Mail Transfer Agentはexim4を、おうちメールサーバアドレスとしては無料のダイナミックDNS(Dynamic DNS、DDNS)MyDNS.JPを使って構成する。 スマートホストの中継先は、smtp.mail.yahoo.co.jpを使っているが、たぶんsmtp.gmail.comでも同様に動作するだろう。

MyDNS.JP取得については省略する。以下のように名前解決していることが前提。
# host obsa7_sample.mydns.jp
obsa7_sample.mydns.jp has address 106.XXX.YYY.ZZZ
obsa7_sample.mydns.jp mail is handled by 10 obsa7_sample.mydns.jp.

1.exim4の設定

前準備
# パッケージexim4をインストール
# aptitude install exim4
# dpkg -l | grep exim4
ii  exim4              4.80-7 all   metapackage to ease Exim MTA (v4) installation
ii  exim4-base         4.80-7 armel support files for all Exim MTA (v4) packages
ii  exim4-config       4.80-7 all   configuration for the Exim MTA (v4)
ii  exim4-daemon-light 4.80-7 armel lightweight Exim MTA (v4) daemon

# もしpaniclogがあれば空にしておく。
# ls -l /var/log/exim4/paniclog
# cp /dev/null /var/log/exim4/paniclog

# ls -l /etc/exim4/update-exim4.conf.conf
-rw-r--r-- 1 root root 1027 Dec 24 21:18 /etc/exim4/update-exim4.conf.conf

# このupdate-exim4.conf.confは中間設定ワークであるが、
# /var/lib/exim4/config.autogenerated が設定・変更される

# update-exim4.conf.confを直接変更したときは、
# /usr/sbin/update-exim4.conf
# /etc/init.d/exim4 restart
# として、/var/lib/exim4/config.autogeneratedを更新・反映させる。
ではexim4-config を行う。以下はテキストベースの設定画面を説明用に部分抽出したもの。
# dpkg-reconfigure exim4-config 

Package configuration                                                           
┤ Mail Server configuration 


General type of mail configuration:  メール設定の一般的なタイプ
   │     internet site; mail is sent and received directly using SMTP
   │   X mail sent by smarthost; received via SMTP or fetchmail      
   │     mail sent by smarthost; no local mail                       
   │     local delivery only; not on a network                       
   │     no configuration at this time                               


System mail name: システムメール名  /etc/mailname
 │ obsa7.local_sample.or.jp


IP-addresses to listen on for incoming SMTP connections:  入力側SMTP接続をリスンするIPアドレス
 │ 空


Other destinations for which mail is accepted: このSMTPサーバーで扱うドメインを指定します。
 │ obsa7_sample.mydns.jp


Domains to relay mail for: 外部リレーは認証済みのアカウント以外はできないので空でもよい。
 │ smtp.mail.yahoo.co.jp


Machines to relay mail for: メールをリレーするマシン
 │ local_sample.or.jp:*.local_sample.or.jp:*.mail.yahoo.co.jp


IP address or host name of the outgoing smarthost: このホストから送出されたメールを操作するマシン (スマートホスト)
 │ smtp.mail.yahoo.co.jp::587


│ Hide local mail name in outgoing mail?  送出するメールでローカルメール名を隠しますか?


Keep number of DNS-queries minimal (Dial-on-Demand)?  DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド)? 


Delivery method for local mail: 
 │ X mbox format in /var/mail/         
 │   Maildir format in home directory  


Split configuration into small files?      設定を小さなファイルに分割しますか?


Root and postmaster mail recipient:
 │ root


[ ok ] Stopping MTA for restart: exim4_listener.
[ ok ] Restarting MTA: exim4.

# egrep -v '^#' update-exim4.conf.conf

dc_eximconfig_configtype='smarthost'
dc_other_hostnames='obsa7_sample.mydns.jp'
dc_local_interfaces=''
dc_readhost='obs.local_sample.or.jp'
dc_relay_domains='smtp.mail.yahoo.co.jp'
dc_minimaldns='false'
dc_relay_nets='local_sample.or.jp:*.local_sample.or.jp:*.mail.yahoo.co.jp'
dc_smarthost='smtp.mail.yahoo.co.jp::587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
SMTP-AUTH認証用 passwd.client を設定
# egrep -v '^#' /etc/exim4/passwd.client
smtp.mail.yahoo.co.jp:Yahoo_JAPAN_MAIL@yahoo.co.jp:"Yahoo! JAPAN パスワード"

# chgrp Debian-exim passwd.client
# ls -l /etc/exim4/passwd.client
-rw-r----- 1 root Debian-exim 330 Dec 31 09:42 /etc/exim4/passwd.client
passwd.clientへのIDパスワードは、
http://info.mail.yahoo.co.jp/options/imapprofile/
Yahoo!JAPANにログイン後このページを見て
smtp.mail.yahoo.co.jp:メールアドレス:パスワード の行を設定する。
Yahoo_JAPAN_MAIL@yahoo.co.jp部分は@yahoo.co.jpを省略しても通ったようだ。
                    サーバー設定                    
 受信メール(IMAP)サーバー  imap.mail.yahoo.co.jp  
 受信メール(IMAP)通信方法  SSL                    
受信メール(IMAP)ポート番号 993                    
 送信メール(SMTP)サーバー  smtp.mail.yahoo.co.jp  
 送信メール(SMTP)認証方式  SMTP_AUTH              
 送信メール(SMTP)通信方法  SSL                    
送信メール(SMTP)ポート番号 465                    
  アカウント名/ログイン名    Yahoo_JAPAN_ID ... "Yahoo! JAPAN ID"     
       メールアドレス        Yahoo_JAPAN_MAIL@yahoo.co.jp
         パスワード          Yahoo! JAPAN パスワード
証明書の作成
# /usr/share/doc/exim4-base/examples/exim-gencert
Country Code (2 letters) [US]:JP
State or Province Name (full name) []:MY_FULL_NAME
Locality Name (eg, city) []:
Organization Name (eg, company; recommended) []:
Organizational Unit Name (eg, section) []:
Server name (eg. ssl.domain.tld; required!!!) []:
Email Address []:
[*] Done generating self signed certificates for exim!
    Refer to the documentation and example configuration files
    over at /usr/share/doc/exim4-base/ for an idea on how to enable TLS
    support in your mail transfer agent.
root@obsa7:exim4# ls -l exim.crt exim.key
-rw-r----- 1 root Debian-exim 652 Dec 30 23:22 exim.crt
-rw-r----- 1 root Debian-exim 916 Dec 30 23:22 exim.key
SMTP認証の設定
ユーザ認証方式は、「AUTH PLAIN」「AUTH LOGIN」を有効化する。
# diff /etc/exim4/exim4.conf.template.org /etc/exim4/exim4.conf.template
316c316
<
---
> MAIN_TLS_ENABLE = USE
1818,1826c1818,1826
< # plain_server:
< #   driver = plaintext
< #   public_name = PLAIN
< #   server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
< #   server_set_id = $auth2
< #   server_prompts = :
< #   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
< #   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
< #   .endif
---
> plain_server:
>   driver = plaintext
>   public_name = PLAIN
>   server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
>   server_set_id = $auth2
>   server_prompts = :
>   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
>   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
>   .endif
1833,1841c1833,1841
< # login_server:
< #   driver = plaintext
< #   public_name = LOGIN
< #   server_prompts = "Username:: : Password::"
< #   server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
< #   server_set_id = $auth1
< #   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
< #   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
< #   .endif
---
> login_server:
>   driver = plaintext
>   public_name = LOGIN
>   server_prompts = "Username:: : Password::"
>   server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
>   server_set_id = $auth1
>   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
>   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
>   .endif

2.メール送信テスト

<toYahoo.sh>
#! /bin/sh
set -x
export DT="TEST_test `date`"
(echo "Subject: $DT"; echo "To: au_user@ezweb.ne.jp";\
 echo "From: Yahoo_JAPAN_MAIL@yahoo.co.jp"; echo ""; echo "$DT" ;\
 echo "from `hostname`") | \
/usr/sbin/exim4 -v -f Yahoo_JAPAN_MAIL@yahoo.co.jp au_user@ezweb.ne.jp

# このスクリプトを実行
obsa7user@obsa7:~% ./toYahoo.sh
+ date
+ export DT=TEST_test Tue Dec 31 00:37:01 JST 2013
+ /usr/sbin/exim4+  -v -f obsa7_sample_user@yahoo.co.jp au_user@ezweb.ne.jp
echo Subject: TEST_test Tue Dec 31 00:37:01 JST 2013
+ echo To: au_user@ezweb.ne.jp
+ echo From: obsa7_sample_user@yahoo.co.jp
+ echo
+ echo TEST_test Tue Dec 31 00:37:01 JST 2013
+ hostname
+ echo from obsa7
LOG: MAIN
  <= obsa7_sample_user@yahoo.co.jp U=obsa7user P=local S=408
obsa7user@obsa7:~% delivering 1Vxetp-0001hN-6O
R: smarthost for au_user@ezweb.ne.jp
T: remote_smtp_smarthost for au_user@ezweb.ne.jp
Transport port=25 replaced by host-specific port=587
Connecting to smtp.mail.yahoo.co.jp [114.111.99.228]:587 ... connected
  SMTP<< 220 smtp506.mail.kks.yahoo.co.jp ESMTP
  SMTP>> EHLO obsa7
  SMTP<< 250-smtp506.mail.kks.yahoo.co.jp
         250-AUTH LOGIN PLAIN XYMCOOKIE
         250-PIPELINING
         250 8BITMIME
  SMTP>> AUTH PLAIN ****************************
  SMTP<< 235 ok, go ahead (#2.0.0)
  SMTP>> MAIL FROM: AUTH=obsa7user@obsa7.local_sample.or.jp
  SMTP>> RCPT TO:
  SMTP>> DATA
  SMTP<< 250 ok
  SMTP<< 250 ok
  SMTP<< 354 go ahead
  SMTP>> writing message and terminating "."
  SMTP<< 250 ok 1388417821 qp 62878
  SMTP>> QUIT
LOG: MAIN
  => au_user@ezweb.ne.jp R=smarthost T=remote_smtp_smarthost H=smtp.mail.yahoo.co.jp [114.111.99.228]
LOG: MAIN
  Completed
% 

</var/log/exim4/mainlog>
2013-12-31 00:37:01 1Vxetp-0001hN-6O <= Yahoo_JAPAN_MAIL@yahoo.co.jp U=a7user P=local S=408
2013-12-31 00:37:02 1Vxetp-0001hN-6O => au_user@ezweb.ne.jp R=smarthost T=remote_smtp_smarthost H=smtp.mail.yahoo.co.jp [114.111.99.228]
もし送信に失敗していたなら、メールがFrozenになるので、
→ 1Vxdpt-0000tm-7W Frozen (delivery error message)
# pushd /var/spool/exim4/input/; rm -i 1* とかして、失敗メールは削除する。

2013年12月28日土曜日

obsA7-005 ログインシェルとssh

1./root/.bashrc プロンプト表示を好みに変更

root@obsa7:~# cd /root
root@obsa7:~# diff .bashrc.org .bashrc
5c5
< # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
---
> PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
root@obsa7:~#

# 変更前のPS1 のパス表示プロンプト
obsa7:~# cd /var/log/samba
obsa7:/var/log/samba#
# 変更後のPS1 のパス表示プロンプト
root@obsa7:~# cd /var/log/samba
root@obsa7:samba#
# ホスト名表示し、パス名はカレントディレクトリだけの表示が好み

2.ログインシェルの変更

$ grep -n a7user /etc/passwd
21:a7user:x:1000:1000::/home/a7user:/bin/sh
$ grep zsh /etc/shells
/bin/zsh
/usr/bin/zsh
$ chsh -s /bin/zsh
Password: (a7userのパスワード)
$ grep -n a7user /etc/passwd
21:a7user:x:1000:1000::/home/a7user:/bin/zsh
$

zsh用 .profile

a7user@obsa7:~% cat .zprofile                  [17] (13-12-28 Sat 07:26:57 AM)
#
# $Id: .zprofile,v 1.1 2013-12-28 07:24:20+09 a7user $
#
echo 'Setting .zprofile '
set -o allexport
umask 002
PATH=.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/uty
HOSTNAME=`hostname`
ENV=$HOME/.zshrc
HISTSIZE=64
HISTFILE=/tmp/.sh_${LOGNAME}.$$
LD_LIBRARY_PATH=/usr/local/lib
JAVA_HOME='/usr/lib/jre'
MYOSREV=`/bin/uname -a | cut -c-3`
XMODIFIERS="@im=kinput2"
PAGER=jless
CURTTY=`/usr/bin/tty`
if [[ "$CURTTY" = "/dev/tty1" || "$CURTTY" = "/dev/tty2" || \
      "$CURTTY" = "/dev/tty3" || "$CURTTY" = "/dev/vc/1" || \
      "$CURTTY" = "/dev/vc/2" || "$CURTTY" = "/dev/vc/3" ]]; then
  LANG=C
else
    LANG=ja_JP.UTF-8
    LC_ALL=C
    LANGUAGE=C
fi
TZ=JST-9
RSYNC_RSH=ssh
set +o allexport
unset ignoreeof
# end of .zprofile
a7user@obsa7:~%                                [18] (13-12-28 Sat 07:27:03 AM)

zsh用 .zshrc

a7user@obsa7:~% cat .zshrc                     [18] (13-12-28 Sat 07:30:11 AM)
#
# $Id: .zshrc,v 1.1 2013-12-28 07:24:20+09 a7user $
#
#echo 'Setting .zshrc'
alias a=alias
alias h=history
alias cls='ls --color'
alias PRO='. ~a7user/.zprofile'
alias cdd='cd `/bin/pwd`'
alias root="ZDOTDIR=$HOME su root -s /bin/zsh"
alias m3='mount /dev/sda3 /dsk/sda3'
alias sss='tail -f /var/log/syslog'
alias t='set -x;tail -30 /var/log/apache2/access.log|cut -c-72;set +x'
alias tt='set -x;tail -6 /var/log/apache2/access.log;set +x'
alias m='set -x;tail -30 /var/log/exim4/mainlog;set +x'
alias r='set -x;tail -30 /var/log/exim4/rejectlog;set +x'
#

# Set up the prompt

PROMPT='%U%(#.%Broot%b.%n)@%m%u:%.%# '
RPROMPT='%B[%(?.%!.ERROR:%?)] (%U%D%u %D{%a %H:%M:%S %p})%b'

# Use emacs keybindings even if our EDITOR is set to vi
bindkey -v

# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zsh_history

# Use modern completion system
autoload -Uz compinit
compinit

zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true

zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'

# end of .zshrc
a7user@obsa7:~%                                [19] (13-12-28 Sat 07:30:18 AM)

3.Open SSH

SSH プロトコル2 DSA鍵のpassphraseは無しで生成した。
# 本当は横着せずpassphraseはセットしたほうが無難。
a7user@obsa7:~% ssh-keygen -t dsa              [23] (13-12-28 Sat 09:16:56 AM)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/a7user/.ssh/id_dsa):
Created directory '/home/a7user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a7user/.ssh/id_dsa.
Your public key has been saved in /home/a7user/.ssh/id_dsa.pub.
The key fingerprint is: (省略)
このままだと、ssh はパスワード認証でログインできてしまう。 昔22番ポートを外向けに開けておいたとき、パスワード攻撃を受けたことがある。 Logwatchに何度もログインしようとした形跡が残っており、PasswordAuthentication noが無難。
# パスワードでログインする様子
a7user@obs:.ssh% ssh a7user@obsa7               [7] (13-12-28 Sat 09:21:19 AM)
a7user@obsa7's password:
Linux obsa7 3.2.40 #1 Mon Oct 21 14:10:25 JST 2013 armv5tel
そこで/etc/ssh/sshd_configを変更する
a7user@obsa7:~% diff /etc/ssh/sshd_config.org /etc/ssh/sshd_config
51c51
< #PasswordAuthentication yes
---
> PasswordAuthentication no

# 変更を反映する
root@obsa7:~# ps ax|grep /usr/sbin/sshd|grep -v grep
30782 ?        Ss     0:00 /usr/sbin/sshd
root@obsa7:~# kill -1 30782                     [16] (13-12-28 Sat 09:35:06 AM)
root@obsa7:~# tail -3 /var/log/auth.log         [17] (13-12-28 Sat 09:35:14 AM)
Dec 28 09:35:14 obsa7 sshd[30782]: Received SIGHUP; restarting.
Dec 28 09:35:14 obsa7 sshd[30796]: Server listening on 0.0.0.0 port 22.
Dec 28 09:35:14 obsa7 sshd[30796]: Server listening on :: port 22.
root@obsa7:~#                                   [18] (13-12-28 Sat 09:35:32 AM)
# パスワード認証でログインはできない
imacuser@imac2:~% ssh a7user@obsa7                 [4] (13-12-28 土 09:45:44 AM)
Permission denied (publickey).

# PasswordAuthentication変更前にid_dsa.pubを流し込む
user@REMOTE:.ssh% cat id_dsa.pub|ssh a7user@obsa7 "cat >> .ssh/authorized_keys2"

# これでpassphrase入力もしくは無しでログインが可能
myuser@imac2:.ssh% ssh a7user@obsa7             [20] (13-12-28 土 10:21:42 AM)
Linux obsa7 3.2.40 #1 Mon Oct 21 14:10:25 JST 2013 armv5tel

4.タイムゾーンとロケールの設定

root@obsa7:DPKG# dpkg-reconfigure tzdata
Current default time zone: 'Asia/Tokyo'
Local time is now:      Sat Dec 28 10:11:36 JST 2013.
Universal Time is now:  Sat Dec 28 01:11:36 UTC 2013.

root@obsa7:DPKG# aptitude install locales
root@obsa7:DPKG# diff /etc/locale.gen.org /etc/locale.gen
269,270c269,270
< # ja_JP.EUC-JP EUC-JP
< # ja_JP.UTF-8 UTF-8
---
> ja_JP.EUC-JP EUC-JP
> ja_JP.UTF-8 UTF-8
root@obsa7:DPKG# locale-gen
Generating locales (this might take a while)...
  ja_JP.EUC-JP... done
  ja_JP.UTF-8... done
Generation complete.
root@obsa7:DPKG#

2013年12月24日火曜日

obsA7-004 package移行

1.Debian PackageをOBS600と揃える

旧OBS600で使用していたDebian PackageをOBSA7でも使えるように移行する。 まず OBS600側でget-selectionsする。
user@obs:DPKG% dpkg --get-selections > plist_obs600.txt
user@obs:DPKG% wc -l plist_obs600.txt
497 plist_obs600.txt
user@obs:DPKG% 
次に OBSA7側でset-selectionsする。
root@obsa7:DPKG# dpkg -l | wc -l
154
root@obsa7:DPKG# aptitude install dselect
root@obsa7:DPKG# dselect update
root@obsa7:DPKG# dpkg --set-selections < plist_obs600.txt >>>(1)
root@obsa7:DPKG# apt-get dselect-upgrade >>>(2)
root@obsa7:DPKG# dpkg -l | wc -l
458
これらで、多くのパッケージは移行できたが、OBS600のpowerpc依存部分や、バージョンによっては移行できないものもあったようだ。(1)(2)で大量のメッセージが出た。
 >>>(1)
root@obsa7:DPKG# dpkg --set-selections < plist_obs600.txt
dpkg: warning: package not in database at line 2: apache2
dpkg: warning: package not in database at line 2: apache2-mpm-prefork
dpkg: warning: package not in database at line 2: apache2-utils
dpkg: warning: package not in database at line 2: apache2.2-bin
dpkg: warning: package not in database at line 2: apache2.2-common
dpkg: warning: package not in database at line 6: arping
dpkg: warning: package not in database at line 9: bc
dpkg: warning: package not in database at line 9: bind9
dpkg: warning: package not in database at line 9: bind9-host
dpkg: warning: package not in database at line 9: bind9utils
dpkg: warning: package not in database at line 9: binutils
dpkg: warning: package not in database at line 9: bittorrent
dpkg: warning: package not in database at line 9: bridge-utils
dpkg: warning: package not in database at line 9: bsd-mailx
dpkg: warning: package not in database at line 12: ca-certificates
dpkg: warning: package not in database at line 14: cpp
dpkg: warning: package not in database at line 14: cpp-4.4
dpkg: warning: package not in database at line 14: cpp-4.6
dpkg: warning: package not in database at line 15: curl
dpkg: warning: package not in database at line 16: dbus
dpkg: warning: package not in database at line 20: defoma
dpkg: warning: package not in database at line 20: dhcp3-client
dpkg: warning: package not in database at line 20: dhcp3-common
dpkg: warning: package not in database at line 20: dhcp3-server
dpkg: warning: package not in database at line 22: dnsutils
dpkg: warning: package not in database at line 25: e2fslibs:powerpc
dpkg: warning: package not in database at line 26: exim4
dpkg: warning: package not in database at line 26: exim4-base
dpkg: warning: package not in database at line 26: exim4-config
dpkg: warning: package not in database at line 26: exim4-daemon-light
dpkg: warning: package not in database at line 26: exiv2
dpkg: warning: package not in database at line 26: fancontrol
dpkg: warning: package not in database at line 26: file
dpkg: warning: package not in database at line 27: firmware-ralink
dpkg: warning: package not in database at line 27: fontconfig
dpkg: warning: package not in database at line 27: fontconfig-config
dpkg: warning: package not in database at line 27: fonts-droid
dpkg: warning: package not in database at line 27: fonts-liberation
dpkg: warning: package not in database at line 27: ftp
dpkg: warning: package not in database at line 27: ftpd
dpkg: warning: package not in database at line 27: gcc
dpkg: warning: package not in database at line 27: gcc-4.4
dpkg: warning: package not in database at line 27: gcc-4.4-base:powerpc
dpkg: warning: package not in database at line 27: gcc-4.6
dpkg: warning: package not in database at line 27: gcc-4.6-base:powerpc
dpkg: warning: package not in database at line 27: gcc-4.7-base:powerpc
dpkg: warning: package not in database at line 27: geoip-database
dpkg: warning: package not in database at line 27: ghostscript
dpkg: warning: package not in database at line 27: git
dpkg: warning: package not in database at line 27: git-man
dpkg: warning: package not in database at line 29: gnuplot
dpkg: warning: package not in database at line 29: gnuplot-nox
dpkg: warning: package not in database at line 31: groff
dpkg: warning: package not in database at line 32: gsfonts
dpkg: warning: package not in database at line 33: hdparm
dpkg: warning: package not in database at line 33: hicolor-icon-theme
dpkg: warning: package not in database at line 33: hostapd
dpkg: warning: package not in database at line 35: imagemagick
dpkg: warning: package not in database at line 35: imagemagick-common
dpkg: warning: package not in database at line 44: isc-dhcp-server
dpkg: warning: package not in database at line 44: jless
dpkg: warning: package not in database at line 45: krb5-locales
dpkg: warning: package not in database at line 45: less
dpkg: warning: package not in database at line 45: lftp
dpkg: warning: package not in database at line 45: libacl1:powerpc
dpkg: warning: package not in database at line 45: libapache2-mod-php5
dpkg: warning: package not in database at line 45: libapr1
dpkg: warning: package not in database at line 45: libaprutil1
dpkg: warning: package not in database at line 45: libaprutil1-dbd-sqlite3
dpkg: warning: package not in database at line 45: libaprutil1-ldap
dpkg: warning: package not in database at line 45: libapt-inst1.5:powerpc
dpkg: warning: package not in database at line 45: libapt-pkg4.12:powerpc
dpkg: warning: package not in database at line 45: libatk1.0-0:powerpc
dpkg: warning: package not in database at line 45: libatk1.0-data
dpkg: warning: package not in database at line 45: libattr1:powerpc
dpkg: warning: package not in database at line 45: libavahi-client3:powerpc
dpkg: warning: package not in database at line 45: libavahi-common-data:powerpc
dpkg: warning: package not in database at line 45: libavahi-common3:powerpc
dpkg: warning: package not in database at line 45: libbind9-60
dpkg: warning: package not in database at line 45: libbind9-80
dpkg: warning: package not in database at line 45: libblas3
dpkg: warning: package not in database at line 45: libblas3gf
dpkg: warning: package not in database at line 45: libblkid1:powerpc
dpkg: warning: package not in database at line 45: libboost-iostreams1.42.0
dpkg: warning: package not in database at line 46: libbsd0:powerpc
dpkg: warning: package not in database at line 46: libbz2-1.0:powerpc
dpkg: warning: package not in database at line 47: libc-dev-bin
dpkg: warning: package not in database at line 47: libc6:powerpc
dpkg: warning: package not in database at line 47: libc6-dev:powerpc
dpkg: warning: package not in database at line 47: libc6-ppc64
dpkg: warning: package not in database at line 47: libcairo2:powerpc
dpkg: warning: package not in database at line 47: libcap2:powerpc
dpkg: warning: package not in database at line 47: libcdt4
dpkg: warning: package not in database at line 47: libclass-isa-perl
dpkg: warning: package not in database at line 47: libcomerr2:powerpc
dpkg: warning: package not in database at line 47: libcroco3:powerpc
dpkg: warning: package not in database at line 47: libcups2:powerpc
dpkg: warning: package not in database at line 47: libcupsimage2:powerpc
dpkg: warning: package not in database at line 47: libcurl3
dpkg: warning: package not in database at line 47: libcurl3-gnutls:powerpc
dpkg: warning: package not in database at line 48: libdate-manip-perl
dpkg: warning: package not in database at line 48: libdatrie1:powerpc
dpkg: warning: package not in database at line 48: libdb4.7
dpkg: warning: package not in database at line 48: libdb4.8
dpkg: warning: package not in database at line 48: libdb5.1:powerpc
dpkg: warning: package not in database at line 48: libdbi0
dpkg: warning: package not in database at line 48: libdbi1
dpkg: warning: package not in database at line 48: libdbus-1-3:powerpc
dpkg: warning: package not in database at line 48: libdevmapper1.02.1:powerpc
dpkg: warning: package not in database at line 48: libdjvulibre-text
dpkg: warning: package not in database at line 48: libdjvulibre21
dpkg: warning: package not in database at line 48: libdns69
dpkg: warning: package not in database at line 48: libdns88
dpkg: warning: package not in database at line 48: libedit2:powerpc
dpkg: warning: package not in database at line 48: libept1
dpkg: warning: package not in database at line 49: liberror-perl
dpkg: warning: package not in database at line 49: libevent-1.4-2
dpkg: warning: package not in database at line 49: libevent-2.0-5:powerpc
dpkg: warning: package not in database at line 49: libexiv2-12
dpkg: warning: package not in database at line 49: libexiv2-9
dpkg: warning: package not in database at line 49: libexpat1:powerpc
dpkg: warning: package not in database at line 49: libffi5:powerpc
dpkg: warning: package not in database at line 49: libfile-copy-recursive-perl
dpkg: warning: package not in database at line 49: libfont-freetype-perl
dpkg: warning: package not in database at line 49: libfontconfig1:powerpc
dpkg: warning: package not in database at line 49: libfontenc1:powerpc
dpkg: warning: package not in database at line 49: libfreetype6:powerpc
dpkg: warning: package not in database at line 49: libgc1c2
dpkg: warning: package not in database at line 49: libgcc1:powerpc
dpkg: warning: package not in database at line 49: libgcrypt11:powerpc
dpkg: warning: package not in database at line 49: libgd2-noxpm:powerpc
dpkg: warning: package not in database at line 49: libgdbm3:powerpc
dpkg: warning: package not in database at line 49: libgdk-pixbuf2.0-0:powerpc
dpkg: warning: package not in database at line 49: libgdk-pixbuf2.0-common
dpkg: warning: package not in database at line 49: libgeoip1
dpkg: warning: package not in database at line 49: libgfortran3:powerpc
dpkg: warning: package not in database at line 49: libglib2.0-0:powerpc
dpkg: warning: package not in database at line 49: libglib2.0-data
dpkg: warning: package not in database at line 49: libgmp10:powerpc
dpkg: warning: package not in database at line 49: libgmp3c2
dpkg: warning: package not in database at line 49: libgnutls26:powerpc
dpkg: warning: package not in database at line 49: libgomp1:powerpc
dpkg: warning: package not in database at line 49: libgpg-error0:powerpc
dpkg: warning: package not in database at line 49: libgpm2:powerpc
dpkg: warning: package not in database at line 49: libgraph4
dpkg: warning: package not in database at line 49: libgs8
dpkg: warning: package not in database at line 49: libgs9
dpkg: warning: package not in database at line 49: libgs9-common
dpkg: warning: package not in database at line 49: libgsf-1-114
dpkg: warning: package not in database at line 49: libgsf-1-common
dpkg: warning: package not in database at line 49: libgssapi-krb5-2:powerpc
dpkg: warning: package not in database at line 49: libgssglue1:powerpc
dpkg: warning: package not in database at line 49: libgtk2.0-0:powerpc
dpkg: warning: package not in database at line 49: libgtk2.0-bin
dpkg: warning: package not in database at line 49: libgtk2.0-common
dpkg: warning: package not in database at line 49: libgvc5
dpkg: warning: package not in database at line 49: libice6:powerpc
dpkg: warning: package not in database at line 49: libidn11:powerpc
dpkg: warning: package not in database at line 49: libijs-0.35
dpkg: warning: package not in database at line 49: libilmbase6
dpkg: warning: package not in database at line 49: libisc62
dpkg: warning: package not in database at line 49: libisc84
dpkg: warning: package not in database at line 49: libisccc60
dpkg: warning: package not in database at line 49: libisccc80
dpkg: warning: package not in database at line 49: libisccfg62
dpkg: warning: package not in database at line 49: libisccfg82
dpkg: warning: package not in database at line 49: libiw30:powerpc
dpkg: warning: package not in database at line 49: libjasper1:powerpc
dpkg: warning: package not in database at line 49: libjbig0:powerpc
dpkg: warning: package not in database at line 49: libjbig2dec0
dpkg: warning: package not in database at line 49: libjpeg62:powerpc
dpkg: warning: package not in database at line 49: libjpeg8:powerpc
dpkg: warning: package not in database at line 49: libk5crypto3:powerpc
dpkg: warning: package not in database at line 49: libkeyutils1:powerpc
dpkg: warning: package not in database at line 49: libkmod2:powerpc
dpkg: warning: package not in database at line 49: libkrb5-3:powerpc
dpkg: warning: package not in database at line 49: libkrb5support0:powerpc
dpkg: warning: package not in database at line 49: liblcms1:powerpc
dpkg: warning: package not in database at line 49: liblcms2-2:powerpc
dpkg: warning: package not in database at line 49: libldap-2.4-2:powerpc
dpkg: warning: package not in database at line 49: liblensfun-data
dpkg: warning: package not in database at line 49: liblensfun0
dpkg: warning: package not in database at line 49: liblinear-tools
dpkg: warning: package not in database at line 49: liblinear1
dpkg: warning: package not in database at line 50: liblockfile-bin
dpkg: warning: package not in database at line 50: liblockfile1:powerpc
dpkg: warning: package not in database at line 50: liblqr-1-0:powerpc
dpkg: warning: package not in database at line 50: libltdl7:powerpc
dpkg: warning: package not in database at line 50: liblua5.1-0:powerpc
dpkg: warning: package not in database at line 50: liblwres60
dpkg: warning: package not in database at line 50: liblwres80
dpkg: warning: package not in database at line 50: liblzma2
dpkg: warning: package not in database at line 50: liblzma5:powerpc
dpkg: warning: package not in database at line 50: liblzo2-2:powerpc
dpkg: warning: package not in database at line 50: libmagic1:powerpc
dpkg: warning: package not in database at line 50: libmagickcore3
dpkg: warning: package not in database at line 50: libmagickcore3-extra
dpkg: warning: package not in database at line 50: libmagickcore5:powerpc
dpkg: warning: package not in database at line 50: libmagickcore5-extra:powerpc
dpkg: warning: package not in database at line 50: libmagickwand3
dpkg: warning: package not in database at line 50: libmagickwand5:powerpc
dpkg: warning: package not in database at line 51: libmpc2:powerpc
dpkg: warning: package not in database at line 51: libmpfr4:powerpc
dpkg: warning: package not in database at line 51: libncurses5:powerpc
dpkg: warning: package not in database at line 51: libncurses5-dev
dpkg: warning: package not in database at line 51: libncursesw5:powerpc
dpkg: warning: package not in database at line 51: libnet1
dpkg: warning: package not in database at line 51: libnetpbm10
dpkg: warning: package not in database at line 53: libnfsidmap2:powerpc
dpkg: warning: package not in database at line 53: libnl-3-200:powerpc
dpkg: warning: package not in database at line 53: libnl-dev
dpkg: warning: package not in database at line 53: libnl-genl-3-200:powerpc
dpkg: warning: package not in database at line 53: libnl1:powerpc
dpkg: warning: package not in database at line 53: libonig2
dpkg: warning: package not in database at line 53: libopenexr6
dpkg: warning: package not in database at line 53: libopts25
dpkg: warning: package not in database at line 53: libp11-kit0:powerpc
dpkg: warning: package not in database at line 53: libpam-modules:powerpc
dpkg: warning: package not in database at line 55: libpam0g:powerpc
dpkg: warning: package not in database at line 55: libpango1.0-0:powerpc
dpkg: warning: package not in database at line 55: libpango1.0-common
dpkg: warning: package not in database at line 55: libpaper-utils
dpkg: warning: package not in database at line 55: libpaper1:powerpc
dpkg: warning: package not in database at line 55: libparted0debian1:powerpc
dpkg: warning: package not in database at line 55: libpathplan4
dpkg: warning: package not in database at line 55: libpcap0.8:powerpc
dpkg: warning: package not in database at line 55: libpcre3:powerpc
dpkg: warning: package not in database at line 55: libperl5.14
dpkg: warning: package not in database at line 55: libpipeline1:powerpc
dpkg: warning: package not in database at line 55: libpixman-1-0:powerpc
dpkg: warning: package not in database at line 55: libpng12-0:powerpc
dpkg: warning: package not in database at line 55: libpopt0:powerpc
dpkg: warning: package not in database at line 55: libprocps0:powerpc
dpkg: warning: package not in database at line 55: libqdbm14
dpkg: warning: package not in database at line 55: libreadline6:powerpc
dpkg: warning: package not in database at line 55: librpcsecgss3:powerpc
dpkg: warning: package not in database at line 55: librrd4
dpkg: warning: package not in database at line 55: librrds-perl
dpkg: warning: package not in database at line 55: librsvg2-2:powerpc
dpkg: warning: package not in database at line 55: librsvg2-common:powerpc
dpkg: warning: package not in database at line 55: librtas1
dpkg: warning: package not in database at line 55: librtasevent1
dpkg: warning: package not in database at line 55: librtmp0:powerpc
dpkg: warning: package not in database at line 55: libsasl2-2:powerpc
dpkg: warning: package not in database at line 55: libsasl2-modules:powerpc
dpkg: warning: package not in database at line 55: libselinux1:powerpc
dpkg: warning: package not in database at line 56: libsemanage1:powerpc
dpkg: warning: package not in database at line 56: libsensors4:powerpc
dpkg: warning: package not in database at line 56: libsepol1:powerpc
dpkg: warning: package not in database at line 56: libsigc++-2.0-0c2a:powerpc
dpkg: warning: package not in database at line 56: libslang2:powerpc
dpkg: warning: package not in database at line 56: libsm6:powerpc
dpkg: warning: package not in database at line 56: libsnmp-base
dpkg: warning: package not in database at line 56: libsnmp15
dpkg: warning: package not in database at line 56: libsqlite3-0:powerpc
dpkg: warning: package not in database at line 56: libss2:powerpc
dpkg: warning: package not in database at line 56: libssh2-1:powerpc
dpkg: warning: package not in database at line 56: libssl-dev
dpkg: warning: package not in database at line 56: libssl-doc
dpkg: warning: package not in database at line 56: libssl0.9.8
dpkg: warning: package not in database at line 56: libssl1.0.0:powerpc
dpkg: warning: package not in database at line 56: libstdc++6:powerpc
dpkg: warning: package not in database at line 56: libsvm-tools
dpkg: warning: package not in database at line 56: libswitch-perl
dpkg: warning: package not in database at line 56: libsystemd-login0:powerpc
dpkg: warning: package not in database at line 56: libtalloc2:powerpc
dpkg: warning: package not in database at line 56: libtasn1-3:powerpc
dpkg: warning: package not in database at line 56: libtdb1:powerpc
dpkg: warning: package not in database at line 59: libthai-data
dpkg: warning: package not in database at line 59: libthai0:powerpc
dpkg: warning: package not in database at line 59: libtiff4:powerpc
dpkg: warning: package not in database at line 59: libtinfo-dev:powerpc
dpkg: warning: package not in database at line 59: libtinfo5:powerpc
dpkg: warning: package not in database at line 59: libtirpc1:powerpc
dpkg: warning: package not in database at line 60: libusb-0.1-4:powerpc
dpkg: warning: package not in database at line 60: libusb-1.0-0:powerpc
dpkg: warning: package not in database at line 60: libustr-1.0-1:powerpc
dpkg: warning: package not in database at line 60: libuuid1:powerpc
dpkg: warning: package not in database at line 60: libwbclient0:powerpc
dpkg: warning: package not in database at line 60: libwmf0.2-7:powerpc
dpkg: warning: package not in database at line 60: libwrap0:powerpc
dpkg: warning: package not in database at line 60: libx11-6:powerpc
dpkg: warning: package not in database at line 60: libx11-data
dpkg: warning: package not in database at line 61: libxau6:powerpc
dpkg: warning: package not in database at line 61: libxaw7:powerpc
dpkg: warning: package not in database at line 61: libxcb-render-util0:powerpc
dpkg: warning: package not in database at line 61: libxcb-render0:powerpc
dpkg: warning: package not in database at line 61: libxcb-shm0:powerpc
dpkg: warning: package not in database at line 61: libxcb1:powerpc
dpkg: warning: package not in database at line 61: libxcomposite1:powerpc
dpkg: warning: package not in database at line 61: libxcursor1:powerpc
dpkg: warning: package not in database at line 61: libxdamage1:powerpc
dpkg: warning: package not in database at line 61: libxdmcp6:powerpc
dpkg: warning: package not in database at line 61: libxdot4
dpkg: warning: package not in database at line 61: libxext6:powerpc
dpkg: warning: package not in database at line 61: libxfixes3:powerpc
dpkg: warning: package not in database at line 61: libxfont1
dpkg: warning: package not in database at line 187: libxpm4:powerpc
dpkg: warning: package not in database at line 187: libxrandr2:powerpc
dpkg: warning: package not in database at line 187: libxrender1:powerpc
dpkg: warning: package not in database at line 187: libxt6:powerpc
dpkg: warning: package not in database at line 188: linux-libc-dev:powerpc
dpkg: warning: package not in database at line 197: mac-fdisk
dpkg: warning: package not in database at line 238: portmap
dpkg: warning: package not in database at line 238: powerpc-ibm-utils
dpkg: warning: package not in database at line 238: powerpc-utils
dpkg: warning: package not in database at line 249: qpopper
dpkg: warning: package not in database at line 298: x-ttcidfont-conf
dpkg: warning: package not in database at line 304: yaboot
dpkg: warning: package not in database at line 304: zd1211-firmware
dpkg: warning: package not in database at line 305: zlib1g:powerpc
dpkg: warning: package not in database at line 305: zlib1g-dev:powerpc
root@obsa7:DPKG#

 >>>(2)
root@obsa7:DPKG# apt-get dselect-upgrade
Reading package lists... 0%
Reading state information... 98%
Reading state information... Done
The following NEW packages will be installed:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
  arping bc bind9 bind9-host bind9utils binutils bittorrent bridge-utils
  bsd-mailx ca-certificates cpp cpp-4.4 cpp-4.6 dbus dnsutils exim4 exim4-base
  exim4-config exim4-daemon-light exiv2 fancontrol file fontconfig
  fontconfig-config fonts-droid fonts-liberation ftp ftpd gcc gcc-4.4
  gcc-4.4-base gcc-4.6 gcc-4.6-base geoip-database ghostscript git-man gnuplot
  gnuplot-nox groff gsfonts hdparm hicolor-icon-theme hostapd imagemagick
  imagemagick-common isc-dhcp-server jless krb5-locales less lftp
  libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libatk1.0-0 libatk1.0-data libavahi-client3
  libavahi-common-data libavahi-common3 libbind9-80 libblas3 libblas3gf
  libc-dev-bin libc6-dev libcairo2 libcap2 libcdt4 libclass-isa-perl libcroco3
  libcups2 libcupsimage2 libdate-manip-perl libdatrie1 libdbi1 libdbus-1-3
  libdjvulibre-text libdjvulibre21 libdns88 liberror-perl libexiv2-12
  libexpat1 libffi5 libfile-copy-recursive-perl libfont-freetype-perl
  libfontconfig1 libfontenc1 libfreetype6 libgc1c2 libgd2-noxpm
  libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgeoip1 libgfortran3
  libglib2.0-0 libglib2.0-data libgmp10 libgomp1 libgpm2 libgraph4 libgs9
  libgs9-common libgsf-1-114 libgsf-1-common libgssglue1 libgtk2.0-0
  libgtk2.0-bin libgtk2.0-common libgvc5 libice6 libijs-0.35 libilmbase6
  libisc84 libisccc80 libisccfg82 libiw30 libjasper1 libjbig0 libjbig2dec0
  libjpeg8 liblcms1 liblcms2-2 libldap-2.4-2 liblensfun-data liblensfun0
  liblinear-tools liblinear1 liblockfile-bin liblockfile1 liblqr-1-0 libltdl7
  liblua5.1-0 liblwres80 liblzo2-2 libmagic1 libmagickcore5
  libmagickcore5-extra libmagickwand5 libmpc2 libmpfr4 libncurses5-dev libnet1
  libnetpbm10 libnl-3-200 libnl-dev libnl-genl-3-200 libnl1 libonig2
  libopenexr6 libopts25 libpango1.0-0 libpaper-utils libpaper1 libpathplan4
  libpcap0.8 libpcre3 libperl5.14 libpixman-1-0 libpng12-0 libqdbm14 librrd4
  librrds-perl librsvg2-2 librsvg2-common librtas1 librtasevent1 libsasl2-2
  libsasl2-modules libsensors4 libsm6 libsnmp-base libsnmp15 libssl-dev
  libssl-doc libsvm-tools libswitch-perl libsystemd-login0 libtalloc2 libtdb1
  libthai-data libthai0 libtiff4 libtinfo-dev libtirpc1 libusb-1.0-0
  libwbclient0 libwmf0.2-7 libx11-6 libx11-data libxau6 libxaw7 libxcb-render0
  libxcb-shm0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6
  libxdot4 libxext6 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxml2
  libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1 libxt6 libyaml-syck-perl
  linux-libc-dev lm-sensors lockfile-progs logwatch lsof lynx lynx-cur make
  manpages-dev mime-support mlocate module-init-tools mtd-utils nano ncftp
  ncurses-term netpbm netselect netselect-apt nkf nmap ntp ntpdate
  openbsd-inetd openssh-blacklist openssh-blacklist-extra openssl patch perl
  perl-modules php5-cli php5-common poppler-data powermgmt-base procmail
  psmisc psutils python python-minimal python-support python2.6
  python2.6-minimal python2.7 python2.7-minimal rpcbind rrdtool rsync samba
  samba-common samba-common-bin screen sgml-base shared-mime-info snmpd
  ssl-cert sudo tcpd tdb-tools telnet tftp tftpd ttf-dejavu ttf-dejavu-core
  ttf-dejavu-extra u-boot ucf ucspi-tcp ufraw-batch unzip update-inetd
  usbutils w3m whois wireless-tools x11-common xauth xfonts-encodings
  xfonts-utils xml-core zip zlib1g-dev zsh
0 upgraded, 300 newly installed, 0 to remove and 0 not upgraded.
Need to get 155 MB of archives.
After this operation, 455 MB of additional disk space will be used.
Do you want to continue [Y/n]? 
たぶんPackageインストールもれが多くありそうだが、必要に応じ、不足分は都度aptitude installしていくことにする。