2011年3月30日 星期三

Beagleboard xM with TI DVSDK 4_01_00_09

Beagleboard xM 跟之前的 Beagleboard有相當多的差異,除了CPU / DSP 時脈的提昇,週邊也多了Ethernet, USB Hub 及 Camera interface.
不過 Nand flash 據說是因為成本的因素而拿掉了.因此Beagleboard xM只能經由 SD card boot.

TI DVSDK 提供很完整的多媒體展示,包含Media encode / decode, OpenGL 3D demo.
接下來將試著將Beagleboard xM DVSDK 安裝至 SD card.

1.參考DVSDK FAQ
http://processors.wiki.ti.com/index.php/DVSDK_4.x_FAQ#How_to_build_and_install_DVSDK_4.01_on_BeagleBoard-xM

根據DVSDK FAQ得知所需要的必要環境是 Ubuntu 10.04. Cross compile 為 CodeSourcery ARM 2009q1

2.Download DM3730 DVSDK 4.01 from TI
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html
下載 dvsdk_dm3730-evm_4_01_00_09_setuplinux,大小約為1.5G.
下載時 TI 會要求帳號密碼,請自行註冊登入.注意帳號的Email 不能是yahoo之類的免費帳號.

下載完成後先變更檔案權限為可執行
$ chmod 755 dvsdk_dm3730-evm_4_01_00_09_setuplinux

執行安裝
$ ./dvsdk_dm3730-evm_4_01_00_09_setuplinux

3.Download patch script for DVSDK 4.01 to support BeagleBoard XM

http://processors.wiki.ti.com/images/5/5b/Setup-dvsdk-4-01-beaglexm-110126.zip

TI DVSDK並沒有支援Beagleboard xM,因此必須要做一些patch.
解開zip檔後會得到檔案 setup-dvsdk-4-01-beaglexm-110126.sh.
將它放在DVSDK root目錄,再依照以下內容修改 setup-dvsdk-4-01-beaglexm-110126.sh.



--- ../setup-dvsdk-4-01-beaglexm-110126.sh    2011-02-04 06:53:32.000000000 +0800
+++ setup-dvsdk-4-01-beaglexm-110126-fix.sh    2011-03-28 21:14:21.206840024 +0800
@@ -67,10 +67,10 @@
 
 # Comment out these 4 lines if you have direct internet connection
 
-PROXYHOST="foo.com"
-PROXYPORT="80"
-export http_proxy="http://${PROXYHOST}:${PROXYPORT}"
-export GIT_PROXY_COMMAND=./git-proxy.sh
+#PROXYHOST="foo.com"
+#PROXYPORT="80"
+#export http_proxy="http://${PROXYHOST}:${PROXYPORT}"
+#export GIT_PROXY_COMMAND=./git-proxy.sh
 
 # Generate git proxy command config script
 cat > git-proxy.sh <<_EOF
@@ -128,7 +128,9 @@
 
 # Apply the patches to the local repository
 for patchfile in ${XLOADPATCHESSTRIPPED} ; do
-    git am oepatches/$patchfile
+    git am --abort
+#    git am oepatches/$patchfile
+    git apply oepatches/$patchfile
 done
 
 cd ..



這個修改是為了可直接連上internet及修正 git am 所造成的 bug

4.變更權限並執行
$ chmod 755 setup-dvsdk-4-01-beaglexm-110126.sh
$ ./setup-dvsdk-4-01-beaglexm-110126.sh
這時這個script會自動去抓許多patch檔,並更新至DVSDK

5.編譯DVSDK
至DVSDK root目錄下

make clean
make all

6.安裝DVSDK 至 SD card

將SD card 連接至PC, 再來弄清楚device node為何 (用dmesg)
以我來說是 /dev/sdd

$ sudo bin/mksdboot.sh --device /dev/sdd --sdk ${PWD}
************************************************************
*         THIS WILL DELETE ALL THE DATA ON /dev/sdd        *
*                                                          *
*         WARNING! Make sure your computer does not go     *
*                  in to idle mode while this script is    *
*                  running. The script will complete,      *
*                  but your SD card may be corrupted.      *
*                                                          *
*         Press to confirm....                     *
************************************************************

unmounting device '/dev/sdd1'
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.904471 s, 1.2 MB/s
Disk /dev/sdd doesn't contain a valid partition table
Checking that no-one is using this disk right now ...
OK

