2011/05/30

Ubuntu11.04でHDMI出力をする(RADEON)

以前Ubuntu10.04をインストールしていたころは、
HDMIでの接続ができず、DVIで頑張っていました。

11.04にバージョンを上げたのでHDMIが使えるかな~と思って接続してみると、
あっさり表示されました。ドライバのバージョンが上がったのでしょうか。
ただ、一点だけ気になるところがありました。
ディスプレイはフルHDで、出力もフルHDになっているのですが、画面表示が以下の画像のようになっていました。
全体に表示されない・・・

緑色の外側が、液晶パネル全体だと思ってください。

フルHDのディスプレイに、フルHDの画像が0.8倍ぐらいに縮小された状態で表示されています。
もちろんDot by Dotでないので、ボヤけて見えます。

設定画面に、Catalyst Control center (VGAにはRADEON HD 5450を使っています)があったので、管理者モードのほうを覗いてみました。

「調整」タブに、スケーリングという欄があったので、そこの値をいじると
液晶パネル全体に表示することが出きるようになりました。

色々設定できそうなコントロールパネル


もちろん、Ubuntu11.04はHDMIによる音声出力にも対応してました。
ドライバが揃ってきていてありがたいです。

ではまた。

2011/05/29

BluetoothキーボードをXOOMで使う

電機店でBluetoothキーボードを買ったので、xoomに繋げてみました。
今回買ったキーボードはELECOMのTK-FBM023BKです。

ペアリングは問題なくできました。
ファンクションキーとの組み合わせで、ホーム画面を表示したり、検索ウィンドウを表示できることがわかりました。
コンテキストキーも有効でした。ctrl-Vとctrl-Cも使えました。

文字入力速度はタッチパネルよりも格段に上がりましたが、若干不便なところもあるので書いておきます。
1。日本語入力のOFFはできるが、ONにするには入力ウィンドウ内をタッチする必要がある
2。漢字変換は、変換後エンターキーを押さないと、一番はじめの候補が適用されてしまう

現在のキーボード入力環境は不便なところはありますが、
タッチパネルのみで入力するよりかは楽ができそうです。

ではまた。

2011/05/28

XOOMをリストアしました

android3.0の開発環境としてもつかっていたXOOMで、apidemosがアンインストールできなくなってしまいました。
電源on時にも時々強制終了エラーが出るので、リストアすることにしました。
重要なファイルや写真は入れてなかったので、ファイルのバックアップなどはせずに、設定->バックアップとリストアからリストアを実行。

2-3分でリストアは完了し、wifiの設定とgoogleアカンウントの設定をしたら、インストールしてあったアプリも自動で再インストールされました。なかなか便利です。

ただし、各アプリの設定はリセットされているので、リストア前にバックアップした方がよさそうです。

ではまた。

2011/05/25

Intel iMacにUbuntu11.04をインストール&無線LANの設定

先週メインのPCにUbuntu11.04を入れてなかなか好感触だったので、
控えPCのiMac(MA199J/A)にUbuntu11.04を入れてみました。

まずはUbuntu11.04のインストーラをダウンロードしてきます。
Ubuntu
今回は32bitバージョンをダウンロードしてCDに焼きました。

iMacにインストールCDを入れたまま再起動。
OS Xが立ち上がりました。 CDブートしない。。。


キーボードのCを電源投入時に押していないとCDブートしてくれないようなので
電源を切ってキーボードのCを押しながら電源ON。
OS Xが立ち上がりました。

2、3回試してもOS Xが立ち上がるので、設定の「起動ディスク」でCD-ROMを指定して再起動。
ようやくUbuntu11.04のインストーラが立ち上がりました。

キーボードはJapan-macintoshというのがあったのでそれを選択。
パーティションの設定に入ったところ、
・Ubuntuを別のディスクにインストールする
・OS Xと入れ替える
・その他自分で操作する
の3つの選択肢になっていました。

WindowsとUbuntuは共存できるようですが、OS XとUbuntuは共存できない模様です。
サブPCには重要なデータは入っていないので、「OS Xと入れ替える」を選んでインストール。
さらばMac OS X。また会う日まで。


20分ぐらい待つと、インストールが完了しました。

再起動して使ってみると、有線LANとビデオカードのドライバは問題無いようです。
Bluetoothと無線LANは利用できませんでした。

Bluetoothは使わないので放っておくとして、無線LANは使えるようにしておきたいところ。

早速Google先生に聞くことにしました。

まずはどんな無線LANのモジュールがついているかを調査。
lspci -v
03:00.0 Network controller: Broadcom Corporation BCM4311 802.11a/b/g (rev 01)
BroadComの製品のようです。有名どころでよかった~。

以前と同じように、linux wirelessをインストールすることにしました。

