忍者ブログ
PCメモ
PC関係のメモ、気付いたこと。 simhとChromium OSをいじって遊んでいます。 Chromium OSのカスタムビルドを配布しています。(http://chromiumosde.gozaru.jp) twitter: @zui22904336 PGP fingerprint: 45FC 0E47 A68A FA06 02FE 2BEF B72C C6E6 F9FF 1C19
Admin / Write
2024/04/23 (Tue) 19:07
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2015/09/26 (Sat) 13:53
Chromium OS カスタムビルドのアップデートを行いました。

[修正内容]
 
  R45-7262.57

  本家Chrome OSのStable Channel Updateを反映しました。

最新版のインストールイメージは以下のページの「ダウンロード」からダウンロードしてください。

http://chromiumosde.gozaru.jp

既にインストールした方はネットワークアップデートが可能です。方法については上記サイトのChromium OSのアップデートの説明を参照してください。
既にFlash プラグインをインストールしている場合、ネットワークアップデート後は消えてしまいますので再度インストールをお願いします。

問題や動作報告などはこちらのページのコメントにお願いいたします。

拍手[0回]

PR


2015/09/12 (Sat) 20:59
先日リリースしたカスタムビルドに問題が見つかりましたので修正したバージョンをアップしました。

[修正内容]
 
  R45_7262.52.2015_09_12_1831

  Flash プラグインのインストール時にディスクオーバーフローが発生する問題を修正しました。

最新版のインストールイメージは以下のページの「ダウンロード」からダウンロードしてください。

http://chromiumosde.gozaru.jp

既にインストールした方はネットワークアップデートが可能です。方法については上記サイトのChromium OSのアップデートの説明を参照してください。
既にFlash プラグインをインストールしている場合、ネットワークアップデート後は消えてしまいますので再度インストールをお願いします。

問題や動作報告などはこちらのページのコメントにお願いいたします。

拍手[0回]



2015/09/07 (Mon) 02:13
以前ThinkPad T42用のChromium OSビルドがほしいというコメントを頂いたこともあり、こちらでビルドしたChromium OSのイメージを以下のページで公開してみました。

http://chromiumosde.gozaru.jp

こちらのページにも書いていますが、Pentium Mでも動くようにビルドしています。手持ちの以下のマシンでとりあえず動いています。

・ ThinkPad T42
・ EeePC 900
・ Let's Note CF-W2

ただ、この当時のマシンはCPUよりも周辺機器へ対応させるのが大変で、これ以外の機種では動かないかもしれません。あまり期待せずに動いたら儲けもの、程度で使っていただければと思います。

他にも、ネットワークアップデートやFlashのインストール、Google ドライブ連携など、そこそこ機能を追加しています。興味があれば使ってみてください。

今後のアップデートはこのブログでも告知していきます。

上に書いたホームページにはコメント欄などはないので、何かあればこちらのコメントにいただければと思います。

拍手[2回]



2015/07/24 (Fri) 02:30
長いことブログをサボってましたが、その間もちょくちょくChromium OSはいじってまして、ちょっと気になることがあったので久しぶりに記事に書きます。

Chromeが7/21のStable Channel Updateで R44になりましたが、このバージョンからffmpegsumoがインストールパッケージの中から消えてしまいました。
ffmpegsumoはChrome/Chromiumで音声/映像を再生するためのコーデックを集めたプラグインで、LinuxやChromium OSではlibffmpegsumo.soというファイル名です。
これがどこに行ったかというと、なんとスタティックリンクされてchrome本体にffmpegが吸収されてしまったようです。

この修正のコミット内容はこちらで見ることができます。

https://chromium.googlesource.com/chromium/src/+/ab31fe6077d2ba3ede9a302d9ef4554363c9a939

これがなくなると、mp3, mp4, aacなど、デコーダの配布にライセンスが必要とされているフォーマットの音声・映像データをChromium OSで再生することができなくなってしまいます。

Chromium OSのようなフリーのOSでは、デコーダの配布にライセンス料がかかるようなコーデックを含めることはできませんので、Chromium OSに付いているlibffmpegsumo.soは有料コーデックを除いた状態になっています。そして、これを各ユーザが独自にChrome添付のlibffmpegsumo.soに置き換えることでmp3などを使えるようにしていました。

ところが、今回からプラグインの供給元だったChromeのパッケージからこれが消えてしまったわけですから、もはや今までの方法は使えなくなってしまいました。

この辺はライセンス的に本当にクリーンなのかよくわかりませんが、LinuxのChromiumブラウザ(Chromeではない)でも似たようなことをし ていて、例えばubuntuでも標準のChromiumブラウザのパッケージには有料コーデックなしのlibffmpegsumoが入っており、mp3な どのコーデックを含んだlibffmpegsumoを組み込むためのパッケージとして、chromium-codecs-ffmpeg-extraというものが別に用意されています(これの配布 ライセンスがどうなっているかはよくわかりませんが)。

ということでこの問題はLinuxのChromiumブラウザにも影響があるわけで、以下のURLでLinux視点での議論の内容を見ることができます。

https://groups.google.com/a/chromium.org/forum/#!msg/chromium-packagers/R5rcZXWxBEQ/B6k0zzmJbvcJ

これを見ると、Chromiumのビルド設定を変えてプラグインではなくffmpegの普通の共有ライブラリ(libffmpeg.so)を使うように修正し、今までのlibffmpegsumo.soの代わりにlibffmpeg.soを取り替える、という方法で対処する、という方針のようです。これであれば、最悪個人でffmpegをビルドすれば対応できるので、どうにもならずに詰む、という状況は避けられます。
まだR44のchromium-codecs-ffmpeg-extraは出ていないようなので具体的な形は見えませんが、もうしばらくすればLinuxでは何らかの方法で対応が進むんじゃないでしょうか。配布ライセンスの問題をどうクリアするのかはわかりませんが。

一方、Chromium OSですが、R44のSDKではそのままビルドすると依然としてlibffmpegsumo.soを使う形でビルドされます。もう代わりのlibffmpegsumo.soは存在しませんからこの形でビルドして配布されているChromium OSを使うと、今後mp3/4/aacはどうやっても再生できないという事になります。
R45以降は自分では試していませんが他の人がビルドしたものを見るとスタティックリンクに変わっているようですので、これもやはりどうしようもありません。
なので、Chromium OSのビルダーさんたちがこの辺の問題を認識してビルド方法をLinuxと同じように変えてくれるまでは一般のユーザさんはどうにも対応できないことになります。

あと、仮にビルド方法を変えてもらったとしても、今度はChroium OS用のlibffmpeg.soをどこから調達するのか、という問題が発生します。他のLinux用にビルドされたものを持ってきてもそのまま動くとは限りません。Chrome/Chromiumのプラグインだったffmpegsumoと違ってlibffmpeg.soはただの共有ライブラリですから、それが更に他のライブラリをリンクしていればそれらも持ってこなければいけないでしょうし、ライブラリのバージョンの問題もありそうです。
なので、確実に動かすためにはChromium OS用にlibffmpeg.soをビルドしなければなりませんが、ライセンスの問題で個人がビルドしたものは配布できないわけです。さぁ困りましたw

おそらく解としては各ユーザがChromebrewやCroutonを導入して実機上でffmpegをビルドする、という形に落ち着くような気がします。ファイル1個コピーすれば済んでいたものがこうなってしまうというのはエラいことになっちゃったなぁ、という感じです。

個人としてChromium OSをスクラッチからビルドするのであれば、配布するわけではないのでmp3/4/aacを有効にしてビルドすることでこのへんの問題を回避することは一応可能ですが、それははもっとハードルが高くなるので問題の一般的な解決策にはならないですよね。。

’15.09.26 追記

UbuntuでChromiumブラウザ R45の配布が始まりましたが、このR45からchromium-codecs-ffmpeg-extraパッケージに含まれるファイルがlibffmpegsumo.soからlibffmpeg.soに切り替わりました。
こちらのファイルリストには依然としてlibffmpegsumo.soがありますが、これは間違いで、パッケージを展開すればlibffmpeg.soが入っているのが確認できます。上に載せたURLでの議論が反映されたようです。

今度リリースしたChromium OS カスタムビルドのアップデート版(R45-7262.57)では、このUbuntu 14.04 32bit版のchromium-codecs-ffmpeg-extraパッケージに含まれるlibffmpeg.soを導入することでmp3, mp4, aacの再生ができることを確認しています。導入手順をこちらのページで公開しています。



[関連記事]

Dev serverによるChromium OSのアップデート
Chromium OSにパッケージを追加する
最近のChromium OS R35がVAIO Type Pで動かない件への対策
安定版ソースを使ってChromium OSをビルドする
勝手ビルド版Chromium OSとGoogleドライブの連携
Chromium OSをKVMで動かす
勝手ビルド版Chromium OSをVirtualBoxで動くようにする
Chromium OSのカーネルをVAIO Type P向けに再構築する
Chromium OSのビルド環境を作る
Hexxeh版Chromium OSをVAIO Type Pにインストールしようとして挫折した話
VAIO Type PでChromium OSをUSBメモリからブートするときのメモ




ランキングに参加してみました。クリックしていただければ嬉しいです。

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

パソコン ブログランキングへ

拍手[1回]



2014/05/11 (Sun) 12:10
Windows XPのサポート停止で古いXPマシンをどうしようか悩んでいる方も多いと思いますが、そのなかでも厄介なのはPentium MやCeleron Mマシンです。ネット閲覧程度ならまだ十分使えるのに選択肢が結構狭まってしまっています。

XPからの引っ越し先でLinuxを思い浮かべる方も多いと思いますが、最近のメジャーなLinuxディストリビューションではPentium MやCeleron Mマシンでブートすると以下のようなエラーがでて動かないことが多かったと思います。


(簡単に再現するためVirtualBoxを使っていますが、実機でも同じエラーになるはずです。)

そのため、Puppy LinuxやZolin OSといったいわゆる軽量Linuxを使うのが普通だったのかなと思います。

しかし、最新のlubuntu 14.04(これも軽量Linuxに分類されると思いますがw)ではこの問題への回避策がとられ、Pentium Mマシンでもブートできるようになりました。たぶんCeleron MもOKだと思いますが実機がないので試していません。

Ubuntuも同じかもしれませんが、非力なPentium Mマシンに入れる気はしないので試していません。

lubuntu14.04 をPentium Mマシンでブートする


とりあえず技術的な話は置いておいて、まずはCDからのブート方法だけを書いておきます。
今回は手持ちのPentium MマシンであるThinkPad T42でためしています。

lubuntuのダウンロード方法やCD-ROMへの焼き方などはここでは触れません。CDからブートした後のメニューでの操作方法についてのみ書きます。

  1. CDからブートします。
  2. 言語選択メニューが表示されるので日本語を選びます
  3. メニュー画面が出ます。
  4. F6を押すと以下の画面になります。
  5. ESCをおして選択肢を消します。画面下に起動オプションという欄があります。
  6. forcepaeと打ち込みます
  7. RETURNキーを押すとブートが始まります。forcepaeの指定が効いた場合は以下のような表示が出ます。WARNINGと出ていますが、これはforcepae自体がちょっと無理やりな機能だという意味で出ています。基本的に気にしなくて大丈夫ですが、Pentium Mなら100%ブートできるというわけではなく、もしかしたら動かないかもしれません、ということです。この点については後述します。
  8. しばらくするとおなじみのスプラッシュ画面がでますが、うちのThinkPadでは色がおかしくなってますww
  9. 無事起動しました。
この後はあとは左上のアイコンから普通にインストールできます。

HDDへのインストール手順はメニューに従うだけですしPentium Mマシンだからといって変わることはありませんので割愛します。

CDからのブート時にforcepaeを指定して起動した場合、HDDにインストールするとgrub.cfgにforcepaeの指定がちゃんと反映されるようになっていますので、以降は何もしなくても普通にブートします。

なお、この方法がつかえるのはPentium Mのみです。Celeron Mも可能だと思うのですが試してはいません。

結局forcepaeって何?


結局このforcepaeは何をやっているのか、というと、物理アドレス拡張(PAE)というCPUの機能が今起動しようとしているCPUにあるかどうかのチェックをバイパスし、PAEが使えるCPUとみなして強引に起動をかけてしまおうというものです。

Linuxカーネルは、起動時にCPUがどんな機能をサポートしているかを確認します。このときPentium MはPAEをサポートしている、という情報を返してきません。そのため、PAEを必要とする方法でビルドされた最近のLinuxカーネルは、Pentium MはPAEが使えないのでだめだ、というエラーを返してきます。

しかし、実はPentium Mは問い合わせにしかとするだけで、実際にはPAEが使えるようなのです。いわば隠し機能というやつです。意図的に隠し機能にしたのか単なるバグでCPU FlagからPAEが抜け落ちているのかはわかりません。

なので、今回の修正ではPentium M(またはCeleron M)の場合だけforcepaeが指定されたならPAEのチェックをバイパスし、PAEが使えるものとみなしてしまう、という機能を追加してPentium Mでも動けるようにしたわけです。

今回の修正ではCPUの種類をチェックしているので、Pentium M/Celeron M以外で本当にPAE機能がないCPUや、VirutalBoxなどの仮想環境でPAEをオフにした場合などはたとえforcepaeを指定しても以前と同様のエラーになります。これらについては上に書いたPuppy LinuxやZolin OSなどのnon PAEカーネルを使っているディストリビューションでないと動きません。

今回のPentium M向け修正でのカーネルパッチの内容は以下の場所で見ることができます。

[PATCH] x86: set Pentium M as PAE capable

このパッチを見れば、forcepaeが有効になるCPUのタイプもわかります。引用するとこんな感じです。

+	} else if (err == 0x01 &&
+		   !(err_flags[0] & ~(1 << X86_FEATURE_PAE)) &&
+		   is_intel() && cpu.level == 6 &&
+		   (cpu.model == 9 || cpu.model == 13)) {

いわゆるFamily6、model9または13のCPUでだけforcepaeが効くようになっています。これはPentium MとCeleron Mに相当しますがPentium MやCeleron Mという名前の付いたCPUがすべてこれに当てはまるかは把握していません。逆に、Family6 model9/13なCPUならみんなPAEを隠し持っているかというとそれも100%断言できるかは定かではありません。上でWARNINGを出していたのはその辺をふまえて「ちょっと無理やりなんだぜ?」と言っているんだと思います。

なお、PAEフラグが立っていない時、という条件がand条件で付いているので、PAEフラグをちゃんと返してくる一部のPentium Mにはこの修正の影響が出ないようになっています。

当初カーネルパラメータはforcepaeと言っていたようですが、もっと新しい記事ではカーネルパラメータの名前がpaeに変わっています。
lubuntuには、forcepaeと言っていた当時のパッチが取り込まれたようですね。

Chromium OSへの応用


このブログでは主にChromium OSを扱っていますが、このカーネルパッチをChromium OSのカーネルソースに適用してあげると(それだけではだめで別途SSE3対策が必要)一応うちのThinkPad T42でもブートまでは持っていくことができています。



ただ、CPU周りよりも周辺機器を動かすのが大変です。

まだ無線LANが動きません。有線でつなげば一応つかうことはできます。
トラックポイントは認識しますがタッチパッドは認識しません。
他にも起動時のスプラッシュ画面が出なかったり、起動直後は画面がピンク色でいったんターミナルに切り替えて戻すとちゃんと表示されたりします。他にもいろいろ問題がありそうです。

こんな感じでこちらのThinkPad T42は苦戦していますが、今のところ、CPU周りの問題だけはクリアになっていて、ブートだけなら問題なくできます。

ほかのPentium Mマシン向けにビルドする際でもCPU周りのカスタマイズ方法は参考になるかもしれませんので、この辺の話はまた別途書きたいと思います。

15.09.08 追記: ThinkPad T42で動作するChromium OSのカスタムビルドを公開しました。興味がありましたらお試しいただければと思います。

17.04.24 追記: 「本当にPAE機能がないPentiumⅢ以前のCPU」という記載がありましたが誤りであるというご指摘をいただきましたので訂正いたしました。






ランキングに参加してみました。クリックしていただければ嬉しいです。

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

パソコン ブログランキングへ

拍手[13回]



    5  6  7  8  9  10  11  12  13  14  15 
プロフィール
HN:
zui
性別:
非公開
PR
忍者カウンター
忍者ブログ [PR]