Y.s Diary


 

2015年 02月 09日
SHARP SL-C700 (PDA)
+ [U-Boot]

u-boot on SL-C700 - 蔵 の U-Boot 2009.11 を使ってみました。

標準では netbsd カーネルが自動でブートしますので、以下の修正を行いました。

*** include/configs/corgi.h.ORIG        2012-10-29 21:14:59.000000000 +0900
--- include/configs/corgi.h     2015-02-08 16:50:03.415991913 +0900
***************
*** 112,118 ****
  #define CONFIG_BOOTDELAY      3
  #define CONFIG_SERVERIP               192.168.1.99
  #define CONFIG_ETHADDR          00:11:22:33:44:55
! #define CONFIG_BOOTCOMMAND    "run boot_netbsd"
  #define CONFIG_BOOTARGS               ""

  #define CONFIG_EXTRA_ENV_SETTINGS                                     \
--- 112,118 ----
  #define CONFIG_BOOTDELAY      3
  #define CONFIG_SERVERIP               192.168.1.99
  #define CONFIG_ETHADDR          00:11:22:33:44:55
! #define CONFIG_BOOTCOMMAND    "run boot_autoselect"
  #define CONFIG_BOOTARGS               ""

  #define CONFIG_EXTRA_ENV_SETTINGS                                     \
***************
*** 125,133 ****
                        "mmcinfo; "                                     \
                        "if fatload mmc 0 a1200000 netbsd; "            \
                        "then bootelf a1200000; "                       \
!                       "fi; "                                          \
!                       "if fatload mmc 0 a1200000 zImage; "            \
!                       "then go a1200000; "                            \
                        "fi\0"                                          \

  #define CONFIG_SETUP_MEMORY_TAGS 1
--- 125,132 ----
                        "mmcinfo; "                                     \
                        "if fatload mmc 0 a1200000 netbsd; "            \
                        "then bootelf a1200000; "                       \
!                       "else if fatload mmc 0 a1200000 zImage; "       \
!                       "then go a1200000; fi; "                        \
                        "fi\0"                                          \

  #define CONFIG_SETUP_MEMORY_TAGS 1

netbsd カーネルが無ければ Linux カーネル を起動します。

コンパイルには Ubuntu 14.04.1 x86_64 な PC で Sourcery CodeBench Lite を使ったのですが、

Sourcery CodeBench Lite 2012.03-57 (gcc 4.6.3) : OK
Sourcery CodeBench Lite 2012.09-64 (gcc 4.7.2) : OK
Sourcery CodeBench Lite 2013.05-24 (gcc 4.7.3) : OK
Sourcery CodeBench Lite 2013.11-33 (gcc 4.8.1) : NG (Linux カーネルが画面を更新しない)
Sourcery CodeBench Lite 2014.05-29 (gcc 4.8.3) : NG (Linux カーネルが画面を更新しない)

でした。

更に make 時に O=obj を付けるとコンパイルエラーでした。

+ [Linux]

The Linux Kernel Archives の linux-3.18.6 をコンパイルします。

コンパイラは Sourcery CodeBench Lite 2013.05-24 を使います。 (クロスコンパイルの設定は適当にしてあるものとします)

SHARP SL-C700 用のデフォルト設定を読み込みます。

% make corgi_defconfig

これだけでは動きませんので、設定を変更します。

% make menuconfig

最低限、以下の設定が必要になると思います。

System Type  --->
  Intel PXA2xx/PXA3xx Implementations  --->
    [*]   Detect machine ID at run-time in the decompressor
Kernel Features  --->
  [*] Use the ARM EABI to compile the kernel
Boot options  --->
  (console=ttyS0,9600n8 console=tty1 root=/dev/mmcblk0p2 rw rootwait rootfstype=ext4)
Device Drivers  --->
  Input device support  --->
    [*]   Keyboards  --->
      <*>   GPIO Buttons
      <*>   GPIO driven matrix keypad support
