発展途上猿人

Developing (software) Engine(er)

Hakyllで新ブログ構築中。ここを消すつもりはないですが。

Ubuntu

VAIO Type E(14インチ)上のUbuntu 12.04で突如「無線はハードウェアのスイッチで無効になっています」となった件

結論から先に申しますと「sudo rfkill unblock all」すれば無問題でした。

昨日Yokohama.rbという勉強会でもくもくしてるときにぶつかったトラブル。
運悪くACアダプターを忘れていたので、
電力を少しでも節約しようと通知エリア(デスクトップ環境やその設定にもよりますが右上にあるWindowsのタスクトレイみたいなアレ)のネットワークの状態を示すアイコン(ネットワークマネージャでおk?)を右クリック=>
「無線を有効にする」をクリックしてチェックを外したらびっくり!
もう一度ネットワークマネージャを右クリックしたら
「無線はハードウェアのスイッチで無効になっています」
となって元に戻せなくなっているじゃありませんか!
私のVAIOはどこをどう見ても無線のON/OFFを切り替えるスイッチがないので、そのまま途方に暮れてしまいました。

家に帰ってからググってみたら「ハードウェアのスイッチで」と入力しただけで
「ubuntu 無線はハードウェアのスイッチで無効になっています」
と提案されるじゃありませんか!
どうやらよくググられているトラブルのようです。さすがGoogle!
で、検索結果をみたらお馴染みUbuntu日本語フォーラムがヒット。
その上トピック内で触れられた別のトピックでは同じVAIOユーザーの同じ会社の無線LANアダプタのトラブルでした。
まったく同じケースというわけではありませんが。

何はともあれ冒頭で述べましたとおり「sudo rfkill unblock all」というコマンドを実行すれば
すぐに無線LANは再び有効になり、問題なく使用できました。
前述のフォーラムのトピックでは再起動した時にまた無効になってしまう、
というトラブルが続いていたようですが、
元々Ubuntuがアダプタを認識していたためか、そのようなことにはなりませんでした。

一応止まっていたときの状態を示しておきます。
(念のためserialなどは隠しています)

$ lsmod
Module Size Used by
pci_stub 12622 1
vboxpci 23200 0
vboxnetadp 25670 0
vboxnetflt 23441 0
vboxdrv 282587 3 vboxpci,vboxnetadp,vboxnetflt
snd_hda_codec_hdmi 32474 1
snd_hda_codec_realtek 224173 1
rfcomm 47604 16
parport_pc 32866 0
bnep 18281 2
ppdev 17113 0
binfmt_misc 17540 1
arc4 12529 2
uvcvideo 72627 0
ath9k 132390 0
snd_hda_intel 33773 4
videodev 98259 1 uvcvideo
mac80211 506816 1 ath9k
snd_hda_codec 127706 3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
v4l2_compat_ioctl32 17128 1 videodev
snd_hwdep 13668 1 snd_hda_codec
joydev 17693 0
ath9k_common 14053 1 ath9k
ath9k_hw 411151 2 ath9k,ath9k_common
i915 473298 2
drm_kms_helper 46978 1 i915
drm 241921 3 i915,drm_kms_helper
snd_pcm 97188 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
i2c_algo_bit 13423 1 i915
video 19596 1 i915
btusb 18288 2
mei 41616 0
ath 24067 3 ath9k,ath9k_common,ath9k_hw
mac_hid 13253 0
snd_seq_midi 13324 0
sony_laptop 45393 0
lp 17799 0
snd_rawmidi 30748 1 snd_seq_midi
snd_seq_midi_event 14899 1 snd_seq_midi
snd_seq 61896 2 snd_seq_midi,snd_seq_midi_event
snd_timer 29990 2 snd_pcm,snd_seq
snd_seq_device 14540 3 snd_seq_midi,snd_rawmidi,snd_seq
psmouse 97443 0
serio_raw 13211 0
cfg80211 205544 3 ath9k,mac80211,ath
snd 78855 18 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_c
rts_pstor 445196 0
soundcore 15091 1 snd
snd_page_alloc 18529 2 snd_hda_intel,snd_pcm
bluetooth 180104 23 rfcomm,bnep,btusb
parport 46562 3 parport_pc,ppdev,lp
usbhid 47199 0
hid 99559 1 usbhid
r8169 62099 0


