DVSDK_3.01.00.10編譯筆記

來源:互聯網
上載者:User

 

硬體平台:

 

 

Devkit8000

256M DDR+256M NAND

S-video輸出

 

 

軟體包:

AM35x-OMAP35x-PSP-SDK-03.00.01.06.tgz

dvsdk_3_01_00_10_Setup.bin

cs1omap3530_setupLinux_1_01_00-prebuilt-dvsdk3.01.00.10.bin

ti_cgt_c6000_6.1.12_setup_linux_x86.bin

 

 

1、將所有包都安裝到一個目錄之下,最好是放到到/Arago/arago-install/dvsdk_3_01_00_10,因為我是裝在/home/workdir/ti/dvsdk_3_01_00_10下面,在編譯的過程中會遇到非要到/Arago/arago-install/dvsdk_3_01_00_10下面去連結檔案,原因好像是在裡面的設定檔中把路徑寫死了,無耐之下我也建立了/Arago/arago-install/dvsdk_3_01_00_10這樣一個符號連結,指向/home/workdir/ti/dvsdk_3_01_00_10。

 

2、安裝好上面幾個組件之後,在dvsdk_3_01_00_10下就是下面這個結構:

3、進到AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/下面,將u-boot裡面的u-boot-03.00.01.06.tar.gz和boot-strap裡面的x-loader-03.00.01.06.tar.gz解壓。這裡不解壓kernel裡面的核心是因為Devkit8000還需要對核心進行修改,感覺挺麻煩,而0xlab為devkit8000移植的核心中也有dsp-bridge驅動,所以我直接用0xkernel來代替這裡的linux-03.00.01.06。

下載方法:git clone git://gitorious.org/0xlab-kernel/kernel.git

可以直接將0xlab的核心直接放在kernel目錄下,也可以建立符號連結

總之,能夠訪問:dvsdk_3_01_00_10/AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/kernel/linux-03.00.01.06就行了。

還有兩處源碼需要修改:

(1)檔案pm34xx.c中有個bug,需要將下面兩個函數用宏括起來,後面調用這倆函數的地方也要改:

#ifdef CONFIG_OMAP_WATCHDOG 

extern int omap_wdt_suspend(void);

extern int omap_wdt_resume(void);

#endif

(2)include/linux/omap_resizer.h和drivers/media/video/isp/omap_resizer.c在編譯過程會提示RSZ_S_EXP未定義錯誤,與AM35x-OMAP35x-PSP-SDK-03.00.01.06內建的核心對比一下不難解決:

在map_resizer.c的rsz_unlocked_ioctl函數中加一個case:

case RSZ_S_EXP:

if (mutex_lock_interruptible(&rsz_conf_chan->

chanprotection_mutex))

return -EINTR;

rsz_conf_chan->register_config.sdr_req_exp =

*((unsigned int *)arg);

mutex_unlock(&rsz_conf_chan->chanprotection_mutex);

break;

在map_resizer.h中添加定義:#define RSZ_S_EXP _IOWR(RSZ_IOC_BASE, 9, __s32)並把 RSZ_IOC_MAXNR的值改為9

由於在DVSDK中運行make的時候不能進行menuconfig的核心配置,所以需要先在kernel下運行menuconfig將核心配置好,產生.config檔案,然後將其複製到arch/arm/config/my_devkit8000_defconfig

 

4、修改~/.bashrc,添加幾個環境變數:

DVSDK_INSTALL_DIR=/home/workdir/ti/dvsdk_3_01_00_10

CSTOOL_DIR=/home/workdir/toolchain/arm-2009q1

CODEGEN_INSTALL_DIR=$DVSDK_INSTALL_DIR/TI_CGT_C6000_6.1.12

CODEC_INSTALL_DIR=$DVSDK_INSTALL_DIR/cs1omap3530_1_01_00

export DVSDK_INSTALL_DIR CODEGEN_INSTALL_DIR CSTOOL_DIR

 

5、檢查dvsdk_3_01_00_10/Rules.make檔案中定義的各個目錄的地址是否正確,根據實際情況進行修改。

 

6、修改dvsdk_3_01_00_10/Makefile,指定u-boot和kernel的預設設定檔:

LINUXKERNEL_CONFIG=my_devkit8000_defconfig

UBOOT_CONFIG=omap3_beagle_config

 

7、在dvsdk_3_01_00_10目錄下運行make help,查看協助,選擇make的目標。

   運行make everything編譯所有目標,運行make install就將產生的目標拷貝到Rules.make中設定的EXEC_DIR目錄。

   不過這裡好像並非所有產生的目標都拷貝過去了,比如運行make dmai_install之後才會把dmai拷過去,慢慢研究自己手動拷吧。

8、修改檔案系統中opt/dvsdk/omap3530/loadmodules.sh指令碼中的insmod cmemk.ko的記憶體位址。

   因為預設之下它的記憶體是99M+15M+13M=128M,而我這塊Devkit8000的記憶體是256M(0x80000000~0x90000000)所以調整後就是:

# 0x80000000     99 MB  Linux         ------------->   0x80000000-------0x8e300000   227M

# 0x86300000     15 MB  CMEM          ------------->   0x8e300000-------0x8f200000    15M

# 0x87200000     13 MB  CODEC SERVER  ------------->   0x8f200000 -------0x90000000   13M

即:

insmod cmemk.ko phys_start=0x8e300000 phys_end=0x8f200000 pools=1x3000000,1x1429440,6x1048576,4x829440,1x327680,1x256000,7x131072,20x4096 allowOverlap=1

 

9、設定uboot啟動參數,重要一點就是需要加上:“mem=227M omapfb.vrfb=y”這三個參數,尤其是“omapfb.vrfb=y”一定要加上,否則“omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX”這個錯誤會搞得你十分頭大,我的啟動參數如下:

 console=ttyS2,115200n8 vram=12M mem=227M omapdss.def_disp=tv omapfb.mode=576p80  rotation=1 omapfb.vrfb=y root=/dev/mmcblk0p2 init=/init rw rootwait

 

10、啟動到linux之後,可能需要手動建立cmem的結點:

    cat /proc/devices看cmem的主裝置號,我的是250

    mknod /dev/cmem c 250

    然後就可以運行omap-demo(自己從dvsdk_3_01_00_10/examples/omap3530/拷貝過來)進行測試了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.