Device Drivers  --->
  <M> Sound card support  --->
    <M>   Advanced Linux Sound Architecture  --->
      <M>   ALSA for SoC audio support  --->
        <M>   SoC Audio for the Intel PXA2xx chip
        <M>   SoC Audio support for Sharp Zaurus SL-C7x0
Device Drivers  --->
  [*] LED Support  --->
    <*>   LED Class Support
    <*>   LED Support for GPIO connected LEDs
    [*]   LED Trigger support  --->
      <*>   LED Timer Trigger
      <*>   LED Heartbeat Trigger
File systems  --->
  <*> Ext3 journalling file system support
  <*> The Extended 4 (ext4) filesystem

カーネルとモジュールをコンパイルします。

% make zImage
% make modules
 
2012年 11月 04日
SHARP SL-C3000 (PDA)
+ [EXT3-fs error]

Slackware ARM 14.0 の動作テストをしていますが

shutdown -r now

等を実行すると、終了処理の途中で EXT3-fs error や Command not found. が大量に 発生します。

最初は内蔵のマイクロドライブが壊れたのかと CompactFlash に換装し、 OS の再インストールをしましたが、やっぱりエラーになります。

SHARP SL-C700 の時は起きなかったのにと思い、ふと気付きました。

SHARP SL-C700 では SDHCカードに OS をインストールしましたが、 SHARP SL-C3000 では CompactFlash です。

そうです、終了時には /etc/rc.d/rc.pcmcia が、stop 引数付きで呼ばれています。

早速、/etc/rc.d/rc.pcmcia の中を見ますと stop の時は

/sbin/pccardctl eject
/sbin/modprobe -r pcmcia

等とヤバそうなのが並んでいます。

これでは終了処理の途中でルートファイルシステムが消えますので、 エラーになるのは当然です。

/etc/rc.d/rc.pcmcia の stop 時の処理を全て削除して対処しましたが、 こんな修正で良いのでしょうか。

 
2012年 11月 02日
SHARP SL-C700 (PDA)
+ [Slackware ARM 14.0]

initrd-versatile.img からインストール用の rootfs を作ってます。

まだ未完成ですが、CompactFlash に展開して SDHCカードにインストールしてみました。

うにゅ、遅いです。

4時間ぐらい掛かってます。

Slackware をインストールした PC があれば、そちらで展開した方が速いです。

<追記>

さて、インストールも終わりましたので動かしてみました。

kexecboot から起動して login プロンプトが出るまで…
5分です…

startx してから twm が起動するまで…
45秒です…

</追記>

 
2012年 11月 01日
SHARP SL-C700 (PDA)
+ [最近の作業結果]

Slackware ARM のブート
kexecboot で起動させました。

kernel は 3.4.11 ではなく 3.2.32 です。

Slackware ARM のインストーラー
インストールも出来なくはなさそうですが、インストール後に kernel & module とか keymap とかいろいろ修正をしなければなりません。

それから、X Window System も Zaurus 用が必要ですよね。

<追記>

w100 ではなく fbdev なら Slackware ARM の X サーバで動きますな。

</追記>

 
2012年 10月 30日
SHARP SL-C700 (PDA)
+ [Linux]

久しぶりに電源を入れてみたのですが、Angstrom のブートが途中で止まります。

それならと、linux-3.6.3 をダウンロードしてコンパイルし kexecboot で 起動してみますがブートメッセージすら出ません。

いろいろなバージョンを試したところ

linux-3.1.10 : OK
linux-3.2.32 : OK
linux-3.3    : NG
linux-3.3.8  : NG
linux-3.6.3  : NG
linux-3.6.4  : NG

な感じになりました。

<追記 (2015/02/09)>

U-Boot 2009.11 を使ってみたところ、linux-3.18.6 は正常にブートしました。

</追記 (2015/02/09)>

 

前のページ     次のページ


This page is written in Japanese.