卜部昌平のあまりreblogしないtumblr RSS

Archive

Mar
7th
Mon
permalink

苦節一年にして漸く VAIO X で Ubuntu がそれなりに動くようになったので方法等メモしておこうと思う。

いやあ長かった。まあ途中は諦めてたから放置してたけど。

この vaio 買ったばかりのころはまだ lucid も出てなくてさあ。karmic では様々なコンポーネントが話になってなくてさあ。そもそも Intel GMA500 の Linux ドライバさあ。…まあいいや。苦労話が長くなってきちゃうあたり俺ももう立派なおっさんだな。手短に切り上げて必要なものだけ書こう。

いま、使えているものは:

  • ハードウエア 2D / 3D アクセラレーション (drm_psb)
  • 有線 LAN (sky2) / 無線 LAN (ath9k) / ワイヤレス WAN (qcserial)
  • USB / Bluetooth
  • 内蔵 Web カメラ (uvcvideo)
  • 内蔵トラックパッドのスクロールエリア
  • 内蔵スピーカー
  • ホットキーによる輝度 / 音量調整

逆に使えてないものは:

  • サスペンドとハイバネーションはおかしい。というかサスペンドするところまではいいとして、戻ってこれない
  • トラックパッドのマルチタッチは不可
  • GPS は用途がないので試してないけど多分動いてない

以下手順

下準備

それなりに動くというのは楽勝で動くという意味ではないのだね。なのでまず以下のものを入手するように。

  • 空の(つまり blank の)DVD-R media ×3
  • ↑に書き込める、USB 接続の、DVD-R drive (純正オプションとか売ってるけどそんなんじゃなくてよい。動けば OK)
  • 新品の USB メモリスティック、最低 1GB (SONY 製でなくてもよい。動けば OK 。なお今だと普通にヨドバシカメラで買おうとすると 1GB より小さいサイズのは売ってないので、サイズは気にすんなと言う感じ)
  • すんなり行って丸一日程度の時間がかかるので、それだけの時間的・精神的余裕、およびそれだけの時間を潰せる非電源系暇つぶし(数独、ナンクロ、詰将棋、グレッグ・イーガンなど)
  • Ubuntu のインストーラが要求してくるので、インターネット接続環境。ただしドライバがめんどっちいので有線接続以外はまったくお薦めできない。
  • もちろん vaio は必要

インストーラが起動するまで

  1. まず用意した DVD-R とドライブを使ってリカバリディスクを作成する。これはとてもとてもとても重要なので絶対省略しないこと。リカバリディスクがない状態でインストール失敗したら詰む。作り方はさすがに分かると思うので省略。

  2. 次に用意した USB メモリスティックを使って ubuntu のいわゆるライブ USB メモリを作る。これは様々な方法がある(参考)ので好きな方法で作る。一番簡単なのはすでにあるどれか別の ubuntu マシンで「スタートアップ・ディスクの作成」で作るのが楽勝なのでそれができる人はおすすめ。

    • なおマゾヒスト以外は Ubuntu 10.10 (Maverick Meerkat) Desktop Edition for PC (Intel x86) ってやつを作るように。今だと LTS である dapper, hardy, lucid と最後にリリースされた maverick とまだリリースされてない natty (の alpha 3) くらいの選択肢があるが、lucid 以前は kernel 古すぎてまともに動かないのは確認済だし、 natty に突撃するのは無謀と言わないのであれば蛮勇と呼ばざるを得ない。おとなしく maverick にしなさい。あとCPU は Silverthorne だから x86 版しか動かないよ。

    • Q. なぜ、ライブ CD ではないのですか? せっかくドライブがあるのだしライブ CD でいいのではないですか?

      A. やってみな。起動しねえから。それ以上の理由ではない。もし何かのはずみでライブ CD が起動しちゃえるようなら、それでいいよ。

  3. VAIO X にはワイヤレス WAN か WiMAX のどっちかの機械が、仮に申し込まなくても、勝手に付属してきているはずだけれども、どちらにせよ使うのであれば、この時点で FOMA なり WiMAX なりを開通させておく。なぜこの時点でかというと、これ以降は多分サポート範囲外なので。逆に言うともし諦めるならこのポイントで。なお俺の手元のマシンが FOMA 版であるという理由により以降は FOMA 前提で説明する。

  4. 「 VAIO Smart Network」を使ってすべてのネットワーク機器の電源をもれなく入れておくこと。これを怠ると linux の側からたとえば bluetooth が認識できなくて大変悲しい目に遭う (linux から電源入れる方法がない)。なお本体に物理的についてる「WIRELESS」って書いてあるスイッチは罠。信用してはいけない。ちゃんと windows から電源入れるように。

  5. 以降データロスの可能性があるのでここで必ずバックアップをとる。

