稼働率99.9% -2ページ目

稼働率99.9%

春日井市でiPhoneアプリの開発を行っています。iPhoneを使い出してからそれに伴って開発環境もWindowsからMacへと移行しました。MacやiPhoneだけでなくIT全般について日々感じた事や思った事を備忘録として記録する事を目的としたブログです。

準備

ヘッドセットを使用したいとか目的は特にありません。
ただ、使用できるのかなという興味本位で設定。
使用機材は、BUFFALOの「BSBT4D09BK」。本当はプラネックスを買いに行ったけど無かったので、パッケージから比較的新しそうだったから購入しました。

Bluetooth 4.0 Low Energyで最新プロファイル「Proximity Profile」に対応しているらしいです。たぶん今の所は使う事が無いかな。

bluezのインストール


LinuxでBluetoothを使用するには「bluez」パッケージを利用します。
Arch Linuxでも同様なのでインストールを行います。
pacman -S bluez
初回でインストールエラーが出たので再度実行しました。

インストールが完了したら、Bluetoothサービスの自動起動を設定しておきます。
systemctl enable bluetooth.service
一旦、再起動し、BluetoothアダプターをUSBに挿します。

認識されたか確認するには、
hciconfig
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1B:DC:06:BF:C8  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN 
        RX bytes:985 acl:0 sco:0 events:44 errors:0
        TX bytes:916 acl:0 sco:0 commands:44 errors:0
と出力されればOK。

認識されないのはバスパワー不足


ちなみに最初「hciconfig」を実行しても何も表示されませんでした。使用できないのかなと思いググるも特に情報なし。
プラネックスのBluetooth 2.0のアダプターはすんなりと認識したけど。
Rasberry PiのUSBポート直挿しで無線LANアダプター、USBハブでBluetoothアダプターとキーボードという構成でした。

無線LANアダプターをUSBハブに挿して、Bluetoothアダプターを直挿しすると、


光りました。
とりあえず認識されたので、近くのデバイスを探索
hcitool scan
するとiPhoneを見つけた。
とりあえず、使えそうかな。

アクセスポイントへの接続

前回までの時点でWLI-UC-GN用のドライバが読み込まれているはずなので無線LANが認識されているか確認します。
# iwconfig 
wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
lo        no wireless extensions.
eth0      no wireless extensions.
ifb0      no wireless extensions.
ifb1      no wireless extensions.
wlan0が表示されていればとりあえずOK。
次に無線LANインターフェイスを有効化します。
# ip link set wlan0 up
アクセスポイントを検索してみます。これも動作確認の為です。

#iw wlan0 scan | less
一覧が表示されれば問題ありません。
次にアクセスポイントへの設定ですが、使用している暗号化方式により多少命令が変わります。
下記は、【WPA】への接続になります。詳細は、Wireless Setup (日本語) - ArchWiki(関連付けの項)を参照。
# wpa_passphrase   >> /etc/wpa_supplicant.conf
# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf
自分が使用するアクセスポイント「ssid」と「passphrase」を指定します。

SSIDとパスフレーズが間違っていなければこれで認証は通ります。
このままではIPアドレスが割り当てられていないのでDHCPからIPアドレスを取得します。
# dhcpcd wlan0

最後に割り当てられたIPアドレスを確認し、割り当てられたIPアドレスへSSH等で接続を確認します。

プロファイルの作成

上記のままでは再起動するとまた手動で「アクセスポイントへの接続」、「DHCPからのIPアドレス取得」を行う必要があるので接続プロファイルを作成しておきます。
/etc/network.d/examples/より該当する設定サンプルを/etc/network.dにコピーします。※Arch Linuxで推奨されています。
コピー時に指定したファイル名がプロファイル名になります。
今回は、「wireless-wpa」を使用する。
/etc/network.d/myhome
CONNECTION="wireless"
INTERFACE=wlan0
SCAN="yes"
SECURITY="wpa"
ESSID=
KEY=""
IP="dhcp"
TIMEOUT=20
次にプロファイルを有効にするには、
netcfg [プロファイル名(ファイル名)]
なのだが、このままだとエラーが出ます。
「/etc/wpa_supplicant.conf」の記述が足りないのかな。

/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network={
        ssid=""
        psk=
}
network={}は上記で設定したので1行目から4行目を挿入します。

一旦、無線の割り当てを解放しておく為に再起動します。
プロファイルに問題がないか確認する為に下記を実行します。
# ip link set wlan0 up
# netcfg myhome
これでIPアドレスまで割り当てられたか確認します。
プロファイルをいくつか用意しておけば切り替えは楽になります。

