FreeLinkのカーネルバージョンを簡単に上げよう!

※この方法はLS-GL(国外ではLSPro)にFreeLinkを導入している方が対象です。

LS-GLにFreeLink1.0rev2を導入するとKernelのバージョンが2.6.12.6で導入されます。
メーカー標準のファームでは2008年1月現在2.6.16.16が入ります。

そこでFreeLinkのKernelを2.6.16.16に上げようというのが今回の企画です。

まず最初にやったのがソースを拾ってきてコンパイルでした。
コンパイルに必用なパッケージを入れたりconfigファイルを設定したり割と面倒です。
コンパイルに要する時間も非常に長いです。

誰かビルドしている人はいないのか?と調べたところFreeLinkがあるサイトのDLディレクトリにあるではありませんか!
これを使わない手は無いです(笑)

さてこれより超簡単なKernel入れ換えに入ります。

1./bootディレクトリに移動します。
コマンド:cd /boot

2.wgetでコンパイル済みファイルをDLします。
コマンド:wget http://downloads.nas-central.org/Users/mindbender/arm9/KERNEL/2.6.16.16-arm1-mb_v1/uImage_2.6.16.16-arm1-mb_v1

3.現在のKernelファイルに_oldを付けてリネームします。
コマンド:mv uImage.buffalo uImage.buffalo_old

4.wgetしたファイルをuImage.buffaloとして動くようにシンボリックリンクを張ります。
コマンド:ln -s uImage_2.6.16.16-arm1-mb_v1 uImage.buffalo
(以前のKernelに戻すにはrm uImage.buffaloでシンボリックリンクを削除しln -s uImage.buffalo_old uImage.buffaloで以前のKernelにシンボリックリンクを張ればOKです)

Kernelの入れ換えはこれだけです!(僅か4ステップ)
※しかしここで再起動してはいけません!
新Kernelのモジュールが入っていませんので動きません。

新Kernel用のモジュールも導入します。

1.作業ディレクトリに移動します。(ここでは/tmpとしてます)
コマンド:cd /tmp

2.wgetでモジュールファイルを取得する。
コマンド:wget http://downloads.nas-central.org/Users/mindbender/arm9/KERNEL/2.6.16.16-arm1-mb_v1/modules_2.6.16.16-arm1-mb_v1.tar.gz

3.取得したファイルを解凍する。
コマンド:tar -C / -xzvf modules_2.6.16.16-arm1-mb_v1.tar.gz

4.解凍したモジュールを登録する。
コマンド:cd /lib/modules/2.6.16.16-arm1-mb_v1
コマンド:depmod -a

これでモジュールの導入も完了です!(僅か4ステップ)

さて再起動してみましょう・・・

順調に起動しているように見えたが最後の方でcat /proc/driver/kernevntが無いというエラーが連発して
TeraTermの画面を埋め尽くしていきます(^^;
このエラー表示はシリアルコンソールの画面でしか確認できません。
telnetで接続しても普通に動いているようにしか見えません。
この状態では電源ボタンを長押ししてもシャットダウンしない状態になっています。
またtopコマンドでプロセスの使用状況を見るとkernelmonというプロセスが表示されます。
シリアルコンソールで接続していない場合はこれで確認できます。

色々調べてみると今回のKernelと以前のKernelでkernevntを吐き出している場所が違うようです・・・
そこでkernelmonスクリプトの書き換えを行います。

ここからはシリアルコンソール経由からはログが流れて操作出来ない状態になっているのでtelnetで接続して作業を行います。

コマンド:vi /usr/local/sbin/kernelmon

“cat /proc/driver/kernevnt”と書いてある部分がすぐに見つかると思います。
ここを”cat /proc/buffalo/kernevnt”に書き換えて保存します。

これでエラーの対処も終わりましたのでrebootします。
再起動後にエラーが出ない状態になればファームの更新作業は無事終了です。
電源ボタンの長押しで再起動するようになっているはずです。
超簡単Kernelバージョンアップはこれにて終了です!

今後も標準ファームで新Kernelが登場したら簡単入れ換え可能であればやってみようと思います(笑)

コメントを残す

メールアドレスが公開されることはありません。