玄箱/HG のカーネル入れ換え


玄箱/HG のカーネルを入れ換えてみる。
以前試したフラッシュを書き換える方法ではなく、 http://jan.csie.ntu.edu.tw/~jo/kuro/loader/README で紹介されている方法をとる。

玄箱/HG カーネル作成

カーネルソースの取得

たつやさんのサイトから カーネルソース(linux-2.4.17_mvl21-sandpoint_040729.tar.gz)をいただいてくる

カーネルソースの展開

bash-2.04$ tar zxvf linux-2.4.17_mvl21-sandpoint_040729.tar.gz

Makefile の編集

bash-2.04$ cd linux-2.4.17_mvl21-sandpoint
bash-2.04$ mv Makefile Makefile.orig
bash-2.04$ cp Makefile.orig Makefile
bash-2.04$ vi Makefile
INSTALL_MOD_PATH をコメントアウトする
bash-2.04$ diff -c Makefile.orig Makefile
*** Makefile.orig       Sat Jun 12 23:16:03 2004
--- Makefile    Sun Apr 24 04:37:16 2005
***************
*** 101,107 ****
  #                     echo -n "`hhl-whereami`/../../devkit/`cat .hhl_target_installdir`/target"; \
  #     fi)

! INSTALL_MOD_PATH := /mnt/system/kernel
  MODLIB        := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
  export MODLIB

--- 101,107 ----
  #                     echo -n "`hhl-whereami`/../../devkit/`cat .hhl_target_installdir`/target"; \
  #     fi)

! #INSTALL_MOD_PATH := /mnt/system/kernel
  MODLIB        := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
  export MODLIB

bash-2.04$

ターゲット名

玄箱/HG のカーネルは、
bash-2.04$ uname -a
Linux hackkit 2.4.17_mvl21 #24 2004年 10月 19日 火曜日 17:17:03 JST ppc unknown
と、2.4.17_mvl21 なので、.hhl_target_lspname は要らない。
bash-2.04$ rm .hhl_target_lspname

セルフコンパイルの指定

bash-2.04$ rm .hhl_cross_compile

コンパイル

bash-2.04$ make hdhglan_config
bash-2.04$ make oldconfig
bash-2.04$ make dep
bash-2.04$ make
bash-2.04$ objcopy -O binary vmlinux vmlinux.bin

loder のコンパイル

ソースの展開

bash-2.04$ tar zxvf loader.tar.gz
bash-2.04$ cd loader

Makefile の修正

カーネルソースは /usr/src/linux に見えるように シンボリックリンクしてあるので、 Makefile を修正する。
bash-2.04$ mv Makefile Makefile.orig
bash-2.04$ cp Makefile.orig Makefile
bash-2.04$ vi Makefile
bash-2.04$ diff -c Makefile.orig Makefile
*** Makefile.orig       Sat Jan  1 03:25:02 2005
--- Makefile    Sun Apr 24 05:19:07 2005
***************
*** 1,5 ****
  CFLAGS = -Wall -O2 -DMODULE -D__KERNEL__
! INCLUDE = -isystem /usr/src/linux-2.4.17_kuro-box/include/

  loader.o: loader_mod.o loader_boot.o
        ld -r loader_mod.o loader_boot.o -o loader.o
--- 1,6 ----
  CFLAGS = -Wall -O2 -DMODULE -D__KERNEL__
! #INCLUDE = -isystem /usr/src/linux-2.4.17_kuro-box/include/
! INCLUDE = -isystem /usr/src/linux/include/

  loader.o: loader_mod.o loader_boot.o
        ld -r loader_mod.o loader_boot.o -o loader.o
bash-2.04$

コンパイル

bash-2.04$ make

新しいカーネルの実行

いよいよ実行するぞっと。
[root@hackkit yasunari]# sync
[root@hackkit yasunari]# insmod loader/loader/loader.o kernel=kernel/linux-2.4.17_mvl21-sandpoint/vmlinux.bin
だんまり。
telnet にも応えない
ping にも応えない

シリアルコンソールつけないと何がおこっているのか全然わからない。




サインは VGA
ハックの記録
LinkStation/玄箱 をハックしよう

HD-HGLAN ソース CD

Copyright (C) 2005 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市