Ideapad S205でUbuntuを2011/08/20 16:04

ずいぶんとさぼってるけれど、相変わらずの物欲の日々です。

Windows/Linuxの動くノートパソコンが必要になったので、安いのを物色。最近はレッツノートが10万円を切る値段というのに心惹かれたけれども、狙いはもっとやっすい奴。ということで買ったのがlenovoのIdeapad S205。A4ノートになるのかな?一回り大きいが、見た目は直前のエントリのAZと兄弟と言っても通用するような感じ。プロセッサにAMD E-350というのを使ってる。

Amazonでおよそ35000円、愛用しているネットゲーもなんとか動くようで一安心したのだが、それからが苦難のはじまりだった。いまどきLinuxをインストールするのにここまで苦労するとは・・・


プレインストールのWindows7でディスク領域を100Gほど空け、UbuntuのUSBで起動。Ubuntuの最新である11.04(64bit)をインストールし、再起動したがHDD上のOS(Windows7含む)がまったく認識されない。この段階になってS205とLinuxの相性について調べたのだが、ずいぶんと面倒なことになっているようだ。

まず、起動しない件。E-350のせいかどうかはわからないが、MBRにインストールしたgrub2が動かない。grub2というのはgrubの後を継ぐソフトらしく、今のUbuntuでは標準となっている。まったくの別ソフトウェアなのにコマンドラインでは同じ"grub"であることもあり、ここでまず問題の切り分けに手間取る。オリジナルのgrubでは動くらしく、一度USBから起動、chrootしてgrub2を削除、grubをインストール。再起動。

grubのメニューが表われ、Ubuntuの起動に成功。めでたしめでたし・・・とはいかない。grubからWindows7の起動の仕方が、いろいろググって見たのだがわからない。最近のWindowsはずいぶんと面倒なことになってるのだなあ・・・

考えた末に、MBRにgrubをインストールするのは、Windowsの融通が効かないから危険が大きいと判断し、ブートローダーはWindows側に任せ、Linuxはgrub4dos経由で立ち上げることにする。

キーボード右上のスイッチを針で押し、Windowsの再インストールをする。切り直したパーティションはそのままだったので手間がはぶけた。再度USBで起動、Ubuntuをインストール。注意しなければならないのは、grub2をMBRにインストールしないこと。普通にインストールするとどうやってもMBRにインストールされてしまう・・・。調べた末に、「ディスク領域の割り当て」 で「それ以外」 を選ぶと、grub2のインストール先が選択できるようになる。そんなんわからんよ・・・。初心者にやさしいつもりかもしれないけど、少し設定を変えようというだけで鬼のように苦労させられるインストーラになってしまったな。grub2はUbuntuのパーティション(自分の場合は/dev/sda7)にインストールする。

再起動。当然起動するのはWindows7。ここでgrub4dosのインストール・・・というほどのことではなく、解凍したファイルから"grldr","grldr.mbr","menu.lst"をC:\に置いただけ。

当然、menu.lstにUbuntu起動用のエントリはないので、こんなのを追加。

title ubuntu
root (hd0,6)  #<- /dev/sda7
kernel /vmlinuz root=/dev/sda7 ro
initrd /initrd.img

この後で、Windowsのブートローダをいじるコマンド、bcdeditとやらを使う。具体的なやり方は忘れてしまったので、参考にしたURLをば。

http://taka8aru.blogspot.com/2011/05/windowslinux-ubuntu-1104-grub2.html

そして再起動。まずWindowsのブートメニューで、Windowsかgrubかの選択。ここでgrubに行くとgrubのメニューが表示され、ここでUbuntuを選択。そしてUbuntuが起動する。

やれやれ、めでたしめでたし。・・・・とは行かないのだった。


S205は有線と無線LANに対応している。有線は問題ないが、無線LANが動かない。うちのアクセスポイントがステルスESSIDのせいなのかもしれないが・・・。標準のNetwork Managerは問題が多いらしく、wicdと言うものをインストールしてみる。そしてwicdのNetwork Managerを起動してみたが・・・こいつには、そもそもESSIDの入力欄が存在しない。ダメじゃん。

しかたなく、全部ベタで書く。まずは"/etc/wpa_supplicant/wpa_supplicant.conf"を新たに書き(内容は省略)、"/etc/network/interfaces"に次のように追加した。

auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

再起動すると無線LANに接続できていた。

当然というべきか、サスペンドから復帰したときにはまた切断されている。いろいろ試した結果、

sudo rfkill unblock all
sudo /etc/init.d/networking stop
sudo start networking 

とすると、再び接続できた・・・こともあった。(失敗することもあった)

