Interface(株式会社インタフェース)
ログオン / ユーザID登録
困っている方の駆け込み寺
Made in 日本
新着情報 製品検索 購入方法 会社概要 採用情報 資料請求
 
>>How toのTopへ

CTP-SH03DMの8MバイトフラッシュROMにBusyBoxを組み込む方法 最終更新日:2004/03/08
 
このHow toでは、CTP-SH03DMに実装されている8MバイトフラッシュROMに、BusyBoxを組み込む方法を説明します。
注) 記載している内容は、いかなる動作も保証しない完全無保証です。使用される場合は、すべて自己責任でお願いします。
    弊社Web siteからファイルをダウンロードする場合は、ユーザIDを取得してください。

1. BusyBoxを作る
(1) cd /home
(2) http://busybox.net/downloadsから最新のtarボールをダウンロードする。
   (2004/2/20時点では、busybox-1.00-pre7.tar.gzが最新なので、これをダウンロードする。)
(3) tar zxvf busybox-1.00-pre7,tar,gzで展開する。
(4) cd busybox-1.00-pre7
(5) make menuconfigで、必要なコマンド類を選択する。
  “Build Options” ---> “Do you want to build BusyBox with a Cross Compiler?” を”*”にし、”Cross Compiler prefix”に
  /usr/bin/sh4-linux-を指定する。
  あとの設定は、お好み次第です。ご使用の条件で設定してください。
  本ページでの設定は、一例としてページの最後に示します。
(6) make
(7) make install

2. 専用のカーネルを作る
(1) cd /home
(2) mkdir sh03-flash
(3) バックアップCDをセットし、mount /mnt/cdrom
(4) cp -a /mnt/cdrom/usr/src/linux-2.4.17 ./sh03-flash/で、カーネルソースをコピーする。
(5) umount /mnt/cdrom
(6) /usr/sh-linux/include/asmと/usr/sh-linux/include/linuxのリンク先を変更する。
    rm /usr/sh-linux/include/asm
    rm /usr/sh-linux/include/linux
    ln -s /home/sh03-flash/linux-2.4.17/include/asm /usr/sh-linux/include/asm
    ln -s /home/sh03-flash/linux-2.4.17/include/linux /usr/sh-linux/include/linux
(7) cd /home/sh03-flash/linux-2.4.17
(8) cp .config Config-saveで、保存しておく。
(9) make ARCH=sh mrproper
(10) cp Config-save .configで、.configをもとに戻す。
(11) make ARCH=sh xconfig
少なくとも、以下の箇所を変更する。
  ・ Memory Technology Devices(MTD)
  ・ Memory Technology Device (MTD) supportを、”m”から”y”に変更
  ・ MTD partitioning supportを、”m”から”y”に変更
  ・ Caching block device access to MTD devicesを、”m”から”y”に変更
  ・ RAM/ROM/Flash chip drivers
  ・ Detect flash chip by Common Flash Interface (CFI) probeを、”m”から”y”に変更
  ・ Support for Intel/Sharp flash chipsを、”m”から”y”に変更
  ・ Mapping drivers for chip access
  ・ Flash device mapped on Interface CTP/PCI-SH03を、”m”から”y”に変更
  ・ File systems
  ・ Journalling Flash File System V2 (JFFS2) supportを、”m”から”y”に変更
・ Minix fs supportを、”n”から”y”に変更
(12) make ARCH=sh clean dep zImage
    __FUNCTION__がwarningになるが無視する。

