レポジトリ作成:
svn create REPO_PATH
% mkdir svn_repos
% svnadmin create svn_repos/
Thursday, July 04, 2013
Thursday, November 08, 2012
Beagleboard/Beaglebone AM335X SDK
Beagleboard/Beaglebone AM335X linux SDK [ original
page ]
■仮想環境
基本は、Ubuntu 10.04だけをサポートするが、他のバージョンも使用出来る事を確認した。(SDKのOSバージョンチェックのシェルを書き換えればOk)。仮想マシーンの構築はこのページを参照。
■SDKのインストール
このページから"ti-sdk-am335x-evm-x.x.x.x-Linux-x86-Install"ファイルをダウンロード。
実行すると、インストール先を聞いてくるので、下記Dirを指定
●2.ホストPCに必要なパッケージインストール
下記のパッケージがホストPCになければ、自動的にインストールされる
tftpの設定で、ホストPCのルートDirに "/tfptboot"が作成され、tftpの設定は"/etc/xinetd.d/tftp"に保存される
●5.minicom設定
Usb-to-Serialケーブルを使用する場合は、"/dev/ttyUSBx"、そうでない場合は"/dev/ttyS0"を指定する
●6.uboot設定
■ PowerVR SGX SDKインストール [ページ1、ページ2]
BeagleBoneのハードウェア
■U-bootビルド
上の実行結果で、"u-boot.img"と"MLO"という2つのファイルが作成される($TI_SDK_PATH/board-support/u-boot-[version]/am335xの中)、SDカードからブートする場合は、これらのファイルをSDカードに入れる必要がある。UART経由でロードしたい場合は、spl/u-boot-spl.binを利用する。
■SDカードのフォーマット
SDカードの作成で、ブート用のFat32、ファイル・システムのext3を作成する。作成方法は難しくないので省略(参考ページのre-partition SD cardの部分)
■Master Makefile
DESTDIR=$TI_SDK_PATH/targetNFS
LINUXKERNEL_INSTALL_DIR=$TI_SDK_PATH/board-support/linux-[version].sdk
下記:U-boot のprintenv
-----------------
■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__
■仮想環境
基本は、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__
Saturday, September 29, 2012
Sunday, September 23, 2012
Ubuntu on BeagleBone/BeagleBoard
BeagleBone/BeagleBoard
参考文献:
0. Beaglebone hardware PDF file
1. Ubuntu 12.04をBeagleboneに入れる方法
2. Beagleboard initializaiton (1)
3.
X. Quake 3 git (used for demo)
X. Quake 3 on Raspberry Pi (1)
■Ubuntu 12.04 をBeagleBone入れる
VMwareで構築したUbuntu PCマシーン+Toolchainで作業
$ mkdir Ubuntu_on_beagle
$ cd Ubuntu_on_bealge
$ wget http://rcn-ee.net/deb/rootfs/precise/ubuntu-12.04-r6-minimal-armhf-2012-09-10.tar.xz
$ tar xJf ubuntu-12.04-r6-minimal-armhf-2012-09-10.tar.xz
$ cd ubuntu-12.04-r6-minimal-armhf-2012-09-10
$ sudo ./setup_sdcard.sh --mmc /media/usb?? --uboot bone ※??は適当にSDカードのドライブを指定
■ Lubuntuをインストール
$ sudo shutdown -h now
電源を抜いて、HDMI-Cape, HDMI-DVI変換をモニタにつないでから再度、電源を入れる
$ sudo apt-get -yV install lubuntu-core
$ sudo apt-get -yV install lubuntu-desktop
$ sudo apt-get -yV install lxde-common
$ sudo apt-get -yV install lxde-core
$ sudo apt-get -yV install lxde
参考文献:
0. Beaglebone hardware PDF file
1. Ubuntu 12.04をBeagleboneに入れる方法
2. Beagleboard initializaiton (1)
3.
X. Quake 3 git (used for demo)
X. Quake 3 on Raspberry Pi (1)
■Ubuntu 12.04 をBeagleBone入れる
VMwareで構築したUbuntu PCマシーン+Toolchainで作業
$ mkdir Ubuntu_on_beagle
$ cd Ubuntu_on_bealge
$ wget http://rcn-ee.net/deb/rootfs/precise/ubuntu-12.04-r6-minimal-armhf-2012-09-10.tar.xz
$ tar xJf ubuntu-12.04-r6-minimal-armhf-2012-09-10.tar.xz
$ cd ubuntu-12.04-r6-minimal-armhf-2012-09-10
$ sudo ./setup_sdcard.sh --mmc /media/usb?? --uboot bone ※??は適当にSDカードのドライブを指定
Beagleboneに電源 + USBケーブル接続し、PCからTeratermでシリアル接続(Baudrate: 115200)
login: ubuntu
pass: temppwd
ログイン後の結果:
ログイン後の結果:
Ubuntu 12.04.1 LTS arm ttyO0 arm login: ubuntu Password: Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.28-psp21 armv7l) * Documentation: https://help.ubuntu.com/ The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo". See "man sudo_root" for details. ubuntu@arm:~$
■ Lubuntuをインストール
$ sudo shutdown -h now
電源を抜いて、HDMI-Cape, HDMI-DVI変換をモニタにつないでから再度、電源を入れる
$ sudo apt-get -yV install lubuntu-core
$ sudo apt-get -yV install lubuntu-desktop
$ sudo apt-get -yV install lxde-common
$ sudo apt-get -yV install lxde-core
$ sudo apt-get -yV install lxde
これでlubuntuが無事画面に出ることを確認
Saturday, September 08, 2012
Ubuntu 12.04 on VMware
Ubuntu 12.04 on vmware
■UI変わりすぎて使いにくい。なんとか戻すことにする
sudo apt-get install gdm
sudo apt-get install gnome-shell gnome-session-fallback
テキストログイン→GUIログインにしたい場合は
sudo start gdm
これでとりあえずOK
■日本語環境
sudo add-apt-repository ppa:japaneseteam/ppa
sudo apt-get update
sudo apt-get install ubuntu-defaults-ja
なんか日本語を対応させたいが、今英語バージョンで、もう一度ここから日本語バージョンのイメージをダウンロードし直すか、英語バージョンを日本語にするかを迷う。とりあえず後者で、手順はページの説明通り
Ubuntu 12.04 LTSの場合:
■Google日本語入力
sudo add-apt-repository ppa:ikoinoba/ppa
sudo apt-get update
sudo apt-get install ibus-mozc
sudo reboot
■ディレクトリを日本語にする
LANG=C xdg-user-dirs-gtk-update
■GVim
sudo apt-get install vim-gnome ubuntu-restricted-extras
■ Build
sudo apt-get install build-essential
sudo apt-get install svn git ssh
sudo apt-get install cmake
sudo apt-get install freeglut3 freeglut3-dev
make a small test:
g++ test.cpp -lGL -lglut -o test ※test.cppをリンクオプションの後に置くとエラー!
■Eclipseをインストールして、Proxy設定
Eclipseをインストールすると、設定ファイルなどはすべてrootが所有者になり、一般ユーザから設定を変更しても反映されない。Proxy設定はひとつの例。解決方法は
下記を /etc/eclipse.ini に追加すること
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttp.proxyPort=8080
-Dhttp.proxyHost=XXX
-Dhttp.proxyUser=XXX
-Dhttp.proxyPassword=XXX
-Dhttp.nonProxyHosts=localhost|127.0.0.1
■UI変わりすぎて使いにくい。なんとか戻すことにする
sudo apt-get install gdm
sudo apt-get install gnome-shell gnome-session-fallback
テキストログイン→GUIログインにしたい場合は
sudo start gdm
これでとりあえずOK
■日本語環境
sudo add-apt-repository ppa:japaneseteam/ppa
sudo apt-get update
sudo apt-get install ubuntu-defaults-ja
なんか日本語を対応させたいが、今英語バージョンで、もう一度ここから日本語バージョンのイメージをダウンロードし直すか、英語バージョンを日本語にするかを迷う。とりあえず後者で、手順はページの説明通り
Ubuntu 12.04 LTSの場合:
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/precise.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-defaults-ja
sudo fontconfig-voodoo --force -s ja_JP
sudo apt-get upgrade
sudo apt-get install ubuntu-defaults-ja
sudo fontconfig-voodoo --force -s ja_JP
■Google日本語入力
sudo add-apt-repository ppa:ikoinoba/ppa
sudo apt-get update
sudo apt-get install ibus-mozc
sudo reboot
■ディレクトリを日本語にする
LANG=C xdg-user-dirs-gtk-update
■GVim
sudo apt-get install vim-gnome ubuntu-restricted-extras
■ Build
sudo apt-get install build-essential
sudo apt-get install svn git ssh
sudo apt-get install cmake
sudo apt-get install freeglut3 freeglut3-dev
make a small test:
g++ test.cpp -lGL -lglut -o test ※test.cppをリンクオプションの後に置くとエラー!
■ARMクロスコンパイルビルドチェーン 参考:ここ
sudo apt-get install g++-arm-linux-gnueabi
sudo apt-get install g++-arm-linux-gnueabihf
arm-linux-gnueabi-addr2line arm-linux-gnueabihf-gcov arm-linux-gnueabi-ar arm-linux-gnueabihf-gcov-4.6 arm-linux-gnueabi-as arm-linux-gnueabihf-gprof arm-linux-gnueabi-c++filt arm-linux-gnueabihf-ld arm-linux-gnueabi-cpp arm-linux-gnueabihf-ld.bfd arm-linux-gnueabi-cpp-4.6 arm-linux-gnueabihf-ld.gold arm-linux-gnueabi-elfedit arm-linux-gnueabihf-nm arm-linux-gnueabi-g++ arm-linux-gnueabihf-objcopy arm-linux-gnueabi-g++-4.6 arm-linux-gnueabihf-objdump arm-linux-gnueabi-gcc arm-linux-gnueabihf-ranlib arm-linux-gnueabi-gcc-4.6 arm-linux-gnueabihf-readelf arm-linux-gnueabi-gcov arm-linux-gnueabihf-size arm-linux-gnueabi-gcov-4.6 arm-linux-gnueabihf-strings arm-linux-gnueabi-gprof arm-linux-gnueabihf-strip arm-linux-gnueabihf-addr2line arm-linux-gnueabi-ld arm-linux-gnueabihf-ar arm-linux-gnueabi-ld.bfd arm-linux-gnueabihf-as arm-linux-gnueabi-ld.gold arm-linux-gnueabihf-c++filt arm-linux-gnueabi-nm arm-linux-gnueabihf-cpp arm-linux-gnueabi-objcopy arm-linux-gnueabihf-cpp-4.6 arm-linux-gnueabi-objdump arm-linux-gnueabihf-elfedit arm-linux-gnueabi-ranlib arm-linux-gnueabihf-g++ arm-linux-gnueabi-readelf arm-linux-gnueabihf-g++-4.6 arm-linux-gnueabi-size arm-linux-gnueabihf-gcc arm-linux-gnueabi-strings arm-linux-gnueabihf-gcc-4.6 arm-linux-gnueabi-strip
■Eclipseをインストールして、Proxy設定
Eclipseをインストールすると、設定ファイルなどはすべてrootが所有者になり、一般ユーザから設定を変更しても反映されない。Proxy設定はひとつの例。解決方法は
下記を /etc/eclipse.ini に追加すること
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttp.proxyPort=8080
-Dhttp.proxyHost=XXX
-Dhttp.proxyUser=XXX
-Dhttp.proxyPassword=XXX
-Dhttp.nonProxyHosts=localhost|127.0.0.1
Subscribe to:
Posts (Atom)