ライブ USB メモリからの起動

でさあ、準備したしさあインストールするかと思っても、 DVD でも USB メモリでもいいけどともかく外付けのメディアからまったく起動しないのな。そもそも普通に再起動しただけでは外部メディアは読みにいこうとすらしない徹底っぷり。

まあそれは「起動時 VAIO のロゴが表示されてるタイミングで F11 を押下」で一応回避できる。でも仮にそれで外部メディアから ISOLINUX などのブートローダを読み込んだとしても、そこから先にいかないね。つまりリアルモードでは USB のハンドリングは BIOS のお仕事だから BIOS から見えるデバイスはブートローダからはまだ見えるけど、プロテクトモードに突入してから先でUSBが見えてない。なんでだか知らんけど。

で、maverick が出たときには入れてみようとしてここで詰んだので諦めたんだけど、どうやらその後がんばってこれを突破したひとがいたらしく、それによると要するに BIOS が主張してくる E820 のメモリマップが嘘、ということらしい(参考)。ひどい話だけどよくある話だ。

原因さえ分かってしまえば回避方法はある。

  1. メディアを接続して電源ボタンを押す。
  2. VAIO ロゴが表示されたらすかさず F11 を押下
  3. USB メモリスティックから起動してきたら、紫色の画面まで進む。
  4. 画面が紫色になったら何かキーを押してブートプロセスを停止
  5. メニューが出てくるので、言語などを適当に選ぶ。
  6. (ここ重要) F6 を押すと、メニューが表示されて、画面最下部に何か呪文が表示される。
  7. メニューはどうでもいいので esc で逃げて、呪文に入力できることを確認したら、カーソルを一番右に持っていって、最後の quiet splash -- を消す。
  8. 代わりに、memmap=1K#0x7f800000 --と入力する。
  9. Enter で起動

呪文の意味は kernel のドキュメントを見れ。

ディスクの設計・施工と一回目の再起動

さて無事に起動したとする。もちろんここからインストールに進みたいはずなわけだが、後述の事情によりすでにある windows の領域を消してしまわないようにしないといけない、つまり、デュアルブートにしないといけない。普通に買ったままの構成で使ってれば内蔵 SSD に余ってる領域はないはずなので、どこかを消したり削ったりして領域をひねり出すように。いくつかの戦略がありうる。

  • まず System Reserved というラベルになっている100MBくらいの NTFS パーティションは消しちゃダメ。 Windows 7 はこのパーティションから起動してくる。
  • C ドライブは消しちゃダメだが削るのは OK
  • その他、インストール方法によってはリカバリ領域のパーティションが切ってある場合があるが、これは消してよい。DVD 作ったよね?

これらの操作は gparted からも行えるし、 windows 側から管理ツール経由でも行える。ただ gparted のほうがやれることは多い(横に移動できる)けれども、 NFTS を gparted で弄ったら必ず操作後に windows から chkdsk する必要があるようだ。つまり今、ubuntu ライブ USB メモリが起動しているけれども、

  • このまま gparted でディスクを変更して再起動する (chkdsk は勝手に走る)
  • 再起動して windows 側からディスクを弄る

のどっちかの方法を採用する必要がある。いずれにせよ再起動は不可避。

なお System Reserved を gparted で弄ってしまうと Windows 7 が起動しなくなるので、リカバリディスクの「Windows 回復環境」ってやつのお世話になってください。回復できることもあればできないこともある(操作による)。無理って言われたら諦めて。

インストーラのウィザードを起動し質問に答える→再起動