接続プロファイルを用いた自動接続の設定

プロファイルを作成しましたが、やはり再起動後に手動でプロファイルを読み込む必要があります。
簡単に自動接続を有効にする簡単な方法は、
systemctl enable netcfg@[プロファイル名]
になります。
1プロファイルしか使わない場合は上記でOKです。

複数のプロファイルを切り替える場合は、
/etc/conf.d/netcfg
AUTO_PROFILES=("[プロファイル名] [プロファイル名]")
のように記述します。

最後に「net-auto-wireless.service」を有効化する為に
systemctl enable net-auto-wireless
として完了です。



参考:
netcfg (日本語) - ArchWiki
raspberry pi で認識しないUSBタイプの無線LAN子機 wli-uc-gn を簡単に使う方法
ma-tea's blog: Arch Linux 設定

とりあえず使ってみる

Rasberry Piが公式にサポートしているOSは、「Raspbian 」、「Soft-float Debian」、「Arch Linux」、「RISC OS」、「Fedora」になります。

巷では、「Arch Linux」が素敵との事なので今回は「Arch Linux」(アーチリナックス)で環境を構築していきます。
3.6.11-6-ARCH+ (2013/02/17時点)

準備するもの

最低限必要な物
  • Rasberry Pi 本体
  • 電源アダプター 5V700mA
  • キーボード
  • モニター HDMI接続が可能
  • SDカード
  • HDMIケーブル
  • LANケーブル

あったら便利な物

  • 無線LANアダプター
  • USBハブ
  • Bluetoothアダプター

SDカードへの書き込みまで

Rasberry Piのサイトより「Arch Linux」のイメージをダウンロードして「Win32DiskImager」でSDカードへ書き込みを行います。※Windowsで書き込み
容量は2GBでもあればとりあえずOSのインストールには問題ないでしょう。
書き込みが終わったら、Rasberry PiのSDスロットに挿しこみ電源を投入。
ちなみにデフォルトでユーザ:root パスワード:rootでログインできます。

パーティションの再設定

2GB以上の大容量SDカードを使用した場合、デフォルトでは2GB以降は使えないようなのでパーティションを再設定します。
# fdisk /dev/mmcblk0
2番目のパーティションを再作成して再起動。
次に、
# resize2fs /dev/mmcblk0p2
でしばらくしてから、
# df -lh
で容量を確認します。

参考:Arch Linux on Raspberry Pi - daimatz.hateblo.jp

システムアップデート

pacman -Syu

キーボード設定

デフォルトのままではキーボードが「US」設定になっているので日本語キーボードだと支障があるのでデフォルトキーボードを変更します。
まずすぐに日本語用キーボードの設定を読み込みます。
# loadkeys jp106
次回以降も日本語用キーボードマップを読み込みする為に次のファイルを編集。
/etc/vconsole.conf
KEYMAP=jp106
に変更
※ちなみに前は/etc/rc.confに設定していたようですが、2012年9月以降のイメージから「systemd」に切り替わった?(これ以前はわかりませんが)ようで/etc/rc.confはありません。
だからといって作成しても有効にならないので注意

ローケル設定

/etc/locale.gen
ja_JP.UTF-8の行をコメントアウトを削除
ファイルを編集後、下記のコマンドを実行
# locale-gen

無線LAN設定


私は手持ちのBUFFALOの「WLI-UC-GN」を使用しましたが、製造ロットによるのかすんなりと認識はされませんでした。
とりあえず、Arch Linuxで同様に使用されている方のやり方を参考に設定しました。
まず、USBに挿した無線LAN機器のベンダーIDとデバイスIDを調べます。
# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. LAN9500 Ethernet 10/100 Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 005: ID 0411:014f BUFFALO INC. (formerly MelCo., Inc.)
Bus 001 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 007: ID 099a:6330 Zippy Technology Corp.
太字の部分が本来なら【0411:015d】となるらしいのですが異なっている為、ドライバが読み込まれません。
なのでドライバを読み込むよう設定を行います。
/etc/udev/rules.d/99-wireless.rules
#BUFFALO WLI-UC-GN
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0411", ATTR{idProduct}=="014f", RUN+="/sbin/modprobe -qba rt2800usb"
※2行目は1行で記述します。

/etc/modprobe.d/wireless.conf
#BUFFALO WLI-UC-GN
install rt2800usb /sbin/modprobe --ignore-install rt2800usb $CMDLINE_OPTS; /bin/echo "0411 014f" > /sys/bus/usb/drivers/rt2800usb/new_id
※2行目は1行で記述します。
ここでとりあえず再起動します。※再起動後、「ifconfig」でeth0の表示が無くなるのはなぜ?
アメブロの制限?ここからまだアクセスポイントまでの設定が残っているのですが、記事が吹き飛んだので次のエントリーに記載します。


