從14年8月接觸板子,開始學習達芬奇DM8168的架構並嘗試移植項目的代碼到板子上運行。到15年4月共8個月時間,從板子uboot,打印簡單的hello world到把項目代碼移植到架構中,調整DSP memsize的大小,項目基本也算邁出了重要的一步。其中這塊開發板的各種傲嬌暫且不談,這段時間把自己學到的知識以及遇到的問題慢慢回憶記錄,以作總結。
Ubuntu 12.04
DVR_RDK_04.01.00.02
(以下所有指令都可以在切換到root後去掉sudo)
一.tftp服務器的安裝配置
1. 安裝tftp
$ sudo apt-get install tftpd tftp xinetd
2. 建立配置文件
在/etc/xinetd.d/下建立一個配置文件tftp
$ sudo vim tftp
1. service tftp
2. {
3. protocol = udp
4. port = 69
5. socket_type = dgram
6. wait = yes
7. user = nobody
8. server = /usr/sbin/in.tftpd
9. server_args = -s /tftpboot
10. disable = no
11. }
這裏需要注意protocol是udp,而非tcpip,需要在uboot配置參數時對應起來。
Server_args就是tftp服務器的根目錄,也是是uImage應該放置的位置。
3. 建立tftp文件目錄
$ sudo mkdir /tftpboot
$ sudo chmod –R 777 /tftpboot
4. 重啓tftp服務
$ sudo /etc/init.d/xinetd restart
5. 測試tftp服務
先在當前目錄下建立test.txt文檔。
$ tftp 127.0.0.1 (連接本機)
tftp>puttest.txt
tftp>get test.txt
get指令用於下載/tftpboot目錄中的文件
put指令用於上傳當前目錄下的文件到/tftpboot中
輸入quit退出。
二.NFS安裝配置
1. 安裝
$ sudo apt-get install nfs-kernel-server
2. 配置參數文件
$ vim /etc/exports
在文件末尾加入
/home/DVRRDK_04.01.00.02/target/rfs_816x *(rw,no_root_squash,no_all_squash,sync)
/home/DVRRDK_04.01.00.02/target/rfs即爲板子與主機共享的目錄。*代表允許所有的網絡段訪問,rw是可讀寫權限,sync是資料同步寫入內存和硬盤,no_root_squash是nfs主機端分享目錄使用者的權限。用者的權限,如果客戶端使是root用戶,那麼對於該共享目錄而言,客戶端就具有root。
3. 重啓nfs
$ sudo /etc/init.d/nfs-kernel-server restart
4. 測試nfs
$ mount -o nolock 127.0.0.1:/home/DVRRDK_04.01.00.02/target/rfs_816x /mnt
使用以上指令可以把目錄掛載在本地磁盤mnt(根目錄下)。、
把打開/mnt文件夾全部關閉後使用umount可以卸載掛載文件
三.DVR_RDK安裝
一般拿到的安裝文件爲:DVRRDK_XX.XX.XX.XX--Linux-x86-Install.bin(xx.xx.xx.xx爲所拿到的DVRRDK的版本號,比如04.01.00.02)
1. 安裝
$ ./ DVRRDK_XX.XX.XX.XX—Linux-x86-Install.bin
安裝文件會安裝DVRRDK_XX.XX.XX.XX.tar.lzma到當前目錄。
2. 解壓
解壓到當前目錄下:
$ tar --lzma -xvpf DVRRDK_XX.XX.XX.XX.tar.lzma
這樣就會得到DVRRDK文件夾,內含dvr_rdk, pre_built_binary, target等一些文件夾和pdf文檔。
四.Uboot環境變量配置
配置好nfs和tftp後,將相應的uImage (比如我這裏使用的/DVRRDK_04.01.00.02/tftphome/
uImage_DM816x_TI_EVM)copy到相應的tftpboot目錄中(上文中提到),連接好DM8168的電源,網線,串口線。
重開一個terminal,進入minicom,DM8168的串口即可在主機terminal中打印相應的信息。輸入:
$ minicom
打開DM8168電源,press any key進入uboot環境變量配置。
(主機ip爲:192.168.100.202 板子ip爲192.168.100.14)
# setenvipaddr 192.168.100.14
# setenvserverip 192.168.100.202
# setenv bootargsconsole=ttyO2,115200n8 root=/dev/nfs rw nfsroot=${serverip}:/home/DVRRDK_04.01.00.02/target/rfs_816x,udpip=${ipaddr}::192.168.100.1:255.255.255.0::eth0:off vram=20M mem=128M notifyk.vpssm3_sva=0xbd200000 ddr_mem=1024M
# saveenv
# boot
Tips:1.minicom中 Ctrl+A 再按Z可對minicom進行配置 一般要打開linewrap
2.偶爾關閉terminal後minicom進程還沒有關閉,再打開minicom會出現:Device /dev/ttyS0 is locked. 這時候輸入ps -A 查看當前進程,kill 掉minicom的進程再重新打開即可。
參考:DM8168軟件使用指南
DM81xx_DVR_RDK_Install_Guide