FC2カウンター FPGAの部屋 ZedBoard Linux のフレームバッファにカメラ画像を表示12(SDカードのイメージ変更)
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZedBoard Linux のフレームバッファにカメラ画像を表示12(SDカードのイメージ変更)

前回、SDKのリモートデバック機能を使用して、Windows 上で動作するSDKからZedBoard上に、ELFファイルをSSH接続でアップロードして動作させ、カメラのレジスタ設定を行った
今回は、SDカードのイメージにカメラレジスタ設定プログラムを追加して、Linuxのブート時に自動的に起動するように設定する。

まずは、Linuxの起動について勉強した。”第10回 Linux起動の仕組みを理解しよう[init/inittab編]”を参考にした。
/etc/inittab に処理が定義してあった。inittab に下に示すようにsysinit が定義されていた。

::sysinit:/etc/init.d/rcS


よって、/etc/init.d/rcS が初期化時に起動することがわかった。rcSの記述に

echo "++ Configure static IP 192.168.1.10"
ifconfig eth0 down
ifconfig eth0 192.168.1.10 up


があったので、自分のIPアドレスに変更した。

echo "++ Configure static IP 192.168.3.130"
ifconfig eth0 down
ifconfig eth0 192.168.3.130 netmask 255.255.255.0 up


そして、最後の”rcs Complete"と表示する前に、

/Apps/cam_disp3_linux.elf


を記述した。

これで、rcS の書き換えは終了したが、これをSDカードのramdisk8M.image に書き込む必要がある。そのやり方は、”Modify your boot image on your ZedBoard”を真似させて頂いた。

・ルート・ディレクトリに行って、sdcard ディレクトリを作製した。


zynq> cd /
zynq> mkdir sdcard
zynq> ls
Apps        etc         linuxrc     opt         sbin        tmp
bin         lib         lost+found  proc        sdcard      usr
dev         licenses    mnt         root        sys         var


・/dev/mmcblk0p1 を /sdcard にマウントして、ls コマンドで見ると、SDカードの内容が見えた。

zynq> mount /dev/mmcblk0p1 /sdcard
zynq> ls sdcard
BOOT.bin                README                  ramdisk8M.image.gz
BOOT_org.BINo           devicetree_ramdisk.dtb  zImage


・/sdcard/ramdisk8M.image.gz を /tmp ディレクトリにコピーして、展開し、/mnt にマウントする。

zynq> cp /sdcard/ramdisk8M.image.gz /tmp/
zynq> gunzip /tmp/ramdisk8M.image.gz
zynq> mount -o loop /tmp/ramdisk8M.image /mnt/
[22221.420000] EXT4-fs (loop0): couldn't mount as ext3 due to feature incompatibilities
[22221.470000] EXT4-fs (loop0): mounting ext2 file system using the ext4 subsystem
[22221.470000] EXT4-fs (loop0): warning: mounting unchecked fs, running e2fsck is recommended
[22221.480000] EXT4-fs (loop0): mounted filesystem without journal. Opts: (null)
zynq> ls /mnt
bin         lib         lost+found  proc        sys         var
dev         licenses    mnt         root        tmp
etc         linuxrc     opt         sbin        usr


・/Apps/cam_disp3_linux.elf と /etc/init.d/rcS を /mnt ディレクトリにコピーする。

zynq> cp -r Apps /mnt/
zynq> cp /etc/init.d/rcS /mnt/etc/init.d/rcS


・ramdisk8M.image.gz を生成して、SDカードに書き込んだ。(umount のオプションは、-L(小文字)です)

zynq> umount -l /mnt
zynq> gzip -9 /tmp/ramdisk8M.image
zynq> mv /tmp/ramdisk8M.image.gz /sdcard/
zynq> umount -l /sdcard/


これで、Linuxの初期化時にカメラの設定ソフトウェアを起動することが出来た。
ZedBoard を電源ONして、Linuxが起動した時にカメラ画像がVGAディスプレイに表示された。おまけに、正しいIPアドレスも設定できた。
参照させて頂いた2つのサイトにお礼を申し上げる。
  1. 2013年02月16日 12:01 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/2389-ad660c36
この記事にトラックバックする(FC2ブログユーザー)