忘れてたけどプラグコンピューターにも手を出してみたり



年に1回のペースぐらいでOSを再インストールを繰り替えしているとバックアップを取り忘れて
必要なファイルをうっかり消してしまう事が度々ありました。
それが嫌でOSとは別の領域でファイルを保存する事にしたのですが、これもうっかり間違って
インストール先に指定しまって消した事がありました。
そこで、別途ファイルサーバを構築して管理する事にしました。
これで全て解決するかと思われたのですが、メインPCとは別にPCを起動する必要がある事が
煩わしい。
NASも検討しましたが、思うような製品が当時ありませんでした。
そこで見つけたのがこのプラグコンピューター、Marvell社の「SheevaPlug」でした。

今思うとなぜ、メインPCに外付HDDを接続しなかったのか疑問が残る所ですが、eSATA端子で
外付HDDを接続すれば市販品よりは十分に転送速度が出るはずという根拠の無い考えに基づき環境を構築しました。
Linuxが使用できるという点でファイルサーバだけでなく色々なカスタマイズが可能というとても夢が広がる機器だったのですが、如何せん飽き性なのでその後お蔵入りする事に・・・。

ちなみにプラグコンピュータの名のとおりコンセントに直接挿して使用するのですが(写真左のプラグ)、日本では法令に適合しない為直接挿して使用する事はできません。付属の電源ケーブルで使用するしかないのですが、逆に直接挿して使うには他のコンセントを塞ぐほど大きいのでどちらにしても電源ケーブルを使用するしかないと思います。



Rasberry Piにも手を出してみたり



「Rasberry Pi」はイギリスのラズベリーパイ財団が開発したARM搭載のシングルボードコンピュータです。
画面出力にHDMI、キーボード等の接続の為のUSB、ネットワーク、ストレージにSDカード、メモリー512MBが名刺サイズのボード上に搭載されています。
電源は5V700mA以上で動作するとの事なのでスマホの電源で代用。
価格は、35ドル程度。
OSは、Debian等がサポートされています。
Linuxルータを構築するのにいいかなと思って取り寄せたのですが、これまた届いてから数ヶ月程度何もしていませんでした。


車載してもいいかもなんて考えてみたり。
スマホの充電バッテリーと接続すれば用途不明な簡易モバイルサーバ?としても使用できるかな。

SDカードってみんな同じじゃないの?


先日、いつも通りにSDカードにデータを書き込みをしようとしたのですが、
全く認識されませんでした。
USBポートを変えても何をしても認識されません。
なぜ?
ついこの前まで認識していたはずなのに・・・

原因は、使用したメディアリーダーが古く大容量のSDカードに対応していなかったようでした。
前回使用したSDカードは4GBで今回使用したSDカードが8GBでした。
転送速度は気にしていたのですが、SDカードって名前が付いていって容量が倍になっただけで
みな同じ規格という認識が間違っていたようです。

それ程SDカード自体の使用頻度は少ないのであまり気にも留めていませんでした。

SDカードの種類
SDカードと一口に言ってもその用途に合わせ複数の規格が存在します。
一般的なSDカードとしては、
・形状により「SDメモリーカード」、「miniSDカード」、「microSDカード」
・容量に応じて「SD」(~2GB)、「SDHC」(4GB~32GB)、「SDXC」(64GB~2TB)
が販売されています。
※「SDXC」は最大2TBまでとなりますが、現状入手可能な最大サイズは256GBのようです。
「miniSDカード」は、最近ではほとんどお目にかかる事が無くなりました。
また、大容量の「SDXC」については使用機器によっては対応していない事もあるので注意が
必要です。
また、データ転送速度により「Class 2」(2MB/Sec)、「Class 4」(4MB/Sec)、「Class 6」(6MB/Sec)、「Class 10」(10MB/Sec)で表されます。
※データ転送速度は最低保障レートであり、同じClass 10でも製品によっては転送速度が
異なる点に注意が必要です。

とりあえず使用できればいいかな
結局、手持ちのリーダーがどれも大容量のSDカードが読めず、リーダーを新たに買い直すしかありませんでした。
とりあえず認識できればよかったので100円ショップでSDカードリーダーが売っていたのでそれで代用しました。
何種類ものメディアを必要とせず、転送速度も気にならなければ十分使用できるはず。