もっとスマートな方法もあるだろうけど、とりあえずはここまで。他にもいろいろ手を入れたいところがあるのだよ。Ubuntuのインターフェースは、バージョンを重ねるごとに使い辛くなっていると思う(個人的に)。どーにかできるだろうから、まずそちらが優先事項。

ではでは。

xps -> pdf2010/12/05 15:37

ものすごーくいろいろ放置したままだったけど、とりあえず自分用のメモの投稿。

WindowsでXPS形式で作ったファイルをPDFにまとめるときの試行錯誤。

  • GhostPDLというものをインストールする。

ubuntuでは提供されていないので、ソースを持ってきてビルドしなくてはならない。ビルドでいろいろ必要なものがあったのだけれど、ハマったのがxextというライブラリ。これはコマンドラインからインストールする必要があった。

sudo apt-get install libxext-dev

このあとは普通に、

make xps

とする。お好みで"sudo make install"をやってもよし。

  • XPSファイルをPDFに変換
gxps -sDEVICE=pdfwrite -sOutputFile=ほげほげ.pdf -dNOPAUSE ほげほげ.xps

これで、個々のページがPDFに変換される。

  • 複数のPDFを一ファイルにまとめる
pdftk *.pdf cat output まとめ.pdf

TSファイルの分割2010/07/19 21:00

 「アナログしか見てないから関係ない、停波したら見なけりゃいいし」などと言っていたのに、地デジを使いまくるようになってしまった。理由は、例の"PT2"を(割高だったけど)手に入れたため。Linux上でも問題ない、というかむしろ使いやすいんじゃなかろうか?
電波強度の問題があってPT2で録画してからの視聴となる(ブースターは高いからなあ)ものの、PT2NASというものを導入したおかげで録画が手間になることはない。実際の視聴はTSファイルがそのまま使えるネットワークメディアプレーヤーを使用。早送りや巻き戻しに難があるけど、画質自体は無問題。

 さて。ところが、たまに視聴できないファイルがある。PT2の動作の問題で、実際の番組開始の20秒前(大抵はCM)から録画開始となっているのだが、このマージンを越えて再生することができないことがある。最後まで表示していた画面が固まったままになったり、画像は止まったままなのに音だけ聞こえたり。同じファイルをLinux上で再生しても、やはり同じ箇所で止まる。ためしに先頭部を適当に削除してみると、問題なく再生できる。
 これは番組が切り替わるときに解像度とかが変わるのに再生側が追随できていないのだろう。mencoderやffmpegでどう扱えばいいのかわからず、またTSファイルについて軽く調べたところわりと簡単にできそうなのでプログラムを組んでみることにした。

 参考にしたのは以下の資料。(リンクにするのもめんどくさい)
http://www.mpeg.co.jp/libraries/video_it/video_03.html
http://www.mpeg.co.jp/libraries/video_it/video_04.html
http://www.mpeg.co.jp/libraries/video_it/video_06.html
http://www.mpeg.co.jp/libraries/video_it/video_07.html
http://allegro.dtiblog.com/blog-entry-185.html
http://allegro.dtiblog.com/blog-entry-187.html
ただこの資料でも(PATの形式などで)どーもアバウトなところがあって、Wikipediaの方が参考になる箇所もあった。
http://en.wikipedia.org/wiki/Program_Specific_Information


 わかったのはおおまか次のようなこと。
  • TSファイル(MPEG2のトランスポートストリーム)は188バイトごとのパケットに分割される
  • パケットのヘッダ部にパケット識別子(PID)というものがある
  • PIDが0のパケットはPAT(Program Association Table) であり、ストリームに含まれている番組(プログラム)の一覧(PMTのPIDとして)をあらわす
  • PMT(Program Map Table)パケットには、その番組に含まれるデータのPID(映像とか音声とか)が入っている。
 手持ちのTSファイルをなめたところ、PATもPMDも(内容が変わらなくとも)何度も繰り返し現れる。放送を前提(つまりはエラーを前提)としての冗長化だから当然であるが。また、途中から再生できないファイルでは、PATやPMDの内容が途中で変わっていた。
 つまり、PATやPMDが変更するタイミングでファイルを分割してやれば、個々のファイルの再生には問題なくなるはず・・・。
 と、ここまで書いて疲れたので、続きはまた今度。

CDからripping・・・(未完)2009/06/21 12:38

CDから音楽をoggに落とそうとするのだが、gripやらjackやらが帯に短しなので、多少自力で対応してみる。

やることとしては、
・WAVファイルに落とす
・oggに変換
・FreeDBからディスクのトラック情報を得てoggに書き込む
となる。
 gripとかの不満点は、oggに書くときにこちらが想定しているのと異なるタグで書きに行っている点。

 WAVに落とすのはcdparanoia、ogg変換はoggencでいいとして、問題はFreeDBのあたり。cddbcmdと言うコマンドがコマンドラインで使えるらしいので試す。CDのディスク情報はcd-disikidと言うものを使用した。
 しかし。なんだこのあっさりしたmanは。何をどうすればいいのかわからない・・・。Googleに聞いてみてもあまり情報はヒットしない。
 とりあえず、helpを試す。