$ sudo lshw -C network
*-network DISABLED
description: Wireless interface
product: AR9485 Wireless Network Adapter
vendor: Atheros Communications Inc.
physical id: 0
bus info: pci@0000:01:00.0
logical name: wlan0
version: 01
serial: xx:xx:xx:xx:xx
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list rom ethernet physical wireless
configuration: broadcast=yes driver=ath9k driverversion=3.2.0-32-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11bgn
resources: irq:16 memory:c0600000-c067ffff memory:afb00000-afb0ffff
*-network
description: Ethernet interface
product: RTL8111/8168B PCI Express Gigabit Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth0
version: 07
serial: xx:xx:xx:xx:xx
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl8168e-3_0.0.4 03/27/12 ip=192.168.0.2 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
resources: irq:42 ioport:2000(size=256) memory:c0404000-c0404fff memory:c0400000-c0403fff
~11:03$ iwconfig
lo no wireless extensions.

wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=off
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off

eth0 no wireless extensions.


$ rfkill list
0: sony-wifi: Wireless LAN
Soft blocked: yes
Hard blocked: no
1: sony-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
3: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: yes


以下は「sudo rfkill unblock all」を実行した後の状態です。

$ rfkill list
0: sony-wifi: Wireless LAN
Soft blocked: no
Hard blocked: no
1: sony-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
3: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

rfkillコマンドについて後で調べないと!

BubbleUPnP + MediaTombでUbuntuに入れたファイルをAndroid携帯で**外から**再生したよ

2月16日変更:BubbleUPnPについての知識が間違っていたので修正しました。
詳しくはこちらを。

いちいちSDカードに音声ファイルを仕込むのは面倒くさいなーと思い、
PCに入れたファイルをいつでもAndroid携帯から再生できるよう、 PCにUPnPサーバーを立てることにしました。
あれこれ試したところBubbleUPnPというソフトとMediaTombというソフトを使うのが簡単だったので、それらを採用しました。
利用の手順や起こったトラブルなどを例のごとくメモしたいと思います。

試した環境

    以下、PCの環境。BubbleUPnPはWindowsやMacでも動くはずです。
  • Dell Inpiron Mini 10v
  • Xubuntu 11.04
  • MediaTomb 0.12.1-0ubuntu1
  • BubbleUPnP Server 0.4

  • 以下、携帯の環境。
  • GALAPAGOS 005SH
  • Android 2.3
  • BubbleUPnP 1.3.0

PC側での設定 - MediaTomb

  1. PC側ではまずはやっぱりmediatombをsudo apt-get install しましょう。
  2. バージョンにもよるようですが、デフォルトではMediaTombはブラウザからの設定をできないようにしているようです。
    今回は簡単にウェブブラウザから設定するので
    sudo gedit /etc/mediatomb/config.xml
    などと実行し、7行目あたりの
    ... ui enabled="no" ...
    という箇所を
    ... ui enabled="yes" ...
    に書き換えましょう(もちろん「...」と書かれた箇所には他の部分が入ります。決して「...」などと入力しないでください)。
  3. 書き換えた設定を読み込むためにMediaTombを再起動する必要があるのですが、ここでハマりました。
    sudo /etc/init.d/mediatomb stop
    sudo /etc/init.d/mediatomb start
    と、一旦終了してから起動させてください。なぜかrestartではうまく読み込んでくれませんでした。

    さらに、再起動した後ブラウザから設定画面を開くためにhttp://localhost:49152/ にアクセスしても、 接続できないと言う旨のエラーが出てしまうことがあります。
    どうやらMediaTombは、起動する度にポート番号を49152か49153のどちらかに変えてしまうようです
    http://localhost:49153/ にアクセスしたら無事表示されるはずです。

  4. 無事設定画面が表示されたら、MediaTombのライブラリに、好きなファイルが入ったディレクトリを追加しましょう。MediaTombのライブラリにファイルを追加しないと、携帯など他の機器から再生することはできません。
    画面左側上半分にある、「Filesystem」と書かれた箇所をクリックしてください。
    ファイルシステムを示すツリーが表示されるはずですので、サーバーに公開してほしいファイルの入ったディレクトリを目指して、ディレクトリの左側にある「+」ボタンをクリックしていってください。
    目的のディレクトリを見つけたら、そのディレクトリをクリックして、画面上部の右端に表示される、
    「+」と書かれ、回転する矢印に囲まれたボタンをクリックしてください。
  5. 「Scan Mode」、「Scan Level」、「Recursive」、「Include hidden files/directories」と書かれた設定項目が表示されます。
    それぞれの設定項目の意味ですが、MediaTombのドキュメントによると、次のような意味だそうです。
    Scan Mode
    「None」で新しくディレクトリにファイルが追加されてもライブラリに追加しない、
    「Timed」で設定した時間毎にディレクトリをスキャンして新しいファイルをライブラリに追加する、
    「Inotify」でinotifyというライブラリを使うことで、ファイルが追加されると速やかにライブラリにファイルを追加する、
    という設定になります。
    Scan Level
    「Basic」でディレクトリの中にファイルが追加・削除された時のみライブラリを更新する、
    「Full」でディレクトリの中のファイルのあらゆる変更(タグの変更なども含める)を検知してライブラリを更新する、
    という設定になります。
    Recursive
    設定したディレクトリのサブディレクトリもライブラリに含める。
    Include hidden files/directories
    隠しディレクトリやファイルもライブラリに含める。
    おすすめ設定を述べますと、Scan ModeがInotifyで、Scan LevelがFull、Recursiveがオン、といったところでしょうか。 皆さんのPCのスペックと相談しながら設定してください。
    設定が決まったら、「Set」と書かれたボタンをクリックしてください。
    MediaTombのライブラリに、設定したディレクトリのファイルが追加されるはずですので、しばしお待ちを。

