Sharp PDA SL シリーズのページ

PDA起動時の表示を変更する

OS(Linux) が起動中に表示される SHARP のロゴを表示しないようにする方法、 Linux 起動時のメッセージを表示させる方法を紹介します。(2003/08/11更新)
PDA起動時の表示を変更するには、PDA本体のフラッシュに 格納されている、カーネルを書き換える必要があります。カーネルソースはSHARPの サイトからダウンロードしてきて、コンパイルできるようにしておく必要があります。


SHARP のロゴを非表示にしたときの起動画面

PDA起動時のSHARPロゴを表示しないようにする

PDA起動時のSHARPロゴを表示しないようにするためには、

カーネルのコンフィギュレーションの以下の箇所のチェックを外します。

"Console drivers"
"→Frame buffer devices"
"→Cotulla LOGO screen support"(このチェックを外します)

"Console drivers"
"→Frame buffer devices"
"→SHARP LOGO screen support"(このチェックを外します)

チェックを外すと、SHARP のロゴが出なくなります。
その場合、起動時におなじみのペンギンが表示されるようになります。

Linux 起動時のメッセージを表示させる

SHARPのロゴを表示させない状態にしても、Linux 起動時のメッセージはほとんど 表示されません。この理由は、カーネルパラメーターで、console=nullとかconsole=ttyS0 という設定がされているためです。以下のようにカーネルコンフィギュレーションを 変更することで、起動メッセージを表示させることができます。

"General setup"
"→Default kernel command string"
に以下の内容が設定されているので
"console=null root=/dev/mtdblock0"
を以下のように変更します。
"root=/dev/mtdblock0"

この場合は、実際には bootloader からカーネルパラメータが渡されるので、
"General setup"
"→Default kernel command string"
で指定する console= を変更してもだめのようです。なのでソースコードを書き換えて、console=ttyS0 が 設定されないようにしてしまいます。

linux/kernel/ の printk.c の中に、console_setup 関数があるので、以下のように変更します。

static int __init console_setup(char *str)
{
 struct console_cmdline *c;
 char name[sizeof(c->name)];
 char *s, *options;
 int i, idx;

 /*
  * Decode str into name, index, options.
  */
 if (str[0] >= '0' && str[0] <= '9') {
  strcpy(name, "ttyS");
  strncpy(name + 4, str, sizeof(name) - 5);
 } else {
  /* strncpy(name, str, sizeof(name) - 1); */
  strcpy(name,"tty0");
 }
 name[sizeof(name) - 1] = 0;

これで、起動時にメッセージが表示されるようになります。