ここまできたら漸くインストーラの出番。ここは「windows 消すな」以外は特に言うことはないか。

でもまだ先は長いよ。

poulsbo ドライバを自摸ってきてまた再起動

インストールの最中にすでに気付いているはずだがこの状態では画面表示が実用に耐えない。X が VESA で動いてて DRI とかまったく使えてない。ようするにグラフィックスドライバがない。なのでインストーラが終わって再起動してきたら、まずはそこを何とかする必要がある。

shyouhei@localhost:~$ sudo -i
root@localhost:~# add-apt-repository ppa:gma500/ppa
root@localhost:~# apt-get update
root@localhost:~# apt-get install poulsbo-{config,driver-{2,3}d}
root@localhost:~# shutdown -r now

E820 の修正を grub.conf に書き込んでまた再起動

いまや内蔵 SSD から起動してきているから USB が見えなくても起動はするんだけど、さすがに USB が使えないようではマウスすら NG なわけでこれは辛い、のでさっきの E820 の手で追加したマップを毎回起動時に全自動であたるようにしておく。

shyouhei@localhost:~$ sudo -i
root@localhost:~# sed -i.bak 's/^GRUB_CMDLINE_LINUX="/&memmap=1K#0x7f800000 /' /etc/default/grub
root@localhost:~# update-grub
root@localhost:~# shutdown -r now

WWAN デバイスの周辺

ワイヤレス WAN のデバイスドライバ (qcserial) は maverick の kernel に最初から入っており、これは問題ない。問題あるのは、このデバイスはドライバだけでは動かなくて、別途ファームウエアが必要であるという事実だ。このファームウエアは当然、プロプライエタリであり、どっかネットに転がっていたりはしない。

幸いというか当然というか、普通に windows で使っている場合にはこのファームウエアは提供されており、これは(消しちゃってなければ) windows の C ドライブのどっかに入っている。自摸ってこよう。

  1. このために windows の C ドライブが残してあるはずなので、まずそれをどっかにマウントする。ここでは /media/windows にマウントされたとしよう。
  2. 次に gedit で/media/windows/ProgramData/QUALCOMM/QDLService2k/Options2kSony.txt なるファイルを開く。べつに gedit じゃなくても読むだけだから読めりゃいいんだけどこのファイル UTF-16-LE で書かれてるから(さすが windows だ)、この時点だとまだ gedit くらいしか UTF-16 が読めるアプリ入ってないと思うよ。
  3. で、そこに書いてある C:\Program Files\Qualcomm\… っていうパスに、実際に使うファームウエアが入っている。これはお買い上げの地域や時期などによって様々なことが書いてあるという噂。なので各自確認してください。
  4. 上記ファイルに書いてあるなんとか.mbnとかいうファイルを全部コピーしてくる。ディレクトリ構造は保存しなくてよい模様。
  5. /lib/firmware/gobi というディレクトリ(なければ作る)に、コピーしたファイル群を突っ込む。
  6. ファームウエアを読み込む userland はデフォルトでは入ってないので、これを入れる。

    shyouhei@localhost:~$ sudo apt-get install gobi-loader
    
  7. この時点で USB モデムとして認識されているはずなので、シリアルデバイスとして /dev/ttyUSBなんとか が生えているはずなので確認すべき。シリアルデバイスに接続するのは screen 使いましょうね。デフォルトで入ってますからね。まず自分にパーミッションをつけて

    shyouhei@localhost:~$ sudo usermod -a -G dip,dialout shyouhei
    

    一旦抜けてログインしなおしてから、

    shyouhei@localhost:~$ screen /dev/ttyUSB0 460800
    

    など。ここでまっさらな画面になってエコーバックもなにもないけど、びびらずにまず ATE1 と入力してみる。

    ATE1 ← エコーバックされない
    OK   ← これが出たら動いてる
    ATI  ← 入力する
    Manufacturer: Qualcomm Incorporated
    Model: Qualcomm Gobi 2000
    Revision: D1025-STUTABED-3584  1  [Aug 03 2009 17:00:00]
    SVN: 03
    IMEI: (15桁の IMEI、詳しくはググれ)
    +GCAP: +CGSM,+DS,+ES
    
    OK
    AT+CGDCONT?  ← 入力する
    +CGDCONT: 1,"IP","","",0,0
    +CGDCONT: 2,"IP","","",0,0
    +CGDCONT: 3,"IP","mopera.net","",0,0
    +CGDCONT: 4,"IP","0120.foma-kaitsu.mopera.ne.jp","",0,0
    +CGDCONT: 5,"IP","mopera.flat.foma.ne.jp","",0,0
    +CGDCONT: 6,"IP","mopera.ne.jp","",0,0
    
    OK
    ATE0 ← 入力する
    OK
    

    ここまで表示されたら内容をどこかにコピペしてから C-a C-\ で screen は終了してよい。