PC側での設定 - BubbleUPnP Server

MediaTombの設定は以上です。次はBubbleUPnP Serverの設定を説明します。
BubbleUPnPが一体どんな役割を果たしているのか、と申しますと、
MediaTombで公開したファイルをインターネットからでも簡単に再生できるようにするなど、
UPnPサーバーの補助を行うソフトのようです。
今回はAndroid携帯とPCが同じLAN内にあることを想定して設定するため、あまり意味がないかもしれませんが、
今回用いるUPnPクライアント、「BubbleUPnP」を用いる限りは必ず使わないといけないようです。

追記:間違えました。BubbleUPnP ServerはなくてもBubbleUPnPだけで同じLAN内のUPnPサーバーのファイルを再生できるようです。
BubbleUPnPのAndroid Marketでのページによると、 BubbleUPnP Serverを使うことで、UPnPサーバー内のファイルを簡単にインターネット越しに再生することが出来るようになるそうです。
そういうことなんで、今回は当初の趣旨から少し変えて、BubbleUPnP Serverを用いて、外からでもUPnPサーバー内のファイルを再生できるようにする方法を説明することにしました。
aptのリポジトリにもないので少々インストールが面倒ですが、どうかお付き合いください。
  1. http://bubbleguuum.free.fr/upnpserver/ に行ってBubbleUPnP Serverをダウンロードしましょう。
    「Download zip archive」と書かれたリンクをクリックしてzipファイルをダウンロードしてください。
    容量のわりに結構ダウンロードに時間がかかりますので気長に待ちましょう。
    ダウンロードが済んだらやはり適当なディレクトリに解凍しましょう。
  2. 解凍した段階でお気づきの方もいらっしゃると思いますが、BubbleUPnP ServerはJavaでできてます。
    すかさずsudo apt-get install openjdk-6-jre-headless などと実行し、javaをインストールしましょう。
  3. ダウンロードしたzipファイルの中にあるlaunch.shというファイルにchmod +xして実行権を加えたら、./launch.sh と実行し、BubbleUPnP Serverを起動させてください。
  4. BubbleUPnP Serverの起動が終了したら、http://localhost:58050/ にアクセスして、BubbleUPnP Serverの設定画面を開いてください。
  5. 最初に設定画面を開くと、「loginとpasswordを設定しろよ!」みたいな内容の警告が表示されます。
    素直にそれに従い、画面下半分にある、「Cresidential」と書かれた四角の中にある、
    「Login」と「Password」と書かれた欄に、適当な文字列(後で使用するので覚えておきましょう)を入力し、
    その下の「Apply」と書かれたボタンをクリックしてください。
  6. 続いてBubbleUPnPがきちんとMediaTombを認識しているのかどうか確認しましょう。
    同じくBubbleUPnPの設定画面上部にある、「Media Servers」という箇所をクリックしてください。
    すると他に設定しているUPnPサーバーがなければ、
    「MediaTomb」とというサーバーソフトの名前と、MediaTombのアイコンが書かれた項目が表示されているはずです。
    画面右側の「Make this Media Server available in BubbleUPnP for Android」という項目にチェックが入っていることを確認しましょう。
PC側の設定は以上です。

