CUBOXの話、続き。
前回まででDebianのネットワーク・インストーラは立ち上がったので、以降の挙動など。
前回でu-bootでdebianのインストーラーイメージを展開し、起動するところまでいったので、本来はそれで終わり・・・なんだけど、何点かポイントあるのでそれを。
まずこの時点で「それどうよ?」という感じですが、コンソール画面だといつも見るインストーラと当然少し違ってるわけで。
おまけにたぶん化けてるのよな?意味通らないしw
しかしよくみて想像力働かせればOK。
ということでここは言語の選択。
インストーラの表示言語ではなく、インストールするシステムのそれなので、上段の「C」を選ぶ。
次にタイムゾーンを選びます。
ASIA⇒JAPANと選択。
まあこのあたりはインストール後でも当然変更可能なので。
ホスト名の設定。デフォルトはdebianと入ってますがここらも事後変更OKなので、お好みで。
インストールイメージ引っ張ってくるftpのミラーサイトを選択。まず国を選んで―
国内のサイト一覧からサーバを選択。
ここで「カーネルモジュールみつからないっすけどインストールすすめていいっすか?」ときいてくる。
かまわないので「yes」選択。
「ソフトウェアRAID効かないけどいいの?いいの?いいの?」
いいんだよ、黙って進めw(このあと何度か出てくるが全部continueでOK)
さて、ここからが若干問題。
microSDをHDD代わりにファイルをインストールしていくわけだが、microSD上にパーティションをどう切るか―。
もっとはっきりいってしまうと「/boot」を独立パーティションにするか否かの問題。
実はここの選択次第で、標準添付のmicroSD からコピーしたboot.scr(スクリプトファイル)がそのまま使えるかどうかが違ってくる。
公式どおりにやるなら、/bootは独立パーティション―それ用に、この段階でパーティションを切ってしまわなければならない。
なぜかというと、boot.scrファイルをテキストエディタなどで見てみればわかると思うが、ここで実はインストール後のuImageの場所を記載してあり、それを参照してシステムが起動するようになっているからだ。
上記はパーティションを切らないケース用に自分で作り直したboot.scr。
みてもらえばわかると思うが、root=のセクションで、ルートディレクトリの場所の指定が
root=/dev/mmcblk0p1となっている。
これが/boot用に独立して一つパーティションを用意すると
root=/dev/mmcblk0p2となる。(パーティション切ってあるのでp1⇒p2へ)
ここの指定が違うと、当然ながらカーネルは起動してもマウントすべきルートディレクトリ、ひいてはインストールされたファイルが見つからない、ということでシステムが起動しない。
また、/boot用パーティションを公式どおりに独立して用意しても、ほかのディレクトリ用のパーティションを気を利かせて用意した場合も、場合によってはこのパーティション番号が一致せず起動しない、というケースも考えられる。
なのでここはすこし慎重に選択したほうが良い。
自分はテストを兼ねてのインストールだったので、試行錯誤の結果けっきょくパーティションを切らずに1パーティションで入れてみた。
公式どおりに行くなら単純に「/boot」ディレクトリだけ切ってしまえばいい+「boot.scr」も作り直さなくて良いので、それが一番手っ取り早いだろう。
もし、boot.scrを作り直すのならば、再度mkimageの登場となる。
基本はスクリプトファイルなので、書式に沿ったテキストファイルを用意し、mkimageで変換するだけ。
自分が用意した1パーティション用の設定は以下。
setenv bootargs ‘console=ttyS0,115200n8 vmalloc=384M root=/dev/mmcblk0p1 video=dovefb:lcd0:1024×768-32@60-edid clcd.lcd0_enable=1 clcd.lcd1_enable=0’
echo ======== Loading kernel ========
ext2load mmc 0:1 0x00200000 /boot/uImage
echo ======== Booting kernel ========
bootm
Xwindowを入れた際にどうもdebian上ではディスプレイの解像度が安定しないので、安定する解像度の設定も入れてある。(video=dovefb:lcd0:1024×768-32@60)
これをmkimageで変換した。
<boot.scr>起動スクリプトをuboot形式に変換
mkimage -A arm -O linux -T script -C none -n “boot.scr” -d boot.txt boot.scr
まあ本来このあたりは、事前の準備段階で処理しておくべきところだけれど、説明上はこの流れで書いたほうがよかろう、ということでここで書きました、と。
では上記に気をつけて、以降続き。
パーティションを切らない設定のboot.scrなので、パーティションは切らずに続行する。
miscorSDの容量が8.2GBとなってるのは、今回スクリーンショットとか撮るのを兼ねて、もう一度入れなおしたので。
(あまってた8.2GBのものを使ったわけです)
SCSI2と出ているのは、差しっぱなしのUSBメモリ(4.0GB)
また、意図的に切らなくてもswapファイルは当然自動的に切ってくれてる。
(このあたりの量を調整したいのならマニュアルで切るべきでしょう)
パーティショニング実行中・・・・・。
それが終わるとベースシステムのインストールが勝手に始まりまる。
回線速度によりけりだけど、ぼちぼち時間がかかる。
また「カーネルねえっすよ!?いいんすか!」メッセージ。
いいんだよ。黙ってすすめれw
枠が化けてるのはこの前後で文字化けが激しくなったのでteratermの「編集⇒バッファのクリア」「設定⇒設定の読み込み」で保存しておいた設定を読み直し、いちど画面をクリアしたから。
これをやれば、あまりひどくない文字化けの場合は、インストールの進行過程で、再描画するタイミングで画面はある程度戻る。
で、使用サービスの選択画面に。
ここらで必須なのはsshdぐらいか。あとはお好みで。
Xwindow関連を使ってみたいなら、ここで入れておいたほうが楽ではある。
(ただしいらないオフィス系ソフトなどもまとめて入るっぽいのでインストール時間はけっこうかかる)
で、ここが無事終了すると、インストール終了を聞いてくるが―。
ここで終わっちゃダメっす!
USBメモリからboot.scrとuImageをコピーするのを忘れちゃいけない!
<Go Back>!!
<Go Back>を選択すると、インストールの各メニューを選択できるメニュー画面に戻るので、そのなかから「シェルを実行する」を選ぶ。
Excute a shell !!(シェルの実行!)
そうすると、おなじみのコマンドライン・インターフェイスに。
この状態は、もう普通のLinuxでのシェル操作ができるので、USBメモリをマウントし、cpコマンドで該当のファイルをmicroSDのなかにできている「/boot」フォルダへコピーしてやる。
まず、USBメモリのつなぎ込み。
該当のデバイスファイル名がわからない場合は、USBメモリ抜き差ししたあと、dmesgコマンドで末尾のほうを確認⇒抜き差しの挙動のログが出てくるのでそれで。
マウント先はご覧の通り―めんどくさいので、ざっくりと「/mnt」ディレクトリへつなぎました。
つづいて、インストール先の確認。
ここは公式wikiにも書いてありますが、単純に「/boot」フォルダじゃないので要注意!
インストール作業のために、フォルダ構成が仮構成されている状態なので、本来のルートディレクトリ以下のファイルは「/target」フォルダ配下に格納されている。
(本来の「/」(ルートディレクトリ)を「/target」としてマウントしている)
なのでそれに従い、たどっていくと「/target/boot」フォルダ、となる。
で、双方確認を終えたら、必要なファイルをコピーする。
コピーの際は、マウント先のUSBメモリのディレクトリ(「/mnt」)から行うと、ファイルの絶対パスを指定しなくていいので、少しだけ幸せになれますw
以下、操作画面。
(syncと打つのは遅延書き込み対策だそうな)
さて、念のためコピー後のファイルの所在を確認したら、これにて必要な作業は全て完了。
exitでshellを抜けて、インストールメニューから、「Finishing installation」を選んで、今度こそ、ほんとに終了させる。
(仮構成でつなぎこんでたファイルシステムがアンマウントされる)
で、ほっとくと、勝手に再起動します。
このあと、このままこのコンソール画面上で、システムの起動プロセスがだらーっつと出てきて、固まったり、繰り返したりがなければ、インストール成功。
はい、ということでログイン画面が出てきました。
これにて、いちおう一件落着!
とまあ、簡単にまとめてみましたが。
簡単にまとめられるほど裏で失敗したわけでw
以降、気力があれば、その失敗談をいくつか・・・orz
(以降次回)
本文とかんけーないですが、「リラクマ」ファンすか?楽しそうな部屋ですねえ・・・
特に強烈なファンというわけではないですが、かわいいですね、リラックマw
この子らは数年前にコンビニでお茶買ったときについてきました。