■仮想環境
基本は、Ubuntu 10.04だけをサポートするが、他のバージョンも使用出来る事を確認した。(SDKのOSバージョンチェックのシェルを書き換えればOk)。仮想マシーンの構築はこのページを参照。
■SDKのインストール
このページから"ti-sdk-am335x-evm-x.x.x.x-Linux-x86-Install"ファイルをダウンロード。
実行すると、インストール先を聞いてくるので、下記Dirを指定
$HOME/ti-sdk-am335x-evm-...-linux-x86 (以降 $TI_SDK_PATH とする)これで、SDKファイルが展開される。続いては、SDKのセットアップは下記の順番で行う
- ホストPCのUbuntuバージョンチェック
- ホストPCに必要なパッケージのインストール
- ターゲットファイル・システムインストール
- NFS設定
- TFTP設定
- Minicom設定
- U-boot設定
- ロードブードスクリプト作成
$ cd $TI_SDK_PATH; ./setup.shここでもし、Ubuntu 10.04を使用しなければエラーが出る。別のバージョンのubuntuにインストールしたい場合は、シェールスクリプトのOSバージョンチェックを書き換える必要がある。
●2.ホストPCに必要なパッケージインストール
下記のパッケージがホストPCになければ、自動的にインストールされる
- telnet
- menuconfig, kernel configuration tool
- mounting filesystem via nfs
- tftp
- minicom
- rebuild u-boot
$ sudo apt-get install xinetd tftpd nfs-kernel-server minicom build-essential libncurses5-dev uboot-mkimage autoconf automake●3.ターゲットファイルシステムのインストールターゲットファイル・システムはデフォルトで下記の場所に作成される
$TI_SDK_PATH/targetNFS●4.tftp設定
tftpの設定で、ホストPCのルートDirに "/tfptboot"が作成され、tftpの設定は"/etc/xinetd.d/tftp"に保存される
●5.minicom設定
Usb-to-Serialケーブルを使用する場合は、"/dev/ttyUSBx"、そうでない場合は"/dev/ttyS0"を指定する
●6.uboot設定
- ホストのIPアドレス確認
- カーネルロケーションの指定
-TFTPを選択する場合は、"/tftpboot"のDirを適切に指定
-SD cardを選択する場合は、SDカードの最初のパーティション("boot"という名前)になる - ファイル・システムの指定
■ PowerVR SGX SDKインストール [ページ1、ページ2]
BeagleBoneのハードウェア
- SOC : AM335x
- SGX Core : SGX530
- SGX Core rev. : 1.2.5
- SDK folder suffix : es8.x
- Max SGX Core Freq : 200 Mhz
●Graphic SDKのインストール:
SDKのインストール時、展開されたパッケージの中に既に"Graphic_SDK_setuplinux_[version].bin"が入っているので、これを実行すれば、Graphic SDKをインストールできる。
また、ウェブからGraphic SDKをダウンロードしてインストールする場合はこのページから"Graphics_SDK_setuplinux_4_08_00_01.bin"をダウンロードしてくる。
SDKのインストール時、展開されたパッケージの中に既に"Graphic_SDK_setuplinux_[version].bin"が入っているので、これを実行すれば、Graphic SDKをインストールできる。
また、ウェブからGraphic SDKをダウンロードしてインストールする場合はこのページから"Graphics_SDK_setuplinux_4_08_00_01.bin"をダウンロードしてくる。
ターゲットボードに入れる必要があるのは、
- Kernel Modules
- Graphic SDK (examples, headers, lib ...)
■U-bootビルド
$ cd $TI_SDK_PATH
$ make u-boot-spl O=am335x
※O=am335xを指定すると、"$TI_SDK_PATH/board-support/u-boot-[version]/am335x"が作成され、make結果がここに格納される(推奨方法)
$ make u-boot-spl O=am335x
※O=am335xを指定すると、"$TI_SDK_PATH/board-support/u-boot-[version]/am335x"が作成され、make結果がここに格納される(推奨方法)
■SDカードのフォーマット
SDカードの作成で、ブート用のFat32、ファイル・システムのext3を作成する。作成方法は難しくないので省略(参考ページのre-partition SD cardの部分)
■Master Makefile
linux_install: @echo =================================== @echo Installing the Linux Kernel @echo =================================== install -d $(DESTDIR)/boot install $(LINUXKERNEL_INSTALL_DIR)/arch/arm/boot/uImage $(DESTDIR)/boot install $(LINUXKERNEL_INSTALL_DIR)/vmlinux $(DESTDIR)/boot install $(LINUXKERNEL_INSTALL_DIR)/System.map $(DESTDIR)/boot $(MAKE) -C $(LINUXKERNEL_INSTALL_DIR) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) INSTALL_MOD_PATH=$(DESTDIR) modules_install
DESTDIR=$TI_SDK_PATH/targetNFS
LINUXKERNEL_INSTALL_DIR=$TI_SDK_PATH/board-support/linux-[version].sdk
下記:U-boot のprintenv
U-Boot# printenv autoload=yes baudrate=115200 bootargs=console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=7,2048 noinitrd rootfstype=ubifs rootwait=1 ip=none bootargs_defaults=setenv bootargs console=${console} ${optargs} bootcmd=if mmc rescan; then echo SD/MMC found on device ${mmc_dev};if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;if run mmc_load_uimage; then run mmc_args;bootm ${kloadaddr};fi;fi;run nand_boot; bootdelay=3 bootenv=uEnv.txt bootfile=uImage console=ttyO0,115200n8 ethact=cpsw ethaddr=00:18:31:e1:37:6a importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize ip_method=none kloadaddr=0x80007fc0 loadaddr=0x82000000 loadbootenv=fatload mmc ${mmc_dev} ${loadaddr} ${bootenv} mmc_args=run bootargs_defaults;setenv bootargs ${bootargs} root=${mmc_root} rootfstype=${mmc_root_fs_type} ip=${ip_method} mmc_boot=run mmc_args; run mmc_load_uimage; bootm ${kloadaddr} mmc_dev=0 mmc_load_uimage=fatload mmc ${mmc_dev} ${kloadaddr} ${bootfile} mmc_root=/dev/mmcblk0p2 rw mmc_root_fs_type=ext3 rootwait nand_args=run bootargs_defaults;setenv bootargs ${bootargs} root=${nand_root} noinitrd rootfstype=${nand_root_fs_type} ip=${ip_method} nand_boot=echo Booting from nand ...; run nand_args; nandecc hw 2; nand read.i ${kloadaddr} ${nand_src_addr} ${nand_img_siz}; bootm ${kloadaddr} nand_img_siz=0x500000 nand_root=ubi0:rootfs rw ubi.mtd=7,2048 nand_root_fs_type=ubifs rootwait=1 nand_src_addr=0x280000 net_args=run bootargs_defaults;setenv bootargs ${bootargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp net_boot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${kloadaddr} ${bootfile}; run net_args; bootm ${kloadaddr} nfsopts=nolock nor_args=run bootargs_defaults;setenv bootargs ${bootargs} root={nor_root} rootfstype=${nor_root_fs_type} ip=${ip_method} nor_boot=echo Booting from NOR ...; run nor_args; cp.b ${0x08080000} ${kloadaddr} ${nor_img_siz}; bootm ${kloadaddr} nor_img_siz=0x280000 nor_root=/dev/mtdblock3 rw nor_root_fs_type=jffs2 nor_src_addr=0x08080000 rootpath=/export/rootfs script_addr=0x81900000 spi_args=run bootargs_defaults;setenv bootargs ${bootargs} root=${spi_root} rootfstype=${spi_root_fs_type} ip=${ip_method} spi_boot=echo Booting from spi ...; run spi_args; sf probe ${spi_bus_no}:0; sf read ${kloadaddr} ${spi_src_addr} ${spi_img_siz}; bootm ${kloadaddr} spi_bus_no=0 spi_img_siz=0x380000 spi_root=/dev/mtdblock4 rw spi_root_fs_type=jffs2 spi_src_addr=0x62000 static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off stderr=serial stdin=serial stdout=serial Environment size: 2777/8188 bytes U-Boot#
-----------------
■BeagleboneをXPマシーンに接続する時のTrouble shooting
USBの認識トラブルはこのページを参考にドライバをインストールする
1. Learning embedded linux system through the file system: a top-down approach [pdf]
2. Labs instructions for Enabling BeagleBone with TI SDK 5.x [pdf]
3. Introduction to BeagleBoard [pdf]
4. u-bootのマニュアル [pdf]
5. AM335x u-boot user's guide
6. AMSDK u-boot user's guide
7. Building the Arago Linux Kernel for Beaglebone
__END__