>cddbcmd -d help
 これを行うと、デフォルトサーバーのfreedb.orgに接続し、有効なコマンド一覧が得られた。この中で関係ありそうなのはCDDBというものらしいので、さらに、
>cddbcmd -d help cddb
とする。
 するとサブコマンドの一覧が出てくる。同様に調べて、
>cddbcmd -d help cddb query
<- QUERY <discid> <ntrks> <off_1> <off_2> <...> <off_n> <nsecs>
このパラメータは、cd-discidの出力と一緒。ディスク情報から該当するCD情報の一覧が得られるようだ。
>cddbcmd -d help cddb read
<- READ <category> <discid>
こちらは、queryで得られた情報から、categoryを指定して、各トラック情報を得るものらしい。とりあえずこれだけあれば何とかなるか。

 ほぼデフォルトで試す。
>cddbcmd -d cddb query `cd-discid /dev/cdrom`
 結果はコンソール上に出力される。冒頭に"->"とあるのはこちらからの送信、"<-"とあるのはサーバーから受信した内容。ともに標準エラー出力されている。サーバーからの情報は"<-"抜きのものも来ていて、これは標準出力となる。
 さて結果は、
<- 211 Found inexact matches, list follows (until terminating `.')
となり、そのあとにダラダラと、ディスクIDが近い?CDの情報が垂れ流される・・・。しかも日本語っぽいところが"?"になっている。charsetの壁かよ。
 すったもんだしたあげく、charsetの問題はコマンドオプションで"-l 6"とすればUTF8で読めるようになった。6というのはプロトコルのレベルらしい。このプロトコルに関する資料も見つからないのよね・・・
 これでトラック情報は取れるのだけど、見つからなかった場合に関係ないCDの情報が流れるのはうっとうしいな。しかも標準出力には"211..."は流れないし。"cddb query"で得られる情報は、スペース区切りで最初がカテゴリ(rockとかmiscとか)、次がディスクIDなので、ディスクIDが一致しないものを切ればいいのか・・・。

 と、ここまで書いて、力尽きてしまった。まだまだ使える情報にはならないな~

kvm2009/02/26 13:47

 いろいろあって(回り道しすぎだって・・・)kvmを使うことに。目論見としてはいくつかあるのだけど、まずはWindows(今時Windows2000だぜ)をインストール。
 ちなみに現在動かしているハードディスクを、
dd if=/dev/sda of=hda.img
などと(MBRごと)吸い上げてみたが、Windowsは動かない。biosやらドライバの関連かな〜。修復インストールをすればいいのかも知れんけど、すでにやり方を忘れてるし。他のパーティションのLinuxは普通に動いてしまうのになあ。

 まずはディスクイメージファイル作成。
kvm-img create 2000.img 20G
これで20Gのファイルができる。
 つぎにインストール。
CDドライブにインストールディスクを入れ、
sudo kvm -no-acpi -m 512 -hda 2000.img -cdrom /dev/cdrom -boot d
"-no-acpi"はインストール時のおまじない。"-m 512"はメモリ量なので、実際のメモリ量より少なめで、適当な値に。
 インストールが完了してしまえば、
kvm -m 512 -hda 2000.img
で起動できる。ネットワークも普通に使えてる。

いくつか問題もあって、
・コントロールキーが効かない?
ホスト側でCapsとコントロールキーをスワップさせているのが関係ありそう。
・ホストとのファイル共有
ここらへんはドキュメントを読んで解決していこう。
・グラフィック性能は・・・?
普通に使う分にはまったく問題ないパフォーマンスなんだが。(仮想)ビデオデバイスがシーラスロジック互換ということは、3Dは期待・・・する方が無理か。
まあ、ゆっくり解決しよう。

追記:ホストマシン(Samba稼働中)で、ファイルブラウザからfolderをshareするとやったら、あっけなくkvm側のWindowsから見えた。むう、簡単すぎる・・・

追記その2:パフォーマンスが低くても某3Dゲームが動いたらと思っていたのだが。なんせ最近はチャットしかしていないからその程度の性能で十分なので、Linuxいじりながらできないかと企んでいたのだが、やはり無理だった。ゲーム起動時に3D性能をチェックして弾いていやがった・・・。この野望はこれでおしまい。ということは、このWindowsイメージも用済みなんだよなあ。(vmwareならDirectXをサポートしてるみたいだけど、そこまでする気もないし)