Android側の設定

  1. https://market.android.com/details?id=com.bubblesoft.android.bubbleupnp にアクセスし、Android MarketでBubbleUPnPのクライアントアプリをダウンロード・インストールしましょう。
  2. BubbleUPnPを最初に起動すると、「What's new」と書かれた案内が表示されます。
    「OK」をタップし、次に進みましょう。
    あれやこれやと説明が続きますが、ひとまず「Skip」、「OK」をタップし、先に進んでください。
  3. 画面下部に「NOW PLAYING」「PLAYLIST」「LIBRARY」「DEVICES」の4つのボタンが表示される画面まで来たら、
    メニューボタンを押し、「Settings」=>「Networkds and settings」=>一番上の「Unset」の順番にタップし、
    ネットワークの設定画面を呼び出しましょう。
  4. 設定画面では、次のように設定してください。
    • Name: 適当な名前
    • Server address: BubbleUPnPの設定画面(デフォルトではhttp://localhost:58050/ )で表示される、LAN IP AddressPublic IP Addressの頭に「http:// 」をつけ、末尾に「:58050」と書いた値(例: http://111.222.3.4:58050 )。
    • Login: 先ほどBubbleUPnP Serverの設定画面で設定した値
    • Password: Loginと同様先ほど設定した値
    • その他の設定:そのまま変えない
    以上のように設定したら、右下の「Apply」というボタンをタップして、設定を完了します。
  5. 「戻る」ボタンを何度か押し、設定画面を閉じたら、画面右下の「DEVICES」と書かれたボタンをタップします。
  6. 設定がうまく行っていれば、右側の「Select Library」と言う欄に「MediaTomb [(先ほどネットワークの設定画面で設定したName)]」という項目が表示されているはずです。
  7. その「MediaTomb」と書かれた項目をタップし、今度は画面下部の「LIBRARY」というボタンをタップしてください。
    先ほどMediaTombに登録した曲が表示されるようになります。
    適当なフォルダのアイコンをタップして、きちんと登録されているか確認してください。
他にも細かい設定がアレコレありますが、設定の説明はこの辺で終了とさせていただきます。
次に気が向いたときはトランスコーディングの設定でも行いましょうかね。 BubbleUPnPを使えば割と簡単に設定できそうです。
実際やって見たところ私の環境ではFLACのようなサイズの大きなファイルは音飛びが激しいですし。

トラブルシューティング

最後に、私がMediaTombの設定をしていて困った点とその解決策をメモしておきましょう。
私の場合、一部のファイルが音声ファイルとして認識されず、再生されない、というトラブルが起こりました。
あれこれ悩んだ後、 /var/log/mediatomb.log をよく読んで見たところ、認識されなかったファイルについて、次のような警告が記録されてました。

2012-02-15 23:25:37 WARNING: filemagic returned invalid mimetype for /home/hoge/h/songs/hage.flac regular file, no read permission

どうやらたまたまそのファイルだけパーミッションがWorld-Readableになっていなかったようです。
特に問題がなければ、公開したいディレクトリに対して chmod 0755 -R と実行してまとめて読み込み可能にしちゃいましょう。
それでもやっぱり読み込まれなかった場合
しかしパーミッションを変更した後、mediatombを再起動してもやっぱり読み込めなかったファイルがいくつかありました。
こちらもうんうん悩んだ挙句、一旦mediatombを終了し、
MediaTombがライブラリに取り込んだファイルの情報がおそらくキャッシュされているであろう、
/var/lib/mediatomb.db を削除した上でもう一度mediatombを起動、
改めてライブラリを追加
したところ、うまく認識してくれました。

Ubuntu 9.10でWebcamから動画やら写真やら撮ったよ( Cheese & Kamoso )

ええ、備忘録です。
ウェブカメラ自体の認識には苦労しませんでした。
シンプルなUSBカメラですし。
多分使い方はそんなに難しくないので例のごとく何をapt-getしたのかだけ。
(Ubuntuに入ったFirefoxで下記のリンクをクリックするとインストールできます)
Kamoso

Cheese

というソフトを使いました。
Cheeseでもビデオは撮れるようですが筆者の環境ではうまくいかず。
CheeseはMacのPhoto Boothのようにエフェクト付きで写真が撮れます。
Kamosoにはない機能です。
Kamosoで写真を撮るのはうまくいかず。

というわけでとりあえずは、

動画を撮るときはKamoso、
写真を撮るときはCheese

としましょう。

一ついい忘れ。
Kamosoは筆者環境(Xubuntu 9.10)ではApplicationメニューにアイコンをインストールしてくれませんでした。
多分KDE用に作っているからでしょう。
やむなくコマンドラインから
kamoso
で起動しました。

Xubuntu 9.04にRuby版mechanizeをインストール。

追記: タイトルを変更しました。mechanizeってRubyだけじゃなかったんですね。世間知らずでした。ごめんなさい。

ええ、またしても備忘録的な内容ですが。

詳しい環境


  • Xubuntu 9.04

  • ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

「apt-get install」したパッケージ


  • ruby1.8-dev

  • libxml2

  • libxslt1-dev

ruby1.8-devについてはhttp://d.hatena.ne.jp/mssh/20081008/1223469710からです。
やはりUbuntuではかなりRuby関連のパッケージを分割している用ですね。標準ライブラリのmkmfがデフォルトで使えません。
記事検索
楽天市場
livedoor プロフィール
QRコード
QRコード
  • ライブドアブログ