Disk /dev/sdd: 1949 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/sdd: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdd1   *      0+      4       5-     40131    c  W95 FAT32 (LBA)
/dev/sdd2          5    1948    1944   15615180   83  Linux
/dev/sdd3          0       -       0          0    0  空
/dev/sdd4          0       -       0          0    0  空
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
Formating /dev/sdd1 ...
Formating /dev/sdd2 ...
mke2fs 1.41.11 (14-Mar-2010)
Image Name:   Execute uImage.bin
Created:      Mon Mar 28 20:31:49 2011
Image Type:   ARM Linux Script (uncompressed)
Data Size:    238 Bytes = 0.23 kB = 0.00 MB
Load Address: 0x00000000
Entry Point:  0x00000000
Contents:
   Image 0:      230 Bytes =    0 kB = 0 MB
Image Name:   Execute uImage.bin
Created:      Mon Mar 28 20:31:50 2011
Image Type:   ARM Linux Script (uncompressed)
Data Size:    289 Bytes = 0.28 kB = 0.00 MB
Load Address: 0x00000000
Entry Point:  0x00000000
Contents:
   Image 0:      281 Bytes =    0 kB = 0 MB
Select Primary display output:
 1: LCD
 2: DVI

Copying u-boot/mlo/uImage on /dev/sdd1
unmounting /dev/sdd1
Extracting filesystem on /dev/sdd2 ...
Creating matrix-gui-e symbolic link...done
unmounting /dev/sdd2
completed!
Updating FS with modified beagleboard-xM files
unmounting /dev/sdd2
Done



到這裡SD card已經準備好了

7.以SD card boot Beagleboard xM

boot成功最後會看到以下登入畫面,請以root登入,無須密碼.

Escape character is '^]'.

 _____                    _____           _         _  
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_| 
              |___|                    |___|           

Arago Project http://arago-project.org beagleboard-dvsdk

Arago 2010.11 beagleboard-dvsdk

login: root
Last login: Thu Jan 13 23:28:57 on pts/0

來看看一些系統基本資訊

CPU跑1G Hz

root@beagleboard-dvsdk:~# cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 996.74
Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc08
CPU revision    : 2

Hardware        : OMAP3 Beagle Board
Revision        : 0020
Serial          : 0000000000000000


dsplink driver已經掛上,DSP可以使用了

root@beagleboard-dvsdk:~# lsmod
Module                  Size  Used by
sdmak                   3759  0
lpm_omap3530            6537  0
dsplinkk              124358  1 lpm_omap3530
cmemk                  21358  0
bufferclass_ti          4838  0
omaplfb                 8770  0
pvrsrvkm              129682  2 bufferclass_ti,omaplfb
ipv6                  249320  14
rtc_twl                 4263  0
rtc_core               12531  1 rtc_twl


將DVI 接頭接到 monitor 會看到 Demo 畫面,



Video encode / decode, OpenGL 3D Demo




還有一個Qt base browser



4 則留言:

  1. hi 史蒂芬大哥
    想請教您一下
    您有將beagleboard-xm用ti dvsdk 4_01掛載nfs過嗎?

    [版主回覆07/06/2011 14:31:58]印象中有掛上過NFS.
    mount記得加上 -o nolock 應該就可以

    回覆刪除
  2. hi 史蒂夫大哥
    多謝您的回應
    我可能讓您誤解我的意思了
    我的意思是讓bb-xm用nfs掛載rootfs
    我的試驗結果是會卡在ip-config
    kernel會先跑到ip-config以後印出can't find 'usb0'
    接著網路卡才註冊完
    不知道您有沒有碰到過

    [版主回覆07/11/2011 20:01:58]這個偶沒試過ㄟ

    回覆刪除
  3. 您好,

    請問dvsdk4.02是否也有對應的patch file?

    謝謝
    [版主回覆12/28/2011 22:47:54]沒看到有人弄,從之前的patch改吧.

    回覆刪除
  4. 請問,setup-dvsdk-4-01-beaglexm-110126.sh 的程式碼是要如何修改呢?

    因為我現在沒有辦法正常執行 setup-dvsdk-4-01-beaglexm-110126.sh

    所以想請問setup-dvsdk-4-01-beaglexm-110126.sh 這個檔案要如何修改,感謝您!!

    回覆刪除