3. フラッシュに書き込むユーザランドを作る
(1) cd /home/busybox-1.00-pre7
(2) mkdir jffs2-image
(3) mkdir jffs2-image/dev
(4) mkdir jffs2-image/mnt
(5) mkdir jffs2-image/proc
(6) mkdir jffs2-image/var
(7) mkdir jffs2-image/var/lib
(8) mkdir jffs2-image/var/log
(9) cp -a ./_install/* ./jffs2-image/ で、上で作ったBusyBoxをjffs2-image/にコピーする。
(10) ./examples/bootfloppy/etc/以下を参考に、./jffs2-image/etc/を作る。
(11) ./jffs2-image/dev/に、必要なデバイスを作る。
    cd jffs2-image/dev
    mknod mtd0 b 31 0
    mknod mtd1 b 31 1
    mknod mtd2 b 31 2
    mknod null c 1 3
    mknod ram0 b 1 0
    mknod ram1 b 1 1
    mknod ram2 b 1 2
    mknod ram3 b 1 3
    mknod ram4 b 1 4
    mknod ttySC1 c 204 9
    mknod zero c 1 5
    ln -s ttySC1 console
    ln -s ttySC1 tty
    ln -s ttySC1 tty0
    ln -s ttySC1 tty1
    ln -s ttySC1 tty2

4. 8MバイトフラッシュROMに書き込む
パソコン側で、/etc/init.d/nfs start
※ここからは、CTP-SH03DM側の操作です。
(1) CTP-SH03DMのDSW4をA側にします。
(2) CTP-SH03DM側の電源を入れます。
(3) Linuxが起動したら、rootでログインします。
(4) mount kitty:/home /mnt
(5) cp -a /mnt/busybox-1.00-pre7/jffs2-image ./で、上で作ったユーザランドを、SH側にコピーします。
(6) IPLの中身(yyy.bin-sh03-20040221)と、上で作ったLinuxカーネル(/mnt/sh03-flash/linux-2.4.17/arch/sh/boot/zImage)もSH側にコピーします。
(7) umount /mnt
(8) mkfs.jffs2 -r jffs2-image/ --pad=0x700000 -e 0x20000 -o jffs2.img
(9) mknod /dev/mtd2 b 31 2
(10) modprobe sh03
(11) modprobe mtdblockで、8MバイトフラッシュROM用のドライバを組み込みます。
(12) cp yyy.bin-sh03-20040221 /dev/mtd0(書き込み時間は、約3秒)
(13) cp zImage /dev/mtd1(書き込み時間は、約15秒)
(14) cp jffs2.img /dev/mtd2(書き込み時間は、約1分20秒)
(15) shutdown -h now
(16) CTP-SH03DM側の電源を切ります。

5. フラッシュROMでLinuxを動かす
※ここからは、CTP-SH03DM側の操作です。
(1) CTP-SH03DMのDSW4はA側のままで、DSW2-1をON,DSW2-3をOFFにします。
(2) CTP-SH03DM側の電源を入れます。
(3) 約15秒後経過後にカーネル起動のメッセージが表示され、BusyBoxが起動します。
 BusyBox v1.00-pre7 (2004.02.20-04:20+0000) Built-in shell (ash)
 Enter ‘help’ for a list of built-in commands.
 #
これで、8Mバイト フラッシュROMに書き込んだBusyBoxが動作します。
CFを外して、フラッシュROMだけで動作します。

付録1. BusyBoxのmake menuconfigでの設定例
BusyBox Configuration:
     General Configuration
    ---> Buffer allocation policy (Allocate on the Stack)
      ---> ( ) Allocate with Malloc
             (X) Allocate on the Stack
             ( ) Allocate in the .bss section
[ ] Show verbose applet usage messages
[ ] Support --install [-s] to install applet links at runtime
[ ] Enable locale support (system needs locale for this to work)
[ ] Support for devfs
[ ] Use the devpts filesystem for Unix98 PTYs
[ ] Clean up all memory brfore exiting (usually not needed)
[ ] Support for SUID/SGID handling
[ ] Support NSA Security Enhanced Linux
Build Options
    ---> [*] Build BusyBox as a static binary (no shared libs)
[ ] Build with Large File Support (for accessing files > 2 GB)
[*] Do you want to build BusyBox with a Cross Compiler?
(/usr/bin/sh4-linux-) Cross Compiler prefix
() Any extra CFLAGS options for the compiler?
Installation Options
    ---> [ ] Don’t use /usr
(./_install) BusyBox installation prefix
Archival Utilities
    ---> [ ] ar
[ ] bunzip2
[ ] cpio
[ ] dpkg
[ ] dpkg_deb
[*] gunzip
[ ]    Uncompress support
[*] gzip
[ ] rpm2cpio
[ ] rpm
[*] tar
[*]    Enable archive creation
[ ]    Enable -j option to handle .tar.bz2 files
[ ]    Enable -X (exclude from) and -T (include from) options)
[*]     Enable -z option
[ ] Enable -Z option
[ ]    Enable support for old tar header format
[*]    Enable support for some GNU tar extensions
[ ]    Enable long options
[ ] Uncompress
[ ] unzip
--- Common options for cpio and tar
[ ]    Enable tape drive support
Coreutils
    ---> [*] basename
[ ] cal
[*] cat
[*] chgrp
[*] chmod
[*] chown
[*] chroot
[ ] cmp
[*] cp
[*] cut
[*] date
[*]    Enable ISO date format output (-I)
[*] dd
[*] df
[*] dirname
[ ] dos2unix/unix2dos
[*] du (default blocksize of 512 bytes)
[*]    Use a default blocksize of 1024 bytes (1K)
[*] echo (basic SUSv3 version taking no options
[*]    Enable echo options (-n and -e)
[*] env
[ ] expr
[*] false
[ ] fold
[*] head
[ ]    Enable head options (-c, -q, and -v)
[ ] hostid
[*] id
[ ] install
[ ] length
[*] ln
[ ] logname
[*] ls
[*]    Enable filetyping options (-p and -F)
[*]    Enable symlinks dereferencing (-L)
[ ]    Enable recursion (-R)
[*]    Sort the file names
[*]    Show file timestamps
[*]    Show username/groupnames
[*]    Use color to identify file types
[ ] md5sum
[*] mkdir
[ ] mkfifo
[*] mknod
[*] mv
[ ] od
[ ] printf
[*] pwd
[ ] realpath
[*] rm
[*] rmdir
[ ] seq
[ ] sha1sum
[*] sleep (single integer arg with no suffix)
[ ]    Enable multiple integer args and optional time suffixes
[*] sort
[ ] setty
[*] sync
[*] tail
[ ]    Enable extra tail option (-q, -s, and -v)
[ ] tee
--- test (forced enabled for use with shell)
[*] touch
[ ] tr
[*] true
[*] tty
[*] uname
[*] uniq
[ ] usleep
[ ] undecode
[ ] unencode
[ ] watch
[ ] wc
[ ] who
[*] whoami
[*] yes
--- Common options for cp and mv
[ ]    Preserve hard links
--- Common options for ls and more
[*]    Calculate termianl & column widths
--- Common options for df, du, ls
[*]    Support for human readable output (example 13k, 23M, 235G)
[ ]
Console Utilities
    ---> [ ] chvt
[*] clear
[ ] deallocvt
[ ] dumpkmap
[ ] loadfont
[ ] loadkmap
[ ] openvt
[*] reset
[ ] setkeycodes
Debian Utilities
    ---> [ ] mktemp
[ ] pipe_progress
[ ] readlink
[ ] run-parts
[ ] start-stop-daemon
[*] which
Editors
    ---> [ ] awk
[ ] patch
[*] sed
[*] vi
[*]    Enable “:” colon commands (no “ex” mode)
[*]    Enable yank/put commands and mark cmds
[*]    Enable search and replace cmds
[*]    Catch signals
[*]    Remember previous cmd and “.” cmd
[*]    Enable -R option and “view” mode
[*]    Enable set-able options, ai ic showmatch
[*]    Support for :set
[*]    Handle window resize
[*]    Optimize cursor movement
Finding Utilities
    ---> [*] find
[ ]    Enable modified time matching (-mtime) option
[ ]    Enable permissions matching (-perm) option
[*]    Enable filetype matching (-type) option
[*]    Enable stay in filesystem (-xdev) option
[*]    Enable -newer option for comparing file mtimes
[*]    Enable inode number matching (-inum) option
[*] grep
[ ]    Support extended regular expressions (egrep & grep -E)
[*]    Alias fgrep to grep -f
[ ]    Enable before and after context flags (-A, -B and -C)
[ ] xargs
Init Utilities
    ---> [*] init
[*]    Support reading an inittab file?
[ ]    Support running init from within an initrd?
[ ]    Support dumping core for child processes (debugging only)?
[ ]    Should init be extraquiet on boot?
[*] halt
[*] poweroff
[*] reboot
[*] mesg
Login/Password Management Utilities
    ---> [ ] Use internal password and group functions rather than system func
[ ] addgroup
[ ] delgroup
[ ] adduser
[ ] deluser
[ ] getty
[ ] login
[ ] passwd
[ ] su
[ ] sulogin
[ ] vlock
Miscellaneous Utilities
    ---> [ ] adjtimex
[ ] crond
[ ] crontab
[ ] dc
[ ] devfsd
[ ] last
[ ] hdparm
[ ] makedevs
[ ] mt
[ ] rx
[ ] strings
[ ] time
[ ] watchdog
Linux Module Utilities
    ---> [*] insmod
[ ]    Support older (pre 2.1) Linux kernels
[*]    Support version 2.1.x to 2.4.x Linux kernels
[ ]    Support version 2.6.x Linux kernels
[ ]    Module version checking
[ ]    Add module symbols to kernel symbol table
[ ]    In kernel memory optimization (uClinux only)
[ ]    Enable load map (-m) option
[*] lsmod
[*]    Support lsmod query_module interface (add 638 bytes)
[*] modprobe
[*] rmmod
[*] Support tainted module checking with new kernels
Networking Utilities
    ---> [ ] Enable Ipv6 support
[ ] arping
[ ] ftpget
[ ] ftpput
[*] hostname
[ ] httpd
[*] ifconfig
[*]    Enable status reporting output (+7k)
[ ]    Enable slip-specific options “keepalive” and “outfill”
[ ]    Enable options “mem_start”, “io_addr”, and “irq”
[*]    Enable option “hw” (ether only)
[ ] Set the broadcast automatically
[ ] ifupdown
[ ] inetd
[ ] ip
[ ] ipcalc
[ ] ipaddr
[ ] iplink
[ ] iproute
[ ] iptunnel
[ ] nameif
[ ] nc
[ ] netstat
[*] nslookup
[*] ping
[*]    Enable fancy ping output
[*] route
[ ] telnet
[ ] telnetd
[ ] tftp
[ ] traceroute
[ ] vconfig
[ ] wget
        udhcp Server/Client
        --->[ ] udhcp Server
              [ ] udhcp Client
Process Utilities
    ---> [*] Choose your default shell (ash)
[*] kill
[*]    killall
[ ] pidof
[*] ps
[ ] renice
[ ] top
[*] uptime
[ ] sysctl
Another Bourne-like Shell
    ---> Choose your default shell (ash)
      ---> (X) ash
             ( ) hush
             ( ) lash
             ( ) msh
             ( ) none
      ---  ash
      ---  Ash Shell Options
[*]    Enable Job control
[*]    Enable alias support
[*]    Enable Posix math support
[ ]    Enable getopt builtin to parse positional parameters
[ ]    Enable cmdcmd to override shell builtins
[*]    Check for new mail on interactive shells
[*]    Optimize for size instead of speed
[ ] hush
[ ] lash
[ ] msh
--- Bourne Shell Options
[ ] Hide message on interactive shell startup
[ ] Standalone shell
[*] command line editing
(15)    history size
[ ]    history saving
[*]    tab completion
[ ]        username completion
[ ]    Fancy shell prompts
System Logging Utilities
    ---> [*] syslogd
[ ]    Rotate message files
[ ]    Remote Log support
[ ]    Circular Buffer support
[*]    klogd
[*] logger
Linux System Utilities
    ---> [*] dmesg
[ ] fbset
[ ] fdflush
[ ] fdformat
[ ] fdisk
[ ] freeramdisk
[*] fsck_minix
[*] mkfs_minix
---    Minix filesystem support
[*]    Support Minix fs v2 (fsck_minix/mkfs_minix)
[ ] getopt
[ ] hexdump
[ ] hwclock
[ ] losetup
[ ] mkswap
[*] more
[*]    Use termios to manipulate the screen
[ ] pivot_root
[ ] rdate
[ ] swaponoff
[*] mount
[ ]    Support forced filesystem unmounting
[*] umount
[ ]    Support forced filesystem unmounting
---    Common options for mount/umount
[*]    Support for loop devices
[*]    Support for a real /etc/mtab (instead of /proc/mounts)
(/etc/mtab) mtab file location
Debugging Options
    ---> [ ] Build BusyBox with Debugging symbols [*] logger

付録2. /etc/fstab
    proc    /proc    proc    defaults     0    0

付録3. /etc/inittab
 ::sysinit:/etc/init.d/rcS
 ::respawn:-/bin/sh
 ::ctrlaltdel:/bin/umount -a -r

付録4. /etc/init.d/rcS
 #!/bin/sh
 /bin/mount -a
 /sbin/mkfs.minix /dev/ram1
 /bin/mount /dev/ram1 -t minix /mnt; /bin/cp -a /etc/* /mnt/; /bin/umount /mnt
 /bin/mount /dev/ram1 -t minix /etc
 /sbin/mkfs.minix /dev/ram2
 /bin/mount /dev/ram2 -t minix /mnt; /bin/cp -a /dev/* /mnt/; /bin/umount /mnt
 /bin/mount /dev/ram2 -t minix /dev
 ###/sbin/mkfs.minix /dev/ram3
 ###/bin/mount /dev/ram3 -t minix /mnt; /bin/cp -a /tmp/* /mnt/; /bin/umount /mnt
 ###/bin/mount /dev/ram3 -t minix /tmp
 /sbin/mkfs.minix /dev/ram4
 /bin/mount /dev/ram4 -t minix /mnt; /bin/cp -a /var/* /mnt/; /bin/umount /mnt
 /bin/mount /dev/ram4 -t minix /var

 echo -n "Starting system log daemon: "
 /sbin/syslogd -m 0
 echo "syslogd."
上へ


© 2020 Interface Corporation. All rights reserved.
産業用パソコン
Classembly Devices®
  ・省エネ
  ・車載
  ・SuperCD
  ・SuperCD mini
  ・スリムタワーCD
  ・タッチパネル
  ・ハイグレード
  ・エコ
  ・I/O CD
I/O付きCD
  ・ビギナーズ
  ・ソルコン
  ・タフコン
  ・I/O付きタッチパネル
  ・マザコン
FAコントローラ
  ・長期安心
  ・スロットイン

CoolIOs®
・EtherCATスレーブ
CoolUSBs®
・USB2.0(Type-C)接続
インタフェースモジュール
・PCIバス
・PCI Express
・CompactPCIバス
・光のぞみLine®
・拡張ユニット
・アクセサリ
  (ケーブル, 端子台, メディア他)

・ソフトウェア

ソリューション
・ネットの番犬☆通さん犬
・電気自動車 急速充電器
  プロトコルモニタ(CHAdeMO)


お得なキャンペーン/特集
・少額資産に収まるコンピュータ
・10万円以下!FAコントローラ特集!
・最大50%OFF 特別キャンペーン
AJAN®
・AJAN®
製品を選ぶ
・スペック検索
・用途/使い方
・産業用コンピュータの特長
・新製品
・瞬低対策用電源装置
・広告一覧
・拡張バス付きコンピュータ
・コンピュータ性能マップ
・DOSが動くコンピュータ特集

サポート
・ダウンロード
・営業訪問依頼
・購入する
・販売店情報
・海外で購入
・製品貸出サービス
・コラム集
・FAQ検索
・各種規格について
・新着情報
・サイトマップ
・個人情報の取扱について
・Web siteへのご意見
・ユーザID登録
  ログオン / ログオフ

海外
・Subsidiary & Distributor in U.S.
   Interface Amita Solutions