約 4,786,388 件
https://w.atwiki.jp/aster-infra/pages/53.html
LILO 【設定ファイル記述場所】 /etc/lilo.conf 【設定ファイル一覧】 プロンプトの待機時間(0.1 秒単位) timeout デフォルトでブートするイメージ default ブートローダのインストール場所 boot マップファイル map ブートローダのファイル install カーネルイメージ image ブートイメージのラベル label 初期RAMディスク指定 initrd ファイルを読み取り専用で実行 read-only ルートファイルシステムのデバイス名 root 【設定内容を反映させる】 /sbin/lilo 【オプション】 インストール状態の表示 設定ファイルを指定 -C 設定ファイル 別のマップファイルを指定 -m マップファイル 多くの情報を表示 -v ... 現在のマップファイルの内容を表示 -q マップの作成、更新 ブートデバイスを指定 -b ブートデバイス マップファイルの圧縮を有効にする -c テストのみ実行 ※-vと合わせて使用することで、LILOが正しい値を使用するか確認可能 -t デフォルトコマンドラインの変更 次回再起動時デフォルトコマンドラインとして使用 -R パラメータ アンインストール LILOのアンインストール -u セクションの最後の方で説明する警告が適用される -U
https://w.atwiki.jp/aster-infra/pages/192.html
新しいカーネルで起動できるように、ブートローダに新しいエントリを追加します。 例 カーネルバージョン=2.6.28 ラベル=linux-2.6.28 ルートパーティション=/dev/sda1 LILO ~ 設定するファイルは/etc/lilo.conf image=/boot/vmlinuz-2.6.28 label=linux-2.6.28 initrd=/boot/initrd-2.6.28.img read-only root=/dev/sda1 image…カーネルイメージ label…ラベル(自由に設定できる) initrd…ブート時に読み込むファイル read-only…ルートファイルシステムを読み込み専用でマウントする場合に指定 root…ルートとしてマウントするパーティション GRUB ~ 設定するファイルは/boot/grub/menu.lst title Linux-2.6.28 root(0,0) kernel /vmlinuz-2.6.28 initrd /initrd-2.6.28.img ※新しいカーネルで問題が発生しないことが確認できるまで、現在のカーネルで起動するためのエントリは残します。
https://w.atwiki.jp/aster-infra/pages/52.html
GRUB 【インストールコマンド】 # grub-install (インストールするデバイスを指定) 【設定ファイル記述場所】 /boot/grub/grub.conf(/menu.lst) 【設定ファイル一覧】 デフォルトで起動するエントリ番号 default メニューを表示している時間(秒) timeout メニュー画面の背景画像 splashimage メニューに表示される OS の名前 title ルートデバイスの指定 root カーネルイメージを指定/起動オプションの指定 kernel 初期RAMディスクファイルの指定 initrd ブートセクタに直接アクセス chainloader 起動時に選択メニューを表示しない hiddenmenu ルートパーティションのアクティブ化 makeactive
https://w.atwiki.jp/aster-infra/pages/54.html
ブートローダとは ■ブートローダとはオペレーティングシステムをロードするプログラム オペレーティングシステムをロードするときには、BIOSがブート可能な MBR(マスターブートレコード)の最初の512バイトを読み込む。 MBRのサイズが小さい為、ブートローダ全体を格納する事ができない。 このためブートローダは2段階でロードを行う。 第一段階のブートローダはIPL(イニシャルプログラムローダー) と呼ばれるブートローダ部分を読み込む。 第一段階のブートローダは第二段階のブートローダを呼び出し、 カーネルをメモリに読み込む。 ■ブートローダ(GRUB) ブートローダ ■ブートローダ(LILO) ブートローダ(LILO) LILOとGRUBの違い LILOには対話式のコマンド・インターフェースがないがGRUBにはある。 LILOではネットワークからのブートをサポートしていないがGRUBではサポートしている。 LILOでは設定ファイル/etc/lilo.confの変更だけでなく /sbin/liloのコマンドを使わないと設定が反映されない上、 起動時にカーネルを読み込まず何も立ち上がらない。 GRUBでは設定ファイル/boot/grub/grub.confを変更するだけで変更内容が反映される。
https://w.atwiki.jp/ecchutoyama/pages/23.html
Duino-Vの製作 購入 キット:スイッチサイエンス ATMega328:秋月電子 部品の確認 作る前に部品の確認をしよう。基板とソケットはすぐに分かる。タクトスイッチ,水晶発信子,ピンヘッダ,コンデンサの0.1μF。抵抗は1/6Wのものが2本あり,ひとつは100Ω,もう一本は150Ω。問題は表面実装部品だが,これがまた手作業の限界に近い大きさ。二つ並んでパックされているのが発信器用の15pF(?)でひとつだけパックされているのが100Ωの抵抗,白くて大きいのがLEDである。LEDには向きがある。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (IMG_7991.jpg) 部品の取り付けは背の低いものから始めるのが原則である。というわけで表面実装部品から取り付ける。コンデンサと抵抗は小さすぎるので細いピンのようなもので押さえつけて半田付けする。部品をおく前に片側のパターンの上に半田めっきしておいて,部品を上から押さえながら半田ごてで熱すると良い。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (IMG_7994.jpg) LEDは比較的大きいので小さめのラジペンでつまんで半田付けすることができる。向きがあるので注意する。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (IMG_7996.jpg) タクトスイッチの足がなかなか穴に入らない。ラジペンで少しつまんで足を伸ばしてやったら割りとすんなり入った。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (IMG_7998.jpg) あとはソケットや水晶発振子などを半田付けして一応出来上がり。私の場合はブレッドボードに差し込んで使いたかったのでシングルラインのピンヘッダをつけた。ピンヘッダの取り付けのときに傾かないようにブレッドボードに差し込んで端のピンだけ半田付けしてから引き抜いて残りのピンを半田付けすると良い。ブレッドボードが熱で劣化しないように必要最低限だけブレッドボードを使うようにした。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (IMG_8000.jpg) ファームウエアの書き込み AVRISP mkII と AVR Studio4 私の場合はAVRISP mkIIを持っているのでAVR Studio4を使ってATMega328へのファームウエアの書き込みを行う。 まずAVR Studio4のダウンロードページからAVR Studio 4.18をダウンロードする。登録が必要。ダウンロードがすんだら解凍して適当なところへインストールする。 ブートローダ(ファームウエア)の書き込み ファイルの取得 V-USB ProjectsのホームページからUSBaspLoader.2010-07-27.zipをダウンロードし展開する。 firmware\hexfileフォルダ内のmega328p_16mhz.hexが書き込むべきブートローダである。 書き込み AVR Studio4を起動する。 AVRISPmkIIをパソコンのUSBコネクタに接続し,ISP用のケーブルを書き込み用ボードかArduinoのISP用のピンヘッダに接続する。今回はゼロプレッシャーソケットを使った専用のボードを製作した。 書き込みボードにATMega328を装着し,AVR Studioのconnectボタン(conと書いてある。)を押す。この時書き込まれるAVRには電源を供給しておく必要がある。さもないと電気ついてねえよ,というメッセージが表示される。 Select AVR Programmerダイアログが出てくる。ここでAVRISP mkIIおよびUSBを選択し,Connectを押す。問題がなければ自動的にAVRISP mkII in ISP modeダイアログが出てくる。おそらく初めてAVR Studioを起動したときにはプロジェクト設定ウイザードのようなものが出てくるが,キャンセルすればよい。 AVRISP mkII in ISP modeダイアログではまず,mainタブを選択しDeviceでATMega328Pを選択する。 次にprogramタブを選択する。Flash項目のInput HEX Fileを選び,先ほどダウンロードしたブートローダmega328p_16mhz.hexを選択し,すぐ下のProgramボタンを押す。 数秒間(10秒以内)に書き込みは終了する。下のメッセージウインドウにエラーが表示されなければOK 次にFusesタブを選択する。このタブではAVRのハードウエア設定を選択することができるが,よく分からないのでホームページなどを参考にして次のように設定しProgramボタンを押した。いい加減にいじくりまわすと二度と書き込みできなくなるので注意が必要。これも下のウインドウにエラーが出泣ければOK EXT=0xFD HIGHT=0xDA LOW=0xF7 最後にLockBitsタブを選択する。名前から察するに書き込みや読み出しをロックする機能のようだが,これもホームページなどを参考にして次のように設定した。 LOCKBIT=0xEF ブートローダの書き込みが無事終了すればAVR Studioにはもう用がないので終了しても良い。 ドライバのインストール USBaspのホームページからDuino-VのファームウエアとWindowsのドライバをダウンロードする。ファイル名はusbasp.2009-02-28.tar.gz このファイルを解凍するとWindows用のドライバ(win-driver)とファームウエア(firmware)のバイナリが出てくる。 win-driver内の適当なドライバファイルをインストールする。 Arduinoのインストール Arduinoのホームページからファイルをダウンロードする。この記事を書いている時点で最新バージョンは1.0 ファイルを展開して適当なところへインストールする。 ボードの定義ファイル(boards.txt)にmetaboard用の定義を追加する。 metaboard.name=Metaboard(328) metaboard.upload.protocol=usbasp metaboard.upload.maximum_size=30720 metaboard.upload.speed=19200 metaboard.upload.disable_flushing=true metaboard.build.mcu=atmega328p metaboard.build.f_cpu=16000000L metaboard.build.core=arduino metaboard.bootloader.low_fuses=0xf7 metaboard.bootloader.high_fuses=0xda metaboard.bootloader.extended_fuses=0x03 metaboard.bootloader.path=metaboard metaboard.bootloader.file=mega328p_16mhz.hex metaboard.bootloader.unlock_bits=0x3F metaboard.bootloader.lock_bits=0x2F metaboard.build.variant=standard #最後の行はver .1.0から必要になった。 動作テスト WindowsにインストールしてあるArduinoを起動し,File- Examples- Basics- Blinkを選択する。 そのままコンパイルする。(三角マーク) コンパイルが終了したらuploadする。uploadする前に必ずDuino-Vのリセットスイッチを押す。 uploadには結構時間がかかる。(数十秒) uploadが終わったら勝手にプログラムが実行される。つまりLEDの点滅が始まる。
https://w.atwiki.jp/is01next/pages/35.html
365 kernel書き換え試してみるのはとりあえず、自己リスクで。 /system書き換える場合も、androidを起動しなくても adbがつながるようにしてからやるのが安心だと思います。 現状androidが起動しない adbでつながらないときに元に戻す 手段がないので危険だと思います。 現在bootloaderにそういったモードがないか確認中です。 自分の場合はandroid起動しなくてもadbでつなげられるのですが qxdmを有効にした状態ですので、もしadb認識してない人は qxdmを有効にしてみてください。 echo 1 /sys/devices/platform/msm_hsusb_periphera/qxdm_enable 407 戻りました。bootloader解析続けます。 文鎮状態の人を大量発生させるのはいやなので。^^; 412 /dev/mem, /dev/kmemの代わりをするドライバを起こしました。 /dev/mem_ex, /dev/kmem_exが使えます。 http //hotfile.com/dl/86203816/abbea85/mem_ex.zip.html ./mem_ex 20008000 100 | /data/bootkit/busybox hexdump -C こうすると、物理アドレス0x20008000 から 0x100バイトダンプできます。 不安定のため、テスト版ということで。後ほどソースUpします。 たとえば、 cat /proc/kallsyms | /data/busybox/grep kstrtab_jiffies_64$ 804cd1a8 r __ksymtab_jiffies_64 ./mem_ex 204cd1a8 4 | /data/busybox/hexdump -C 00000000 a8 e5 4f 80 00000004 ./mem_ex 204fe5a8 4 | /data/busybox/hexdump -C これで、jiffiesがダンプで着ます。 432 bootloader内に、リカバリーモードに移行するモードがあるのを発見 現在方法解析中 743 以前に質問があがっていた、URA_MODE指定でのbootが できるようにしてみました。 手元に実機がないので、なんともいえないですが・・ insmodした後に、 cat /proc/reboot_fastboot でfastbootの起動にtryします。 cat /proc/reboot_uramode でuramodeの起動にtryします。 http //hotfile.com/dl/87649426/0077814/shdiag_test.zip.html URA_MODEって何なんでしょうね・・ 745 743 お疲れ様です。 cat /proc/reboot_fastboot cat /proc/reboot_uramode 両方とも、通常起動してきます。 よろしければ、私も合同デバッグに参加したくおもいます。 746 オリジナルのブートローダですが、のっとるのは無理そうでした。 ダウンロードモードでファームウェアを更新するほうも、 xperiaのようにまずダウンロード用のbootloaderを転送してから 実際の書き換え処理をしなければいけなく、手間が多いので ちょっとこの辺できりにしようと思ってます。 747 一応解析した結果は後ほどまとめておきますね。 いづれにしても文鎮化対策は必要だと思いますので、 kernel system,recoveryが壊れたときにもリカバリできる手段を考えます。 いまのところは、オリジナルのブートローダからの起動に さらに自家製ブートローダを挟み込み、あるキーが押されて 起動されたときは、自家製ブートローダ+fastbootでNANDが 書き換えられるような方向で考えています。 750 どなたか。 こちらをrecovery領域に焼いて、fastbootが起動するか確認お願いできますか? http //hotfile.com/dl/87692648/6ca0cd3/mtd2.zip.html reboot recoveryでfastbootに移行します。 画面上には変化は出ませんが、新しいUSBが認識すると思いますので、 そこで、sdkに付属のusbドライバ、android_winusb.infを変更して、 SingleBootLoaderInterfaceとして認識するようにVendorID, ProductIDをあわせてください。 認識後は、 fastboot -i 0x4dd getvar version ができると思います。 ちょっとできるかどうか確認お願いできますか? 752 750 # flash_image recovery_rw /sdcard/tmp/mtd2bin 実行後 adb reboot recovery で端末が再起動しますが "IS series" のロゴのまま進みません。3分ほど放置。 一旦、電池抜いて通常bootで起動はできました。 753 752 ロゴがでっぱなしで動いているように見えないのは仕様です。 その状態でUSB認識しますでしょうか? 754 adb からは device not found windows 上からは USB デバイス認識していないように見えます。 デバイスマネージャーから Android Phone が見えない。 不明なデバイス等は見当たらない android_winusb.info は書き換えていません。 755 752 カーネルのスタートコードにいきなりリターン命令を入れてみたのですが、 うまくいかないですね・・。 引き続き見てみます。 772 JN-DK01では、fastboot modeはトラックボールを押しながら電源をONします。 他のandroidでも、何かを押しながら電源ONでモードに入ることが多い見たいですが IS01にはボタン等を押しながら電源ONでfastboot modeする方法はないとか、 fastboot mode自体ないと解析の結果でたのでしょうか? 773 772 その通りで、ボタンからはfastboot,recoveryに入る方法はない可能性が大です。 少なくてもfastbootには入れません。 以前にbootloaderのバイナリ アセンブラソースはあげましたが、もう一度あげておきます。 http //hotfile.com/dl/87926737/33050a5/is01_bootloader.zip.html is01でも同じようにトラックボール押しながら電源ONでfastboot要求自体は 入るのですが、 is01ブートローダーはmain関数内で、fastbootに入るかどうかのチェックを 無視するようにパッチがあたっています。 775 773 ブートローダを書き換える方法はありそうですか? 786 773 というとトラックボール押しながら電源ONでboot recoveryという設定にすることは可能なのでしょうか? 792 775 モデム側のファームウェアにあるダウンロードモードであれば可能と思われますが、 根が深く調査は困難です。HTCのようなQualcomm互換のものではないので。 現状はブートローダーは書き換えない方向で考えています。 786 トラックボール押しながらの操作はモデム側のファームウェアでfastboot用の フラグは立てていますが、Recoveryモード用のフラグは存在しなさそうでした。 キー操作でRecoveryにするのは絶対とは言えませんが無理な可能性が高いです。 なので、これらの方向から攻めるのはいったんキリにしようかと思っています。 ちなみに、IS01のキーボードはモデム側のファームウェアで管理されており I2Cというバスでつながっています。4つまでのキーの同時押しに対応している ようです。 817 773 bootloaderのバイナリ アセンブラソース拝見しました。 もし、usbloader動くとvendor idが18D1、product idがD00Dとなるのでしょうか? 18D1ってシャープではないですよね。 他のベンダーID使っていいわけではないと思うので動かないことを前提で放置だったのかな。 android_winusb.infの修正は、SingleBootLoaderInterfaceとして VID 18D1、PID D00Dを追記なのでしょうか? 819 817 www.linux-usb.org/usb.ids 18D1はGoogle Inc.で、PIDには 4e11 Nexus One Phone 4e12 Nexus One Phone (Debug) 4e13 Nexus One Phone (USB Tether) がある 818 is01用のmkbootimg作れた人います? ソースは落としたものの、makeが出来ない・・・ できればバイナリをアップしてもらえると嬉しいのですが・・・ 応援スレにあげたんですけどスレチな気がしてこっちに書き直しました。 820 818 助けが欲しいならもうちょっと詳しく書くべき こっちではmkbootimg.cにsha.c sha.hをインクルード後gccで正常�コンパイル出来てる もうちょっとまともなやり方もあるとおもうけどね 821 818 http //hotfile.com/dl/88199283/527d4cd/mkbootimg.html CM版なので、こんな感じで使います ./mkbootimg --kernel kernel.bin --ramdisk ramdisk.bin --cmdline "console=ttyMSM2,115200n8 androidboot.hardware=qcom" --base 0x20000000 --ramdiskaddr 0x04000000 --pagesize 0x1000 -o boot.img 822 IS01でとりあえず動作する bootloderのソースとバイナリです。 JN-DK01ではusb認識するのですが、IS01だと認識せず。 ただし、画面にコンソール出力ができるようになったので デバッグはできると思われます。 http //hotfile.com/dl/88205875/33a5b88/is01_fastboot20101209.tgz.html 632 まずはsystemがマウントできなくてもadb shellでつながるように見るのが先決と思われます。 まずは、recovery領域で・・ default.propとinit.rcを書き換え、adbを電源ON時に起動するようにする。 /sys/devices/platform/usb_periphera/qxdm_enableに1を書き、adbが 電源ON時に有効になるようにする。(ここは、kernelを書き換えてqxdmが有効でなくても 初期をadb接続にするのも手) adbのソースをいれかえて、/system/bin/shではなく、/sbin/shあたりから起動するようにする。 /sbin/の下にbusyboxやそれにシンボリックリンク張られたshを用意 これで、systemがマウントできなくてもadbでとりあえずつながるようになるので、 まずこの環境を用意するのがよいと思います。 720 boot領域に焼いていれば復旧するカーネルができたっぽい。 NVさんありがとうございます。 http //www.megaupload.com/?d=T63HMVRO 既出だったらごめん。 746 誰か 720試した? 749 746 NVさん自身がそのことを書いているのが見当たらない。 boot領域に焼いていれば復旧するカーネルができたっぽい。 これをどう解釈していいのやら。 750 749 ついったーにあるよ 754 746 入れたよ まだsystemまで到達してないからなんとも言えないけど 入れた結果変な挙動なるってことはなさそう 771 recovery_kitは、boot領域に焼いて意味があるものです。 recovery領域に焼いても、現時点ではboot領域を通る必要があるので意味がないです。 929 recovery_kit v1.20を公開。 リカバリメニューを追加しました。 また、自動ブートを追加したので、必要なときだけリカバリメニューを使うことができます。 http //www.megaupload.com/?d=YGH8MHY1 12 recovery_kit v1.25を公開。 起動画面の変更と、adbdを自動起動に戻しました。 http //www.megaupload.com/?d=3LFMY78G 36 Recovery_kit書き込むやつが多いが、Boot領域に書き込むリスクわかってるのか? 1.よくわからないやつ 手を出さないで素直にLinuxを勉強する。 IS01RooterとSDKでコマンドプロンプトからadbで色々遊べる。 2.Swap有効化したい、Adhoc有効化したい Swapやadhocのファイル書き換え程度なら文鎮化するリスクなどほぼ無いので、 Recovery領域にnvさんか仙石さんのカーネルイメージを書き込む。 これなら書き損じても通常Bootでき、文鎮化は回避できる。 又、書き損じて文鎮化するリスクを覚悟出来るなら、 Recoveryをオリジナル、Bootを改造カーネルする。 これなら、わざわざRecoveryから起動する必要がなく、工場出荷状態に戻すが使えるようになる(らしい) 3.adhocやswap以外にSystemをいじりたい(build.porpなど) 起動時に影響するシステムファイルを書き換えるなら、 Recovery_kitを導入したほうが起動時にこけた場合に復旧が可能となるので入れたほうがよさげ。 ただし、Bootを書き換えるので書き損じると文鎮化するリスクあり。 こんな感じか? だいたいの奴は2だろ? Recoveryにカーネル書き込むぐらいで平気だろ。 918 自分で試してみました。やはり、qxdm_enableによってadbdの認識状況が変わるようです。 0だと、放置しても認識しません。 1にすると、ちょっと放置すると認識しました。 qxdm_enableが0でも、recovery領域に通常起動用のカーネルを焼いておくことで、1に設定するために リカバリメニューから通常起動用のカーネルを起動させることが可能です。 また、qxdm_enableを1にするための方法を、次回アップデート時に追加します。 まとめとして、recovery_kitを使用するときは、qxdm_enableを1に設定し、recovery領域に通常起動用のカーネルを 焼いた上で使用してください。 926 918 いろいろ進んでいるみたいでよかったです。bootloader入れることもいろいろ検討しましたが、 ・fastbootのubi対応が面倒くさい(標準では実装がない) ・初回インストール時に結局文鎮化の恐れ自体は存在する(NANDを書き換える点では変わらない) というわけで、NVさんの解法標準領域をRecovery用にしておいて、本来のRecovery領域で再起動する、 が一番スマートかなと思いました。 ちなみに、qxdm_enableに1を書いておくと、adbが有効になる理由は、カーネルソースコードの drivers/usb/function/msm_hsusb.cの4055付近でqxdm_enableだったら、adb_enableにする、っていう 実装が入っていることにより行われます。 echo adb=1 /sys/devices/platform/msm_hsusb_periphera/func_enable でも同様の効果が得られます。 927 recovery_kit v1.30をリリースしました。 qxdm_enableを1にするための項目をリカバリメニューに追加しました。 導入している場合は"必ず"更新をお願いします。 http //www.megaupload.com/?d=D3F66M78 928 918 おおぉ…ということは /recoveryがデフォルトでqxdm_enable=0の状態で入れてしまったら 文鎮(電池充電機能付き)決定ということですね といいつつ懲りずに今日is01もう一つ買ってきました 931 928 v1.25まではそうでしたが、v1.30からqxdm_enableをリカバリメニューから1にできるようになったので、 文鎮化の可能性は低くなってます。 945 IS01のfirmware updateはイノパスソフトウェアのMobile Updateで実現してるらしいね。 http //www.innopath.com/jp/news/press_releases/2010/2010_06_23.shtml SyncML、OMADMなどを参照すると良いかも。 948 945 ひえー。ゴロー君たちはこのバイナリを解析していることに なるのか。本当に乙です。 342 現在の状況ですが、 モデム側のsharp版downloaderモードのパケット解析進行中です。 モデム側のfirmwareは参考ソースもなく、バイナリの量が多くて時間がかかりましたが・・ ダウンロードモードに移行後任意のバイナリをメモリ上に転送するところまで行きましたが、 実行するためには認証チェックがあるためそこをどうにかすることを検討中。 これ利用して、モデム側のfirmwareからfastboot起動することや bootloaderそのものの書きかえもできるようになると思います。 246 244 fi01さん そちらのディレクトリ構成のがわかりやすいですね。 私の方はちょっとごちゃごちゃしてます^^; ふと、思いついたのですが、mount、permission設定 までを init.rc に書き、以降の service 部分などはファイルシステムから include すると boot.img を1回作成するだけで良いかもしれません。 確か、init に import が有ったような気がします。 ドキュメントちゃんと読んでないのでこれからですが、試してみます。 346 246 initのimportコマンドとmountのloop@~も一応動いたから 毎回flash_imageしなくても環境切り替えが可能に出来そうです。 execまで使えるように変更すれば、ほとんどブートローダになりそう。
https://w.atwiki.jp/mitsu_koh/pages/52.html
Arch Linuxを入れたときのメモ ログ 2012.03.03 いろいろ調べたところ、 Arch Gentoo CRUX あたりが面白そうだった。GentooとCRUXはパッケージ管理の際に、ソースからコンパイルするのが面倒そうだった。 Archはパッケージ管理はバイナリでやるらしいのでその辺は楽そう。 あとArchはドキュメントが豊富らしいので、Archをインストールすることにした。 というわけで、バージョン2011.08.19のx86-64 CPUのCore Imageをダウンロードした。 ネット無しでインストールできる方がいろいろ便利そうということでcoreの方にした。 インストールをミスって今ノートパソコンに入っているWindowsとUbuntuを潰したくなかったので、 UbuntuのVirtualBoxにインストールしてみる・・・と思ったけどx86-64のCPUがないといわれてブートできない。 Ubuntuが32bitだからかと思ったけどそうではないらしい。(参考 http //askubuntu.com/questions/21902/run-64bit-os-in-virtual-box-from-32bit-ubuntu) 上をみてBIOSの設定で、VT-xとVT-dを有効にした・・・けどうまくいかないので諦めた。 仕方がないのでi686版のArchをダウンロードして、VirtualBoxにインストール開始。 設定は全部デフォルトのままとりあえずArchマシンを作成。/arch/setupスクリプトを実行してインストール開始。 愛しのviで編集した設定は ホスト名 ネットワークインタフェース名 だけだった気がする。(忘れた) パーティションは以下のように分けた。 sda5 * Logical Linux 100 sda6 Logical Linux swap 256 sda7 Logical Linux 5000 sda8 Logical Linux 3235(残り) マウントポイントとファイルシステムは以下のようにした。 sda5 /boot ext3 sda6 /swap sda7 / ext3 sda8 /home ext3 grubはMBRにインストールしないで終わり。(PBRにインストールする選択肢がなかった。MBRがインストールされてないからか?) (インストール後の/bootにgrubがあるから、デフォルトでPBRにgrubがインストールされて、MBRにインストールするgrubはまた別物?) (/bootにあるのはgrubの設定ファイルとかカーネルであって、grubのブートローダ本体ではなくてカーネルローダのみ) したのリンクからgrub.isoをダウンロードして、Arch Linuxを起動してみる root (hd0,4) kernel /vmlinuz-linux root=/dev/sda7 initrd /initramfs-linux.img boot 起動した。とりあえず今日はここまで。 2012.03.04 grubのインストール状況がよくわかっていないので調査する。 とりあえず現状ではgrub起動ディスクから root (hd0,4) chainload +1 で起動することはできない。(grubがPBRにインストールされていないため?) つまりArchをインストールしたときにインストーラが求めてきたのは MBRのgrub → パーティション内のプログラム という起動処理であって、grubをインストールする候補はMBRしかなかったということ。 とりあえずgrubをPBRにインストールしてみる。/と/bootどっちにインストールすればいいんだ?インストールした方にブート可能フラグを立てればいい?いま/bootにはブート可能フラグが立っているけど、これはいらないのか? とりあえず/bootのブート可能フラグをオフにしてみる。 grub 前と同じ で起動して、 fdiskで/dev/sda5(/boot)にフラグがたってるのを確認。 cfdiskでBootableを選択して、/bootのFlagsをなしにする。wirte。 fdiskで見てみると確かに消えた。 rebootして、 grub 前と同じ で起動した。やっぱり/bootのPBRにはgrubが入ってなくて、grub起動ディスクで/bootの中の設定ファイルとかカーネルとかを読んで起動してるだけという考え方でいいっぽい。 今の状態でHDDから起動しようとすると、ブート可能フラグがたってるパーティションが内的なことを言われて起動できない。ブート可能フラグが/bootにたってる時も同じ。MBRになにもインストールされていないため。 ちなみに今grubでroot (hd0,6)でArchの/をルートにして、find /して保管しようとしても見れない。(たぶんこのへん? http //forums.fedoraforum.org/showthread.php?t=229385) こういう現象を見ると/bootを分けるのはなかなかよさげかもしれない。grubのバージョンが古いだけかもしれない。 次に、/bootのPBRにgrubをインストールして、grub起動ディスクからチェーンロードしてみる。またgurb起動ディスクからブートして、/bootのPBRにgrubをインストール grub-install /dev/sda5 Installation finished. No error reportedと表示された。rebootしてチェーンロードしてみる。 root (hd0,4) chainload +1 してもなにも起きないしエラーも出ない。仕方がないのでgrubからコマンドで起動する。 grubがうまくインストールできてないのか?それともVirtualBoxのせい? というわけでもうVirtualBoxはだいだいいいので、以降は古いノートPCにいろいろ入れてみる。パーティションは Device Boot Type File System Size Label sda1 * Primary ext3 15G Ubuntu_root sda2 * Primary ext3 15G Debian_root sda3 * Primary ext3 15G Arch_root sda4 Extended 35G sda5 Logical Linux Swap 5G Linux_swap sda6 Logical ext3 10G Ubuntu_home sda7 Logical ext3 10G Debian_home sda8 Logical ext3 10G Arch_home のようにする。/bootは分けない。sda1,2,3のPBRにはgrubをインストールして、MBRに何もインストールしないでとりあえずgrub起動ディスクからチェーンロードしてみることにする。 2012.03.05 とりあえず古いパソコンをgrub起動ディスクから起動してみる。 起動ディスクの作成は grub-install --version # grub2であることを確認 sudo grub-install --force --root-directory=/media/usb /dev/sdc1 vaioのパーティションは下のようになっていた。初心者のころにしてはなかなかナイスなわけかたである。一生懸命調べた ) sda1 primary ntfs VAIOリカバリ領域 5G sda2 primary ntfs Windows XP 37G sda3 primary ext3 /boot 200M sda4 extended sda5 logical Linux swap スワップ領域 3G sda6 logical fat32 共通データ領域 5G sda7 logical ext3 /home 12G sda8 logical ext3 / 12G 古いパソコンにusbをさして、hd0がusbメモリになるから、HDDはhd1になる。 まずVAIOリカバリ領域を起動するには、 insmod ntfs root (hd1,1) set root=(hd1,1) drivemap -s (hd0) ${root} chainloader +1 boot Windows XPを起動するには、 insmod ntfs root (hd1,1) set root=(hd1,2) drivemap -s (hd0) ${root} chainloader +1 boot もしくは insmod ntfs root (hd1,1) 次に、Ubuntuを起動するには root (hd1,3) linux /vmlinuxz-2.6.32-22-generic root=/dev/sda8 initrd /initrd.img-2.6.32-22-generic boot で、grub起動ディスクから直接Ubuntuを起動することができる。grub2になってるのでコマンドがややこしいが、 root (hd1,1) でブートローダのある領域を指定 set root=(hd1,2) して drivemap -s (hd0) ${root} でOSの/を指定 chainloader +1 でPBRを読んできて、 boot でブート開始となる Windows XPはぶっ潰してしまおうかと思っていたが、久しぶりに起動したらやっぱり使いやすくていいと思ったので残すことにする。 疲れたので今日はここまで。 ちなみに set root=(hd1,2)を飛ばすとroot (hd1,1)したときにroot=(hd1,1)されるので注意。drivemapはパーティション番号は無視するから、 リカバリ領域は root (hd1,1) drivemap -s (hd0) (hd1) chainloader +1 boot で起動できるし、Windows XPは root (hd1,1) drivemap -s (hd0) (hd1) set root=(hd1,2) chainloader +1 boot で起動できる。set root=(hd1,2)の位置はとても重要で、chainloaderがPBRを読んでくる際に、ファイルシステムの/はどこなのかを、 ${root}から読み取っているようなので、chainloaderより後ろでroot=(hd1,2)してもroot (hd1,1)したときに設定された(hd1,1)を/として 読んでしまうので、その場合はリカバリ領域が起動してしまう事に注意。 2012.03.06 Windows XPはやっぱり残すことにしたので、パーティションは以下のようにする。 Device Bootable Part Type FS Type Mount Point Label Size sda1 primary ntfs VAIOリカバリ領域 5G sda2 boot primary ntfs Windows XP 40G sda3 boot primary ext3 / Arch_root 10G sda4 extended sda5 logical Linux swap Linux_swap 4G sda6 logical ext3 /home Arch_home 5G rest logical another OS 16G MBRには現在grubが入っている。Archをとりあえず今のUbuntuの所にインストールして、MBRにはgrubをインストールしない。 こうするとMBRに居座っているgrubの本体があるUbuntuの/が消えるから起動しなくなるはず。 あとでsda3のPBRにgrubをインストールして、MBRにはマルチブートマネージャを入れる予定。 まずArchを入れる。パーティションはcfdiskが結構よさげなのでこれで区切る。 なんかwaitingどうたらというエラーが出た。どうやらArchのイメージの場所がわからないようである。 dmesg ln -s /dev/USB外付けディスクのデバイス名 /dev/でてきたエラーメッセージのパス で解決した。(参考 https //bbs.archlinux.org/viewtopic.php?id=129618 と https //bbs.archlinux.org/viewtopic.php?id=77815) どうやらddコマンドを使わないでisoを直接焼くと、ブート時に読み込むラベル(menu.lst)かなんかが正しく設定されてないから、 どこに読みに行けばいいか解決できないみたい。(ようするにdd使えということ) kmですきなキーマップにしてから、(qwerityのemacs2とかにするとCaps LockがCtrlになっていい) /arch/setup でインストール開始。全部デフォルトでインストール。(あとで入れればいい) 設定するのは HOSTNAME="Esthar" interface=eth0 pacman.conf は全部のリポジトリをInclude (いろいろ使ってみたいので) mirrorlist はとりあえず日本のサーバを指定 Root-Password ホスト名はいつもFinal Fantasyの地名からとってる。今回は近代的なマシンを目指すという意味で8のエスタという街にした。 ミラーリストはあとで一番早いのに設定しなおす。 Install bootloaderはとりあえず設定ファイルの感じだけみてCancel。(PBRに入れたい人はあとで勝手に入れろということか) Execution ReportでInstall bootloaderだけFailedになってるのみてインストール完了。 まちがってUSBドライブ抜いたらrebootできなくなったので電源プッチンする。 とりあえず現在、MBRにはgrubが入っていて、grubの設定ファイルとかがあったUbuntuの/(か/boot。どっちか忘れた)が消えたので grub rescueシェルが起動する。とりあえずWindowsが氏んでいないことを確認する。 ls (hd0,x)/ すると中身が見れる。・・・けどntfsとかはモジュールが無いので読めない。grubのカーネルローダ本体はあるっぽい。(stage*とかはある) なのでgrub起動ディスクからとりあえずWindowsとArchを起動する。Windowsは前と同じコマンドで起動する。 Archはまだ/のPBRにgrubがインストールされてないので、 root (hd1,3) chainloader +1 boot としてもだめなので、(chainloader +1でerror invalid signature.) root (hd1,3) linux /boot/vmlinuz-linux root=/dev/sda3 initrd /boot/initramfs-linux.img boot で起動できる。とりあえずgrubを/のPBRにインストールすることにする。 grub-install /dev/sda3 でdrive.mapが合ってるか確認してreboot、grub起動ディスクから起動して、 root (hd1,3) chainloader +1 (今度はエラーは出ない) boot とするとgrubのOS選択画面が出てくるから、てきとうに選んでみると Booting Arch Linux root (hd0,2) Error 22 No such partition Press any key to continue..._ と言われてしまうので、Arch Linuxがハイライトされているgrubメニューでe(Edit)を押して、 root (hd0,2) = (hd1,2) に変更 (grub-legacyはsuffixが0オリジンだったりコマンドが違ったりする・・・) b(Boot)を押すと起動する。(一時的な書き換え) もしくはgrub rescureを起動させて、とおもったらnormal.modが無い。どうやらnormal.mod自体はgrub legacyには無いらしい。 (参考 https //forums.ubuntulinux.jp/viewtopic.php?id=10578 と ) 今はMBRにgrubが入ってないから、grubのメニューとかシェルを実行することができる段階までgrub rescureから行く手段がない? (仕組みがgrub2で変わった) みたいな感じらしいので(合ってるか知らんが)とりあえずMBMいれるしもういいやという感じ。 まあMBR(もしくはMBRの途中といってもいい?)から先が無い時点でかなり変な状況だししょうがない。 MBMを入れていく。したのサイトを参考にして作成。 れでMBM ブートローダ(あんまり正確な表現ではないかも)、grub カーネルローダとなっていい感じ。 参考文献 ブート関連 Grubによるマルチブート時のチェーンロードの考え方 GRUB入り起動CDを作る Tips マルチブートするなら2段階ブート方式に統一しよう Windows/Linux混在環境での二段階ブートの確立方法 パーティション関連 「プライマリパーティション」と「拡張パーティション」の違い
https://w.atwiki.jp/sevenlives/pages/372.html
ブートローダー【boot loader】 読み:ぶーとろーだー 英語:boot loader 別名:ブートストラップ・ローダー 意味: ブートローダーとはコンピューターの起動直後に呼び出されOSを呼び出すソフトのこと。 通常はMBRというハードディスクの先頭の領域に入っておりマザーボードに埋め込まれているROM?のBIOSという起動用プログラムから呼び出される。 ブートローダー自体には規格がなく各OSによって様々な形が存在する。 OSを選択できるタイプのブートローダーもありWindowsとLinuxを使い分けることもできる。 2008年10月09日 マルチブート? NTLDR LILO? GRUB MBR BIOS
https://w.atwiki.jp/arduino/pages/35.html
color激安Arduinoの作り方2→http //www15.atwiki.jp/arduino/pages/56.html mega88 or mega88Pでarduinoを作ります。 そのうちmega8やmega644もarduino化したい。 材料Arduino Duemilanove AVR mega88 or mega88P 小さいブレッドボード&配線材&LED Arduino 015 mega88を登録する ブートローダの準備ブートローダのソースコード編集 ブートローダをビルドする ブートローダを焼くDuemilanoveとmega88のピンの対応 ブレッドボード&mega88とDuemilanoveの接続の手順 ブートローダを焼くmega88 mega88p スケッチを実行するシリアル通信の方法DuemilanoveをUSBシリアル変換機として使いたい ブートローダ無しでスケッチを直接書き込むmega88チップの初期化 スケッチをビルド Arduino Duemilanoveとの違いプログラムサイズ メモリ クロック 参考サイト TODOmega8 200円 材料 Arduino Duemilanove 母艦として。 AVR mega88 or mega88P mega88P 250円 http //akizukidenshi.com/catalog/g/gI-02268/ mega88 残り物 小さいブレッドボード&配線材&LED EIC-301 150円 http //akizukidenshi.com/catalog/g/gP-00313/ EIC-801 250円 http //akizukidenshi.com/catalog/g/gP-00315/ Arduino 015 mega88を登録する (todo) ブートローダの準備 ブートローダのソースコード編集 (todo) ブートローダをビルドする (todo) ブートローダを焼く Duemilanoveとmega88のピンの対応 http //arduino.cc/en/Main/ArduinoBoardDuemilanove http //arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf Duemilanove mega88 D0(RX) 2 D1(TX) 3 D2 4 D3 PWM 5 D4 6 D5 PWM 11 D6 PWM 12 D7 13 ----------- ----- D8 14 D9 15 D10 16 D11 17(MOSI) D12 18(MISO) D13 LED 19(SCK) GND 8,22 AREF 21 ----------- ----- A0 23 A1 24 A2 25 A3 26 A4 27 A5 28 ----------- ----- RESET 1 3V3 --- 5V 7,20 GND GND GND GND ----------- ----- (XTAL1) 9 (XTAL2) 10 ブレッドボード&mega88とDuemilanoveの接続の手順 ブレッドボードにmega88をさす Vccラインとarduinoの5Vを接続 GNDラインとarduinoのGNDを接続 pin7とVccを接続 pin22とGNDを接続 pin22とpin8を接続(チップを乗り越える) pin20とpin7を接続(チップを乗り越える) pin18とarduinoのX3 1 pin19とarduinoのX3 2 pin17とarduinoのX3 3 pin1とarduinoのX3 4 ブートローダを焼く BitBang Mode AVR-Writer on Macを参照。 mega88 (チップ消去) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -e (fuse書き込み[L E2,H DD,E 00]) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -U lfuse w 0xE2 m -U hfuse w 0xDD m -U efuse w 0x00 m (ブートローダ書き込み) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \ -U flash w ATmegaBOOT_168_atmega88_8MHz.hex i (ブートローダ領域をロック[L 0F]) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \ -U lock w 0x0F m 参考 http //hwhack.blogspot.com/2009/03/arduino-13-atmega88.html mega88p ./mega88pの場合 スケッチを実行する ブートローダが焼けたら立派な激安Arduino。 あとは、RX,TXにTTLレベルでのシリアル通信すればいい。 シリアル通信の方法 USBシリアルケーブル+レベル変換 Duemilanoveのシリアル変換チップ UP-12Cを買う などがある。 DuemilanoveをUSBシリアル変換機として使いたい ここはなんとかDuemilanoveでやりたい。 Arduinoの開発環境でmega88uinoにアップロードしたい。 それがダメならavrdudeからhexをカキコみたい。 mega88uinoのリセットは手動で我慢するとしても、 シリアルポートを開いたときにDuemilanoveが自動的にリセットしてしまうので Duemilanove搭載のブートローダが動作してしまう。 auto resetを無効にするには、 Duemilanove基板のDTRのパターンを切る→あとで面倒 avrdude(かドライバ?)がDTRを使わない/送信しないようにする http //www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1204641836 avrdudeを改造かな。 DTRしないオプションをつける シリアルポートを開いてからDuemilanoveのブートローダの待ち時間分、通信をまったく無視するオプションを付ける とか。 めんどくさい。UP-12C買った方が良さそうだ。 ブートローダ無しでスケッチを直接書き込む ブートローダの分、大きなスケッチを書き込むことができる。 mega88 チップの初期化 (チップ消去) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -e (fuse書き込み[L E2,H DD,E 01]) ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \ -U lfuse w 0xE2 m -U hfuse w 0xDD m -U efuse w 0x01 m スケッチをビルド ArduinoエディタのメニューTools- Board- ATMega88(8MHz)を選択して、転送ボタンを押す。 エラーになるがスケッチのフォルダのappletフォルダのなかに*.hexができている。 これを書き込む。 (プログラム書き込み) cd applet ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \ -U flash w Wiki_Hotal.hex i Arduino Duemilanoveとの違い mega168/mega328/mega88P/mega88/mega8/mega644の違い。 プログラムサイズ メモリ クロック 参考サイト http //www.geocities.jp/arduino_diecimila/obaka/project-2/ http //bird.dip.jp/mt/archives/2008/04/19/1649.html http //hwhack.blogspot.com/2009/01/arduino88.html http //72.14.235.132/search?q=cache imZpo9p6XZIJ isi.kicks-ass.net 8080/isi/bakilog-2.0/isiduino-mini+section-start%3D.text%3D0x1800 cd=9 hl=ja ct=clnk gl=jp TODO mega8 200円 http //akizukidenshi.com/catalog/g/gI-02868/ これも使える?
https://w.atwiki.jp/metalmetabo/pages/27.html
- visitors Metabolic network analysis B Christensen, J Nielsen - Bioanalysis and biosensors for bioprocess …, 2000 - Springer http //scholar.google.com/scholar?q=related PiGOMNyMhjYJ scholar.google.com/ hl=ja as_sdt=2000 Metabolic network analysis is a tool for investigating the features that identify the topology of a metabolic network and the relative activities of its individual branches. The pillars of metabolic network analysis are mathematical modeling, allowing for a quantitative analysis, ... Metabolic network analysis of the causes and evolution of enzyme dispensability in yeast B Papp, C Pál, LD Hurst - Nature, 2004 - nature.com http //scholar.google.com/scholar?q=related 0sM60oXJ2jQJ scholar.google.com/ hl=ja as_sdt=2000 Under laboratory conditions 80% of yeast genes seem not to be essential for viability 1 . This raises the question of what the mechanistic basis for dispensability is, and whether it is the result of selection for buffering or an incidental side product. Here we analyse these issues ... Genealogy profiling through strain improvement by using metabolic network analysis metabolic flux genealogy of several generations of lysine-producing … nih.gov [HTML]C Wittmann, E Heinzle - Applied and environmental microbiology, 2002 - Am Soc Microbiol http //scholar.google.com/scholar?q=related 49I4bRT2XYIJ scholar.google.com/ hl=ja as_sdt=2000 A comprehensive approach of metabolite balancing, 13 C tracer studies, gas chromatography-mass spectrometry, matrix-assisted laser desorption ionization-time of flight mass spectrometry, and isotopomer modeling was applied for comparative metabolic ... Metabolic network analysis of Penicillium chrysogenum using 13C-labeled glucose B Christensen, J Nielsen - Biotechnology and …, 2000 - interscience.wiley.com http //scholar.google.com/scholar?q=related 9XjgWNCKNqMJ scholar.google.com/ hl=ja as_sdt=2000 To provide a rational approach for directed genetic alter- ations in microorganisms, often referred to as metabolic engineering (Bailey, 1991; Stephanopoulos, 1999; Yarmush and Berthiaume, 1997), a detailed map of the fluxes in the central metabolism is an essential ... Metabolic network analysis of Bacillus clausii on minimal and semirich medium using 13C-labeled glucose T Christiansen, B Christensen, J Nielsen - Metabolic engineering, 2002 - Elsevier http //scholar.google.com/scholar?q=related GeX9jXLzh3EJ scholar.google.com/ hl=ja as_sdt=2000 Using 13 C-labeled glucose fed to the facultative alkalophilic Bacillus clausii producing the alkaline serine protease Savinase, the intracellular fluxes were quantified in continuous cultivation and in batch cultivation on a minimal medium. The flux through the pentose phosphate ... Genome-scale metabolic network analysis of the opportunistic pathogen Pseudomonas aeruginosa PAO1 nih.gov [HTML]MA Oberhardt, J Puchalka, KE Fryer, VAP … - Journal of …, 2008 - Am Soc Microbiol http //scholar.google.com/scholar?q=related isrhQUVHkSMJ scholar.google.com/ hl=ja as_sdt=2000 Pseudomonas aeruginosa is a major life-threatening opportunistic pathogen that commonly infects immunocompromised patients. This bacterium owes its success as a pathogen largely to its metabolic versatility and flexibility. A thorough understanding of P. aeruginosa s ... A metabolic network stoichiometry analysis of microbial growth and product formation WM Van Gulik, JJ Heijnen - Biotechnology and …, 1995 - interscience.wiley.com http //scholar.google.com/scholar?q=related p9UTGWFLJJUJ scholar.google.com/ hl=ja as_sdt=2000 ... Other work on metabolic network analysis using linear op- timization techniques has been performed on hybridoma cell Esehenchiu coli metabolism,3 .32 and acetate overflow in E. c01i.""~ Following the approach to solve underdetermined metabolic networks by conducting ... Metabolic network analysis of lysine producing Corynebacterium glutamicum at a miniaturized scale C Wittmann, HM Kim, E Heinzle - Biotechnology and …, 2004 - Wiley Online Library http //scholar.google.com/scholar?q=related B7ezo5R5OxIJ scholar.google.com/ hl=ja as_sdt=2000 Abstract We present a straightforward approach com- prising 13C tracer experiments at 200-AL volume in 96-well microtiter plates with on-line measurement of dissolved oxygen for quantitative high-throughput metabolic net- work analysis at a miniaturized scale. This ... Large-scale 13C-flux analysis reveals mechanistic principles of metabolic network robustness to null mutations in yeast biomedcentral.com [HTML]LM Blank, L Kuepfer, U Sauer - Genome Biology, 2005 - biomedcentral.com http //scholar.google.com/scholar?q=related TodhI8VNW54J scholar.google.com/ hl=ja as_sdt=2000