さて上記の情報から様々なことが分かる。まず “Model: Qualcomm Gobi 2000” って表示されてればとりあえずデバイスは動いている。おめでとう。それからなにやらドメイン一覧のようなものが表示されているのは APN というやつで、上の例は NTT ドコモの 「定額データプラン」ってやつ + mopera U の「U スタンダードプラン」ってやつの場合なわけだが、プランやプロバイダによっても違うらしいし、もちろんたとえば b-mobile のSIM を挿したりするとまた別なのだろう (mopera の APN は公開情報です)。ここで自分の使っているプランの APN が何番かを確認しておくのが超重要。ミスるとパケ死なのでお手元の契約書と付き合わせてよくご確認ください。

で、デバイス動いてるのでここまで来ると NetworkManager から「モバイルブロードバンド (GSM) 接続」ってやつが見えてるんだけど、実際ウィザード経由でそこからつないでみようとしてもなんかうまくいかない。よくわからん。前も同様の現象を Huawei の EMOBILE のモデムで経験したけど、なんか NetworkManager は USB モデムと仲良くできないね。よくわからん。

でも回避方法も実は一緒で、ようするに pon は使えるので pon 使ってください。

shyouhei@localhost:~$ sudo pppconfig
  • 電話番号は *99***6# など、この6というのがさっき確認した APN に対応。たとえば3番を使う人なら替わりに *99***3#
  • ユーザー ID とパスワードはプロバイダから指定されたもの
  • 認証方式もプロバイダからしていされてるはずなのでそれを。たとえば mopera は CHAP
  • ボーレートはあんまり気にしなくていい気がする。USB シリアルだし。

で、ponしたらつながるはず。つながらなかったら windows から起動しなおして確認してみること。Windows の側からは接続できるけど linux からはできないというのは、おおむね設定ミスが原因。

あとは PPP だし当然 L2 が Ethernet じゃないということはほっといたら v6 のアドレスはもらえないから、トンネルしてくるとか?

shyouhei@localhost:~$ sudo apt-get install miredo

まとめ

お前はそこまでして ubuntu が使いたいのか? という、むなしさとのたたかい。

いや実際 windows そんなに悪くないよね。7は特によい。Vista はアレだったという噂は聞くけど、VAIO X で使う分には7はほんと普通。表示ももっさりしないし。Direct2D でフォント綺麗だし。sp1 問題なく当たるし。壊れたらサポートしてくれるし。

ただ(これは vaio に限らないけど)標準添付ソフトとかが無駄に動作を重くしている感は否めないので、それを回避するために結局さまざまなアプリケーションをアンインストールしたり、あるいは別のアプリケーションを入れ直したりする手間のことを考えると、実のところかかる手間はほぼ…いやあ、それでもやっぱ ubuntu 入れる方が面倒でしょ。これは。

というわけで実際やってみた感想としては、どうしてもという理由がなければ windows でいいんじゃねえのというのが。どうせこのマシンで科学技術計算とかやらんでしょう? Atom なんだしさ。SSH さえ使えればいいんじゃないの。PuTTY でいいんじゃないの。ダメっていう人は、こんだけの手間を掛ければ一応、「使える」ってところまでは行くので、そのことを確認する意味はあったと思う。けど、そんだけだな。

  1. photxt reblogged this from shyouhei
  2. ftnk reblogged this from shyouhei
  3. lugecy reblogged this from shyouhei
  4. criff reblogged this from shyouhei
  5. siyo reblogged this from shyouhei
  6. shyouhei posted this