|
CEV-RZ/A1Lで遊ぶ †update 2013-11-07 y.ebihara
update 2014-3-07 y.ebihara
本ページの位置 https://www.si-linux.co.jp →技術情報 →組み込みLinux技術情報 →CEV-RZ/A1L で遊ぶ CEV-RZ/A1L とは †CQ出版社Interface誌で企画されているルネサスエレクトロニクス社のARM CPUボード
CQ出版社さん Computex社さん お約束とお願い CEV-RZ/A1Lはシリコンリナックス社製品ではありませんので、弊社にお問い合わせをいただいても返信することができません。このページの内容も未保障です。メモ程度であることを了承ください。 使いやすくする †リセットボタンを付ける †RESETボタンが無いのでCPUが暴走したとき電源を切るしかない。 出荷時は電源はUSB-miniBから取っているのでUSBケーブルを抜くことになる。するとTeraTermのシリアルポートがクローズするので毎回TeraTermを閉じて開きなおす必要がある。はっきり言って面倒だし、リセット解除直後のメッセージをTeraTermで見ることもできない。 幸い回路図が添付されていたので改造は容易だった。リセットICの入力にスイッチを付ける。 U4, 2-4番ピン間にスイッチを付ける 電源ケーブル †電源ケーブルくらい付けようか。PCNコネクタは2.54mmピッチだったので、どこの誤家庭にもある一般的なXHコネクタ等がはんだ付けできる。 u-bootのversion確認 †u-bootが古い時は「CEV-RZ_A1L U-boot 書き換え方法.pdf」に従って新しくする。#a7f7ea7f 開発PC †私はdebian wheezy(64bit, amd64)を使っている。 クロスコンパイラ †私がビルドしたものはここ(無保証)
deb [arch=amd64] http://download.si-linux.co.jp/debian-armhf/wheezy-armhf/toolchain-amd64/ ./ # apt-get update # apt-get install gcc-4.7-arm-linux-gnueabihf # apt-get install g++-4.7-arm-linux-gnueabihf computexさん提供のrootfsのインストール †computexさんの手順書に順じてやってみる。
kernel †ソース †Computexさんから CEV_Linux_SDK_V2.00.01.tgz をダウンロードする。これを展開するとカーネルソースがある。 $ mkdir ~/work $ cd work $ wget http://www.computex.co.jp/ftproot/pub/cev/rza1l/V2/CEV_Linux_SDK_V2.00.01.tgz $ tar xf CEV_Linux_SDK_V2.00.01.tgz $ cd CEV_Linux_SDK_V2.00.01 $ tar xf buildroot-2013.08.1-cevrza1l-20140116-1.tgz ここからの相対パスで
カーネルをビルドする作業ディレクトリを作り $ cd ~/work $ mkdir kernel $ cd kernel 上記4つのファイル(ソース、パッチ、config)を kernel をビルドする作業ディレクトリにコピーしておく $ ls linux-3.8.13-0001-RZLSP-V1.0.1-kernel.patch linux-3.8.13-cevrza1l_defconfig linux-3.8.13-0002-CEVRZA1L-V2.000.00.patch linux-3.8.13.tar.bz2 こんな感じだとする。 $ tar xf linux-3.8.13.tar.bz2 $ cd linux-3.8.13 $ patch -p1 < ../linux-3.8.13-0001-RZLSP-V1.0.1-kernel.patch $ patch -p1 < ../linux-3.8.13-0002-CEVRZA1L-V2.000.00.patch $ cp ../linux-3.8.13-cevrza1l_defconfig arch/arm/configs/cevrza1l_defconfig CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm を毎回指定するのは面倒だし忘れるので Makefileを修正して書きこんでしまう。 $ vi Makefile ARCH ?= arm CROSS_COMPILE ?= arm-linux-gnueabihf- config †$ make cevrza1l_defconfig $ make menuconfig ext2しか使えないのはあまりにもアレなので ext3 や ext4, FAT を有効にしておく。他はお好みで。 File systems ---> <*> Ext3 journalling file system support <*> The Extended 4 (ext4) filesystem DOS/FAT/NT Filesystems ---> <*> MSDOS fs support <*> VFAT (Windows-95) fs support ビルド †$ make uImage modules -j12 ...中略... Image Name: Linux-3.8.13-CEVRZA1L-V2.00.00 Created: Thu Mar 6 17:17:28 2014 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2691232 Bytes = 2628.16 kB = 2.57 MB Load Address: 0c008000 Entry Point: 0c008000 Image arch/arm/boot/uImage is ready arch/arm/boot/uImage がカーネルイメージ。uImage を rootfsを構築したUSBメモリ(ext2)の /boot/uImage とさしかえる。 debianの導入 †開発PCにて次の2つのパーティションのある USBメモリを作る(開発PCから見てusbメモリが/dev/sdb の場合)。 この例では4GバイトのUSBメモリを使った。
Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------------------ sdb1 Primary vfat 128.00 sdb2 Primary ext3 3500.17 sdb3 Primary swap 299.86 Pri/Log Free Space 99.58* 第一パーティション(/dev/sdb1 FAT16 ,id=0x06) は /boot として uImageを置く。 /dev/sdb1 /boot (FAT) `-- uImage /dev/sdb2 / (ext3:root) フォーマット 開発PCにて # mkdosfs -F16 /dev/sdb1 # mkfs.ext3 /dev/sdb2 # mkswap /dev/sdb3 第一パーティションにカーネル(uImage)を置く # mount /dev/sdb1 /media # cp /上記で作った/uImage /media/ # umount /media 第二パーティションにwheezyのベースを展開する # mount /dev/sdb2 /media # cd /media # tar xzf /どこかのディレクトリにある/wheezy-armhf-base.tgz 設定ファイルを少し修正
# cd / # umount /media 起動する => setenv bootargs console=ttySC3,115200 root=/dev/sda2 ro rootdelay=2 rootwait => usb start;fatload usb 0 c000000 /uImage;bootm c000000 rootでloginできなかったら起動パラメータ(bootargs)に init=/bin/bash を追加するなどしてレスキュー起動し、 # mount -o remount,rw /dev/sda2 / # passwd でパスワードを仕掛ける。 以後debianの設定はこちらと同じなので参考に BBB_debootstrap_wheezy
/dev/sda1 /boot vfat ro 0 0 /dev/sda2 / ext3 noatime,errors=remount-ro 0 0 /dev/sda3 none swap defaults 0 0
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
deb http://ftp.jp.debian.org/debian wheezy main contrib non-free deb-src http://ftp.jp.debian.org/debian wheezy main contrib non-free deb http://ftp.jp.debian.org/debian/ wheezy-updates main deb-src http://ftp.jp.debian.org/debian/ wheezy-updates main debianで遊ぶ †# apt-get update # apt-get install vim nfs-common build-essential ssh ncftp ftpd telnet telnetd ntpdate dosfstools とするなど。。。ただしむっちゃ遅い。30分以上かかる ubootで自動起動の設定 †うまいこと起動することが確認できたら => setenv bootargs console=ttySC3,115200 root=/dev/sda2 ro rootdelay=2 rootwait => setenv bootcmd 'usb start;fatload usb 0 c000000 /uImage;bootm c000000' => save microSD †部品屋で売ってたので買ってきた。手ハンダした。 U14 1-5pin ショート L9 短絡 C45 10uF(気持ちの問題) R49 10K /dev/mmcblk0 として認識した。デフォルトの configでカーネルは対応している。 => setenv bootargs console=ttySC3,115200 root=/dev/mmcblk0p2 ro rootdelay=2 rootwait => usb start;fatload usb 0 c000000 /uImage;bootm c000000 速度はUSBメモリと大差ない。。。気がしたけど測ってみると microSDの方が早い。 # hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 14 MB in 3.16 seconds = 4.42 MB/sec # hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 14 MB in 3.25 seconds = 4.31 MB/sec # hdparm -t /dev/mmcblk0 /dev/mmcblk0: Timing buffered disk reads: 26 MB in 3.24 seconds = 8.02 MB/sec # hdparm -t /dev/mmcblk0 /dev/mmcblk0: Timing buffered disk reads: 24 MB in 3.00 seconds = 8.00 MB/sec RZ/A1L処理能力の測定 †SmartSolution †関連 †外部リンク †Computexさん提供のgoogleユーザフォーラム U-bootの書き換え方法 内部リンク †
自動リンク 以下はメモ †=> printenv baudrate=115200 bootargs=console=ttySC3,115200 root=/dev/sda1 rw rootdelay=3 bootdelay=3 ethact=sh_eth gatewayip=192.168.0.1 ipaddr=192.168.0.xx netmask=255.255.255.0 r=bootm c000000 serverip=192.168.0.1 stderr=serial stdin=serial stdout=serial usbboot=usb start;ext2load usb 0 c000000 /boot/uImage;bootm c000000 |