sh-lilo-selでブート
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*sh-lilo-selを使ってみる。 [#z6687119]
-''はじめに''~
mizore Wikiさん作のsh-lilo-selを使うと、複数の環境を切り...
[[SH用セレクタ付ブートローダ@mizore Wiki:http://www.mizo...
~
-''パーティション構成''~
/dev/hda1,hda3,hda4からブート可能なように設定してみる。~
#pre{{
landisk:~# fdisk -l /dev/hda
Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 9 72261 83 Linux &co...
/dev/hda2 10 79 562275 82 Linux swap...
/dev/hda3 80 6454 51207187+ 83 Linux &co...
/dev/hda4 6455 19457 104446597+ 83 Linux &co...
}}
-''/dev/hda1でブートして環境設定''~
まずLANDISKオリジナル環境を起動して、ルートファイルシステ...
#pre{{
# mount -o rw,remount /
}}
-''sh-lilo-sel-20040408.tar.gz''~
mizore Wikiさんのページから、sh-lilo-sel-20040408.tar.gz...
そして、展開して、sh-lilo-sel-20040408/precompiled/boot.b...
(オリジナルファイルを残しておきたかったのでリネームしまし...
#pre{{
/boot/boot.b-sel
/sbin/lilo-sel
}}
-''/etc/lilo.conf''~
lilo.confを次のように編集~
#pre{{
linear
boot=/dev/hda
disk=/dev/hda
bios=0x80
timeout=50
install=/boot/boot.b-sel
default=landisk
image=&color(red){/boot/zImage};
label=landisk
&color(red){root=/dev/hda1};
read-only
append="mem=64M console=ttySC1,9600"
image=&color(red){/boot/vmlinuz-2.6.11-sh};
label=debian26
&color(red){root=/dev/hda4};
read-only
append="mem=64M console=ttySC1,9600"
image=&color(red){/boot/vmlinuz-2.6.11-sh};
label=FedoraCore2
&color(red){root=/dev/hda3};
read-only
append="mem=64M console=ttySC1,9600"
}}
-''kernel等の準備''~
kernelとboot.b関係は、/dev/hda1の/boot下にまとめて置く事...
(/dev/hda1に置くのは、HDDの1024シリンダ問題を回避するため...
#pre{{
# ls -la /boot
total 2287
drwxr-xr-x 2 root root 1024 Jun 6 20:47 .
drwxr-xr-x 15 root root 1024 Dec 24 16:25 ..
-rw-r--r-- 1 root root 512 Apr 10 2004 bo...
-rw-r--r-- 1 root root 512 Nov 7 2003 bo...
-rw-r--r-- 1 root root 2248 Sep 8 2003 bo...
&color(red){-rw-r--r-- 1 root root 2920 Jun...
-rw------- 1 root root 41984 Jun 6 20:13 map
&color(red){-rw-r--r-- 1 root root 1298432 Jun...
-rwxr-xr-x 1 root root 978185 Dec 25 2003 zI...
}}
-''lilo-sel実行''~
#pre{{
# lilo-sel
Added landisk *
Added debian26
Added FedoraCore2
}}
-''リーブート''~
#pre{{
LILO boot:
1 : landisk
2 : debian26
3 : FedoraCore2
Select boot image -> 2
Loading debian26..........................done.
Uncompressing Linux... Ok, booting the kernel.
Linux version 2.6.11-sh (root@landisk) (gcc version 3.4.4...
}}
お〜すばらしい。/dev/hda4上のdebian26がkernel-2.6と共に起...
~
-''その他 … /dev/hda3上からliloを打つ場合''~
様々な所で紹介されているクロスでliloを打ち込む要領で。~
#pre{{
landisk:~# mount -t ext2 /dev/hda1 /mnt/hda1
landisk:~# /mnt/hda1/sbin/lilo-sel -r /mnt/hda1 -C /etc/l...
Added landisk *
Added debian26
Added FedoraCore2
}}
※ -r オプションは、chroot /mnt/hda1 /sbin/lilo-sel -C /et...
~
*sh-lilo-selを少し改造してみる … sh-lilo-sel改[#ff772c62]
-''シリアルコンソールいらずに…''~
sh-lili-selは大変便利なのですが、いかんせん、シリアルコン...
そこで、シリアルコンソールなしでも、ブート選択できるよう...
~
-''電源ボタンでブート選択''~
次のような手順で2種類のブートラベルから起動できる機能を...
--電源ボタンをONにして5秒経過すると、1番目のラベルから...
--電源ボタンをON→OFF、そしてHDDの回転が安定したころ再度ON...
パチ(ON)パチ(OFF)、ぶ〜ぅん、一呼吸してパチ(ON)てな感じで...
~
-''パッチ''
#pre{{
--- sh-lilo-sel-20040408/second.c~ 2005-06-15 20:09:...
+++ sh-lilo-sel-20040408/second.c 2005-06-15 20:12:...
@@ -285,6 +285,13 @@
loop = MAXLOOP;
}}
while ((tick = get_tick()) < timeout && loop > 0){
#pre{{
&color(green){+#define PSW *((volatile unsigned char *...
&color(purple){+#define PSWINT *((volatile unsigned char ...
+ if((PSW & 0x10) == 0){ /* power switch off */
+ while((PSW & 0x10) == 0){ ; }
+ PSWINT = (unsigned char)0;
+ return '2';
+ }
ch = serial_input(1);
if (ch > 0) return ch;
if (ntick < tick){
}}
&color(green){※電源ボタンの状態検出レジスタ};~
&color(purple){※電源ボタンの割り込み解除レジスタ};~
~
-''ビルド''~
iohack版のgcc(gcc-3.0)でビルドすること。~
(gcc-3.4だと正常にビルドできませんでした。)~
(boot.bのファイルサイズが下記と大きく異なる場合は、要注意...
#pre{{
landisk:/share/src/sh-lilo-sel-20040408# make
landisk:/share/src/sh-lilo-sel-20040408# ls boot.b lilo
# ls -la lilo boot.b
-rw-r--r-- 1 root root &color(red){2952}; J...
-rwxr-xr-x 1 root root 79311 Jun 7 18:54 lilo
}}
-''さらなる改造…もっと選択数を増やすには!''~
--電源ボタンをONにして,すぐにOFF
--その状態で、Reset SWを押す。(複数回押す。)
--その押した数で、ブートラベルを決定。
--電源ボタンをONすると起動。~
-
このようなこともできそうです。~
~
~
#counter
終了行:
*sh-lilo-selを使ってみる。 [#z6687119]
-''はじめに''~
mizore Wikiさん作のsh-lilo-selを使うと、複数の環境を切り...
[[SH用セレクタ付ブートローダ@mizore Wiki:http://www.mizo...
~
-''パーティション構成''~
/dev/hda1,hda3,hda4からブート可能なように設定してみる。~
#pre{{
landisk:~# fdisk -l /dev/hda
Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 9 72261 83 Linux &co...
/dev/hda2 10 79 562275 82 Linux swap...
/dev/hda3 80 6454 51207187+ 83 Linux &co...
/dev/hda4 6455 19457 104446597+ 83 Linux &co...
}}
-''/dev/hda1でブートして環境設定''~
まずLANDISKオリジナル環境を起動して、ルートファイルシステ...
#pre{{
# mount -o rw,remount /
}}
-''sh-lilo-sel-20040408.tar.gz''~
mizore Wikiさんのページから、sh-lilo-sel-20040408.tar.gz...
そして、展開して、sh-lilo-sel-20040408/precompiled/boot.b...
(オリジナルファイルを残しておきたかったのでリネームしまし...
#pre{{
/boot/boot.b-sel
/sbin/lilo-sel
}}
-''/etc/lilo.conf''~
lilo.confを次のように編集~
#pre{{
linear
boot=/dev/hda
disk=/dev/hda
bios=0x80
timeout=50
install=/boot/boot.b-sel
default=landisk
image=&color(red){/boot/zImage};
label=landisk
&color(red){root=/dev/hda1};
read-only
append="mem=64M console=ttySC1,9600"
image=&color(red){/boot/vmlinuz-2.6.11-sh};
label=debian26
&color(red){root=/dev/hda4};
read-only
append="mem=64M console=ttySC1,9600"
image=&color(red){/boot/vmlinuz-2.6.11-sh};
label=FedoraCore2
&color(red){root=/dev/hda3};
read-only
append="mem=64M console=ttySC1,9600"
}}
-''kernel等の準備''~
kernelとboot.b関係は、/dev/hda1の/boot下にまとめて置く事...
(/dev/hda1に置くのは、HDDの1024シリンダ問題を回避するため...
#pre{{
# ls -la /boot
total 2287
drwxr-xr-x 2 root root 1024 Jun 6 20:47 .
drwxr-xr-x 15 root root 1024 Dec 24 16:25 ..
-rw-r--r-- 1 root root 512 Apr 10 2004 bo...
-rw-r--r-- 1 root root 512 Nov 7 2003 bo...
-rw-r--r-- 1 root root 2248 Sep 8 2003 bo...
&color(red){-rw-r--r-- 1 root root 2920 Jun...
-rw------- 1 root root 41984 Jun 6 20:13 map
&color(red){-rw-r--r-- 1 root root 1298432 Jun...
-rwxr-xr-x 1 root root 978185 Dec 25 2003 zI...
}}
-''lilo-sel実行''~
#pre{{
# lilo-sel
Added landisk *
Added debian26
Added FedoraCore2
}}
-''リーブート''~
#pre{{
LILO boot:
1 : landisk
2 : debian26
3 : FedoraCore2
Select boot image -> 2
Loading debian26..........................done.
Uncompressing Linux... Ok, booting the kernel.
Linux version 2.6.11-sh (root@landisk) (gcc version 3.4.4...
}}
お〜すばらしい。/dev/hda4上のdebian26がkernel-2.6と共に起...
~
-''その他 … /dev/hda3上からliloを打つ場合''~
様々な所で紹介されているクロスでliloを打ち込む要領で。~
#pre{{
landisk:~# mount -t ext2 /dev/hda1 /mnt/hda1
landisk:~# /mnt/hda1/sbin/lilo-sel -r /mnt/hda1 -C /etc/l...
Added landisk *
Added debian26
Added FedoraCore2
}}
※ -r オプションは、chroot /mnt/hda1 /sbin/lilo-sel -C /et...
~
*sh-lilo-selを少し改造してみる … sh-lilo-sel改[#ff772c62]
-''シリアルコンソールいらずに…''~
sh-lili-selは大変便利なのですが、いかんせん、シリアルコン...
そこで、シリアルコンソールなしでも、ブート選択できるよう...
~
-''電源ボタンでブート選択''~
次のような手順で2種類のブートラベルから起動できる機能を...
--電源ボタンをONにして5秒経過すると、1番目のラベルから...
--電源ボタンをON→OFF、そしてHDDの回転が安定したころ再度ON...
パチ(ON)パチ(OFF)、ぶ〜ぅん、一呼吸してパチ(ON)てな感じで...
~
-''パッチ''
#pre{{
--- sh-lilo-sel-20040408/second.c~ 2005-06-15 20:09:...
+++ sh-lilo-sel-20040408/second.c 2005-06-15 20:12:...
@@ -285,6 +285,13 @@
loop = MAXLOOP;
}}
while ((tick = get_tick()) < timeout && loop > 0){
#pre{{
&color(green){+#define PSW *((volatile unsigned char *...
&color(purple){+#define PSWINT *((volatile unsigned char ...
+ if((PSW & 0x10) == 0){ /* power switch off */
+ while((PSW & 0x10) == 0){ ; }
+ PSWINT = (unsigned char)0;
+ return '2';
+ }
ch = serial_input(1);
if (ch > 0) return ch;
if (ntick < tick){
}}
&color(green){※電源ボタンの状態検出レジスタ};~
&color(purple){※電源ボタンの割り込み解除レジスタ};~
~
-''ビルド''~
iohack版のgcc(gcc-3.0)でビルドすること。~
(gcc-3.4だと正常にビルドできませんでした。)~
(boot.bのファイルサイズが下記と大きく異なる場合は、要注意...
#pre{{
landisk:/share/src/sh-lilo-sel-20040408# make
landisk:/share/src/sh-lilo-sel-20040408# ls boot.b lilo
# ls -la lilo boot.b
-rw-r--r-- 1 root root &color(red){2952}; J...
-rwxr-xr-x 1 root root 79311 Jun 7 18:54 lilo
}}
-''さらなる改造…もっと選択数を増やすには!''~
--電源ボタンをONにして,すぐにOFF
--その状態で、Reset SWを押す。(複数回押す。)
--その押した数で、ブートラベルを決定。
--電源ボタンをONすると起動。~
-
このようなこともできそうです。~
~
~
#counter
ページ名: