ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2009年11月22日日曜日

GoogleのChromeOS、ビルド挫折の記録

まだ上手くいってないものの、ビルドに必要な情報を日本語でメモした内容。 Ubuntuは入れてないので、Debian lennyで挑戦中。
OSの構築
http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/build-instructions

……の適当な和訳になります。
勝手に番号をつけてしまっていますが、大体以下のような手順。
青字で、個人的なメモが付け加えられてます。
前のページ同様、情報は更新され、ビルドの方法も変化していく可能性があります。

私の現状:ログイン後マウス、キーボードの反応がない
または、マウスカーソルが動いてもクリックに何の反応もなかったり



1 前準備
1.1 シンボリックリンクの作成
1.2 構築環境の準備(レポジトリ?)
1.3 chrootで入る構築環境を作る

2 構築
2.1a chromiumを作る(おまけ)
2.1b chromiumをダウンロードする
2.1a,bはどちらか一方のみ必要。aで自分でビルドするか、bでバイナリをダウンロードする。
2.2開発のための準備 (ログイン用アカウントということで、作成を推奨したい)
テストのためのセキュリティの低いアカウント
(共同で使えるアカウント、パスワードの作成)
一人で独自の開発をしない人は必要なし?
2.3 パッケージのビルド
2.4 イメージ作成
2.5 USB メモリにインストール
ブート可能なイメージであり、HDDにインストールしたい場合もこの中から行う。
2.6 ハードディスクにインストール
USBでブートした状態からインストールする様子です。HDDがまっさらになる可能性あり。
2.7 VMware用イメージの作成
2.8 chroot環境を消す方法

+おまけ:HDD上のイメージにchrootした状態からHDDへのインストールに挑戦して挫折


2.2までの準備がうまくいけば、あとの実質的なビルドは自動で進行するはず
2.5でUSBに入れるまでが必要な手順で、以降はおまけみたいなもの。
現状、開発者はHDDに入れることはあまり考えていない様子?

1.1このシンボリックリンクがあるという前提で進んでいくので、とても重要な準備です。
$ln -s /usr/local/chromiumos/chromiumos.git ~/chromiumos
$ln -s /usr/local/chromium/trunk ~/chromium


これは/home/username以下にchromeOS,chromiumのシンボリックリンクを作るための命令です。

/usr/local/chromiumos/chromiumos.gitは、gitで入れた場所であり、他の場所にファイルがあるならそこからということになるでしょう。


なくてもいいですが、これで2種類のsrcディレクトリに直接アクセスできるようになるため、大変便利です。
……とあるものの、ここを間違えたり省略したりすると上手くいきませんでした。
~/chromeos, ~/chromiumの真下にそれぞれのsrc/ディレクトリが見えるよう、ちゃんと確認しましょう。

1.2
必要なスクリプトはすべて~/chromiumos/src/scriptsに入っています
以下の操作は、このディレクトリに入っていることを前提に進めます。
$cd ~/chromiumos/src/scripts
~/chromiumos/repo:にレポジトリを作ります。(必要なファイルのリストアップなど?)
$./make_local_repo.sh

#ここで一度詰まりましたが、上のシンボリックリンクの張り方が間違えていた点、一度失敗したら
$sudo rm -rf ~/chromiumos/repo
で一度repoディレクトリを削除しないといけない点などが問題でした。
debootstrapで30分ほどかけて、必要なファイルを集めます。repo以下に850MBほど使用。
repreproが必要?とかで詰まった。
続chromiumはDebianではビルドできない? - kinneko@転職先募集中の日記http://hatenatunnel.appspot.com/kinneko/20091120/p8
私のほうでは、リンクをちゃんとユーザーのホームディレクトリ直下に張りなおして、一度repo/ディレクトリを削除したらうまくいった・・・と思う。
必要なパッケージはこれの前に作ったページどおり。1,2パッケージ以外はちゃんと入ったし、上のldの問題も出なかった。特に特殊なものはインストールしてない状態です。
けど、最終的に作成されたイメージ+私の環境ではマウスが動かせてないんですけどね・・・

これでうまくいかなければ、debootstrapでkarmic環境を作ります。
karmic.listというファイルに以下3行の内容を書き込む
deb http://build.chromium.org/buildbot/packages chromeos_dev main restricted
deb-src http://build.chromium.org/buildbot/packages chromeos_dev main restricted
EOF

この内容をapt-getに登録
$sudo mv karmic.list /etc/apt/sources.list.d/karmic.list
$sudo apt-get update
$sudo apt-get install -y --force-yes debootstrap
$rm /etc/apt/sources.list.d/karmic.list
$sudo apt-get update
新しいdebootstrapを入手し、その後、下の2行でaptのリストを元通りに戻している様子です。

で、もう一度
$./make_local_repo.sh
を実行すれば大丈夫なはず。
それでも駄目なら、
$sudo ln -s /usr/share/debootstrap/scripts/gutsy /usr/share/debootstrap/scripts/karmic
と入力してから./make_local_repo.sh

1.3 スクリプトを利用し、chroot環境を作成する。chromiumos/以下にchroot/ というディレクトリが作成されます。
$./make_chroot.sh

必要なパッケージをダウンロードする場合、etc/apt/sources.listを参照しています。
もし新しい方法に挑戦する場合など(他のプロセッサを利用してビルドする)、ひょっとしたらもっと新しいパッケージが必要になるかもしれません。
そのときは、以下のようにしてapt-getが参照するミラーサイトを指定してください。

$./make_chroot.sh --mirror=http://build.chromium.org/buildbot/packages --suite=chromeos_dev

ここの手順でも、失敗したらそのたびにchroot/ごと削除しないといけません。
正常にchroot環境が構築できた後、 chroot環境を安全に削除するに、
$./make_chroot.sh --delete
というコマンドがあることが判明します。
これは、今後chroot環境で作業を行った際、システム、デバイス関連のディレクトリをマウントしてあった場合など、それらのファイルまで強制的に削除しようとしてしまうことを防ぐ目的がある様子です。
chroot環境の構築に失敗した場合も、こちらを利用してもいいかもしれません。

2.1a chromiumのビルド
$./build_chrome.sh --chrome_dir ~/chromium
--chrome_dirにはchromiumのソースがあるディレクトリを指定。
上の例(オフィシャルな説明)では、/usr/local以下にあるものをシンボリックリンクでユーザーのホームディレクトリ(/home/user/)の真下にリンクさせているため、このようになります。
必要なファイルが足りないとかでビルド中にエラー
2.1bでバイナリを入手することに

あとで必要になるかも知れない情報……
ソースの入手、内容の確認方法
Get the Code (The Chromium Projects)
http://dev.chromium.org/developers/how-tos/get-the-code

chromium単体でのビルド方法のページ
LinuxBuildInstructions - chromium - Build instructions for Linux - Project Hosting on Google Code
http://code.google.com/p/chromium/wiki/LinuxBuildInstructions


2.1b chromiumのバイナリデータの入手
Download the binaryからzipファイルを入手し、それを~/chromeos/src/build/x86/local_assets以下に置く。バイナリデータのファイル名はchrome-chromeos.zip
私の場合、ダウンロードしたファイルはDesktopにあるので、
$mkdir -p ~/chromeos/src/build/x86/local_assets
$cp /home/username/Desktop/chromium-chromiumos-r32516.zip /chromeos/src/build/x86/local_assets/chrome-chromeos.zip
のようにする。


