轉載:http://blog.sina.com.cn/s/blog_bab3fa030102vk21.html
Jetson TK1是NVIDIA基於Tegra K1開發的一塊低成本開發板,板載一塊Tegra K1 32-bit(Logan)芯片,開發板上還有一個HDMI輸出,一個以太網口,一個USB 3.0,一個micro USB口,SATA,mini PCIe,SD卡插槽,調試口有串口DB9和JTAG,以及眾多的IO接口引出。可以說是麻雀雖小,五臟俱全。
Tegra K1有一顆和桌面GPU同架構的Kepler顯示核心,192核架構,峰值浮點運算能力將近是現有最好的單核DSP的數倍到數十倍。開放了移動平台的CUDA接口以后,Tegra K1作為一個性能怪獸,將會在更廣闊的市場上有更多更好的應用。
拿到JTK1開發板的時候,應該是默認的L4T(Linux for Tegra),gstreamer 包和CUDA 6.0 SDK都已經安裝好了。如果想自己動手重新玩一遍的話,可以參考以下步驟:
1 下載並燒寫L4T系統
目前發布的最新版本是19.2,本步驟所有操作在Linux機器上完成。
驅動包Tegra124_Linux_R19.2.0_armhf.tbz2
根文件系統包Tegra_Linux_Sample-Root-Filesystem_R19.2.0_armhf.tbz2
通過PC將兩個tar包下載並放到一個文件夾下,首先解壓縮驅動包
sudo tar --numeric-owner -jxpf Tegra124_Linux_R19.2.0_armhf.tbz2
注意紅色部分,是需要加入的,目前的發行文檔里沒有給出。如果不加入的話,會導致燒寫完成后,系統ubuntu用戶權限出現問題。完成后,會在當前目錄下生成一個Linux_for_Tegra的文件夾。
cd Linux_for_Tegra/rootfs
sudo tar --numeric-owner -jxpf ../../Tegra_Linux_Sample-Root-Filesystem_R19.2.0_armhf.tbz2
根文件系統包解壓縮到驅動包生成的rootfs文件夾中,sudo最好要加上,否則會有warning。
cd ../
sudo ./apply_binaries.sh
現在用一根micro USB線連接到開發板上,按下RECOVERY鍵不放開,然后按下RESET鍵,進入燒寫模式,在Linux_for_Tegra目錄下
sudo ./flash.sh -S 8GiB jetson-tk1 mmcblk0p1
耐心等待燒寫完成,重啟開發板,就可以進入ubuntu桌面環境了,默認的用戶名是ubuntu,密碼ubuntu。相應的L4T文檔和源代碼包,可以在這里找到。
2 下載並安裝CUDA SDK for Tegra
如果你重新燒寫了系統,那么目前這一步你需要找一個USB網卡連接到JTK1開發板上。因為重新燒寫系統后,通過板載網卡聯網的話,DNS解析有問題,無法解析域名,只能通過ip地址訪問網絡。可以在開發板上直接訪問這里 或者在PC上下載CUDA SDK for Tegra,然后再copy到開發板。但是需要先注冊好NV developer賬號,並申請了tegra和cuda的開發,都是免費的。
我下載的文件是cuda-l4t-r19.2_6.0-42_armhf.deb,在開發板上執行:
$ sudo dpkg -i cuda-l4t-r19.2_6.0-42_armhf.deb
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-6-0
$ sudo usermod -a -G video ubuntu
完成后,將/usr/local/cuda-6.0/bin路徑加入到PATH中,將/usr/local/cuda-6.0/lib路徑加入到LD_LIBRARY_PATH中或者配置pkgconfig。
下面就可以編譯CUDA的示例程序了,
$ cuda-install-samples-6.0.sh
如果之前的環境都已經設置成功,那么進入生成的文件夾,make就可以了。
3 測試視頻編解碼器
L4T使用標准的gstreamer作為編解碼器框架,同時提供了NV硬件加速的插件,下面是幾個例子
編碼
gst-launch-0.10 filesrc location= ! videoparse width=640 height=480 format=1 framerate=30/1 ! nv_omx_h264enc ! qtmux ! filesink location= -v
播放
nvgstplayer -I