ダウンロードしたものを展開して sudo makeのあと、sudo make installを実行します。
その後再起動。

再起動後、追加のドライバにBroadcom STA無線ドライバ というのが出ましたが、「ドライバは有効ですが、現在使用していません」と表示されました。 だめか。。

再度検索。

http://ubuntuforums.org/showthread.php?t=1700897
の5番にあるとおり、Synapticマネージャでbcmwl-kernel-sourceなどをアンインストール。
そのあと/etc/modprobe.d/blacklist.confの blacklist bcm43xxをコメントアウト。

再起動しても特に変化なし。。。 これもハズレのようです。

また検索

Debianのwikiに、BroadCom43xxについての記載がありました。
Synapticマネージャで、firmware-b43-installerを探してインストール。

iwconfigを実行すると、下記のような文字が出てきました。
IEEE 802.11bg ESSID:""
Mode:Managed Frequency:2.472 GHz Access Point: 00:24:A5:0E:C0:E6


再起動して無線LANの設定をすると、無事つながりました。
めでたし めでたし。

ではまた。

2011/05/21

Ubuntu11.04で無線LANアダプタ(Buffalo WLI-U2-54HP)を使う

先週ぐらいにUbuntuを10.04から11.04にアップグレードしたものの、時々フリーズしてしまうのでクリーンインストールすることにしました。

インストールしたOS:Ubuntu 11.04(natty) amd64 Linux2.6.38-8-generic

EclipseやAndroidSDKなどは問題なく設定できたものの、無線LANのアダプタが認識してくれませんでした。
以前はndiswrapperという、windows用ドライバをLinuxでも使えるようにするものを使っていたのですが、64ビット版になったためか使用できず。

いろいろなページをさまよった結果、compact-wirelessというものをインストールすると、認識してくれるようになりました。
参考:compat-wirelessで無線LANを安定させる@Linux@VAIOブログ

やったこと:
1.Synapticパッケージマネージャで、カーネルのソースとカーネルのヘッダをインストールしておく。
2.Linux Wirelessのサイトから、カーネルのバージョンと同じcompact-wirelessをダウンロードして解凍。
3.あとはcompact-wirelessのReadMeに書いてあるとおりにmakeしてmake installを実行。
4.WLI-U2-54HPのドライバはrt73usbになるようなので、sudo modprobe rt73usb と実行すると、無事認識されました。

ではまた。

2011/05/09

ファイル名からMIMEタイプを判定する

約1ヶ月ぶりの更新。

今日はAndroidネタです。
Android3.0向けのファイラを作成しているのですが、ファイルをタップするとそれに対応するアプリケーションを起動する機能が欲しくなりました。この機能は、Androidが持っている「インテント」を使うと実現できるようです。

インテントについては下記のページなどを参照してください。

インテントを使うときには、MIMEタイプを指定する必要があるのですが、
ファイル名から自分で拡張子を切り出し、数千個もある拡張子からMIMEタイプを判定するコードは書きたくありません。

幸運な事に、AndroidにはMIMETypeMapという、MIMEのデータベースのようなものがあるので
これを利用して各ファイルのMIMEタイプを判定することができます。
getFileExtensionFromUrlを使って拡張子を取得し、getExtensionFromMimeType(String mimeType)に拡張子を渡すとMIMEタイプが返ってきます。
判定できないときもあるので、その場合は別途処理が必要です。

以下、ファイル名を渡すとMIMEタイプが返ってくるコードのサンプルです。
手元では動いているのでたぶん大丈夫。。。

   /**
* 渡されたファイル名から、MIMEタイプを返します。
*
*/
private String getMIMEType(String targetFile)
{
String url=URLEncoder.encode(targetFile);
String extention=MimeTypeMap.getFileExtensionFromUrl(url);
String mtype="";

//拡張子を小文字に変換
extention=extention.toLowerCase();

mtype=MimeTypeMap.getSingleton().getMimeTypeFromExtension(extention);
if (mtype==null)
{
//ソースコードなどは判定してくれないので自分で判定する

String PLANETEXT="text/plain";
if(
//テキストエディタで開けそうなソースファイルはテキストとして登録
(targetFile.endsWith(".c")) ||
(targetFile.endsWith(".cp")) ||
(targetFile.endsWith(".cpp")) ||
(targetFile.endsWith(".java")) ||
(targetFile.endsWith(".txt")) ||
(targetFile.endsWith(".c++")) ||
(targetFile.endsWith(".sh")) ||
(targetFile.endsWith(".cmake")) ||
(targetFile.endsWith(".ini")) ||
(targetFile.endsWith(".php")) ||
(targetFile.endsWith(".py"))
)
mtype=PLANETEXT;
}

if( mtype==null) mtype="";
return mtype;
}




ではまた。