ここから、 chromeOSのビルド環境へ
$./enter_chroot.sh
(/home/username/chromeos/src/scripts/#にて、./enter_chroot.sh)
chroot環境に入れば、(chroot)$src/scriptみたいに表示されているはず

2.2 開発のための準備 (ログイン用アカウント作成)
インストールそのものには不要な(はずな)ので、とばしました
…が、どうやらここでアカウントを作成しといたほうがいいらしい。
そうしないと、ネットワークにつないだ状態でgoogleのアカウント、パスワードを入れないといけない。
$cd ../platform/pam_google && ./enable_localaccount.sh USERNAME
$cd ../../scripts && ./set_shared_user_password.sh

Enabling local account. Remove chromeos_pam_localaccount.h to disable.
というメッセージが出ますが、一度設定したローカルアカウントを取り消すために消すファイルはpam_localaccount.hのようです。
このファイルは、src/platform/pam_google/に置いてある状態でビルドする必要があるのでしょうか。一度このディレクトリに移動し、このディレクトリでファイルを作成したあと、もう一度src/scriptのディレクトリに戻ります。

2.3 Chrome OSパッケージのビルド
$./build_platform_packages.sh
$./build_kernel.sh


一度に進めるなら、
$./build_platform_packages.sh && ./build_kernel.sh
でいいんですが、エラーが出ると、2つのコマンドのうちどこで詰まったのか分からない。
エラーを見るためには、
./build_platform_packages.sh >logp1.txt 2>logp2.txt &&
./build_kernel.sh >logk1.txt 2>logk2.txt &
で、*1.txtにビルドの手順が、*2.txtにエラーメッセージが出力される。
CUIで作成するときには20行くらいしか保持されないので、有用。
上の方法で作成すると、ビルドの進行状況が確認できなくなるが、tail -f logp1.txtと入力すればlogp1.txtに書き込まれていく内容を随時追っていける。
tail -fを終わりにするときはctrl+c



パッケージのビルドはうまく行かなかったことがありました。
http://codf196.jail.google.com/archive/chrome-official/4.0.250.2/chrome-linux.zip
が必要だけどホスト名の間違いかサービス不在かでダウンロードできないとかで止まっていたのですが、足りていなかったファイルというのはchromium(ブラウザ)の実行形式ファイルで、このアーカイブのファイル名か置き場所が間違っていた様子です。ファイル名を変更するか、上に記した置き場所にちゃんと置いてあるかどうかを確認してみてください。

カーネルのビルドは問題なくうまくいきました。
ただし、この時点でchromeosディレクトリの容量が4Gほどになっていて、ディスク容量が一度たりなくなってしまいました。

エラーで中断されてやりなおしの場合、途中からではなく最初から全部やり直している?無駄に時間がかかってます。


2.4 USBメモリ用イメージ作成
$./build_image.sh
デフォルトでは、イメージは ~/chromiumos/src/build/imagesに作成されているはず

USBメモリ用イメージとして作成される場合、どの程度の容量が必要とされるか気になっていたところですが、
(chroot)user@pc1:~/trunk/src/scripts$ ls -hl ../build/images/999.999.32809.114410-a1/
total 710M
-rw-r--r-- 1 user eng 512 Nov 24 12:02 mbr.image
-rw-r--r-- 1 root root 40K Nov 24 12:01 package_list_installed.txt
-rw-r--r-- 1 root root 40K Nov 24 12:02 package_list_pruned.txt
drwxr-xr-x 2 user eng 4.0K Nov 24 11:44 rootfs
-rw-r--r-- 1 user eng 950M Nov 24 11:44 rootfs.image

ということで、950MB必要ということで、1GB以上のUSBメモリが必要になるようです。
……と思ったら、なぜかこのrootfs.imageの2倍+mbr.image分を確保するよう、インストールのスクリプトが書かれています。
それであっても2GBで足りそうですが、なぜか上手くいきませんでした。ちょっとだけ足りていない様子。
書き込みに必要とする容量は1992294912(byte)で、2GBのUSBメモリは2032140288(byte) availableとあったのに、足りてないと表示され、インストールが中断されます。
4GB以上のUSBメモリで動作する様子。他の人のページに書いてあったことによると、16GBのUSBメモリとかでも大丈夫らしいので、4GB以上の容量ならどれも問題ないのでしょう。

civic site » Chrome OSのビルドとインストールについて

http://civic.xrea.jp/2009/11/20/chrome-os/


2.5 USBメモリへのインストール
ブート可能なUSBメモリを作成します。3GB以上の容量が必要になり、…実際には3GBのUSBメモリは見かけないので、4GB以上のものということになるでしょう。
そこからHDDへのインストールも可能です。(場合によっては、このイメージの中に入ってしまえば、そこから直接HDDにイメージを作成できるのかもしれませんが……)
~/chromiumos/src/build/images/SUBDIR #SUBDIRはbuild_image.shによって作成され、ここに新しいイメージが入っています。

$cd ~/chromiumos/src/build/images/SUBDIR
$sudo mount -o loop rootfs.image rootfs
$sudo chroot rootfs

これでイメージに入っているはず
どの程度の容量を使っているかを確認してみるには、

$df
$dpkg -l


イメージの中から出るには

$exit
$sudo umount rootfs

このようにして、exitでchroot環境から脱出できる。

例:
$cd ../build/images/999.999.32809.114410-a1/
$sudo mount -o loop rootfs.image rootfs
$sudo chroot rootfs


もしくは、
$sudo mount -o loop .
./build/images/999.999.32809.114410-a1/rootfs.image ../build/images/999.999.32809.114410-a1/rootfs
$sudo chroot rootfs

dpkg -l は大量に出てくるのでいまいち意義がわかりませんが、dfのほうは、

(chroot)user@pc1:~/trunk/src/build/images/999.999.32809.114410-a1$ sudo chroot rootfs
root@pc1:/# df
df: cannot read table of mounted file systems: No such file or directory
root@pc1:/# exit
exit
(chroot)user@pc1:~/trunk/src/build/images/999.999.32809.114410-a1$ df -h
Filesystem Size Used Available Use% Mounted on
sysfs 9.2G 5.3G 3.5G 60% /sys
/dev/loop1 936M 589M 299M 67% /home/user/trunk/src/build/images/999.999.32809.114410-a1/rootfs

と、なりました。

USBへのコピーはchroot環境から出てから。
(USBメモリが見えていないなら、きっとあなたはchroot環境の中にいるのでしょう。)
$./image_to_usb.sh --from=~/chromiumos/src/build/images/SUBDIR --to=/dev/USBKEYDEV

--toはUSBメモリのあるディレクトリ。
数字なしのsda,sdbで指定しないといけない?
基本的にfromは最も新しいイメージを、toは/dev/sdbを指定してそこにインストールするようになっている。だから、それでいいなら、この2つのオプションは省略できます。

linuxのカーネルが2.6.27あたりから?/dev/hdaなどではなくhddもUSBメモリもsdaであらわされるようになりました。これ、scsiの表示なのかな?シリアルATAならsで始まっててもおかしくないんだけど。
それ以前のカーネルだと、usbメモリはsdaだったりすることもあると思います。
使用するChromiunOSのイメージのほうも、古いイメージを使うときにはそちらを指定する必要があるんですが、そうでない場合、イメージの場所は基本的に省略していいのだと思います。

USBのメモリには、1Gほどの空き容量、1Gほどのスワップ領域を確保した上で1Gのイメージを書き込んでいる様子?3Gほど使い、1Gほど容量は余ってはいました。そこに新たなパーティションを作成し、その領域を普通のUSBメモリとして使用することも可能。


$./image_to_usb.sh --to=/dev/USBMEMORY
あたりでしょうか。


2.6 HDDへの(インストール)
この項目には、あなたのHDDにダメージを与える可能性があります。
(詳しい意図はわかりませんが、HDDをnuke=暖める……ダメージを与える?可能性が示唆されています。)
どうやら、HDD1つにまるまるインストールしてしまう形になるようです。
USBメモリからブートしてから
、ログイン後、Ctrl+Alt+Tでターミナルを起動し、以下のコマンドを入力
$/usr/sbin/chromeos-install /dev/hddname

これでインストール開始。インストールに十分な容量(1GBほど?)があるコンピュータに入れましょう。

デフォルトのインストール先は/dev/sda。
つまり、ハードディスクをまっさらにしてそこに入れなおすことになります。
インストール先を指定する場合も、特定のパーティションを指定することは難しいかもしれません。

USBメモリから起動し、キーボードからID、パスワードを入力してログインするところまでは行けたんですが、Ctrl+Alt+Tでターミナルが起動しなかった。USBマウスも動かない。なにもできないので強制終了させました(ログインまではできたんですが)


ちなみに、ログイン時にgoogleアカウントでログインする際、メールアドレスが必要になることもあります。 (gmail以外のメールアドレスをメインのメールアドレスに設定している場合)
その際、@を入力する必要がありますが、日本語用キーボードでは@の位置が少しおかしい。
私はshift+2で出力できました。 キー配置が日本語用(109)に対応していないためか、ちょっと混乱する


それと、rootfs.imageの容量は1G以下なのですが、イメージ書き込みの前にrootfs.imageの2倍の容量を確保し、cat rootfs.image >>$FLAGS_outみたいな方法で書き込んでいる様子。
なぜ2倍必要なのかわかりませんが、この2倍の容量を確保する分を減らしてみたりすると確かに上手くいかない。
書き込みは終了したのですが、ブートできなかった。
そして、スクリプトをいじって小さな容量のディスクに入れようとするとUSBメモリがうまく使えなくなる可能性はあります。ちゃんと直りましたが。スクリプト内部をいじらなければ問題ないです。
開発作業を効率化するためのアカウント、ユーザーの作成時にローカルユーザーのアカウントを作成しておかないと、googleにログインするためのアカウントが必要で、さらにネットにつながってないといけないらしい。作成しておくべきでした。
http://d.hatena.ne.jp/r_kurain/20091121/1258768687
また、私のノートPCはUSBから起動できないっぽいので、この状態だとちょっと上手くいきません。そこもなんとかしたいです。

2.7 vmware用イメージ作成
$./image_to_vmware.sh --from=~/chromiumos/src/build/images/SUBDIR \ --to=~/chromiumos/src/build/images/SUBDIR/ide.vmdk

from,to共に省略可能。
$./image_to_vmware.sh で、/home/username/src/build/images/999.999.32809.114410-a1/以下にide.vmdkができると。

2.8 chroot環境の削除
$./make_chroot.sh --delete
でいいようです。
レポジトリとかも消えるのでしょうか?消えないなら、chromeos/自体を消すほうがいいかもしれません。
その際、sudoを使って色々作ってあるので、ルートアカウントを使って削除しないといけないものが出てきます。多分。


さらに、ちょっとだけ……
イメージファイルにログインした状態からhddの空きパーティションへのインストールにも挑戦してみました。
build/image/subdir/rootfs/をホームディレクトリにするので、そこ以下に必要なハードウェアデータを入れていけばインストールできるんじゃないかと。

$cd /home/username/src/build/images/999.999.32809.114410-a1/
$sudo mount -o loop rootfs.image rootfs
$sudo mount --bind /sys ./rootfs/sys
$sudo mount --bind /dev ./rootfs/dev
$sudo mount proc -t proc ./rootfs/proc
$sudo chroot rootfs
root@pc1:/# /usr/sbin/chromeos-install /dev/hda7 true
Note: You must be the 'chronos' user to run this script.
Usage: /usr/sbin/chromeos-install [destination_device] [skip_source_removable_check]
…というわけで、このコマンドの実行用にはchronosというアカウントが用意されています。

他のアカウントからこのコマンドが実行できないのかどうかは未検証。chronosかどうかをチェックしてるところをごまかせばいいのかもしれないけど、sudoを使うので、他のアカウントから使用する際は/etc/sudoersを修正する必要あり。
新しく作ったローカルユーザーからでは利用できないのか?……そもそも、googleのアカウントでログインした場合はこのchronosとしてログインしたことになっているのか?このへんはよくわかりません。

ちなみに、金属の
クロムは、クロノスとはあまり関係なさそうに見えます。

しかしchronosで作業するにしても、イメージファイル内から su chronosした後sudo 使用時にパスワードを聞かれるのですが、そのパスワードがわかりませんでした。
chpasswdを受け付けてくれず、しかしこのスクリプトはchronosでなくては動かない様子なので、このアカウントを一度削除し、もう一度作成する際にパスワードを自力で設定しました。
そして削除時にsudoの利用可能アカウントからも除外されてしまうので、/etc/sudoersを編集。
#delluser chronos
#adduser chronos
#vi /etc/sudoers
その後、/usr/sbin/chromeos-install を編集してexit 1 をいくつかコメントアウト。危ないかもだけど。
最後のtrue は、skip_source_removable_checkへの返事なのですが、チェックの必要がない、チェックをしたくないという場合、trueと書く。$2(2つ目の引数)を読むため、これを指定するためには1つ目の引数としてインストール先も指定する必要がある。
HDD1つを使うわけにはいかなかったので、/dev/hda7を指定してみました。
/sys/block/hda/hda7/にある情報を見に行かず、/sys/block/hda7/を参照しようとしてスクリプトが停止することが何度かありました。
そのあたりのexit 1をコメントアウトして強行突破してみたのですが、結局、目的のパーティションをさらにいくつもに切り分けようとしてfdiskのエラーがでて停止。
現状、PC一台をchromeOS用PCに出来る状態じゃないとインストールは無理そう。
USBメモリから起動した状態で、マウスやらキーボードからの入力を受け付けるようになれば、今はそれでいいです。他のOSと共存できるようになるまではHDDに入れない方向でいくことになるでしょう。

……ディスクいっぱいに入れてしまうのなら、image_to_usb.shでハードディスクを指定してしまえば書き込めるかもしれません……いや、MBRとかあるから駄目ですか。


現段階での希望
・USBメモリ1GBのものに書き込めるようにしてほしい
・HDDにはCDR1枚から書き込みたい
・できればリブートなしで、イメージファイルとかから他のパーティションに書き込んでしまいたい
・HDD1つでマルチブートしたい。
・秋山瑞人のEGFが読みたい。ミナミノも読みたい。

こんなとこです。
もう、このページの更新はしないでしょう。次に書くことがあるとしたら、また新しいページになると思われます。

ChromeOSオープンソースで公開開始

Google ChromeOSをダウンロード開始 - Tom-Style
http://www.tom-style.net/mt/2009/10/google-chromeos.php

ChromiumOSって書かれてますが。
Debian Lennyからインストールを試みました。
完全に上手くいったわけではないものの、挑戦した記録。

Chrome OSに含まれるもの

・GNOME 2.24 desktop environment
・Google Chrome 4.0.223 web browser
・Google Picasa 2.7 photo manager New!
・OpenOffice.org 3.0 office suite
・GIMP 2.6 image editor
・Flash Player 10.0 plugin
・and much more!


Chrome OSの必要マシン条件

・Processor: Intel Pentium, Xeon それ以上 AMD Duron, Athlon, Sempron, Opteron それ以上
・RAM: 最低256 MB
・Hard disk: 最低1 GB
・Graphics card: supports most modern graphics cards


…ここに、
ビルドにHDD4~5GBの空き容量,インストールにはUSBメモリ4GB以上のものが必要

というのも付け加えておきます。

USBメモリに書き込むイメージはインストーラではなく、普通にchromeosとして起動するデータなのですが、ここからHDDにインストールする際は、1GBと言わずにすべてのデータが削除され、HDD1つをまるまる占有する形になりそうです。特定のパーティションにのみ入れ、他のOSとマルチブート環境にできるわけではなさそうです。
デスクトップPCで、複数台のHDDを載せているPCなら話は別なのですが。
(後日の追記)


USBメモリに一度OSイメージを書き込み、HDDへはそこからインストールするようなので、USBメモリとUSBメモリから起動可能な程度に新しいPCである必要があります。
USBメモリがどの程度容量を必要とするか書かれてませんが、現状4GBのものが必要です。イメージ自体は1GB以下なんですが、合計でおよそ3GBほどのスワップ領域、その他空っぽの領域を確保した状態でUSBメモリにインストールすることになるようです。
また、Chromium(ブラウザ)が必須とされ、そのソースのアーカイブは800MB、解凍すると2.9GB、ChromeOSのほうはアーカイブが250MB、解凍後は500MBとなります。 Chromiunのバイナリだけなら20MBほどで入手できます。
これらを使用した上で、USBメモリからブート可能なコンピュータ上に……1GBくらい必要なんでしょう。
実際、ビルドするためには、HDD容量は4~5GBほど必要でした。これはブラウザは20MBのバイナリを落としてきた場合の話で、chromiumを自力で構築する(できた)場合はもっと必要になります。
(ブラウザのほうは、一度バイナリができた段階でソースツリーを削除してしまえば容量の節約はできるでしょうが。)

Google Japan Blog: Google Chrome OS のご紹介
http://googlejapan.blogspot.com/2009/07/google-chrome-os.html
Googleの日本語のブログ現時点では情報なし
http://googlejapan.blogspot.com/
英語のページには書いてあるので、そちらを見る。
Official Google Blog
http://googleblog.blogspot.com/
↓
ChromeOSのオープンソースプロジェクトを公開
Official Google Blog: Releasing the Chromium OS open source project
http://googleblog.blogspot.com/2009/11/releasing-chromium-os-open-source.html
↓
Chromium OS オープンソースプロジェクト(The Chromium Projects)のサイト
http://www.chromium.org/chromium-os
ビルドの仕方
Getting and Building a Chromium-Based OS (The Chromium Projects)
http://www.chromium.org/chromium-os/building-chromium-os

インストール方法の説明。
情報は日々改善されていくので、新しい情報を随時確認していってください。とのこと

前準備
動くリナックス環境が必要
そこにルートでアクセスする権限がある(sudoを使っていくことになります)
ChromeOSをインストールするための数々のソフトウェア
LinuxBuildInstructionsPrerequisites - chromium - Prerequisites for building. - Project Hosting on Google Code
http://code.google.com/p/chromium/wiki/LinuxBuildInstructionsPrerequisites
Python,Perl,ライブラリなど

これらをubuntuに入れるためのスクリプトもあるが、こちらもより改善していく予定

Python >= 2.4
Perl >= 5.x
gcc/g++ >= 4.2
g++-multilib >=4.2
bison >= 2.3
flex >= 2.5.34
gperf >= 3.0.4
pkg-config >= 0.20
libnss3-dev >= 3.12
libasound2-dev
libgconf2-dev
libglib2.0-dev
libgtk2.0-dev
libnspr4-0d >= 4.7.1+1.9-0ubuntu0.8.04.5 (ubuntu0.8.04.1 causes duplicate dtoa references)
libnspr4-dev >= 4.7.1+1.9-0ubuntu0.8.04.5
msttcorefonts (Microsoft fonts)
freetype-dev
libcairo2-dev
libdbus-1-dev

Debian Lennyでは、gperfだけが少しだけ古く、freetype-devが見当たらないという感じです。他は大丈夫そう。
ライブラリは半分くらい入ってませんでしたので、apt-getでインストール
sudoの設定が必要になった場合は、/etc/sudersに
username ALL=(ALL) ALL
と書き加え、インストールに使うユーザーにsudoを使えるようにする必要あり。
また、ホスト名を解決できなかったので、
/etc/hostsに
192.168.1.1 pc1
と書き加える。

このpc1は、/etc/hostnameに書き込むことで決定される、自分のPC名と同じものを入力する。

LinuxBuildInstructionsPrerequisites - chromium - Prerequisites for building. - Project Hosting on Google Code
http://code.google.com/p/chromium/wiki/LinuxBuildInstructionsPrerequisites
OpenSUSE
Fedora
Arch Linux
Mandriva
のそれぞれで、必要なパッケージとそれを入れるためのコマンドが書いてある。

ソースの入手
http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/getting-the-chromium-os-source-code
tarアーカイブで今の最新データを今回だけ入手する方法と、gitで更新を随時適用していける方法が用意されている。googleの開発チームと一緒にじっくり開発していくつもりの人はgitで
Method oneの下のtarballをクリックすればtar.gzのファイルが、Method twoに書いてある方法でgit-coreをダウンロードして必要なコマンドを打てばgitによるソースの入手ができる。
OSの構築
http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/build-instructions

構築について詳しく、以下次のページにて。

2009年10月18日日曜日

chrome osへの期待

chrome osがちょっとだけ公開されて、すぐに公開停止になったらしい。

Chrome OSの初期ビルドをRapidshareやDropboxから誰でもダウンロードできるぞ(しかしこれはMG(記者)の早とちりでした)
http://jp.techcrunch.com/archives/20091014want-that-early-chrome-os-build-you-got-it/

記者は「OSのα版が動かせる!」と報じてしまったものの、実際はChrome osディレクトリ内の、linux上で動くブラウザ部分だけをdeb(debian linux用パッケージ)で公開している状態らしい。

OSそのものは動かなかったのでしょうか。


無料のOSということでしたが、Linuxベースなのかどうか今一情報があいまいだった気がしますが、結局のところLinuxベースということでいいんでしょうか。
Linuxベースではないとした場合、「Word,Excelなどのオフィスソフトは動かないのでは?」とも思っていました。それは実は結構致命的な使い勝手の悪さをもたらす気もしていたので、オープンオフィスなら動くという形でなんとか首がつながりそうです。


どうなんでしょう。広まるんでしょうか、これ。実際のところ難しい気もしますが……

Linuxは無料ということで、2000年前後の黎明期に取り上げられ、さらに2004年ごろにLinspire(Lindows)でもう一度期待され、結局いずれの時にもユーザー用OSとしてはメジャーにはなりませんでした。

売れなかった理由は、これらの時期に期待されたのが、「WindowsがすべてLinuxに置き換えられる」という形であり、そうまでするにはマイクロソフトと同レベルの使い勝手……ヘルプや細かなエラー対策、それとユーザーサポートが必要になります。


メーカーサポートというものも、どんな会社のものであれ「充実している」と受けとられている例は少ない気もしますが、企業のサポートというものや、サポートする気で作られた製品というものは、ずいぶんと使いやすくなっているものです。
伊集院光は、以前Victorのサポートをベタ褒めしていた気がします。珍しい例ですが。家電マニアで、知識がないわけでもないのですが結構サポートセンターみたいな電話サービスを利用することはある様子ですが、そのたびに事務的な対応に悩まされています。結局、サポートセンタの人員も客が持ってるのと同じレベルのマニュアルしか持ってないことがわかったので、頼る気にはなれないんですが……それでも最終手段のように感じてしまうんですよね。

また、そのへんを十分検討したうえで「壊れたんです。保証期間内だから交換してください」みたいな電話をしたときにも、「あー、これはまた機械オンチな客だ」としか思われず、マニュアルの中の確認手順を一通りなぞる必要が生じました。
Linuxを電話サポートで対応しようとしたら、えらいことになるでしょう。Winでどうにもできないこともたまに起こりうるんですが、一応電話、ヘルプ一覧によるサポート体制があります。
電話でなんとかしてくれるのも初歩の初歩というか、マニュアルやらヘルプやらで解決できる程度のものしか受け持ってくれないんですが。
マニュアルをなくしたとか、ヘルプによるサポート情報の検索を自力では行えない人用なんでしょう。

解決に1週間でも1ヶ月でもかけていいから、もうちょい技術専門担当の人を用意して問題解決してほしいところ。

あと、ヘルプの確認メッセージで、「この情報で問題は解決できましたか?」に対し、
「はい。問題は解決しました」
「いいえ、他の情報を探します」
というのも、なんとも教えを請うている感じで少々イライラします。
英訳なんでしょうが、
「問題は解決した」
「他の情報を探す」
くらいでいいんじゃないでしょうか。選択肢上のメッセージなんて。


要するに、Linuxは使いづらいです。一度設定してサーバーとして運用し続けるとかなら堅牢ですが、人が作業に使うPCとしては、様々な点で不便であり、新しいことを試そうとすると、ソフトのインストールや設定にかなり時間がかかることも多々あります。 少なくとも私の場合はそんな感じです。


しかし、今回の使用目的は「メール、ブラウジング(ネット視聴)」程度であり(多分)、これを乗せるPCも「軽量小型ノートPC」という形に絞ってあります。多分。

最近では他にも色々増えてはいますが、ブログ、SNS、ニコニコあたりなら上の機能で十分カバーしています。
一昔前、「メールが送れてネットが見れてゲームができるくらいでいいです」という基準で安いPCを探していた人を掲示板等で見かけました。そのあたりのユーザーならば、問題なく受け入れられそうに思います。
最近はどれくらいの人がこのくらいの目的で足りるんでしょう。オフィスでもPC使用が増えてきてるし、家でも多機能なPCを使う必要のある人が増えてるかもしれません。もともと、安いWindowsPCを購入した場合でも3D機能を使うようなゲームとなるとほとんどできないわけでしたし。(実は、一番ハイスペックなPCを要求する使用目的は、「3D機能を使ったゲーム」。)


また、こういったPCは一人暮らしを始める学生なんかにも向いています。ワンルームの一人暮らしには、場所をとらない小型ノートとかのほうがいい。 安ければなおいい。
大学一年時に「レポート作成にいずれ必要になります」とか言って一台持っとくことを推奨されるんですが、工学部での経験で書くと、3年次にようやく長いレポートを書くころになっても、図とか考えると手で書いたほうが早い部分もあったり、4年次に、遂に実際に必要になるころには、XPがSP2出てて、重すぎて使えなくなってたり、バッテリーが切れてて持ち運びに不便してる例を多数見ています。

最近では大抵タイピングで困ってる人も見かけなくなってますし、バッテリー寿命も延びてますし、OSの肥大化も今後はそれほどひどくはないかもしれませんが、「最初の一台」はこれで十分な気もします。
必要になったものは、あとで必要になったときに新しく買えばいいと思います。パソコンの性能は日進月歩ですから。

また、OSとブラウズ機能が密接につながっている場合(具体的にどういうものか今一わかんないけど)、「有害サイトのフィルタリング」にも非常に適しているのかもしれません。システム的な部分でキーを作って、パソコン会社と電話で管理するなどしておけば、多感な時期のお子様を持つ親御さんも安心して子供にネットを使わせられるかもしれません。

さらに、デフォルトの検索エンジンはおそらくGoogleであり、Googleの検索機能のほうにも制限をつけるようにすれば、サイトの制限もよりスムーズに行きます。現在でも、多少は制限がかかっている様子ではありますが、需要次第でさらに徹底するバージョンが生まれてくるかも。
こうなると、視聴制限機能の導入の際に、「使用検索エンジンをGoogleに限定すれば、さらに安全性があがります!」とか宣伝すると、ユーザー(の親)同意の上で検索エンジンの独占につながるかもしれません。
他の検索エンジン提供元から批判されるでしょうが、「だってほかの検索エンジンから何が出てくるかまで責任取れないしー」とか言われると反論は難しい。いくらでも反論できると突っ込まれてしまうかもしれませんが、このようなサービスは確実に需要があると思うのです。

私自身、ネットへの接続をなかなか親に認められなかった理由として、母がエロサイトを警戒していた部分が非常に大きい気がします。だから、ユーザーが望めばこういう機能もアリになるのではないでしょうか。全国のPTAが推奨!みたいな。
他の検索エンジンも、同様の視聴制限を課すようにしていけば問題はなく、「使用可能な検索エンジンの制限(ブロック)」は認められないかもしれませんが……それでもフィルタリング能力の面でも、googleと勝負するのはまた厳しくなってくるのでは?
独占関連の問題でいざ裁判にまでなったら、「Googleが確実に有害サイトをブロックしているともいえない以上、独占は不当」とかになっていきそう。その場合、Googleは「これはユーザーに求められた機能であり、当社はその中でも最高レベルのサービスを提供しており、他にも対応の努力をしているサービスは多数あることも認めるが、全く対応していない検索エンジンもあり、検索エンジン制限機能は不当な独占にはあたらない」とかになっていくのでしょうか。どこまで行くんだ、PTAvs有害サイト。


……話がずれました。
このOSでは基本的な機能はサポートしているわけなのですが、しかし大抵のゲームは動きません。マインスイパー的なミニゲームはいくらかあるでしょうが、ネットゲームやらファンシーなチャットソフトとかはきっと無理でしょう。ブラウザ上で動かしているやつならOKでしょうか?
100均のゲームも当然動かない。Linux用のフリーゲームとかならありますが、英語だろうし、Linux雑誌とかでたまに特集されてもいましたが……私は入れてみたことがないのでちょっとわからない。

夢を語ってみれば、このPCがシェアを伸ばしていけば、それ用のゲーム、ライブラリ(の使い方に関する情報)が充実していき、パッケージ版のゲームもChromeOS対応になっていくかもしれません。そうなると、必然的にLinuxに関してもゲームに向いてくるようになり……と、ここまで行くと元の「すべてのPCで、WindowsからLinuxに入れ替えられる」と同じレベルですね。やっぱこのへんは無理か。


また、その他Windows用アプリが全般的に使えないわけですから、家ではあまりパソコンを使わないお父さんが買ったり、またおじいちゃんにお勧めしようとしても、年賀状作成ソフトとかも使えないことになります。素材集とかは流用できるでしょうが、素材を選び出すための検索画面みたいなアプリが使えず、大量の画像のストックから自力で探し出すことになるかもしれません。
年賀状作成ソフトも、年賀状の時期にChromeOS向けに出てくれるようならいいんですが、そこは発売後1年ほど様子を見守ってみないとわかりません。
さらに、「ご自宅のパソコンで簡単作成!」「ChromeOSでも作れます!」みたいな宣伝文句が並んでて前者のほうを買って帰ると、「お客様、これはウインドウズ専用でして、そのパソコンではどうやら……」とか言われたりしてね。

プリンターつないで、はがきに印刷する文面やら住所録やらを作るとなると、それはもうChromeOSの守備範囲外な気もするんですが、このへんも一応、ライトユーザーが登っていく階段の代表例でしょう。
購入する年齢層やニーズを見ていかないといけなそうですが、メーカー側は対応していくんでしょうか。
プリンタ用ドライバ(各プリンターで正しく印刷できるよう、送信するデータの順序を設定するためのプログラム)というのも、Linux用では多少サポートが甘いのが現状です。

しかし、以前の「オフィス用PCとして」というものよりも十分広まりうるとは思います。PCが小型化、低価格化が進んだした上で実現したアイデアであり、これまで倒れていった企画とはちょっと違うと思うのです。
あとは、機能を少なく絞ったにも関わらず、ChromeOSのサポートやら使いやすさがWindowsに大きく劣ったり、ライトユーザー層が、「Windowsのほうが安心できるから」と、安さよりもイメージで選んでいってしまった場合、やはり広まらずに消えていくことになるかもしれません。

雑誌なんかで便利な使い方を紹介するようになっていくでしょう。機能拡張については、Linuxとして使えばかなり多用途に使えるようになっていくはずなのですが、
「ChromeOSでGimpを使うには、コンソールからsuでルートユーザーになって、apt-getで以下のパッケージをインストールだ。ここで打つコマンドは……」とかやるようだと、やはり、どうしても難しそうに見えてしまいます。
(Gimp:オープンソースで無料な、フォトショップ並の機能を持つ画像編集ソフト)
なんとかウインドウズ並に簡単に入るようにできないものか。Linuxザウルス並ならOKでしょう。
Linuxらしく、コンソールを使った従来の使い方もできたほうがいいとは思うのですが、それとは別に、ソフトウェアのインストールやGUI設定、日本語環境管理は独自に充実させておいてほしいものです。
アップデートは、Debianを使ってる限りではかなり簡単に更新されていきますが、自由にインストールして言った場合、大幅な更新時の動作確認とかでどうなるかわかりません。Debianではいきなり止まったりGUIが起動しなくなったり、日本語が入力できなくなったり、日本語で表示されていたメニュー画面がすべて文字化けしていたりしていたのですが、駄目になったらさっさと諦めをつけて再インストールしろとかをすべてのユーザーに求めることができましょうか(反語)。私も、あんまり重要なデータとか(写真やら日記やら、一度消してしまうと取り返すのが困難なもの全般)を残してないPCだからあっさり再インストールに踏み切れてるわけですし。

OSとブラウザが一体化してるみたいな、かなり独自なカスタマイズを施しているなら、そのOSの中心部分だけは外からは一切いじれないようにしておいて、そこだけは責任を持って管理……とかやれば、後からインストールしたアプリが動かないだけで、OSが起動しないとかはないのかもしれません。具体的にどうやんのかはよくわかんないけど。
さらに、一旦そこまで作り変えるのはいいとしても、それ以降もLinuxのバージョンアップに合わせてサポートしていくのもかなりきついのではないでしょうか。独自のパッケージ管理をしていけばいけるのかな?……どんなOSなんでしょうね。


いきなり売り物として搭載PCを売るのではなく、はじめはモニターみたいなものを募集して、販売以前から情報を集めてみるのも有効だと思われます。企業の側も、自社のPCにインストールしてレンタルし、積極的にモニターを勧誘していけば、独自のサービスにつながっていくかもしれません。…この段階で商品化が難しいことが判明するかもしれませんが、それも逆に、失敗前に撤退という結果になり、投資額を抑えることにつながるかもしれません。

多分、私はそんなものに参加しても、ろくに使わないで普通にデスクトップ使ってるでしょうけど。
あまり使わない人というのも、使用頻度から考えて1年くらい使用状況を見続ける必要があるかもしれません。

また、Windosエミュレーターである「wine」も、もうver.1.0を超えているようなので、そちらを使っていけるように自然に誘導するだけで結構なんとかなるかもしれません。この場合、Google側がやることは、wineがちゃんと動くことを確認するだけですね(建前上は)。

これをきっかけに家庭用PCにもLinuxが普及することになるのか。そしてあわよくばゲーム、アプリ関連でもLinuxの足場を広めるきっかけにもなっていってほしいものです。現場のプログラマーは戦々恐々としているかもしれませんが。

2009年5月11日月曜日

フリーのソフトなんてない(There ain't no such thing as a free soft)

アメリカの学校で先生がLinuxは無料でないと子供を叱責したという話に思う

このアメリカのカレン先生の英文がよく理解できない。
しばらく考える時間を要しましたが、リナックスが無料である以上、この先生がいくつか誤解していると考えるのが自然なので、先生の英文のほうも、「間違っている部分がある」という前提で読まないといけないのかもしれません。
そうなると、その誤解が具体的になんなのか、正しく理解したうえで読まないと、この先生の真意を読み取ることはできないということになると思います。
どう誤解していると解釈しているかで色々な日本語になると思うんですが、私なりの解釈を書いてみたいと思います。


まず、大雑把な話。

この先生は、学校でパソコンに無料のソフトとしてLinuxを入れていると自慢げに話している生徒と、その生徒が友人に無料だからとLinuxのCDを譲渡しようとしている場面を見たようです。
その際、先生はLinuxを何か違法な手段で取引されているソフト(海賊版の類)と勘違いし、生徒を叱り、さらに配布元へ抗議を行った……というものです。

しかし、Linuxは一応無料で配布されているソフトなはず。
中には、Turbolinux等、サポートを有償で用意していたり、または無料では配布していない有償のソフトウェアを用意していたりするベンダもあります。

また、このニュースを見たとき、もう一つの考え方として、
「フリーソフトウェアというのは、本当は『無料』という意味ではなくて、『ソースの閲覧、修正、再配布が"自由"』という意味で『フリー』なんだよ」と、生徒にフリーソフトウェア(改め、オープンソースソフトウェア)を理解させようとしたかったのかもしれない……と思ったりもしたんですが、まあ、詳しく読んでみたところその線もなさそうです。

フリーソフトウェアからオープンソースと呼び名を変えるまでの歴史

以下、ニュースソースとなったHelios linux開発者のブログ
Blog of helios: Linux - Stop holding our kids back

誤解がどの程度あるのか、難しいところですが、特に
"This is a world where Windows runs on virtually every computer and putting on a carnival show for an operating system is not helping these children at all. "
のあたりがわからない。このニュースを扱っている英語のページでも、「ここがわからない」と言っている人がいるのも見かけました。
その人に対して、「いいか、ショーを動詞として考えて、「カーニバルを見せる」と考えると分からなくなるんだよ。このshowを名詞だと考えれば、何も問題ないだろ?」
と答えてくれた人もいたんですがが、質問者からの返事はというと、「お前が理解していないことは理解した」という、2chみたいなやりとりになってしまっていました。

前半、「世界中で、ウインドウズが走っている世界であり……」みたいな部分は大丈夫です。
後半部分、
「~が子供達を助けることにはならない」という部分もだいたい分かるんですが、その前の「オペレーティングシステムで(に)カーニバルを映し出すこと……」あたりが今ひとつわからない。


誤解の内容は、「先生はLinuxを本当に無料だと知らない」と言う感じだと思っていましたが、いったいどのようにLinuxというものを理解しているのか……
どうも、Linuxという単語は知っていて、それが無料で配布されていることは知っているものの、そのLinuxを使うこと自体が犯罪性を帯びていると言うか、さらにはオペレーティングシステムさえも違法なソフトを指す言葉だと考えているように思えます。

私の解釈を書くと、

先生は、パソコンと言うものは全て(Macか)Windowsが入って動いているもので、それに対し、ライセンス的に不正に使用する方法として、「オペレーティングシステム」なる不正ソフトウェアを導入してコンピュータを無理やり動かす手法が存在している。その手法は「リナックス」と呼ばれ、アメリカほど豊かではないいくつかの国では、コンピュータを「正規の方法」で利用することができず、「リナックス」と呼ばれる不正ソフトウェアを書き込んで使用しているらしいという世界情勢を知っている。
また、先生はマイクロソフトに「古いバージョンのWindowsを無料で後進国に提供して、世界中の子供たちが不正ソフトウェア(オペレーティングシステムと呼ばれる怪しいもの)を入れることなくPCを利用できるようにしませんか?」と協力を求めるという大変ナイスなアイデアを抱いており、Heliosリナックスそれを提案すると共に、今回不正なソフトをばらまき、私の大切な子供たちに悪い知識を与えたあなたには法的、金銭的な制裁も辞さない

というところになるんでしょうか。
上に引用したカーニバルあたりの英文を考えると、「オペレーティングシステム」という言葉もまた、不正なソフトとして認識されているように思いました。オペレーティングシステムというものは、ウインドウズでコンピュータを動かす権利のない人がコンピュータに導入し、「ウインドウズを動かすために作られたコンピュータ」を不正に動作させるためのプログラムであると。
つまり、オペレーティングシステム=違法なソフトウェア。もしくは、Windowsはオペレーティングシステムではない。

そして、Linuxを使う人をdisadvantaged(恵まれない)と言っているので、この先生は「どこかの国で貧困の中、PCにLinuxを入れてカーニバルの動画を見ている人」というものをニュースか何かで見たのかもしれません。

カーニバルの動画を見るということも、教育的な意味でちょっと望ましくない可能性もあります。



……しかし、きっとそういうことではないはず。多分、PCに「オペレーティングシステム」が入っている時点で問題だと考えているはず。
disadvantaged……と出てくる文というのは、
I admire your attempts in getting computers in the hands of disadvantaged people but putting linux on these machines is holding our kids back.
disadvantageだと、「損害を与える」になり、「あなたのように資本主義経済に(マイクロソフトら正規のコンピュータ会社に、または子供達への教育に)損害を与える人」という意味と考えることもできますが……
きっと、「あなたは不正なソフトウェアを開発する(コピーする)ことによって恵まれない人にもコンピュータを使わせたいという善意から違法ソフトを配布しているのでしょうが、それはわが国の子供達には知らせるべきではないことです。」

と言いたいのでしょう。

そんなわけで、私の解釈による先生の手紙の訳。

ある日、ある生徒が、彼のラップトップPCと共に友人に囲まれている場面に出会いました。
どうやら彼はいくつかの用途にコンピュータを使って見せているようでした。その生徒は自分のラップトップPCの能力を見せて、そして"リナックス"のディスクを取り出してみせました。私はディスクを没収した後に、その生徒と面談を行い……という一連の出来事が、今私があなたとあなたの組織を見つける事になったまでの経緯ということになります。スタークスさん、私はあなたが自分のしていることに対してどんな強い信念を持っているのかも分かっているつもりです。しかし、あなたのやったことも、あなたが私の受け持つクラスで引き起こしたこの出来事についても、私には見逃すことができません。
現時点では、私はあなたの行為が違法であると言う根拠を持ちません。しかし、どんなソフトも無料であるはずがなく、誤解を広めるような行為は害悪です。子供達というものは大人を見て育つもので、それ故、大人は良い手本にも、悪い前例を示すことにもなります。近い将来、私は時間をみてこのことについて詳しく調べ、あなたに、あなたの行為が違法であることを通告せねばなりません。私は法律に基づいて、あなたに罰金の支払いを要求することになるでしょう。スタークスさん、私は大学で多くの"リナックス"を試みる人を見てきましたが、あなたの理想に満ちた主張は酷く水増しされ、しかもその中心は全くの嘘で、言い訳でしかない違いありません。あなたは不正なソフトウェアを開発する(コピーする)ことによって恵まれない人にもコンピュータを使わせたいと考えているのでしょうが、それはわが国の子供達には知らせるべきではないことです。

正しくは、どんなコンピュータでもウインドウズが走っているべきなのです。オペレーティングシステム上でカーニバルを上演することはこれらの子供達を助けることには全くなりません。私は、あなたがマイクロソフトにお願いしてみれば、古いバージョンのウインドウズを提供する以上の協力を喜んで申し出てくれるだろうことを確信しています。そうすれば、あなたのコンピュータはそれを受け取る人への本当の救いの手となるでしょう。



上の文章には、「近い時期に」とか、内容を伝わりやすくするために余計な部分がいくつか混じっていたりもします。
以下、訳す際に気にした部分。もしくは、訳が難しくて間違っているかも知れない部分等のメモ。

Mr. Starks
スタークスさん。Helios linuxの開発者もしくはスタッフ

I am sure you strongly believe in what you are doing…
なんとなく"確信犯"という言葉が思い浮かぶ文です。多分、古式ゆかしき"確信犯"のほうの。先生は、「貧しい人のためを思って不正ソフトウェアをコピー、流通させる」という形で、リナックスを配布していることに一つの「錦の御旗」が存在していることを認めているようです。そして同時に「それは結局欺瞞でしかなく、結局あなたは海賊版で不正使用したがっているだけで、さらには周囲にまでそれを広めようとしている迷惑な存在だ」みたいな解釈をしていることも後の方で読み取れます。
また、そもそも確信犯という言葉との関連を論じている部分でちょっと話はズレつつあることはわかっているんですが、近年かなり市民権を得ている方の"確信犯(故意犯)"として考えてみても、「違法でマイクロソフトが不利益を被ることは分かってるけど、害を与えたいんだからいいんだよ。別に違法だってなんだって」みたいな行動と捉えているとしても、間違ってはいない気もします。どちらでもいいことですが。

No software is free and spreading that misconception is harmful.
"どんなソフトもタダであるはずがなく、誤解を招くような謳い文句は害悪である。 "
上にも書きましたが、私は、
「リナックス=よくわかんないけどコンピュータを違法に動かすためのもの。警察機構が上手く働いていないか、経済上やむをえないという理由で、後進国では黙認されているもの」
と先生は解釈しているものと読み取っています。

if you are doing anything illegal,…
もし違法行為であったなら
私には、このifがどの程度の確率を見込んで使われているのか判断できません。日本人が英語を読むときの感覚だと、「もし」ときたら、それほど実現の可能性はないというか、ある程度「違法ではない」可能性が残されているようにも思います。
日本語でも、100%確信しているときでも「仮に」とか、「~としたら」みたいな言い方をすることも普通にありますし、この先生もこのメールを書いていた時点で、かなりの高い確率で(もしくはほぼ確実に)リナックスが違法なものであると立証できると思っているのだろうと思います。


I will pursue charges as the law allows.
chargeはお金が主な意味なのではないでしょうか。他にも"罪"とかの意味にもなります。
pursue=求める、追求するとあわせて、「罪を追求する」「罰金を科す」「お金を要求する」みたいな意味になると思うんですが、これが刑事罰の上での罰金を科されるよう(罪に問われるよう)告発するということなのか、自分の教室で起こったことに対する民事上の損害賠償を求めるつもりなのか、ちょっと判断ができません。訴訟大国とか呼ばれてますし、法外な(でも法律内らしい)金額を要求するつもりだったりしたのかもしれません。

I along with many others tried Linux during college
読めはするけど解釈に困る文。
多くの人と一緒に大学でリナックスを試みた?
along withには「一緒に」とか「協力して」とかいう意味があるようです。
大学の友人と一緒にリナックスの勉強をしたり、コンピュータの授業でリナックスを使っての課題をこなしたりする必要があったのでしょうか?だったら、リナックスに対してもっと理解があってもよさそうです。
そんなに一緒だったり協力して使っていたりとかでもなく、もっと遠い関係、たとえば、「知り合いにいた」とか、「大学の同級生には、そういうのもいた」くらいになるかもしれません。
リナックスを試みるという部分も、実際、友人の一人がリナックスを使っているらしい、と話には聞いたことがあったのかもしれません。しかし、先生のリナックスへの理解を考えると、先生の中で、「リナックスを試みる」は、「(Winの)海賊版等を違法に入手し、タダでパソコンを使うこと」に相当しているかもしれません。
実際のところ、その友人、知人というのも、普通にリナックスを使っていたわけでもないのかもしれません。フォトショップなんかの海賊版のソフトを入手して使っていたり、それを配ったりしていたやつがいたということを指して「なんかそんなことしてるやつは、学生時代にも話には聞いていた」と言っているのかもしれません。
いずれにせよ、先生は学生時代から「リナックスだかCDRに焼いたWinXPだか知らないけど、タダに近い値段で取引されるソフトがあるらしい」という程度の浅い認識のみで、このあたりのものを全て違法なものと思い込んでいたんでしょう。

the claims you make are grossly over-stated and hinge on falsehoods.
あなたのした主張は……酷く水増しされた、嘘の中心
overstatedが水増しする、 hinge=中心 falsehood=嘘
ということで、「貧しい人のため」とかは本当のところは嘘で、結局は自分が不正に使用するためにネットを探してインストールディスクのデータを入手し、それをクラックして路地裏でコピーCDで売るか、ネットでタダで流して自己満足に浸りつつ著作権侵害してるかあたりだろうと考えているんだと思います。

run virtually
事実上、ほとんど
ほとんど全て、Windowsが動いている、もしくは、「売られているコンピュータは、事実上、Windows用に作られたものである」というあたりでしょうか。
高校のころに語彙を試す試験で知ったのですが、virtualは「実在する」みたいな意味になるらしいですね。
goo 英和辞典で、「virtual」

2つ目の意味に、一応「仮想的」とか出てます。テストで出た「Virtually」とかだと、もう「実質的な、事実上の、ほとんどの」としか出てこない。

元々は、コンピュータ上には実在している、しかし、物質的には実在していない……という形でヴァーチャルメモリ、バーチャルホスト、バーチャルリアリティという言葉が生まれたのだろうと思います。きっと。

高校時代も、クラスのほとんどが「仮想的な、存在しない」みたいな意味に捉えて間違いと採点されました。もちろん、当時のわたしも。

putting on a carnival show for an operating system is not helping these children at all
読めないだけじゃなく解釈に困る部分。
put on 上演するとかの意味もありますが、カーニバルって本当に動画のカーニバルでいいのでしょうか?
「違法ソフトウェアてんこ盛りで酒池肉林」みたいな意味だったりしないかな?とか思ったりします。
childrenも、教室の子供達でしょうか、世界中で飢えに苦しむこどもたちでしょうか。

your computers would actually be of service to those receiving them...
これは、コンピュータを受け取ることになる人に、(古くてもウインドウズを入れたコンピュータをあげるようにしたほうが)本当の意味で正しいサービスを提供することになるといっているのでしょうか。
サポートされなくなった古いWindowsなんてかなり危なそうですが。

情報処理推進機構:情報セキュリティ:ウイルス・不正アクセス届出状況について(2007年4月分)

今月の呼びかけ:
 「 サポートが終了したOSを搭載したPCの危険性を認識しよう!! 」
― ぜい弱性(*1)が解消できず、被害に遭う可能性が極めて高い!! ―

2009年4月29日水曜日

光マンション+IP unnumberedで自宅サーバ

光マンションの固定グローバルIPアドレスサービス+DDNSサーバで自宅サーバを動かせるかと思ったが、無理かも。少なくとも、私のプロバイダの場合は。

(※以下、IP「アドレス」を省略してIPと呼び続けます。)

住んでいたアパート(マンション?)が光マンションに加入し、アパートの住人は無料でインターネットに接続できるようになりました。
そちらから自宅サーバを公開できれば今までのプロバイダ+固定電話を解約して、月々4千円くらい節約できるかと思ったんですが……

最近利用可能になったのは、e-broadの光マンションサービス。
各家庭(部屋)へはプライベートIPアドレスが割り振られました。
e-broadのサイトを見ても、光マンションからでは固定IPは使えそうになかったし、部屋の工事にきた人に「これって固定IP割り当てのサービスあるんでしょうか?」と聞いて、追って連絡するとの返事をもらったのに何の音沙汰もなかったので、自サバ公開は無理かと思ってたんですが、一応メールで固定IPサービスがあるか聞いてみると、実はあるとの知らせが。サーバーの公開、ネットゲーム用等に用意してあって、無料で利用可能とか。


メールより転載しておくと、

1:イーブロードHP(http://e-broad.jp/)
↓ ↓ ↓
2:左メニュー、プロバイダサービス内のe-broad光電話
↓ ↓ ↓
3:お申込はこちら(赤いバナー)
↓ ↓ ↓
4:利用規約確認
↓ ↓ ↓
5:情報を入力いただき、「申込種別」に「グローバルIPのみ」にチェックを入れてください。
↓ ↓ ↓
6:確認後、申込

といった流れ。まさか光電話の中に含まれているとは……(といっても、IP電話は固定グローバルIPアドレスが必要なものなんでしたっけ?)。
申し込みから利用までは2週間から4週間の予定と通知されていましたが、結局頼んでから3ヶ月ほどかかって、ようやくまともに利用可能に。

ルータにIP unnumberedを利用することで固定IPによる外部からの接続を実現しているものの、このルータは同時にプライベートIPを利用した他の部屋の人たちの接続も担当しているので、実はルータにもちゃんとIPがある。だから、外からみるとルータのIPしか見えてない。
確認くんで見てみても、このルータのIPしか見えていない状態になってしまいます。


「IP unnumbered はルータにIPを振らない技術だよ」
と言われてしまうかもしれませんが、最近は一部のコンピュータにグローバルIPアドレスをふりつつ、他はプライベートIPアドレスを振って、それらを同一ネットワーク上に共存させることが可能なルータも出回っているようです。

実際に、今、私の部屋へ届いているLAN接続口(電話線のとなりにLAN接続口がある)からハブへつなぎ、
そのハブに2台のPCをつなぐとする。
1台を手動でグローバルIPアドレスに設定し、もう一台はdhcpでプライベートIPを割り振られるようにしてみると、同一ネットワーク上にグローバルIPアドレス、プライベートIPアドレスが同時に存在したまま、同時にインターネットに接続可能。


ここにもそんなことが書いてあります。
価格.com PLANEX BRL-04CWに『IP unnumbered設定ができない』

上の製品で、IP unnumberedの正しい設定の方法は……わからない。これはどうやれば?

実機がないと実験もできないので、ここからはわたしの部屋と光マンションのルータの状態を紹介してみる。
、上のページ同様、プロバイダから与えられたIPアドレスが100.100.100.8~100.100.100.15であった場合で書いてみます。 ネットマスクは255.255.255.248(/29)

ルータ(デフォルトゲートウェイ)のIPが100.100.100.9であったなら、e-broadでは利用者は100.100.200.11~100.100.200.14までをコンピュータに割り振ることが可能。
ネットワークアドレスの100.100.100.8、ブロードキャストアドレス100.100.100.15は割り振れない。
それに加えて、100.100.100.10も利用できない。
traceroute(winではtracert)を使うと、ルータに相当する部分で100.100.100.9の代わりに100.100.100.10が出てきました。

外側からサーバ(100.100.100.11)に向かってtracert(winから)しても、
サーバから外へtraceroute(こちらはlinuxから試した。)しても、100.100.100.9ではなく100.100.100.10が返信してきます。 でも、デフォルトゲートウェイで設定するIPとか、確認くんでみえるIPは100.100.100.9。

そして、光マンションのルータのdhcp機能でプライベートIPを割り振られた状態では、ルータ(デフォルトゲートウェイ)のIPは192.168.0.254に見える。そして確認くんでは100.100.100.9(ルータのIP)が、光マンション内部から適当なところへtracert(一応、実際に使ったコマンドのほうを書いています)では100.100.100.9や10は登場せず、192.168.0.254しか出てきません。
いくつかのIPアドレスに対してpingを送った後で、arp -aと打つと、

C:\arp -a

Interface: 100.100.100.11 --- 0x2
Internet Address Physical Address Type
100.100.100.9 aa-aa-aa-aa-aa-aa dynamic
100.100.100.10 aa-aa-aa-aa-aa-aa dynamic
192.168.0.33 bb-bb-bb-bb-bb-bb dynamic
192.168.0.254 aa-aa-aa-aa-aa-aa dynamic

といった形で、同じMacアドレスが、グローバルIP、プライベートIPのいずれも持ってそれぞれ動作している様子が見えました。
一応、MACアドレスも元々の値から変えて表示してあるものの、100.100.100.9、100.100.100.10、192.168.0.254 のMACアドレスは同じ物でした。192.168.0.33はLAN内のもう一台の私のPC。
もうちょっとがんばってLAN内にpingを飛ばしまくれば、他の部屋の誰かのPCが見つかったりするはず。試してみませんでしたが。
これで、ルータがPCに複数のLANカードを挿したような手作りの品だったら、LANポートごとにMACアドレスが違ったりして、外向き、内向きのLANポートのMACアドレスとIPアドレスの組み合わせが分かったりしたのかもしれません。

……ちなみに、ルータ(デフォルトゲートウェイ)のプライベートIPアドレスが192.168.0.254というのは私の好みによる設定だとか深い理由があるわけじゃありません。e-broadではもともと、ネットワークの一番後ろの数字をルータに割り振っていたようです。
これが原因で、一番最初に指示された固定IP接続の内容は「デフォルトゲートウェイが100.100.100.14、サーバのアドレスは15から21までをルータに『設定』しておきましたのでご自由にお使いください」とか言われてビビることになりました。いや、その設定じゃ、ゲートウェイと固定IPアドレスが別ネットワークになっちゃうでしょ。
ただ先方が理解していないだけで、示された番号を使うことを推奨されているだけなら問題なかったのですが、そのルータにはIP unnumberedを有効にするIPアドレスを明示するための設定項目が存在していた様子。そしてルータの『設定』を行った結果、

「ルータと同じサブネット内のIPアドレス ∩ ルータの設定上、IP unnumberedを利用できるはずなIPアドレス=何も無し」

となってしまいました。これで技術サポート要員を説得して、ちゃんと再設定してもらうまでに2週間かかりました。

説得は、正直、「ひょっとしたらそういうことが(最近は)可能なのかな?」とか思ったりもして、少々不安な部分もありました。
サポートの人も、「自分の技術の無さを棚に上げて、プロバイダ側や製品の不備にしたがる迷惑な客」というのも実在するだろうし、私もそんな迷惑な客だと思われている可能性もありました。

結局、私は、
私「ネットマスクを考慮すると、ルータとそれ以外のIPのほとんどは同一ネットワーク上に存在していませんよね?これについてどう思われますか?」
と同意を求めてみました。
サポート「……確かに、お客様の言うとおりなのかもしれません」
私「そう思いますよね!」
サ「私は、そこまで詳しいことはしらないんですが」
「……」

それでも納得してくれなかった。
で、あちらの指定したIPと重なってしまう「ブロードキャストIP」がいくつになっているのかを確認してもらい、その結果をもらうまでに3日。ただifconfigを打つには遅すぎるので、こっちから連絡をするまで何も返事がなかった。
とはいえ、その3日の間に誤りがあったことを認め、設定変更作業を行っていたようです。
このとき、もし何も変更が無かった場合は、「使用可能な番号の開始位置を13までずらしてくれ」とお願いするつもりでした。そうすれば、前後の番号をわりふっている人がいたとしても、それほど大きな影響もなく(多分)、私も1つだけまともに使えるIPが手に入ることになると考えました。



閑話休題。
外側から自サバに割り振られたグローバルIPが呼ばれれば、ルータはちゃんと中継してくれるようで、接続可能です。しかし、現在のところ外から見るとルータのIPしか見えていません。

これで何が問題かというと、DDNSへの登録ができないことです。
ルータのIPアドレスしか登録できないため、サーバーへアクセスしようと、ルータのIPアドレスまで情報請求(接続要求?)が届いたとしても、ルータはそこからローカルネット上にあるサーバーへ転送しない。
自分宛てに送られてきた、「間違ったhttp接続要求」あたりとして捨ててしまいます。
わたしはieserver.netを利用させてもらっていますが、そこのサーバーは「接続してきた者のIPを調べ、そのままその番号を登録」とするようになっています。
サーバーそのものに登録を行わせるcgiなんかもあり、その他「DDNSへのIPの登録を自動化するソフト」としてdiceとかいろいろ見てみたかぎりでも、どこのDDNSでもそのような手段を用いてIPを登録している様子に見えます。

ユーザーが手作業で番号を指定するより間違いを起こしにくいからなのか、自動化が容易だからなのか、ユーザーに勝手に設定させるとイタズラが可能だからかは不明。
確かに、見えているIPを(機械的に読み取って)登録すれば問題は起こらないはずでした。
今回の光マンションのグローバルIPの割り振り方というのは、かなりマイナーなものなのだろうと思います。

私も、IP unnumberedとか、光マンションのルータの設定とか、厳密には理解していない部分もあるので、今後なんとか出来る可能性はあります。
でも、多分今の状態が、ルータも私の部屋のPCとかもちゃんと上手く設定された状態なのだろうと思う部分もあるので、これ以上プロバイダの技術サポートに電話をするのはやめておきます。上にちょっと書いたとおり、グローバルIPをちゃんと割り振ってもらうまでに既に何度も電話している間柄ですし、もう疲れた。

独自ドメインのほうはどうやってIP登録するのかわかりませんが、多分、今のような状態からでもルータの内側にあるサーバ用のグローバルIPを登録できるはず。(手入力とかメールとか?)


今後、私は
・なんとかDDNSに登録できる方法を探す
・現状のまま、これまでのプロバイダからDDNSを利用
・プロバイダ、電話回線解約で浮く分のお金で独自ドメイン取得

あたりの行動をとると思います。
独自ドメインも多少興味があるものの、今のサブドメインも気に入っているので、もうしばらくこのままがいいです。
固定IPでなら、ieserver.netの中の人に「一生のお願いだから」とメールして、一度だけこちらのグローバルIPアドレスを割り振ってもらってしまえばいいような気もします。
しかし、固定IPサービスも無料サービスなわけですし、どのくらいの頻度でグローバルIPアドレスが変更になるのかよくわかりません。
実際、ルータの設定をいじってもらう前後でルータのIPが変化していますし。
同一ネットワーク内で100.100.100.14→100.100.100.9へ移動したわけじゃなく、一つとなりあたりのサブネットへ移動しました。
100.100.100.6→100.100.100.9みたいな感じ。

その設定を行ったことを伝える電話で、
「こちらの設定が間違っていたようなので、ルータを設定しなおしました。それによりまして、昨夜は少々接続が不安定な状態になりましたが」
みたいなことを言われたりもしたから、結構大規模に間違ってて、いろいろ直す必要が生じたのかも。

……あ、場合によっては「おめーのワガママのせいで何人のひとに迷惑かけたと思ってんだ?」みたいな意味が含まれていたのかもしれませんね。電話の内容を思い返してみても(というか、留守番電話に残っていたので、そっちを聞きなおしてみても)、実際に利用可能なIPアドレス等を通知するために送られてきたメールを読み返してみても、2ヶ月以上延びたり、変な設定していたことへの謝罪は一言も入ってませんでしたし。


そんなわけで、技術サポートからのサポートは、もうこれ以上期待できないでしょう。
多分、今のこの状態はプロバイダ側が悪いわけじゃないし。
ieserver.netさんへの「一生のお願い」を行うという案も……まあ、「一生のお願い」というものが、シューティングゲームでいうところのボムくらいの頻度で使えるものだとしても、やはりボムは大切に使うものです。


ひとまず、もうちょっとがんばってみます。


それと、この自分のIPがいくつもあるような変な設定だと、公開プロクシ経由で書き込んでいる状態となるのかもしれません。2chに書き込めなくなった。
YahooのほうのIPだと、頻繁に書き込み規制されるので、たまに光のほうから書き込んでたんですが……あと、IPアドレスとかの情報を照合しながらページを表示しているであろう、amazonやソフマップのページがやたら重い。あと、海外からの掲示板への書き込みが急に増えた気が。ちょっと前まではbbqとか入れてしのげてたけど、ちょっとそれも効果ないみたい。どうしよ。

2007年10月2日火曜日

vimのカラースキーム

最近やったことをいくつか。

今使ってる液晶モニターの一つでは、vimを使うと、選択した領域が背景色と見分けがつかない状態になってしまい困っていました。理由は良く分かりませんが、もらい物のモニターであるため、色の設定方法が良く分かりません。
vim以外では問題ないんですがね。

以前からvimのcolorschemeというものに目をつけてまして、これを利用してなんとか解決できないかと思っていたものの、なかなか始めるきっかけがつかめず…
最近暇を見つけてようやく上の問題の解決法を見つけました。選択領域はvisualという単語で定義しているようです。

作ったカラースキームをおいておきます。
今はまだ一番簡単に書かれたpabloというカラースキームの一部をいじっただけですが。
カラースキームegfortp
EGFをイメージした・・・とかではありません。desertとかいうののほうが近いかも・・・

カラーパターンを工夫すれば、デザインのための色の変更ではなく、作業にあった使いやすい配色を作り出せるかもしれません。
書き方を説明してるページとかどこかにないものか・・・

そのほか、バッファローダイレクトで9800円で買った玄箱PROに、Postfix等、最低限サーバとして使えるソフトを入れようと頑張っていたりもします。
玄箱PROのページ


カラースキームの設定を行ったときの作業内容
http://egf.or.tp/another/colorscheme.html

フルメタ一巻ももうすぐ読み終わりそうです。

2007年5月2日水曜日

ツンデレりなっくす英語版マダー?

サイト名 Ramblings of DarkMirage
結構前の記事(2006年9月)だけど。以下和訳

有名なオープンソースOSであるLinuxを萌え流(moelicious manner)で解説してくれる本。内容は、安く中古のPCを手に入れる方法、様々なディストリの説明、Debian,Firefox,2chブラウザのインストール手順、そしてツンデレ少女。ツンデレ少女を忘れてはいけない。
できればこの本の製作者たちに、この世でもっともつまらないと思われる、CISCO技術者認定を解説してくれるものを出してほしい。


コメント
リナックスは最高にツンデレなOSだよな!(シンガポール)
今期の授業の単位を取るため、どうしてもこの本が必要になりそうです(アメリカ)
ネットワークとCISCO技術者認定の勉強をしてた頃にこの本さえあれば…(シンガポール)
英訳版が出れば、私の同業者の多くが救われることだろう。さあ、翻訳を始めてくれ!(チリ)
CISCO対応版が出たらどうするかって?読むに決まってるさ。ところで、このタイトルのLinuxをひらがな表記にしたのはだれだ?ツンデレっぽくないだろ!(アメリカ)
CISCO対応版が出れば、去年一年無駄にしたことでもきっとすぐ理解して簡単に点がとれるようになるよ(シンガポール)
リナックスってツンデレだよな。はじめは取り付く島も無いけど上手く接すればとても素直で友好的になってくれるよ(アメリカ)
アニメとLinuxをいっしょにすればいいと思った人間は私のほかにもいたようですね。(ポルトガル)
ツンデレリナックスって、ディストリビューションの名前みたいだな。ファイアフォックスの変わりに
ロリフォックスが勝手に入ってる感じの。(オーストラリア)
>ディストリビューション
ツンデレリナックスか、すんげえ気まぐれで使いづらくて、でもコマンドを入力するたびにやさしく、やさしくなっていく…おっと、待てよ?今あるリナックスどれでも当てはまるじゃん。(アメリカ)


アメリカ人もノリツッコミするんですね。
それから、みんなちょっと期待しすぎ。

その他、要望のあった萌えるシリーズを羅列してみる。
C++、 Java(月姫バージョンを希望らしい) 、HTML、 A+、 オラクルマスター、 フォトショップ、 マクロメディアフラッシュ、PSP、PS2改造、殺人技術、日本語の教科書

日本語の教科書は絶対売れるとおもう。どこか出すべき。