User Tools

Site Tools


faqs:general |

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
faqs:general [2015/05/11 19:52]
rchen
faqs:general [2019/05/20 15:30] (current)
cflintiii [Capturing Packet Stream with Wireshark]
Line 1: Line 1:
 ===== Build Questions ===== ===== Build Questions =====
  
 +
 +\\ 
  
 ==== (1) I am getting an unexpected error when I try building the Z3 codebase. What can I try? ==== ==== (1) I am getting an unexpected error when I try building the Z3 codebase. What can I try? ====
Line 10: Line 12:
 <​code>​ <​code>​
     sudo apt-get install bison flex mtd-utils liblzo2-dev uuid-dev zlib1g-dev libpcre3-dev autoconf \     sudo apt-get install bison flex mtd-utils liblzo2-dev uuid-dev zlib1g-dev libpcre3-dev autoconf \
-         ​autoconf-archive automake automake1.9 ​automake1.9-doc ​libtool libtool-doc+         ​autoconf-archive automake automake1.9 libtool libtool-doc ​lynx xutils-dev
 </​code>​ </​code>​
  
Line 19: Line 21:
 <​code>​ <​code>​
    sudo yum install bison flex mtd-utils mtd-utils-ubi lzo-devel libuuid-devel pcre-devel automake \    sudo yum install bison flex mtd-utils mtd-utils-ubi lzo-devel libuuid-devel pcre-devel automake \
-        automake17 automake14 autoconf libtool+        automake17 automake14 autoconf libtool ​lynx xorg-x11-server-devel
 </​code>​ </​code>​
- 
  
 ==== (2) Will the code build in a 64-bit environment?​ ==== ==== (2) Will the code build in a 64-bit environment?​ ====
Line 30: Line 31:
  
 <​code>​ <​code>​
-    ​sudo apt-get ​install ia32-libs+   sudo dpkg --add-architecture i386 
 +   sudo apt-get ​update 
 +   sudo apt-get install libc6:i386 libncurses5:​i386 libstdc++6:​i386 zlib1g:i386
 </​code>​ </​code>​
  
Line 40: Line 43:
     sudo yum install glibc.i686     sudo yum install glibc.i686
 </​code>​ </​code>​
- 
  
 ==== (3) What versions of Linux can I use to build the Z3 codebase? ==== ==== (3) What versions of Linux can I use to build the Z3 codebase? ====
Line 47: Line 49:
 The Z3 codebase can be built on Ubuntu 10.x or later. Most versions of Fedora should also work. The Z3 codebase can be built on Ubuntu 10.x or later. Most versions of Fedora should also work.
  
 +
 +\\ 
  
 ==== (4) I get the error message “error:​lzo/​lzo1x.h:​ No such file or directory” when building. What should I do? ==== ==== (4) I get the error message “error:​lzo/​lzo1x.h:​ No such file or directory” when building. What should I do? ====
Line 53: Line 57:
 This can be solved by installing the modules described in Question (1). This can be solved by installing the modules described in Question (1).
  
 +
 +\\ 
  
 ==== (5) I get the error message “pcre.h: No such file or directory In file included from base.h: 24” when building. What should I do? ==== ==== (5) I get the error message “pcre.h: No such file or directory In file included from base.h: 24” when building. What should I do? ====
Line 89: Line 95:
 If it was, this could also be an indicator that a “make clean” is needed. Try typing “make clean” and then try typing “./​makeall.sh”. If it was, this could also be an indicator that a “make clean” is needed. Try typing “make clean” and then try typing “./​makeall.sh”.
  
 +
 +\\ 
  
 ==== (6) I get the error message “'​UTS_RELEASE'​ undeclared here” when building. What should I do? ==== ==== (6) I get the error message “'​UTS_RELEASE'​ undeclared here” when building. What should I do? ====
Line 129: Line 137:
 This is due to bison not being installed. Running the command described in Question (1) will address this. This is due to bison not being installed. Running the command described in Question (1) will address this.
  
 +
 +\\ 
  
 ==== (7) I get the error message “***** [xdc_configuro] Error 127**” when building. What should I do? ==== ==== (7) I get the error message “***** [xdc_configuro] Error 127**” when building. What should I do? ====
Line 160: Line 170:
  
  
-==== (8) When I try modifying code and building I get something like "line 1: syntax error: unexpected '​('"​. What could cause this? ====+\\
  
 +==== (8) When I try modifying code and building I get something like "line 1: syntax error: ​ unexpected '​('"​. ​ What could cause this? ====
  
-This is an indicator that the host gcc is being used to build the code rather than Z3's cross-compiler. Compiling should be done with the following commands (here giodebug.c is the file to be compiled): +This is an indicator that the host gcc is being used to build the code rather than Z3's cross-compiler. ​ Compiling should be done with the following commands (here giodebug.c is the file to be compiled):
  
 <​code>​ <​code>​
Line 171: Line 181:
 </​code>​ </​code>​
  
 +Then when you run 
  
-Then when you run +<​code> ​   file giodebug
- +
- +
-<​code>​ +
-    file giodebug+
 </​code>​ </​code>​
- 
  
 it should report: it should report:
- 
  
 <​code>​ <​code>​
Line 187: Line 192:
 </​code>​ </​code>​
  
 +\\ 
  
-==== (9) I get "​***[clean] Error 127" and "​***[osa] Error 2" messages when I try to build the RDK. What can I do? ==== +==== (9) I get "​***[clean] Error 127" and "​***[osa] Error 2" messages when I try to build the RDK.  What can I do? ====
  
 The full erorr message looks like: The full erorr message looks like:
- 
  
 <​code>​ <​code>​
Line 214: Line 218:
 </​code>​ </​code>​
  
 +This occurred for a customer using Ubuntu 10.4 LTS.  They resolved this issue by updating their environment. ​ We recommend you try the same.
  
-This occurred for a customer using Ubuntu 10.4 LTS. They resolved this issue by updating their environment. We recommend you try the same. +\\
  
 ===== Boot/​U-Boot/​Update Questions ===== ===== Boot/​U-Boot/​Update Questions =====
  
 +
 +\\ 
  
 ==== (1) I want to stop in u-boot so I can change some environment variables. How do I do this? ==== ==== (1) I want to stop in u-boot so I can change some environment variables. How do I do this? ====
Line 226: Line 232:
 Hold down the space bar and power on the unit. Keep pressing space bar as power comes up. This should cause a stop in u-boot. Hold down the space bar and power on the unit. Keep pressing space bar as power comes up. This should cause a stop in u-boot.
  
 +
 +\\ 
  
 ==== (2) I see that the DM8107 and DM8148 software uses a 2-stage boot. Spacebar works to stop the second-stage u-boot. What do I do if I want to stop the first stage u-boot? ==== ==== (2) I see that the DM8107 and DM8148 software uses a 2-stage boot. Spacebar works to stop the second-stage u-boot. What do I do if I want to stop the first stage u-boot? ====
Line 232: Line 240:
 Hold down the "​s"​ key and power on the unit. Keep holding the "​s"​ key. This will cause a stop at the Z3-MIN prompt. Hold down the "​s"​ key and power on the unit. Keep holding the "​s"​ key. This will cause a stop at the Z3-MIN prompt.
  
 +
 +\\ 
  
 ==== (3) I am not getting anything when I try to boot up the module. What can I do to recover it? ==== ==== (3) I am not getting anything when I try to boot up the module. What can I do to recover it? ====
  
  
-You can reprogram the module using BOOTP. This process involves setting up a BOOTP server on your development PC, setting some jumpers on your module, connecting the module to your development PC via the Ethernet, and then turning on the board. Detailed procedures on doing this for DM8107 modules can be found {{:​doc-usr-0041-01_dm8107-mod-0x_nand_recovery.pdf|here}}. Details on doing this for DM8148 modules can be found {{:​doc-usr-0021-03_dm8148-mod-2x_nand_recovery.pdf|here}}. Details on doing this for DM8168 modules can be found {{:​doc-usr-0019-03_dm8168-mod-2x_nand_recovery.pdf|here}}. For details on doing this on other platforms, please contact Z3.+You can reprogram the module using BOOTP. This process involves setting up a BOOTP server on your development PC, setting some jumpers on your module, connecting the module to your development PC via the Ethernet, and then turning on the board. Detailed procedures on doing this for DM8107 modules can be found {{:​doc-usr-0041-01_dm8107-mod-0x_nand_recovery.pdf|here}}. ​ Details on doing this for DM8148 modules can be found {{:​doc-usr-0021-03_dm8148-mod-2x_nand_recovery.pdf|here}}. Details on doing this for DM8168 modules can be found {{:​doc-usr-0019-03_dm8168-mod-2x_nand_recovery.pdf|here}}. For details on doing this on other platforms, please contact Z3.
  
  
-==== (4) I am trying to bring up a module with BOOTP but it is not responding. What could be the reason? ====+\\ 
  
 +==== (4) I am trying to bring up a module with BOOTP but it is not responding. ​ What could be the reason? ====
  
-There are various reasons this can occur. A good place to start is to make sure that TFTP is working properly. Question (1) in the TFTP sections lists multiple things to check to make sure TFTP is working as expected. +There are various reasons this can occur. ​ A good place to start is to make sure that TFTP is working properly. ​ Question (1) in the TFTP sections lists multiple things to check to make sure TFTP is working as expected.
- +
- +
-One of the most common reasons BOOTP doesn'​t work is the need for a "​-s"​ in the server_args settings in the tftp config file. In the file /​etc/​xinetd.d/​tftp,​ you should make sure that the "/​home"​ argument in "​server_args"​ is preceded by a "​-s"​. An example of a valid tftp file is shown below:+
  
 +One of the most common reasons BOOTP doesn'​t work is the need for a "​-s"​ in the server_args settings in the tftp config file.  In the file /​etc/​xinetd.d/​tftp,​ you should make sure that the "/​home"​ argument in "​server_args"​ is preceded by a "​-s"​. ​ An example of a valid tftp file is shown below:
  
 <​code>​ <​code>​
Line 260: Line 269:
     }     }
 </​code>​ </​code>​
- 
  
 Once this change is made, be sure to restart TFTP so this change can take effect. Once this change is made, be sure to restart TFTP so this change can take effect.
  
 +\\
  
 ==== (5) Is it possible to boot from SD card? ==== ==== (5) Is it possible to boot from SD card? ====
Line 270: Line 279:
 This is currently not supported. This is currently not supported.
  
 +
 +\\ 
  
 ==== (6) What u-boot versions are used? ==== ==== (6) What u-boot versions are used? ====
Line 285: Line 296:
 For DM368 u-boot versions, please contact Z3 Technology. For DM368 u-boot versions, please contact Z3 Technology.
  
 +\\ 
  
 ==== (7) During boot-up, we see "​ddr_mem=xM wrong in bootargs"​. Why is this? ==== ==== (7) During boot-up, we see "​ddr_mem=xM wrong in bootargs"​. Why is this? ====
Line 292: Line 304:
  
  
-==== (8) During boot-up, we see '​id3_frametype_obsolete'​. Why is this? ====+\\ 
  
 +==== (8) During boot-up, we see '​id3_frametype_obsolete'​. ​ Why is this? ====
  
 The full message is: The full message is:
- 
  
 <​code>​ <​code>​
Line 307: Line 319:
     Preloading gstreamer components ​     Preloading gstreamer components ​
  
-    (gst-inspect-0.10:​697):​ GStreamer-WARNING **: Failed to load plugin '/​opt/​gstreamer/​lib/​gstreamer-0.10/​libgstmad.so':​ /​opt/​gstreame/​lib/​libid3tag.so.0:​ undefined symbol: id3_frametype_obsolete+    (gst-inspect-0.10:​697):​ GStreamer-WARNING **: Failed to load plugin '/​opt/​gstreamer/​lib/​gstreamer-0.10/​libgstmad.so':​ /​opt/​gstreame/​lib/​libid3tag.so.0:​ undefined symbol: id3_frametype_obsolete ​
 </​code>​ </​code>​
  
- +This is caused by building the image without the '​gperf'​ package. ​ To fix this, install gperf and rebuild. ​ On Ubuntu/​Debian you can type:
-This is caused by building the image without the '​gperf'​ package. To fix this, install gperf and rebuild. On Ubuntu/​Debian you can type: +
  
 <​code>​ <​code>​
     sudo apt-get install gperf     sudo apt-get install gperf
 </​code>​ </​code>​
- 
  
 On Fedora you would type: On Fedora you would type:
- 
  
 <​code>​ <​code>​
     sudo yum install gperf     sudo yum install gperf
 </​code>​ </​code>​
 +    ​
 +\\ 
  
 +==== (9) I have an older EZSDK or RDK build and I am seeing errors after reprogramming the module starting with '​mounting rootfs on / failed'​ (or mounting on any partition failed), eventually resulting in a lot of '​notify_shm_drv_sendevent failed'​ messages. ​ I also see a "​memory map bin file not passed"​ message in the boot log.  What should I do? ====
  
-==== (9) I have an older EZSDK or RDK build and I am seeing errors after reprogramming the module starting with '​mounting rootfs on / failed'​ (or mounting on any partition failed), eventually resulting in a lot of '​notify_shm_drv_sendevent failed'​ messages. I also see a "​memory map bin file not passed"​ message in the boot log. What should I do? ==== +There is a known bug in older EZSDK/RDK releases involving the file /​etc/​volatile.cache. ​ Check to see if it has a file size of 0.  If it does, do the following steps:
- +
- +
-There is a known bug in older EZSDK/RDK releases involving the file /​etc/​volatile.cache. Check to see if it has a file size of 0. If it does, do the following steps: +
  
 <​code>​ <​code>​
Line 339: Line 346:
 </​code>​ </​code>​
  
 +Note -- newer EZSDK/RDK releases (after September/​2013) have a fix for this issue.
  
-Note – newer EZSDK/RDK releases (after September/​2013) have a fix for this issue. +\\
  
 ==== (10) Is it possible to update the firmware by USB? ==== ==== (10) Is it possible to update the firmware by USB? ====
  
 +Yes, this is possible on DM81xx systems. ​ For RDK-based systems the procedure is as follows:
  
-Yes, this is possible on DM81xx systems. For RDK-based systems the procedure is as follows:+(1)  Take a USB drive (must be FAT32 format) ​
  
 +(2)  Remove any .img files that exist in the root directory of that USB drive 
  
-(1) Take a USB drive (must be FAT32 format) +    ​*Having other .img files in the root directory might cause the wrong .img file to be updated.
- +
- +
-(2) Remove any .img files that exist in the root directory of that USB drive +
- +
- +
-    ​* Having other .img files in the root directory might cause the wrong .img file to be updated. +
  
 (3) Copy the .img file *as-is* to the USB drive root directory (3) Copy the .img file *as-is* to the USB drive root directory
  
 +    *It is important not to rename it (note that this is different from the EZSDK procedure, which requires renaming).
  
-    * It is important not to rename it (note that this is different from the EZSDK procedure, which requires renaming). +(4)  Plug the USB drive into the board and boot the board. ​ You should see something like the following at the beginning of u-boot:
- +
- +
-(4) Plug the USB drive into the board and boot the board. You should see something like the following at the beginning of u-boot: +
  
 <​code>​ <​code>​
Line 442: Line 441:
 firmware has been successfully updated. firmware has been successfully updated.
 resetting ... resetting ...
 +
 </​code>​ </​code>​
  
 +There is one important note – we have seen from our experience that not all USB drives are successfully
 +recognized by u-boot. ​ If you see the “reading x.img” message, then you know it is successful.
 +Unsuccessful drives will either hang or will say “checking for Z3 software image” but won’t find anything.
  
-There is one important note – we have seen from our experience that not all USB drives are successfully ​recognized by u-boot. If you see the “reading x.img” message, then you know it is successful. Unsuccessful drives will either hang or will say “checking for Z3 software image” but won’t find anything.+In our tests we successfully ​used a SanDisk Cruzer Glide 32GB and Kingston Data Traveler
  
 +Note that the Z3-DM816X-PCI2-RPS system comes with with an APP-41 that does not have a USB support, so that software
 +does not support recognizing USB drives in u-boot. ​ If this functionality is needed on a Z3-DM816X-PCI2-RPS release please
 +contact Z3 Technology. All other DM81xx releases support this functionality.
  
-In our tests we successfully used a SanDisk Cruzer Glide 32GB and Kingston Data Traveler. 
- 
- 
-Note that the Z3-DM816X-PCI2-RPS system comes with with an APP-41 that does not have a USB support, so that software does not support recognizing USB drives in u-boot. If this functionality is needed on a Z3-DM816X-PCI2-RPS release please contact Z3 Technology. All other DM81xx releases support this functionality. 
  
  
 For EZSDK-based systems the procedure is slightly different: For EZSDK-based systems the procedure is slightly different:
  
 +(1)  Take a USB drive (must be FAT32 format) and make a directory named “update”
  
-(1) Take a USB drive (must be FAT32 format) and make a directory named “update” +(2)  Copy the image to update with to the "​update"​ directory and rename that file “z3.img”
- +
- +
-(2) Copy the image to update with to the "​update"​ directory and rename that file “z3.img” +
- +
- +
-(3) Plug the USB drive into the board and boot the board. You should see something like the following at the beginning of u-boot:+
  
 +(3)  Plug the USB drive into the board and boot the board. ​ You should see something like the following at the beginning of u-boot:
  
 <​code>​ <​code>​
Line 497: Line 495:
         resetting ...         resetting ...
 </​code>​ </​code>​
- 
  
 The same note about selected USB drives being found to work mentioned above in the RDK procedure applies here as well. The same note about selected USB drives being found to work mentioned above in the RDK procedure applies here as well.
  
 +
 +\\
  
 ==== (11) Is there a way to update the NAND through NFS? ==== ==== (11) Is there a way to update the NAND through NFS? ====
- 
  
 Yes, there is on the DM81XX products. Yes, there is on the DM81XX products.
- 
  
 For all EZSDK products and all DM816X RDK products, the procedure is as follows: For all EZSDK products and all DM816X RDK products, the procedure is as follows:
Line 539: Line 536:
    (12) [Reboot board, stop at u-boot, and enter the following]    (12) [Reboot board, stop at u-boot, and enter the following]
         Z3-DM8168-MOD#​ setenv bootcmd run nand_boot_ubifs         Z3-DM8168-MOD#​ setenv bootcmd run nand_boot_ubifs
-        Z3-DM8168-MOD#​ saveenv+        Z3-DM8168-MOD#​ saveenv ​  ​
 </​code>​ </​code>​
  
 +For all DM8107 and DM814X RDK products, the procedure is the same as above, except "​mtd5"​ in step (2) should be "​mtd6",​ and
 +"-m 5" in step (3) should be "-m 6".
  
-For all DM8107 and DM814X RDK products, the procedure is the same as above, except "​mtd5"​ in step (2) should be "​mtd6",​ and "-m 5" in step (3) should be "-m 6". +\\
  
 ==== (12) When doing an update with an SD card for the DM368 products, what SD card can be used? ==== ==== (12) When doing an update with an SD card for the DM368 products, what SD card can be used? ====
- 
  
 Any SD card 32GB or less can be used. Any SD card 32GB or less can be used.
  
 +
 +\\
  
 ===== TFTP/NFS Server Questions ===== ===== TFTP/NFS Server Questions =====
  
 +
 +\\ 
  
 ==== (1) I set up the TFTP server but it is not responding at boot-up. What can I check? ==== ==== (1) I set up the TFTP server but it is not responding at boot-up. What can I check? ====
Line 567: Line 568:
  
  
-(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the TFTP server? (Default value = 255.255.0.0)<​nowiki>​+(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the TFTP server? (Default value = 255.255.0.0)
  
  
-©</​nowiki> ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the TFTP server based on the netmask?+%%(c)%% ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the TFTP server based on the netmask?
  
  
-    * For example, if the netmask is 255.255.0.0 and the TFTP server IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except "​0.6"​.+    *For example, if the netmask is 255.255.0.0 and the TFTP server IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except "​0.6"​.
  
  
Line 599: Line 600:
 (k) Is the permission of your /tftpboot directory set to "​777"​ and the owner set to "​nobody"?​ (k) Is the permission of your /tftpboot directory set to "​777"​ and the owner set to "​nobody"?​
  
 +
 +\\ 
  
 ==== (2) I set up the NFS server but it is not responding at boot-up. What can I check? ==== ==== (2) I set up the NFS server but it is not responding at boot-up. What can I check? ====
Line 612: Line 615:
  
  
-(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the NFS server? (Default value = 255.255.0.0)<​nowiki>​+(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the NFS server? (Default value = 255.255.0.0)
  
  
-©</​nowiki> ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the NFS server based on the netmask?+%%(c)%% ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the NFS server based on the netmask?
  
  
-    * For example, if the netmask is 255.255.0.0 and the NFS server IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except ​0.6.+    *For example, if the netmask is 255.255.0.0 and the NFS server IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except ​"0.6".
  
  
Line 630: Line 633:
  
  
-(g) Was a filesys” directory link set up?+(g) Was a "filesys" ​directory link set up?
  
  
Line 644: Line 647:
 (k) If you modified the exports file, did you remember to restart the nfs server after making your changes? (k) If you modified the exports file, did you remember to restart the nfs server after making your changes?
  
 +
 +\\
  
 ===== ZFinder Questions ===== ===== ZFinder Questions =====
  
  
-%%\%% +\
  
 ==== (1) What OS's does ZFinder run on? ==== ==== (1) What OS's does ZFinder run on? ====
  
 +ZFinder will run on Windows XP and any Windows OS after that -- including Windows Vista, Windows 7, and Windows 8.
  
-ZFinder will run on Windows XP and any Windows OS after that – including Windows Vista, Windows 7, and Windows 8. 
- 
- 
-%%\%% 
  
 +\\ 
  
 ===== Running the Decoder ===== ===== Running the Decoder =====
  
  
-%%\%% +\
  
 ==== (1) The board boots up and I type the IP address in the browser, but I can't get the GUI to appear. What can I do? ==== ==== (1) The board boots up and I type the IP address in the browser, but I can't get the GUI to appear. What can I do? ====
Line 675: Line 676:
  
  
-(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the PC? (Default value = 255.255.0.0)<​nowiki>​+(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the PC? (Default value = 255.255.0.0)
  
  
-©</​nowiki> ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the PC based on the netmask?+%%(c)%% ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the PC based on the netmask?
  
  
-    * For example, if the netmask is 255.255.0.0 and the PC IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except ​0.6.+    *For example, if the netmask is 255.255.0.0 and the PC IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except ​"0.6".
  
  
Line 690: Line 691:
  
  
-%%\%% +\
  
 ==== (2) We are able to see the GUI / run the decoder, but when we try it with the encoder, we are not receiving the stream. What could the reason be? ==== ==== (2) We are able to see the GUI / run the decoder, but when we try it with the encoder, we are not receiving the stream. What could the reason be? ====
Line 697: Line 697:
  
 90% of the time, the issue is with the value typed in for the URL on the decoder. Some customers type in the IP address of the encoder board here. This is not correct. The value that needs to be typed in here is the IP address which the encoder //is streaming to//. For example, let's say that an encoder board with IP address 192.168.81.68 is streaming to a decoder board with IP address 192.168.0.200. On the encode side, the URL could be set to 90% of the time, the issue is with the value typed in for the URL on the decoder. Some customers type in the IP address of the encoder board here. This is not correct. The value that needs to be typed in here is the IP address which the encoder //is streaming to//. For example, let's say that an encoder board with IP address 192.168.81.68 is streaming to a decoder board with IP address 192.168.0.200. On the encode side, the URL could be set to
- 
- 
 <​code>​ <​code>​
     udp://​192.168.0.200:​8888     udp://​192.168.0.200:​8888
Line 714: Line 712:
 This is also true for RTP streaming and also true for multicast IP addresses. This is also true for RTP streaming and also true for multicast IP addresses.
  
 +
 +\\ 
  
 ==== (3) The sample decoder demo defaults to a 2x2 layout. How can I change this to 1x1 or some other configuration?​ ==== ==== (3) The sample decoder demo defaults to a 2x2 layout. How can I change this to 1x1 or some other configuration?​ ====
Line 733: Line 733:
 </​code>​ </​code>​
  
 +\\
  
-==== (4) We are handling NTSC display on our own board and have observed that, when we display NTSC on SDI, a green bar 3 lines wide appears at the top. This bar does not occur for PAL and it seems to occur only on data we capture. What is causing this? ====+==== (4) We are handling NTSC display on our own board and have observed that, when we display NTSC on SDI, a green bar 3 lines wide appears at the top.  This bar does not occur for PAL and it seems to occur only on data we capture. ​ What is causing this? ====
  
 +These 3 lines are video blanking data and are unique to NTSC.  Seeing these lines is possible if you are displaying the 480 lines of NTSC on a 488 line monitor. ​ The recommended solution is to make the display buffer bigger and move the portion that is displayed down 3 lines.
  
-These 3 lines are video blanking data and are unique to NTSC. Seeing these lines is possible if you are displaying the 480 lines of NTSC on a 488 line monitor. The recommended solution is to make the display buffer bigger and move the portion that is displayed down 3 lines. 
  
 +\\ 
  
-==== (5) There is an .mpg file that won't play back. Is there anything we can try? ==== +==== (5) There is an .mpg file that won't play back.  Is there anything we can try? ====
  
 Try renaming "​.mpg"​ to "​.ts."​ Try renaming "​.mpg"​ to "​.ts."​
  
  
-==== (6) I am running an encoder and decoder end-to-end at 1080p60. Is there anything I can do to improve the latency and text quality? ====+\\
  
 +==== (6) I am running an encoder and decoder end-to-end at 1080p60. ​ Is there anything I can do to improve the latency and text quality? ====
  
-One thing to make sure of when decoding 1080p60 (or any progressive resolution) is that the display mode is set to 1080p60. If display mode is set to 1080i, this can cause an unnecessary increase in latency and can also cause quality degradation (most visible with sharp edges such as text). If 1080p60 display mode is set, the best possible latency and quality in the system will result. +One thing to make sure of when decoding 1080p60 (or any progressive resolution) is that the display mode is set to 1080p60. ​ If display mode is set to 1080i, this can cause an unnecessary increase in latency and can also cause quality degradation (most visible with sharp edges such as text). ​ If 1080p60 display mode is set, the best possible latency and quality in the system will result.
  
 +\\
 +   
 ===== Running the Encoder ===== ===== Running the Encoder =====
 +
 +\\ 
  
  
Line 764: Line 769:
  
  
-(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the PC? (Default value = 255.255.0.0)<​nowiki>​+(b) Check the netmask of the Z3 Module set in u-boot. Is it equal to the netmask of the PC? (Default value = 255.255.0.0)
  
  
-©</​nowiki> ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the PC based on the netmask?+%%(c)%% ​Check the IP address of the Z3 Module set in u-boot. Is it one that can communicate with the PC based on the netmask?
  
  
-    * For example, if the netmask is 255.255.0.0 and the PC IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except ​0.6.+    * For example, if the netmask is 255.255.0.0 and the PC IP address is 192.168.0.6,​ then the Z3 Module can be set to an IP address of 192.168.x.y,​ where x.y is any value except ​"0.6".
  
  
Line 779: Line 784:
  
  
-%%\%% +\
  
 ==== (2) I am running UDP encode but cannot see a picture in VLC. What can I check? ==== ==== (2) I am running UDP encode but cannot see a picture in VLC. What can I check? ====
Line 788: Line 792:
  
  
-(a) Does the IP address set in Dest Address” in the encoder equal the IP address of the PC running VLC?+(a) Does the IP address set in "Dest Address" ​in the encoder equal the IP address of the PC running VLC?
  
  
Line 794: Line 798:
  
  
-(b) Does the port number in Dest Port” equal the value entered in the URL for VLC?<​nowiki>​+(b) Does the port number in "Dest Port" ​equal the value entered in the URL for VLC?
  
  
-©</​nowiki> ​Does the video coming out of the source match the resolution in the encoder settings?+%%(c)%% ​Does the video coming out of the source match the resolution in the encoder settings?
  
  
Line 805: Line 809:
 (e) Is version 1.1x or later of VLC being used? (e) Is version 1.1x or later of VLC being used?
  
 +(f) Did you remember to type "​udp"​ and "​@"​ in the URL for VLC?  (Both are needed).
  
-(f) Did you remember to type “udp” and ”@” in the URL for VLC? (Both are needed). 
- 
- 
-%%\%% 
  
 +\\ 
  
 ==== (3) I am running RTP encode but cannot see a picture in VLC. What can I check? ==== ==== (3) I am running RTP encode but cannot see a picture in VLC. What can I check? ====
  
- +The important thing here is to make sure the value of "Dest Port" ​matches the value which the User's Guide says to use (generally 5004). ​ The User's Guide will say which value of Dest Port matches the sample SDP file provided by Z3.
-The important thing here is to make sure the value of Dest Port” matches the value which the User's Guide says to use (generally 5004). The User's Guide will say which value of Dest Port matches the sample SDP file provided by Z3+
- +
- +
-%%\%% +
- +
- +
-==== (4) I have the encoder connected but am seeing what looks like bad quality on the output. What could be wrong? ==== +
- +
- +
-(a) First, make sure the source is clean. Connect the video source directly to a monitor and confirm there are no issues.+
  
  
-(b) Second, try a different set of cables. More than a few times the issue turns out to be bad cables.<​nowiki>​+\\ 
  
 +==== (4) I have the encoder connected but am seeing what looks like bad quality on the output. ​ What could be wrong? ====
  
-©</​nowiki>​ Third, try different ​source ​if possible. This will help determine if there is an issue between ​the source and the Z3 encoder.+(a) First, make sure the source is clean. ​ Connect ​the video source ​directly to a monitor ​and confirm there are no issues.
  
 +(b) Second, try a different set of cables. ​ More than a few times the issue turns out to be bad cables.
  
-(dFourth, try connecting to PC with VLC and streaming using RTP or UDPIf the VLC plays clean then there is likely a decoder ​issue.+%%(c)%% Third, try a different source if possible This will help determine if there is an issue between the source and the Z3 encoder.
  
 +(d) Fourth, try connecting to a PC with VLC and streaming using RTP or UDP.  If the VLC plays clean then there is likely a decoder issue.
  
 (e) Fifth, if a Z3 unit is being used for encode and another for decode, try switching them. (e) Fifth, if a Z3 unit is being used for encode and another for decode, try switching them.
Line 842: Line 837:
  
  
-%%\%% +\
  
 ==== (5) What settings can I use to get the lowest latency possible? ==== ==== (5) What settings can I use to get the lowest latency possible? ====
  
- +The two settings that directly impact latency are "Maximum Delay" ​(called ​"Video Burst Size" ​on the DM368) and "Number of B-frames" For the lowest possible latency, ​"Maximum Delay" ​should be set to 150, and "Number of B-frames" ​should be set to 1 (which disables B-frames).
-The two settings that directly impact latency are Maximum Delay” (called ​Video Burst Size” on the DM368) and Number of B-frames. For the lowest possible latency, ​Maximum Delay” should be set to 150, and Number of B-frames” should be set to 1 (which disables B-frames). +
  
 RTP is also lower latency than UDP, so you should use RTP if possible. RTP is also lower latency than UDP, so you should use RTP if possible.
  
 +Also, if you are streaming to VLC, you can reduce latency on the decode side by adjusting the network caching value. ​ By default, this is set to 1000ms. ​ You can lower this to as low as 200ms. ​ To do this, go to the following:  ​
  
-Also, if you are streaming to VLC, you can reduce latency on the decode side by adjusting the network ​caching ​value. By default, this is set to 1000ms. You can lower this to as low as 200ms. To do this, go to the following:+      *VLC -> Tools -> Preferences -> Show Settings (ALL) -> Input / Codecs -> Network ​caching ​(ms)
  
  
-    * VLC → Tools → Preferences → Show Settings (ALL) → Input / Codecs → Network caching (ms) 
  
 +\\ 
  
-%%\%% 
  
 +==== (6) When we encode in composite, we see artifacts in the top few rows of the picture. ​ The rows are black with spots of white that seem to track the picture. ​ What are these? ====
  
-==== (6) When we encode in composite, we see artifacts ​in the top few rows of the pictureThe rows are black with spots of white that seem to track the picture. ​What are these? ====+These are most likely Macrovision rows.  Some DVD players include this in the output while some don't You can confirm this by seeing if the same artifacts occur with component input. ​ If they don't, then this is very likely Macrovision data.  Using a different DVD player may address this issue. ​ Another alternative is to modify the application to crop those lines. ​ Note, however, ​that for DVD players that do not output these lines, cropping can cause actual valid video data to be cut out of the picture.
  
  
-These are most likely Macrovision rows. Some DVD players include this in the output while some don't. You can confirm this by seeing if the same artifacts occur with component input. If they don't, then this is very likely Macrovision data. Using a different DVD player may address this issue. Another alternative is to modify the application to crop those lines. Note, however, that for DVD players that do not output these lines, cropping can cause actual valid video data to be cut out of the picture. +\\
  
 ==== (7) What version of VLC can I run with Z3's encoders? ==== ==== (7) What version of VLC can I run with Z3's encoders? ====
- 
  
 In general Z3 recommends using the latest version of VLC (v2.0.7) to ensure you are getting maximum functionality and maximum performance. In general Z3 recommends using the latest version of VLC (v2.0.7) to ensure you are getting maximum functionality and maximum performance.
  
 +The earliest version of VLC that will work with Z3's encoders is version **1.00**. ​ Using version 0.99 has been shown to produce artifacts in certain cases. ​ The VideoLan website describes version 1.00 as follows:
  
-The earliest version of VLC that will work with Z3's encoders is version **1.00**. Using version 0.99 has been shown to produce artifacts in certain cases. The VideoLan website describes version 1.00 as follows: +    ​*This major release introduces many new features, new formats and new codecs to the VLC multimedia framework and fixes a very high number of bugs that were present in the 0.9.x or 0.8.6 versions.
- +
- +
-    ​* This major release introduces many new features, new formats and new codecs to the VLC multimedia framework and fixes a very high number of bugs that were present in the 0.9.x or 0.8.6 versions. +
  
 Based on this, an upgrade to at least 1.00 is advised. Based on this, an upgrade to at least 1.00 is advised.
  
 +Note that an issue has been observed with displaying the proper frame rate for .ts files (earlier versions may show double the expected frame rate in the statistics section). ​ v2.1.3 and later do not show this issue. ​
  
-Note that an issue has been observed with displaying the proper frame rate for .ts files (earlier versions may show double the expected frame rate in the statistics section). v2.1.3 and later do not show this issue. 
  
 +\\ 
  
-%%\%%+==== (8) I am encoding and I want to take audio from HDMI but I only see options for "​Analog"​ and "​Channels 1+2/​3+4/​5+6/​7+8"​. ​ What do I choose? ====
  
 +The "​Channels 1+2/​3+4/​5+6/​7+8"​ is for digital audio, so in this case you would choose "​Channels 1+2".
  
-==== (8) I am encoding and I want to take audio from HDMI but I only see options for "​Analog"​ and "​Channels 1+2/​3+4/​5+6/​7+8"​. What do I choose? ==== 
  
 +\\ 
  
-The “Channels 1+2/​3+4/​5+6/​7+8” is for digital audioso in this case you would choose “Channels 1+2”.+==== (9) The decoder we work with has a 245,760 macroblock per second limit How can we be sure this is met? ====
  
 +You can ensure this by using any resolution / frame rate except 1080p60. ​ For example, 1080p30 or 1080i30 produces (1920 *1080 * 30) / 256 = 243,000 macroblocks per second, which is just under the limit.
  
-%%\%% 
  
 +\\ 
  
-==== (9The decoder we work with has a 245,760 macroblock per second limit. How can we be sure this is met? ====+==== (10Is 29.97Hz / 59.94Hz encode supported?  ​How do I specify ​this? ====
  
 +Yes, this is supported. ​ To encode at those frequencies,​ either specify "​Follow input",​ which causes capture at whatever rate the video data is coming in at, or specify "​30"​ for 29.97 or "​60"​ for 59.94. ​ In that case the system will autodetect that the input is actually 29.97 / 59.94 and encode at that rate.
  
-You can ensure this by using any resolution / frame rate except 1080p60. For example, 1080p30 or 1080i30 produces (1920 *1080 * 30) / 256 = 243,000 macroblocks per second, which is just under the limit. +\\   ​
- +
- +
-%%\%% +
- +
- +
-==== (10) Is 29.97Hz / 59.94Hz encode supported? How do I specify this? ==== +
- +
- +
-Yes, this is supported. To encode at those frequencies,​ either specify “Follow input”, which causes capture at whatever rate the video data is coming in at, or specify “30” for 29.97 or “60” for 59.94. In that case the system will autodetect that the input is actually 29.97 / 59.94 and encode at that rate. +
- +
- +
-%%\%% +
  
 ==== (11) Can the MPEG-2 encoder encode Main Profile at High Level? ==== ==== (11) Can the MPEG-2 encoder encode Main Profile at High Level? ====
- 
  
 Yes. Yes.
  
 +\\
  
 ==== (12) What NAL units does the H264 encoder on Z3's systems use? ==== ==== (12) What NAL units does the H264 encoder on Z3's systems use? ====
- 
  
 The encoder uses NAL units 1, 5-8, and 28. The encoder uses NAL units 1, 5-8, and 28.
  
 +\\
  
-==== (13) There are no start codes in the H264 streams generated by Z3. Is this to be expected? ====+==== (13) There are no start codes in the H264 streams generated by Z3.  Is this to be expected? ====
  
 +Yes.  This is in conformance with RFC3984, which states that start codes do not apply to RTP-encapsulated bitstreams.
 +Annex B in RFC3984 makes a provision for including optional start codes. ​ Z3's decoders can handle streams with start
 +codes in the event Annex B is being used.
  
-Yes. This is in conformance with RFC3984, which states that start codes do not apply to RTP-encapsulated bitstreams. Annex B in RFC3984 makes a provision for including optional start codes. Z3's decoders can handle streams with start codes in the event Annex B is being used.+\\
  
 +==== (14) When are PPS headers sent?  Can we assume they only occur at the beginning of each frame? ====
  
-==== (14) When are PPS headers sent? Can we assume they only occur at the beginning of each frame? ==== +Yes.  PPS headers are only sent at the beginning of each frame.
- +
- +
-Yes. PPS headers are only sent at the beginning of each frame.+
  
 +\\
  
 ==== (15) What SEI types are generated in Z3 streams? ==== ==== (15) What SEI types are generated in Z3 streams? ====
- 
  
 buf_period and pic_timing are generated in the SEI headers in Z3 streams. buf_period and pic_timing are generated in the SEI headers in Z3 streams.
  
  
-%%\%% +\
  
 ==== (16) Can you encode 2 channels from the same source? ==== ==== (16) Can you encode 2 channels from the same source? ====
  
 +This is possible to do on the RDK.  ​
  
-This is possible ​to do on the RDK.+If encoding progressive,​ this can be done by duplicating CH1 to create a CH3 (and/or CH2 to create a CH4). 
 +After doing this, CH1 and CH3 can be used to encode ​the same progressive input at different resolutions,​  
 +bitrates, frame rates etc.
  
 +If encoding interlaced, a splitter is required. ​ In that case the 2 outputs on the splitter would go
 +to CH1 in and CH2 in.
  
-If encoding progressive,​ this can be done by duplicating CH1 to create a CH3 (and/or CH2 to create a CH4). After doing this, CH1 and CH3 can be used to encode the same progressive input at different resolutions,​ bitrates, frame rates etc.+\\
  
 +==== (17) I encoded to a file at 60fps, but when I try playing back it is playing back at 30fps. ​ Why is that? ====
  
-If encoding interlaced, a splitter is requiredIn that case the 2 outputs on the splitter would go to CH1 in and CH2 in.+The most common cause for this is the file was saved in raw .h264 format. ​ Raw .h264while containing video data, does not contain any timing information. ​ For this reason ​decoder will often use a default value of 30fps To accurately playback at 60fps, you need to save to a file format that has timing information,​ such as .ts or .avi.
  
 +\\
  
-==== (17) I encoded ​to a file at 60fps, ​but when I try playing back it is playing back at 30fpsWhy is that? ====+==== (18) I can stream ​to VLC but it appears that audio is being clipped What should I check? ====
  
 +The first thing to check is the VLC audio settings. ​ If you bring VLC up its default settings often have audio at a low level so you need to manually increase it.
  
-The most common cause for this is the file was saved in raw .h264 format. Raw .h264, while containing video data, does not contain any timing information. For this reason a decoder will often use a default value of 30fps. To accurately playback at 60fps, you need to save to a file format that has timing information,​ such as .ts or .avi.+\\
  
 +==== (19) I am using the Z3 encoder to record 60fps content into a .ts file.  VLC will play it back, but it shows the frame rate as 120fps. ​ Why is this? ====
  
-==== (18I can stream to VLC but it appears that audio is being clippedWhat should I check? ====+This has been observed as an issue in certain versions of VLC.  The latest versions ​(v2.1.3 or laterdo not have this issue.
  
 +\\
  
-The first thing to check is the VLC audio settings. If you bring VLC up its default settings often have audio at a low level so you need to manually increase it. +==== (20) We are encoding using UDP and are observing NULL packets at times. ​ Is this expected? ====
- +
- +
-==== (19) I am using the Z3 encoder to record 60fps content into a .ts file. VLC will play it back, but it shows the frame rate as 120fps. Why is this? ==== +
- +
- +
-This has been observed as an issue in certain versions of VLC. The latest versions (v2.1.3 or later) do not have this issue. +
- +
- +
-==== (20) We are encoding using UDP and are observing NULL packets at times. Is this expected? ==== +
  
 It is possible for NULL packets to occur to meet the overall channel rate. It is possible for NULL packets to occur to meet the overall channel rate.
  
 +\\
  
 ==== (21) How do you change the TTL value when encoding multicast? ==== ==== (21) How do you change the TTL value when encoding multicast? ====
  
 +This can be specified with an additional "/"​ followed by the desired TTL at the end of the IP address. ​ For example, to specify a TTL of 2, you could use the destination IP address of "​225.1.2.3/​2"​. ​ A default value of 1 is assumed.
  
-This can be specified with an additional ”/” followed by the desired TTL at the end of the IP address. For example, to specify a TTL of 2, you could use the destination IP address of “225.1.2.3/​2”. A default value of 1 is assumed. +\\
  
 ==== (22) Can you provide a table of recommended bitrates based on resolution and frame rate? ==== ==== (22) Can you provide a table of recommended bitrates based on resolution and frame rate? ====
  
 +The "​right"​ bitrate can vary greatly depending on content used and customer expectation. ​ With that in mind,
 +here is a general set of bitrates we've found to work well:
  
-The “right” bitrate can vary greatly depending on content used and customer expectation. With that in mind, here is a general set of bitrates we've found to work well:+^ Resolution ^ prog / int ^ Frame Rate ^  "Bit Saver" ^ Average Quality ^ Very Good Quality ^ 
 +| 2160p (3840x2160) ​  | prog | 30 fps   ​| ​  ​8Mbps ​    ​| ​  ​15Mbps ​   |   ​30Mbps ​  | 
 +| 1080p (1920x1080) ​  | prog | 60 fps   ​| ​  ​3Mbps ​    ​| ​   6Mbps    |   ​12Mbps ​  | 
 +| 1080i (1920x1080) ​  | int  | 30 fps*  |   ​3Mbps ​    ​| ​   6Mbps    |   ​12Mbps ​  | 
 +| XGA  (1024x768) ​    | prog | 60 fps   ​| ​  ​3Mbps ​    ​| ​   5Mbps    |    8Mbps   | 
 +| 720p (1280x720) ​    | prog | 60 fps   ​| ​  ​2Mbps ​    ​| ​   4Mbps    |    7Mbps   | 
 +| PAL   ​(720x576) ​    | int  | 30 fps*  |   ​500Kbps ​  ​| ​   2Mbps    |    4Mbps   | 
 +| NTSC  (720x480) ​    | int  | 30 fps*  |   ​500Kbps ​  ​| ​   2Mbps    |    4Mbps   | 
 +| VGA   ​(640x480) ​    | prog | 30 fps   ​| ​  ​300Kbps ​  ​| ​   1Mbps    |    3Mbps   | 
 +| CIF   ​(352x288) ​    | prog | 30 fps   ​| ​  ​300Kbps ​  ​| ​   512Kbps ​ |   ​800Kbps ​ |
  
 +* = 30 frames per second, or 60 fields per second \\ 
 +prog = Progressive \\ 
 +int  = Interlaced
  
-^Resolution ^prog / int ^Frame Rate ^  “Bit Saver” ^  Average Quality ^  Very Good Quality | +\\
-|2160p (3840×2160) |prog |30 fps |  8Mbps  |  15Mbps ​ |  30Mbps ​ | +
-|1080p (1920×1080) |prog |60 fps |  3Mbps  |  6Mbps  |  12Mbps ​ | +
-|1080i (1920×1080) |int |30 fps* |  3Mbps  |  6Mbps  |  12Mbps ​ | +
-|XGA (1024×768) |prog |60 fps |  3Mbps  |  5Mbps  |  8Mbps  | +
-|720p (1280×720) |prog |60 fps |  2Mbps  |  4Mbps  |  7Mbps  | +
-|PAL (720×576) |int |30 fps* |  500Kbps ​ |  2Mbps  |  4Mbps  | +
-|NTSC (720×480) |int |30 fps* |  500Kbps ​ |  2Mbps  |  4Mbps  | +
-|VGA (640×480) |prog |30 fps |  300Kbps ​ |  1Mbps  |  3Mbps  | +
-|CIF (352×288) |prog |30 fps |  300Kbps ​ |  512Kbps ​ |  800Kbps ​ |+
  
 +==== (23) I am running the encoded bitstream to FFMPEG and am seeing a lot of "AAC bitstream not in ADTS format and extradata missing"​ errors. ​ What does this mean? ====
  
-* = 30 frames per second, or 60 fields per second %%\%% prog = Progressive %%\%% int = Interlaced+This is typically indicative of packet loss in the network. ​ Please check your network to make sure it is not being overloaded. ​ This message is discussed in the following link:
  
 +    *http://​stackoverflow.com/​questions/​25303570/​aac-bitstream-not-in-adts-format-and-extradata-missing
 +    ​
 +\\
  
-==== (23I am running ​the encoded bitstream ​to FFMPEG and am seeing a lot of "AAC bitstream not in ADTS format and extradata missing"​ errors. ​What does this mean? ====+==== (24What is the optimal system ​to use to minimize ASI latency?  ​What are the optimal settings to use? ====
  
 +The MVE-40, MVE-100, DM8169-4CH-RPS,​ and DM8169-VI-RPS (RDK) are the best products to use for minimal ASI latency. ​ End-to-end latency of 1.3 seconds was observed here in testing. ​ The amount of latency will vary depending on the decoder that is used.
  
-This is typically indicative of packet loss in the networkPlease check your network to make sure it is not being overloaded. This message is discussed in the following link:+To minimize latency, B-frames should be set to 0 and Video Delay should be set to as low a value as possible (150 was used in tests here).
  
 +\\
  
-    * [[http://​stackoverflow.com/​questions/​25303570/​aac-bitstream-not-in-adts-format-and-extradata-missing|http://​stackoverflow.com/​questions/​25303570/​aac-bitstream-not-in-adts-format-and-extradata-missing]]+==== (25) Do Z3 encoders support Closed GOPs? ====
  
 +Yes, Z3's encoders all generate Closed GOPs.
  
-==== (24) What is the optimal system to use to minimize ASI latency? What are the optimal settings to use? ====+\\
  
 +==== (26) What are the maximum bitrates that can be used for each encoding platform? ====
  
-The MVE-40, MVE-100, DM8169-4CH-RPS,​ and DM8169-VI-RPS (RDK) are the best products to use for minimal ASI latency. End-to-end latency of 1.3 seconds was observed here in testing. The amount of latency will vary depending on the decoder that is used.+The following ​are the maximum recommended bitrates ​for streaming for each platform:
  
 +^Platform ^ Maximum Streaming Bitrate |
 +|DM368 ​  | 16Mbps |
 +|DM8107 ​ | 35Mbps |
 +|DM8148 ​ | 35Mbps |
 +|DM8168 ​ | 50Mbps |
  
-To minimize latency, B-frames should be set to 0 and Video Delay should be set to as low a value as possible (150 was used in tests here). 
  
 +Note that, when encoding to a file, limitations of the media used may apply.
  
-==== (25) Do Z3 encoders support Closed GOPs? ==== +\\
- +
- +
-Yes, Z3's encoders all generate Closed GOPs. +
  
 ===== RTMP / Streaming Questions ===== ===== RTMP / Streaming Questions =====
  
 +\\
  
 ==== (1) Does Z3's RTMP software work with ustream? ==== ==== (1) Does Z3's RTMP software work with ustream? ====
  
 +Yes, it does.  A write-up on connecting with ustream is available. ​ For details, please contact Z3 Technology.
  
-Yes, it does. A write-up on connecting with ustream is available. For details, please contact Z3 Technology.+\\
  
 +==== (2) I am trying to use RTMP with Wowza using IP address 225.1.2.3 but it is not working. ​ Why not? ====
  
-==== (2) I am trying to use RTMP with Wowza using IP address 225.1.2.3 but it is not working. Why not? ==== +When using Wowza in RTMP mode, a unicast address is required. ​ Wowza supports multicast addresses in other modes, but not in RTMP mode.
- +
- +
-When using Wowza in RTMP mode, a unicast address is required. Wowza supports multicast addresses in other modes, but not in RTMP mode. +
- +
- +
-%%\%%+
  
 +\\  ​
  
 ==== (3) Are there any known restrictions to working with Adobe Media Server? ==== ==== (3) Are there any known restrictions to working with Adobe Media Server? ====
  
 +No.  There are no known restrictions to working with Adobe Media Server. ​ Tests here ran with no issues.
  
-No. There are no known restrictions to working with Adobe Media Server. Tests here ran with no issues. +\\
  
 ==== (4) What can I do reduce the latency using Wowza? ==== ==== (4) What can I do reduce the latency using Wowza? ====
  
 +In our tests, latency was reduced from 5.5s to 1.2s by going to Server - Performance Tuning - Java Settings and changing "Java Heap Size" to "​Production Level" and "Java Garbage Collection"​ to "​Concurrent collector." ​ Screenshot below:
  
-In our tests, latency was reduced from 5.5s to 1.2s by going to Server - Performance Tuning - Java Settings and changing “Java Heap Size” to “Production Level” and “Java Garbage Collection” to “Concurrent collector.” Screenshot below:+{{:​faqs:​media_servers:​wowza_4.0.1_java_production.jpg?​nolink&​924x613}}
  
 +\\
  
-{{:​faqs:​media_servers:​wowza_4.0.1_java_production.jpg?direct&​924x613}}+==== (5) I am trying to stream to Wowza but nothing is getting through What could be the reason====
  
 +The first thing to check is the firewall settings of the network -- are the ports used for RTMP being blocked by a firewall? ​ If so, modify the firewall settings to allow these ports to be used.
  
-==== (5) I am trying to stream to Wowza but nothing is getting through. What could be the reason? ====+\\
  
 +===== Debugging Questions =====
  
-The first thing to check is the firewall settings of the network – are the ports used for RTMP being blocked by a firewall? If so, modify the firewall settings to allow these ports to be used. +\\
- +
- +
-===== Debugging Questions =====+
  
  
 ==== (1) How do you set up GDB? ==== ==== (1) How do you set up GDB? ====
- 
  
 To setup GDB, you need to do 3 steps (steps w/ EZSDK shown here): To setup GDB, you need to do 3 steps (steps w/ EZSDK shown here):
- 
  
 (a) Copy the threaddb libraries to the host (a) Copy the threaddb libraries to the host
- 
  
 <​code>​ <​code>​
     cp -a $PRJROOTtoolchain/​codesourcery_arm2009q1-203/​arm-none-linux-gnueabi/​libc/​lib/​libthread_db* $ROOTFS/​fs/​lib     cp -a $PRJROOTtoolchain/​codesourcery_arm2009q1-203/​arm-none-linux-gnueabi/​libc/​lib/​libthread_db* $ROOTFS/​fs/​lib
 </​code>​ </​code>​
- 
  
 (b) Create a .gdbinit file in your build directory (b) Create a .gdbinit file in your build directory
- 
  
 <​code>​ <​code>​
Line 1104: Line 1092:
 </​code>​ </​code>​
  
- +%%(c)%% ​Find the executable and run it
-<​nowiki>​ +
- +
- +
-©</​nowiki> ​Find the executable and run it +
  
 <​code>​ <​code>​
Line 1125: Line 1108:
  
  
-    ​[[http://​processors.wiki.ti.com/​index.php/​Multithreaded_Debugging_Made_Easier_by_Forcing_Core_Dumps|http://​processors.wiki.ti.com/​index.php/​Multithreaded_Debugging_Made_Easier_by_Forcing_Core_Dumps]] +     *http://​processors.wiki.ti.com/​index.php/​Multithreaded_Debugging_Made_Easier_by_Forcing_Core_Dumps
  
-==== (2) gdb doesn'​t seem to be coming up. What could be the reason? ==== 
  
 +\\ 
  
-The gdb in the toolchain does have a dependency on 32-bit python 2.6 libraries. You may need to link to themYou can verify this is the issue if you see the following:+==== (2) gdb doesn'​t seem to be coming up What could be the reason? ====
  
 +The gdb in the toolchain does have a dependency on 32-bit python 2.6 libraries. ​ You may need to link to them.
 +You can verify this is the issue if you see the following:
  
 <​code>​ <​code>​
Line 1138: Line 1122:
     arm-none-linux-gnueabi-gdb:​ error while loading shared libraries: libpython2.6.so.1.0:​ cannot open shared object file: No such file or directory     arm-none-linux-gnueabi-gdb:​ error while loading shared libraries: libpython2.6.so.1.0:​ cannot open shared object file: No such file or directory
 </​code>​ </​code>​
- 
  
 If you see this and you are on 32-bit Ubuntu, you should point to the newer python to get gdb to come up: If you see this and you are on 32-bit Ubuntu, you should point to the newer python to get gdb to come up:
- 
  
 <​code>​ <​code>​
Line 1147: Line 1129:
 </​code>​ </​code>​
  
 +
 +\\ 
  
 ==== (3) Is there support for sshd? ==== ==== (3) Is there support for sshd? ====
  
- +The sshd replacement "​dropbear"​ is included in $PRJROOT/​sysapps/​dropbear-0.52. ​ You can run it with the command:
-The sshd replacement "​dropbear"​ is included in $PRJROOT/​sysapps/​dropbear-0.52. You can run it with the command: +
  
 <​code>​ <​code>​
Line 1159: Line 1141:
  
  
-==== (4) I'm having issues trying to run dropbear. What could the issue be? ====+\\ 
  
 +==== (4) I'm having issues trying to run dropbear. ​ What could the issue be? ====
  
-The issue is probably missing RSA or DSS keys. You can verify this by running dropbear with the -E option: 
  
 +The issue is probably missing RSA or DSS keys.  You can verify this by running dropbear with the -E option:
  
 <​code>​ <​code>​
Line 1174: Line 1157:
  
 The solution to this is to type the following: The solution to this is to type the following:
- 
  
 <​code>​ <​code>​
Line 1181: Line 1163:
     root@arago:​~#​ dropbear     root@arago:​~#​ dropbear
 </​code>​ </​code>​
- 
  
 After doing this, you should see dropbear running with the ps command. After doing this, you should see dropbear running with the ps command.
  
 +
 +\\ 
  
 ==== (5) Is there a way to get status of channels when using MCSENC? ==== ==== (5) Is there a way to get status of channels when using MCSENC? ====
  
  
-You can do this by using the "​status"​ command. You can type: +You can do this by using the "​status"​ command. ​ You can type:
  
 <​code>​ <​code>​
     status item=ENCODERS     status item=ENCODERS
 </​code>​ </​code>​
- 
  
 This will cause a printout of status for every encoder instance: This will cause a printout of status for every encoder instance:
- 
  
 <​code>​ <​code>​
Line 1206: Line 1186:
  
 By checking <​framecnt>​ you can tell if a particular channel has stopped. By checking <​framecnt>​ you can tell if a particular channel has stopped.
- 
  
 Alternately,​ you can type: Alternately,​ you can type:
- 
  
 <​code>​ <​code>​
Line 1215: Line 1193:
 </​code>​ </​code>​
  
 +This will print debug information about each instance to the file /​tmp/​debug.txt (a lot of information is printed out, so this should be used sparingly). ​ In newer versions, this file is moved to /​tmp/​debuglog.d/​current.
  
-This will print debug information about each instance to the file /​tmp/​debug.txt (a lot of information is printed out, so this should be used sparingly). In newer versions, this file is moved to /​tmp/​debuglog.d/​current.+\\ 
  
  
 ==== (6) Where are log files / error message files stored? ==== ==== (6) Where are log files / error message files stored? ====
- 
  
 /tmp /tmp
  
  
-==== (7) A problem occurred. What files can I send to Z3 to help diagnose the problem? ====+\\ 
  
 +
 +==== (7) A problem occurred. ​ What files can I send to Z3 to help diagnose the problem? ====
  
 Three files are useful: Three files are useful:
- 
  
 (1) Screenshots of the settings used for the encode/​decode (and the output to the console when running the session) (1) Screenshots of the settings used for the encode/​decode (and the output to the console when running the session)
  
- +     *You can also type "echo > /tmp/diag", and then run the commands, and then send the file "diag"
-    ​* You can also type "echo > /tmp/diag, and then run the commands, and then send the file diag” +
  
 (2) The file /​tmp/​debug.txt (in newer versions, this file is moved to /​tmp/​debuglog.d/​current) (2) The file /​tmp/​debug.txt (in newer versions, this file is moved to /​tmp/​debuglog.d/​current)
- 
  
 (3) If an encode is being done, the file /​tmp/​mcsenc.log (3) If an encode is being done, the file /​tmp/​mcsenc.log
- 
  
 In some cases, the following may also be useful: In some cases, the following may also be useful:
- 
  
 (4) The boot log (4) The boot log
- 
  
 (5) The contents of dmesg (5) The contents of dmesg
  
  
-For EZSDK users, it can also be useful to run TI'​s ​loggerSMDump.out” M3 firmware log utility and send the resulting log file. This utility is included in EZSDK releases and can be extracted using the following steps: +For EZSDK users, it can also be useful to run TI'​s ​"loggerSMDump.out" ​M3 firmware log utility and send the resulting log file. 
 +This utility is included in EZSDK releases and can be extracted using the following steps:
  
 <​code>​ <​code>​
Line 1262: Line 1235:
 </​code>​ </​code>​
  
 +The above extracts the utility "​loggerSMDump.out"​. ​ Details on running it can be found in:
  
-The above extracts the utility "​loggerSMDump.out"​. Details on running it can be found in: +     * http://​processors.wiki.ti.com/​index.php/​OMX_Viewing_Media_Controller_Traces
- +
- +
-    ​[[http://​processors.wiki.ti.com/​index.php/​OMX_Viewing_Media_Controller_Traces|http://​processors.wiki.ti.com/​index.php/​OMX_Viewing_Media_Controller_Traces]] +
  
 If there is an issue while booting, you can increase the log level at boot-up by typing the following commands in u-boot and then rebooting: If there is an issue while booting, you can increase the log level at boot-up by typing the following commands in u-boot and then rebooting:
- 
  
 <​code>​ <​code>​
Line 1277: Line 1246:
 </​code>​ </​code>​
  
 +\\
  
 ==== (8) How can I save a .ts file to send to Z3 Technology for debugging purposes? ==== ==== (8) How can I save a .ts file to send to Z3 Technology for debugging purposes? ====
  
- +This can be done using VLC.  To use VLC to save to a .ts file, do the following:
-This can be done using VLC. To use VLC to save to a .ts file, do the following: +
  
 (1) Open VLC on a PC that the Z3 unit is streaming to. (1) Open VLC on a PC that the Z3 unit is streaming to.
  
 +(2) Select "Media - Convert / Save" ​ (for VLC running on Windows, this is "File - Convert / Save"​).
  
-(2Select ​"Media - Convert / Save" ​(for VLC running on Windowsthis is "File - Convert / Save").+(3You should see "File", "Disc", "​Network",​ and "​Capture Device"​ tabs.  Click on the "​Network"​ tab.
  
 +(4) In this tab, enter the same URL you would use to receive the stream. ​ For example, if you are streaming using udp: 
  
-(3) You should see "​File",​ "​Disc",​ "​Network",​ and "​Capture Device"​ tabs. Click on the "​Network"​ tab. +    ​udp://​@192.168.0.6:​5004
- +
- +
-(4) In this tab, enter the same URL you would use to receive the stream. For example, if you are streaming using udp: +
- +
- +
-<​code>​ +
-  ​udp://​@192.168.0.6:​5004 +
-</​code>​ +
  
 (5) Click on the "​Convert/​Save"​ button at the bottom. (5) Click on the "​Convert/​Save"​ button at the bottom.
  
- +(6) This will bring up the "​Convert"​ Window. ​ In this Window, click on "​Browse"​ and specify the name of the file to save to.
-(6) This will bring up the "​Convert"​ Window. In this Window, click on "​Browse"​ and specify the name of the file to save to. +
  
 (7) Click on the "Dump raw input" checkbox at the very bottom of the "​Convert"​ Window. (7) Click on the "Dump raw input" checkbox at the very bottom of the "​Convert"​ Window.
- 
  
 (8) Click "​Start"​ (8) Click "​Start"​
  
- +The .ts file will start saving ​-- you should see the file gradually growing.
-The .ts file will start saving ​– you should see the file gradually growing. +
  
 (9) Either click the "​Stop"​ button or select "​Playback - Stop" to stop saving the stream. (9) Either click the "​Stop"​ button or select "​Playback - Stop" to stop saving the stream.
- 
  
 (10) Exit VLC. (10) Exit VLC.
  
  
-==== (9) For debugging purposes I want to turn off the software watchdog. How do I do this? ====+\\ 
  
 +==== (9) For debugging purposes I want to turn off the software watchdog. ​ How do I do this? ====
  
 In both the RDK and EZSDK for the DM81xx, the watchdog enable is currently done in /​opt/​webgui/​server.sh In both the RDK and EZSDK for the DM81xx, the watchdog enable is currently done in /​opt/​webgui/​server.sh
- 
  
 To disable the watchdog, you need to: To disable the watchdog, you need to:
- 
  
 (1) Comment out the watchdog task in /​opt/​webgui/​server.sh (1) Comment out the watchdog task in /​opt/​webgui/​server.sh
  
- +    ​# watchdog /​dev/​watchdog &
-<​code>​ +
-  ​# watchdog /​dev/​watchdog & +
-</​code>​ +
  
 (2) Run '​sync'​ to make sure your changes are saved (2) Run '​sync'​ to make sure your changes are saved
- 
  
 (3) Reboot the board (3) Reboot the board
  
 +    reboot -f
  
-<​code>​ 
-  reboot -f 
-</​code>​ 
  
 +\\
  
 ===== Developer Questions ===== ===== Developer Questions =====
  
 +\\
  
-==== (1) I want to make changes in the web GUI. Where do I start? ==== +==== (1) I want to make changes in the web GUI.  Where do I start? ====
  
 The web server log, HTML and Javascript are in: The web server log, HTML and Javascript are in:
  
- +     * z3apps/​webgui/​gui/​web
-    ​* z3apps/​webgui/​gui/​web +
  
 The Javascript files (*.js) take care of dynamic aspects (such as disabling options based on the current configuration and populating dynamic listboxes), as well as transferring the form values to the user interface. The Javascript files (*.js) take care of dynamic aspects (such as disabling options based on the current configuration and populating dynamic listboxes), as well as transferring the form values to the user interface.
- 
  
 If you add a new item to the web interface, you will need to add code to one of the following functions: If you add a new item to the web interface, you will need to add code to one of the following functions:
  
- +     * encoder.js:​encoder_init() 
-    ​* encoder.js:​encoder_init() +     ​* decoder.js:​decoder_init() 
-    * decoder.js:​decoder_init() +     ​* system.js:​system_init()
-    * system.js:​system_init() +
  
 to transfer the configuration parameter to the HTML DOM. to transfer the configuration parameter to the HTML DOM.
- 
  
 All configuration accesses go through the file: All configuration accesses go through the file:
  
- +     *z3apps/​webgui/​gui/​web/​cgi-bin/​control.cgi
-    ​* z3apps/​webgui/​gui/​web/​cgi-bin/​control.cgi +
  
 If you want to add a configuration item, add it to the appropriate variable: If you want to add a configuration item, add it to the appropriate variable:
  
 +     ​*CONFIG_ARGS_DEC
 +     ​*CONFIG_ARGS_ENC
 +     ​*CONFIG_ARGS_COMMON
  
-    * CONFIG_ARGS_DEC 
-    * CONFIG_ARGS_ENC 
-    * CONFIG_ARGS_COMMON 
  
 +\\ 
  
 ==== (2) What web server do you use? ==== ==== (2) What web server do you use? ====
- 
  
 We use lighttpd. We use lighttpd.
  
 +\\
  
-==== (3) I am using a DM816X-MOD-35 and I want it to work with SATA. What do I need to do? ====+==== (3) I am using a DM816X-MOD-35 and I want it to work with SATA.  What do I need to do? ====
  
 +The most important thing (as noted in the DM816X-MOD Hardware Specifications) is you need to make sure that the MOD-35 is configured as a Root Complex ("​-RC"​). ​ The -RC boards include a 100MHz oscillator to act as the PCIe clock. ​ This is also used to drive the SATA.
  
-The most important thing (as noted in the DM816X-MOD Hardware Specifications) is you need to make sure that the MOD-35 is configured as a Root Complex ("-RC"). The -RC boards include a 100MHz ​oscillator ​to act as the PCIe clock. This is also used to drive the SATA.+If the MOD-35 is configured as an -EP board, it is still possible to connect with SATA if an external ​oscillator is used 
 +to drive the SATA interface.
  
 +\\
  
-If the MOD-35 is configured ​as an -EP board, it is still possible ​to connect with SATA if an external oscillator is used to drive the SATA interface.+==== (4) We are developing our own video capture using Z3's system ​as a reference. ​ We don't seem to be capturing any frames Where would be a good place to start debugging? ====
  
 +The first thing we recommend checking is that the board ID is set to whichever Z3 application board was used as the reference point. ​ For several customers fixing this was the key step to getting video frames coming in.  Details on setting board ID can be found the RDK Developer'​s Guide. ​ For information on setting this on an EZSDK system, please contact Z3.
  
-==== (4) We are developing our own video capture using Z3's system as a reference. We don't seem to be capturing any frames. Where would be a good place to start debugging? ==== +\\
- +
- +
-The first thing we recommend checking is that the board ID is set to whichever Z3 application board was used as the reference point. For several customers fixing this was the key step to getting video frames coming in. Details on setting board ID can be found the RDK Developer'​s Guide. For information on setting this on an EZSDK system, please contact Z3. +
- +
- +
-==== (5) On the RDK I want to rebuild just the Z3 application code without rebuilding the entire OS/RDK. How do I do this? ====+
  
 +==== (5) On the RDK I want to rebuild just the Z3 application code without rebuilding the entire OS/​RDK. ​ How do I do this? ====
  
 This can be accomplished through the following commands: This can be accomplished through the following commands:
- 
  
 <​code>​ <​code>​
Line 1422: Line 1361:
 </​code>​ </​code>​
  
 +\\
  
-==== (6) We are developing our own video path. We are seeing some unexplained noise in the input. What could be the potential cause? ==== +==== (6) We are developing our own video path.  We are seeing some unexplained noise in the input. ​ What could be the potential cause? ====
  
 One common cause is configuring the VIP for falling edge when it should be rising edge. One common cause is configuring the VIP for falling edge when it should be rising edge.
- 
  
 On the DM816X, this information can be found in: On the DM816X, this information can be found in:
- 
  
 <​code>​ <​code>​
     ./​arch/​arm/​mach-omap2/​ti81xx_vpss.c     ./​arch/​arm/​mach-omap2/​ti81xx_vpss.c
 </​code>​ </​code>​
- 
  
 More information can also be found on the following TI Wiki page: More information can also be found on the following TI Wiki page:
  
 +    * http://​processors.wiki.ti.com/​index.php/​TI811X_PSP_Adding_External_Decoders_to_V4L2_Capture_Driver
  
-    * [[http://​processors.wiki.ti.com/​index.php/​TI811X_PSP_Adding_External_Decoders_to_V4L2_Capture_Driver|http://​processors.wiki.ti.com/​index.php/​TI811X_PSP_Adding_External_Decoders_to_V4L2_Capture_Driver]] 
  
 +\\
  
 ===== DM365/DM368 Specific Questions ===== ===== DM365/DM368 Specific Questions =====
  
 +
 +\\
  
 ==== (1) What protocol does ztermserv use? ==== ==== (1) What protocol does ztermserv use? ====
Line 1450: Line 1389:
  
 The default mode is "​telnet"​ mode, where any 0xff character received by TCP is interpreted as the beginning of a telnet IAC command sequence. The default mode is "​telnet"​ mode, where any 0xff character received by TCP is interpreted as the beginning of a telnet IAC command sequence.
- 
  
 It is also possible to set a clearchannel mode, where the TCP data is not altered in any way. It is also possible to set a clearchannel mode, where the TCP data is not altered in any way.
  
  
-==== (2) I am losing data somewhere in my serial interface. How can I debug this? ====+\\
  
 +==== (2) I am losing data somewhere in my serial interface. ​ How can I debug this? ====
  
-You can try using netcat. For example, you can run netcat on a Linux PC as a server on TCP port 7777: +You can try using netcat. ​ For example, you can run netcat on a Linux PC as a server on TCP port 7777:
  
 <​code>​ <​code>​
     nc -l 7777     nc -l 7777
 </​code>​ </​code>​
- 
  
 Then run netcat on a Linux PC as a client, conncting to the ZTermSrv server at 192.168.0.65 TCP port 9999: Then run netcat on a Linux PC as a client, conncting to the ZTermSrv server at 192.168.0.65 TCP port 9999:
- 
  
 <​code>​ <​code>​
Line 1473: Line 1409:
 </​code>​ </​code>​
  
 +
 +\\
  
 ==== (3) Can you unicast to 2 addresses? ==== ==== (3) Can you unicast to 2 addresses? ====
  
- +Yes you can, by specifying multiple "​-v"​ options. ​ For example:
-Yes you can, by specifying multiple "​-v"​ options. For example: +
  
 <​code>​ <​code>​
     ./rtptx -v rtp://​192.168.0.6:​8888 -v rtp://​192.168.0.6:​8900     ./rtptx -v rtp://​192.168.0.6:​8888 -v rtp://​192.168.0.6:​8900
 </​code>​ </​code>​
- 
  
 For more details, please see the "RTPTX User's Guide (v1.3)"​ (DOC-USR-0007-01). For more details, please see the "RTPTX User's Guide (v1.3)"​ (DOC-USR-0007-01).
  
 +
 +\\
  
 ==== (4) How do you access GPIOs? ==== ==== (4) How do you access GPIOs? ====
- 
  
 There is a "​giodebug"​ utility available which can read or write GPIOs. There is a "​giodebug"​ utility available which can read or write GPIOs.
  
 +When working with GPIO, it is important to keep in mind that some pins have multiple functions, so handling pinmuxing properly is a must.  The best place to get started with details on pinmuxing is Section 9.12.2 (“Pin Mux”) in the DM36X ARM Subsystem Guide (SPRUFG5A):
  
-When working with GPIO, it is important to keep in mind that some pins have multiple functions, so handling pinmuxing properly is a must. The best place to get started with details on pinmuxing is Section 9.12.2 (“Pin Mux”) in the DM36X ARM Subsystem Guide (SPRUFG5A):​ +    ​* http://​www.ti.com/​general/​docs/​lit/​getliterature.tsp?​baseLiteratureNumber=SPRUFG5&​fileType=pdf
- +
- +
-    ​[[http://​www.ti.com/​general/​docs/​lit/​getliterature.tsp?​baseLiteratureNumber=SPRUFG5&​fileType=pdf|http://​www.ti.com/​general/​docs/​lit/​getliterature.tsp?​baseLiteratureNumber=SPRUFG5&​fileType=pdf]]+
  
 +\\
  
 ==== (5) Is there OSD support? ==== ==== (5) Is there OSD support? ====
  
  
-Yes. There is an encode sample app with OSD support. To run it, type the following: +Yes.  There is an encode sample app with OSD support. ​ To run it, type the following:
  
 <​code>​ <​code>​
Line 1511: Line 1445:
     ./encode -v /​tmp/​out.264 --osd -y 1     ./encode -v /​tmp/​out.264 --osd -y 1
 </​code>​ </​code>​
- 
  
 There is full documentation for the encode command in the file There is full documentation for the encode command in the file
- 
  
 <​code>​ <​code>​
     /​opt/​dvsdk/​encode.txt     /​opt/​dvsdk/​encode.txt
 </​code>​ </​code>​
- 
  
 on the target. on the target.
  
 +
 +\\
  
 ==== (6) Is encode of black and white content supported? ==== ==== (6) Is encode of black and white content supported? ====
  
 +Yes.  The latest versions of Z3's DM368 software support this.
  
-Yes. The latest versions of Z3's DM368 software support this. 
  
 +\\
  
 ==== (7) How can I check the clock rate being used? ==== ==== (7) How can I check the clock rate being used? ====
- 
  
 You can look at /​proc/​davinci_clocks. You can look at /​proc/​davinci_clocks.
  
 +
 +\\
  
 ==== (8) Does the DM368 support resizing to any resolution in the drop-down menus? ==== ==== (8) Does the DM368 support resizing to any resolution in the drop-down menus? ====
  
 +Yes.  The DM368 supports resizing to any resolution shown in the drop-down menus.
  
-Yes. The DM368 supports resizing to any resolution shown in the drop-down menus.+ 
 +\\
  
  
 ==== (9) Is there any way to control the audio volume? ==== ==== (9) Is there any way to control the audio volume? ====
  
- +Yes.  There is an existing API to set analog input volume at startup time:
-Yes. There is an existing API to set analog input volume at startup time: +
  
 <​code>​ <​code>​
Line 1557: Line 1492:
     Int32                rightGain;     Int32                rightGain;
 </​code>​ </​code>​
- 
  
 There is no API for digital volume – this could be implemented by the customer by using a saturating 16-bit signed multiplication on all audio samples. There is no API for digital volume – this could be implemented by the customer by using a saturating 16-bit signed multiplication on all audio samples.
  
 +\\
  
 ==== (10) Is there a way to do audio mute on rtptx? ==== ==== (10) Is there a way to do audio mute on rtptx? ====
  
 +There is no command line option for this.  However, there is example code in:
  
-There is no command line option for thisHowever, there is example code in:+    *dvsdk/​dvsdk_2_10_00_17/​dmai_1_21_00_10/​packages/​ti/​sdo/​dmai/​linux/​Sound_alsa.c:setMixerVolume()
  
 +this shows how to set the ALSA mixer volume. ​ Setting this to 0 would be the equivalent of muting.
  
-    * dvsdk/​dvsdk_2_10_00_17/​dmai_1_21_00_10/​packages/​ti/​sdo/​dmai/​linux/​Sound_alsa.c:​setMixerVolume() 
  
  
-this shows how to set the ALSA mixer volume. Setting this to 0 would be the equivalent of muting. +\\ 
  
 ==== (11) How do you set pixel aspect ratio? ==== ==== (11) How do you set pixel aspect ratio? ====
  
- +rtptx has a "--videopar"​ argument you can use.  For example, for PAL widescreen, you can set:
-rtptx has a "videopar"​ argument you can use. For example, for PAL widescreen, you can set: +
  
 <​code>​ <​code>​
     --videopar=16:​11     --videopar=16:​11
 </​code>​ </​code>​
- 
  
 and for NTSC widescreen you can set: and for NTSC widescreen you can set:
- 
  
 <​code>​ <​code>​
Line 1593: Line 1524:
  
  
-==== (12) What is EXP_RST connected to? ==== 
  
 +\\ 
  
-It is connected to PWRCTRLIO5 (see dm368_board.c). Drivers in u-boot and the linux kernel for this pin can be found in:+==== (12) What is EXP_RST ​connected to? ====
  
 +It is connected to PWRCTRLIO5 (see dm368_board.c). ​ Drivers in u-boot and the linux kernel for this pin can be found in:
  
 <​code>​ <​code>​
Line 1604: Line 1536:
 </​code>​ </​code>​
  
 +
 +
 +\\
  
 ==== (13) What creates the reset signal to the 8700C Ethernet PHY chip? ==== ==== (13) What creates the reset signal to the 8700C Ethernet PHY chip? ====
  
 +The external reset to the 8700C is provided by the MSP430. ​ The MSP430 generates reset based on 2 inputs: ​  One is the reset signal generated when the reset button on the board is pushed, and another is based on a circuit which checks the current Vcc, and asserts reset as long as Vcc is below a certain level.
  
-The external reset to the 8700C is provided by the MSP430. The MSP430 generates reset based on 2 inputs: One is the reset signal generated when the reset button on the board is pushed, and another is based on a circuit which checks the current Vcc, and asserts reset as long as Vcc is below a certain level. 
  
 +\\
  
 ==== (14) What chip select(s) does the DM368 MOD use with NAND? Would there be a conflict if we used CE1? ==== ==== (14) What chip select(s) does the DM368 MOD use with NAND? Would there be a conflict if we used CE1? ====
  
 +The DM368 MOD uses 1 chip select with the NAND -- CE0.  There would be no conflict with CE1.
  
-The DM368 MOD uses 1 chip select with the NAND – CE0. There would be no conflict with CE1. 
  
 +\\
  
 ==== (15) On the DM368 module, where is the EMIF set up for the FPGA? ==== ==== (15) On the DM368 module, where is the EMIF set up for the FPGA? ====
- 
  
 You can check the PINMUX2 register at address 0x1c40008: You can check the PINMUX2 register at address 0x1c40008:
- 
  
 <​code>​ <​code>​
Line 1627: Line 1562:
     0x00001855     0x00001855
 </​code>​ </​code>​
- 
  
 The oe# and we# signals are used by the NAND. The oe# and we# signals are used by the NAND.
  
 +
 +\\
  
 ==== (16) Is there a way to select the PID or program to demux in tsplayer? ==== ==== (16) Is there a way to select the PID or program to demux in tsplayer? ====
  
 +Yes.  You can use the "​-p"​ (or "​--program"​) option in tsplayer to select the program, and "​--pids"​ to select specific PIDs to demux.
  
-Yes. You can use the "​-p"​ (or "​–program"​) option in tsplayer to select the program, and "​–pids"​ to select specific PIDs to demux. 
  
 +\\
  
 ==== (17) How do you modify files in the DM368 file system? ==== ==== (17) How do you modify files in the DM368 file system? ====
- 
  
 To change files on the DM36x filesystem, you need to make it writable first: To change files on the DM36x filesystem, you need to make it writable first:
- 
  
 <​code>​ <​code>​
     mount -o remount,rw /     mount -o remount,rw /
     ​     ​
-    <Make changes by vi on the board or by copying files>+    < Make changes by vi on the board or by copying files >
  
     mount -o remount,ro /     mount -o remount,ro /
Line 1653: Line 1588:
  
  
-==== (18) How do you change the timeout value for decode? ====+\\
  
 +==== (18) How do you change the timeout value for decode? ====
  
 The timeout command can be found by running The timeout command can be found by running
- 
  
 <​code>​ <​code>​
     grep -e 'read -t' ​ /​opt/​dvsdk/​*.sh     grep -e 'read -t' ​ /​opt/​dvsdk/​*.sh
 </​code>​ </​code>​
- 
  
 See question (17) on making the DM368 file system writable so changes can be made. See question (17) on making the DM368 file system writable so changes can be made.
  
 +
 +\\
  
 ==== (19) What size SD cards are supported? ==== ==== (19) What size SD cards are supported? ====
- 
  
 Any firmware released in 2012 or later supports up to 32GB. Any firmware released in 2012 or later supports up to 32GB.
  
 +\\ 
  
 ==== (20) Are mini-SD cards (with adapter) supported in the SD card slot? ==== ==== (20) Are mini-SD cards (with adapter) supported in the SD card slot? ====
- 
  
 Yes they are. Yes they are.
  
 +\\
 +==== (21) After updating the firmware and trying to write the configuration we get a "​mounting /​dev/​mtdblock5 on /tmp/config failed"​ message. ​ What can we do? ====
  
-==== (21) After updating the firmware and trying to write the configuration we get a "​mounting /​dev/​mtdblock5 on /tmp/config failed"​ message. What can we do? ==== +Somehow mtd5 got in an unknown state in the update process. ​ You can get mtd5 back in a known state by typing:
- +
- +
-Somehow mtd5 got in an unknown state in the update process. You can get mtd5 back in a known state by typing: +
  
 <​code>​ <​code>​
Line 1689: Line 1622:
 </​code>​ </​code>​
  
 +\\
  
 ==== (22) I have a DM368-SDI-RPS. When switching from encoder to decoder mode, the decoder runs, but it shows a black screen with audio only. ==== ==== (22) I have a DM368-SDI-RPS. When switching from encoder to decoder mode, the decoder runs, but it shows a black screen with audio only. ====
  
 +The DM368-SDI-RPS and DM368-VI-RPS require a power cycle between changing from encoder to decoder mode.  Note that a power cycle is not needed for the DM368-RPS.
  
-The DM368-SDI-RPS and DM368-VI-RPS require a power cycle between changing from encoder to decoder mode. Note that a power cycle is not needed for the DM368-RPS.+\\
  
 +==== (23) I am getting a "​failed to encode video buffer"​ message. ​ What could be causing this? ====
  
-==== (23) I am getting a "​failed to encode video buffer"​ message. What could be causing this? ==== +This can happen if high bitrates are used for sub-D1 resolutions (for example, > 1Mbps for CIF).  To avoid 
- +this,use bitrates less than 1Mbps for sub-D1 resolutions. ​ 
- +
-This can happen if high bitrates are used for sub-D1 resolutions (for example, > 1Mbps for CIF). To avoid this,use bitrates less than 1Mbps for sub-D1 resolutions. +
  
 It could also potentially happen for very high bitrates for D1. It could also potentially happen for very high bitrates for D1.
  
 +A thread on this issue can be found on E2E at http://​e2e.ti.com/​support/​embedded/​multimedia_software_codecs/​f/​356/​t/​128489.aspx
  
-A thread on this issue can be found on E2E at [[http://​e2e.ti.com/​support/​embedded/​multimedia_software_codecs/​f/​356/​t/​128489.aspx|http://​e2e.ti.com/​support/​embedded/​multimedia_software_codecs/​f/​356/​t/​128489.aspx]] 
  
 +\\ 
  
-==== (24) We are seeing an '​hCapture failed'​ message. What could be causing this? ==== +==== (24) We are seeing an '​hCapture failed'​ message. ​ What could be causing this? ====
  
 The full message is: The full message is:
- 
  
 <​code>​ <​code>​
-    zrecorder: linux/​Capture.c:​1196:​ Capture_get:​ Assertion `hCapture'​ failed.+    zrecorder: linux/​Capture.c:​1196:​ Capture_get:​ Assertion `hCapture'​ failed. ​
 </​code>​ </​code>​
 +   
  
 +This is an indicator that valid video input was not detected. ​ Please recheck your video sources.
  
-This is an indicator that valid video input was not detected. Please recheck your video sources. +\\
  
 ==== (25) Is encode of 29.97 / 59.94Hz content supported? ==== ==== (25) Is encode of 29.97 / 59.94Hz content supported? ====
  
 +Yes it is.  The DM368-based products will automatically detect 29.97 and 59.94 Hz and encode at that rate.
  
-Yes it is. The DM368-based products will automatically detect 29.97 and 59.94 Hz and encode at that rate. +\\
  
 ==== (26) How do I reconfigure startup behavior? ==== ==== (26) How do I reconfigure startup behavior? ====
- 
  
 Behavior at startup is controlled in /​root/​.profile on the board filesystem. Behavior at startup is controlled in /​root/​.profile on the board filesystem.
  
 +\\
  
 ==== (27) What are the specifications of the audio RCA inputs on the DM368 APP board? ==== ==== (27) What are the specifications of the audio RCA inputs on the DM368 APP board? ====
- 
  
 The specifications are: The specifications are:
  
- +    ​*Input level: ​ 1.4Vrms (Zin=2K) ​   (4Vpp) 
-    ​* Input level: 1.4Vrms (Zin=2K) (4Vpp) +    *Line level, 6dB of attenuation
-    * Line level, 6dB of attenuation +
  
 These specifications and additional details can be found in the DM368 HW datasheet from TI. These specifications and additional details can be found in the DM368 HW datasheet from TI.
  
  
-==== (28) We are using our own hardware with its own Ethernet chip. It appears that the Ethernet packets are being corrupted somehow when we send RTP. What should we look at? ====+\\
  
 +==== (28) We are using our own hardware with its own Ethernet chip.  It appears that the Ethernet packets are being corrupted somehow when we send RTP.  What should we look at? ====
  
-This points to the Ethernet switch getting overloaded. You can try adjusting the delay between packets with the parameter "interpacketgap"​. The default value is 150 microseconds. +This points to the Ethernet switch getting overloaded. ​ You can try adjusting the delay between packets with the parameter "--interpacketgap"​. ​ The default value is 150 microseconds. ​ 
  
 Another option is to use TS, which paces out the output. Another option is to use TS, which paces out the output.
  
 +\\
  
 ==== (29) When decoding DVB-ASI, how do you select which program to decode? ==== ==== (29) When decoding DVB-ASI, how do you select which program to decode? ====
  
 +Use the "​port"​ value to select. ​ "​1"​ is the first program, "​2"​ is the second program etc.
  
-Use the "​port"​ value to select. "​1"​ is the first program, "​2"​ is the second program etc. +\\
  
 ==== (30) On the DME-01, what inputs/​outputs are used for DVB-ASI decode / HD-SDI output? ==== ==== (30) On the DME-01, what inputs/​outputs are used for DVB-ASI decode / HD-SDI output? ====
  
 +The middle BNC connector is used for ASI In (same as "SDI In"​). ​ The left BNC connector is used for SDI Out (same as "ASI Out").
  
-The middle BNC connector is used for ASI In (same as "SDI In"). The left BNC connector is used for SDI Out (same as "ASI Out"​). +\\
- +
- +
-==== (31) There are 3 different ubl.bin files generated. How do I know which one to use? ====+
  
 +==== (31) There are 3 different ubl.bin files generated. ​ How do I know which one to use? ====
  
 ubl_DM36x_nand_270_243.bin is for nominal timing for the DM365. ubl_DM36x_nand_270_243.bin is for nominal timing for the DM365.
- 
  
 ubl_DM36x_nand_297_270.bin is for 720p30 capable timing for the DM365. ubl_DM36x_nand_297_270.bin is for 720p30 capable timing for the DM365.
- 
  
 ubl_DM36x_nand_432_378.bin is for the DM368. ubl_DM36x_nand_432_378.bin is for the DM368.
  
 +\\
  
 ==== (32) Is HDMI display supported on the DM365/​DM368?​ ==== ==== (32) Is HDMI display supported on the DM365/​DM368?​ ====
  
- +Yes.  RTPRX supports HDMI output. ​ Select the "​component"​ option to cause video data to go to the HDMI.  It may also be necessary to run the HDMI driver. ​ This can be done by typing the following before running RTPRX:
-Yes. RTPRX supports HDMI output. Select the "​component"​ option to cause video data to go to the HDMI. It may also be necessary to run the HDMI driver. This can be done by typing the following before running RTPRX: +
  
 <​code>​ <​code>​
-    /​root/​ad9889>​ /dev/null &+    /​root/​ad9889 > /dev/null &
 </​code>​ </​code>​
  
 +\\
  
 ==== (33) How do I change the MAC address on my DM365/DM368 unit? ==== ==== (33) How do I change the MAC address on my DM365/DM368 unit? ====
- 
  
 The MAC address can be changed in u-boot by doing the following steps: The MAC address can be changed in u-boot by doing the following steps:
- 
  
 (a) Get the u-boot prompt by pressing the spacebar within 3 seconds of powering on the board. (a) Get the u-boot prompt by pressing the spacebar within 3 seconds of powering on the board.
  
 +(b) Through the serial interface, type "​setenv ethaddr XX:​XX:​XX:​XX:​XX",​ where "​XX:​XX:​XX:​XX:​XX"​ is the MAC address you want to assign.
  
-(bThrough the serial interface, type "​setenv ethaddr XX:​XX:​XX:​XX:​XX",​ where "​XX:​XX:​XX:​XX:​XX"​ is the MAC address you want to assign.<​nowiki>​ +%%(c)%% Confirm the value is what you want by typing "​printenv ethaddr"​.
- +
- +
-©</​nowiki> ​Confirm the value is what you want by typing "​printenv ethaddr"​. +
  
 (d) Save the values by typing "​saveenv"​. (d) Save the values by typing "​saveenv"​.
  
 +\\
  
 ==== (34) What file systems are supported on the DM365/​DM368?​ ==== ==== (34) What file systems are supported on the DM365/​DM368?​ ====
- 
  
 VFAT and EXT3 are supported. VFAT and EXT3 are supported.
  
 +\\
  
 ==== (35) What is the maximum sizes of flash drives connected to DM365/​DM368?​ ==== ==== (35) What is the maximum sizes of flash drives connected to DM365/​DM368?​ ====
  
 +For VFAT, the limit is 32GB.  For EXT3, the limit is 2TB.
  
-For VFAT, the limit is 32GB. For EXT3, the limit is 2TB. +\\
  
 ==== (36) Is it possible to configure the DM368 system so that it autostarts after reset? ==== ==== (36) Is it possible to configure the DM368 system so that it autostarts after reset? ====
  
 +Yes it is.  To do this, save the settings while an encode is running.
  
-Yes it is. To do this, save the settings while an encode is running.+\\
  
  
 ===== DM814X/​DM816X-specific questions (EZSDK) ===== ===== DM814X/​DM816X-specific questions (EZSDK) =====
  
 +\\
  
 ==== (1) How do I specify the timing for 720p59.94 display? ==== ==== (1) How do I specify the timing for 720p59.94 display? ====
- 
  
 The following will work for 720p59.94: The following will work for 720p59.94:
- 
  
 <​code>​ <​code>​
-    echo 0> /​sys/​devices/​platform/​vpss/​display1/​enabled +    echo 0 > /​sys/​devices/​platform/​vpss/​display1/​enabled 
-    echo "​74176,​1280/​110/​220/​40,​720/​5/​20/​5,​1">​ /​sys/​devices/​platform/​vpss/​display1/​timings +    echo "​74176,​1280/​110/​220/​40,​720/​5/​20/​5,​1"​ > /​sys/​devices/​platform/​vpss/​display1/​timings 
-    echo 74175824> ​ /​proc/​fpga/​sdiout_video_rate ​  +    echo 74175824 >  /​proc/​fpga/​sdiout_video_rate ​  
-    echo 1> /​sys/​devices/​platform/​vpss/​display1/​enabled+    echo 1 > /​sys/​devices/​platform/​vpss/​display1/​enabled
 </​code>​ </​code>​
  
 +\\
  
 ==== (2) Is it okay to delay loading of the PCIe module? ==== ==== (2) Is it okay to delay loading of the PCIe module? ====
  
 +Yes.  As long as it is loaded before it is actually needed there should be no issue in delaying loading of it.
  
-Yes. As long as it is loaded before it is actually needed there should be no issue in delaying loading of it. 
  
 +\\
  
 ==== (3) How do you access the serial port? ==== ==== (3) How do you access the serial port? ====
- 
  
 Instead of the customary names Instead of the customary names
  
- +     */​dev/​ttyS[0123..]
-    ​* /​dev/​ttyS[0123..] +
  
 the DM81xx uses the DM81xx uses
  
 +    */​dev/​ttyO[0123..]
  
-    * /​dev/​ttyO[0123..] 
- 
- 
-For the DM816x, Z3 exports the UART0 and UART1 signals on the module connector. To use these ports, the customer just needs to use the appropriate device names. 
  
 +For the DM816x, Z3 exports the UART0 and UART1 signals on the module connector. ​ To use these ports, the customer just needs to use the appropriate device names.
  
 If the customer wants to use UART2, they can just replace Z3's entries in /​etc/​inittab and set the console= variable in u-boot to point to an unused serial port. If the customer wants to use UART2, they can just replace Z3's entries in /​etc/​inittab and set the console= variable in u-boot to point to an unused serial port.
  
 +\\
  
-==== (4) We are experiencing issues integrating with the Sierra Wireless MC5728 and MC8795. After we send a few kilobytes of data the system hangs. Do you have any suggestions?​ ==== +==== (4) We are experiencing issues integrating with the Sierra Wireless MC5728 and MC8795. ​ After we send a few kilobytes of data the system hangs. ​ Do you have any suggestions?​ ====
  
 We have seen customers succeed in getting rid of this by setting in kernels/​linux/​.config:​ We have seen customers succeed in getting rid of this by setting in kernels/​linux/​.config:​
- 
  
 <​code>​ <​code>​
     CONFIG_MUSB_PIO_ONLY=y     CONFIG_MUSB_PIO_ONLY=y
-</​code>​+</​code> ​     
  
 +\\ 
  
 ==== (5) Do you have documentation on the RF output pin on the TI DM8168/​DM8169?​ ==== ==== (5) Do you have documentation on the RF output pin on the TI DM8168/​DM8169?​ ====
  
 +This pin is no longer supported by TI.  If you check the latest DM8168 datasheet, this pin is marked as "​reserved." ​ Also, the following link mentions this is no longer supported:
  
-This pin is no longer supported by TIIf you check the latest DM8168 datasheet, this pin is marked as "​reserved." Also, the following link mentions this is no longer supported:+    *http://​processors.wiki.ti.com/​index.php/​DM816x_C6A816x_AM389x_PSP_04.00.00.12_Feature_Performance_Guide
  
 +\\
  
-    * [[http://​processors.wiki.ti.com/​index.php/​DM816x_C6A816x_AM389x_PSP_04.00.00.12_Feature_Performance_Guide|http://​processors.wiki.ti.com/​index.php/​DM816x_C6A816x_AM389x_PSP_04.00.00.12_Feature_Performance_Guide]] 
  
 +==== (6) I see the message "​VPSS_FVID2: ​ M3 firmware version 0x1000145 is newer, driver may not work properly." ​ Is this an issue? ====
  
-==== (6) I see the message ​"​VPSS_FVID2:​ M3 firmware version 0x1000145 is newer, driver may not work properly." Is this an issue? ====+This message ​occurs in EZSDK 5.05.02.00 even with no changes done by Z3.  We believe ​this message can be ignored.
  
  
-This message occurs in EZSDK 5.05.02.00 even with no changes done by Z3. We believe this message can be ignored. +\\
- +
- +
-==== (7) I want to modify the video drivers. Can you tell me the relevant files to start with? ====+
  
 +==== (7) I want to modify the video drivers. ​ Can you tell me the relevant files to start with? ====
  
 There are 5 files that are of interest: There are 5 files that are of interest:
- 
  
 <​code>​ <​code>​
Line 1908: Line 1829:
     z3apps/​drivers/​hdmi/​ad7611/​init_7611_edid.sh     z3apps/​drivers/​hdmi/​ad7611/​init_7611_edid.sh
     ezsdk/​component-sources/​omx_05_02_00_48/​src/​z3/​z3_v4l2.c.     ezsdk/​component-sources/​omx_05_02_00_48/​src/​z3/​z3_v4l2.c.
-    ezsdk/​component-sources/​omx_05_02_00_48/​examples/​ti/​omx/​demos/​capture_encode/​src/​ilclient.c +    ezsdk/​component-sources/​omx_05_02_00_48/​examples/​ti/​omx/​demos/​capture_encode/​src/​ilclient.c ​    
-</​code>​ +</​code> ​   
  
 "​dummy_vpif.c"​ contains the code for the netra_autodetect.ko driver used to setup the video mux and detect incoming video input standards. "​dummy_vpif.c"​ contains the code for the netra_autodetect.ko driver used to setup the video mux and detect incoming video input standards.
- 
  
 "​adv7611.c"​ contains the code for the Analog Devices 7611 HDMI frontend chip. "​adv7611.c"​ contains the code for the Analog Devices 7611 HDMI frontend chip.
- 
  
 "​init_7611_edid.sh"​ is the init script that sets up the proper drivers based on the board ID. "​init_7611_edid.sh"​ is the init script that sets up the proper drivers based on the board ID.
- 
  
 "​z3_v4l2.c"​ calls the ioctls provided by the netra_autodetect driver. "​z3_v4l2.c"​ calls the ioctls provided by the netra_autodetect driver.
- 
  
 Finally, "​ilclient.c"​ is an example of using the netra_autodetect driver in an EZSDK application. Finally, "​ilclient.c"​ is an example of using the netra_autodetect driver in an EZSDK application.
  
 +Z3 boards are set up to share the video bus on the DM816x with several devices. ​ In order to accomplish this, the devices are muxed and the desired input is selected via the netra_autodetect.ko kernel driver. ​ The code for this driver is contained in dummy_vpif.c. ​ The user space call of this code is located in z3_v4l2.c. ​ All Z3 EZSDK applications requiring video input call the z3_v4l2_capture_autodetect() function in this file to set up the mux properly. ​ An example of this can be found in ilclient.c. ​ V4L2 then takes over and uses the driver for the front end chip (for example, adv7611.c for HDMI inputs) to configure the chip.
  
-Z3 boards are set up to share the video bus on the DM816x with several devices. In order to accomplish this, the devices are muxed and the desired input is selected via the netra_autodetect.ko kernel driver. The code for this driver is contained in dummy_vpif.c. The user space call of this code is located in z3_v4l2.c. All Z3 EZSDK applications requiring video input call the z3_v4l2_capture_autodetect() function in this file to set up the mux properly. An example of this can be found in ilclient.c. V4L2 then takes over and uses the driver for the front end chip (for example, adv7611.c for HDMI inputs) to configure the chip.+\\
  
- +==== (8) I notice that the adv7611 entry is commented out in z3dm816x_i2c_boardinfo0 but /​opt/​z3/​init_7611_edid.sh loads this kernel module. ​ How is it that this piece is functioning?​ ====
-==== (8) I notice that the adv7611 entry is commented out in z3dm816x_i2c_boardinfo0 but /​opt/​z3/​init_7611_edid.sh loads this kernel module. How is it that this piece is functioning?​ ====+
  
  
Line 1936: Line 1852:
  
  
-==== (9) Why is there a tlv320aic3x entry for both I2C0 and I2C1? The hardware documentation indicates that this device is on the Z3-DM8169-MOD2x board on I2C0. ====+\\
  
 +==== (9) Why is there a tlv320aic3x entry for both I2C0 and I2C1?  The hardware documentation indicates that this device is on the Z3-DM8169-MOD2x board on I2C0.====
  
 There is one aic3x on the MOD-2x board on I2C0, and a second aic3x on the APP-02 board on I2C1. There is one aic3x on the MOD-2x board on I2C0, and a second aic3x on the APP-02 board on I2C1.
  
 +\\
  
 ==== (10) Please give us a pointer on implementing alpha blending. ==== ==== (10) Please give us a pointer on implementing alpha blending. ====
- 
  
 Alpha blending can be implemented using the sysfs variables documented in: Alpha blending can be implemented using the sysfs variables documented in:
- 
  
 <​code>​ <​code>​
     ezsdk/​board-support/​docs/​TI81XX_VPSS_Video_Driver_User_Guide.pdf     ezsdk/​board-support/​docs/​TI81XX_VPSS_Video_Driver_User_Guide.pdf
 </​code>​ </​code>​
- 
  
 There is an example of using alpha blending in: There is an example of using alpha blending in:
- 
  
 <​code>​ <​code>​
     ezsdk/​component-sources/​omx_*/​examples/​ti/​omx/​demos/​decode_display/​src/​Fb_blending.c     ezsdk/​component-sources/​omx_*/​examples/​ti/​omx/​demos/​decode_display/​src/​Fb_blending.c
 </​code>​ </​code>​
- 
  
 which can be exercised using the "-g 1" option to decode_display. which can be exercised using the "-g 1" option to decode_display.
- 
  
 "Video windows"​ can be implemented by using transparency keying values in the frame buffer, and using a single video pipeline with the video positioned in the same location as the transparency key in the framebuffer. "Video windows"​ can be implemented by using transparency keying values in the frame buffer, and using a single video pipeline with the video positioned in the same location as the transparency key in the framebuffer.
- 
  
 If multiple windows are needed, they can be "​painted"​ onto the same video window, using the mosaic method as in this sample application:​ If multiple windows are needed, they can be "​painted"​ onto the same video window, using the mosaic method as in this sample application:​
- 
  
 <​code>​ <​code>​
Line 1974: Line 1884:
 </​code>​ </​code>​
  
 +\\ 
  
 ==== (11) Please provide an example of using aspect ratio ==== ==== (11) Please provide an example of using aspect ratio ====
- 
  
 The following example can be found in the code: The following example can be found in the code:
- 
  
 <​code>​ <​code>​
Line 2001: Line 1910:
 </​code>​ </​code>​
  
 +\\
  
 ==== (12) Are there any examples of integrating algorithms running on the DSP using OpenMax? ==== ==== (12) Are there any examples of integrating algorithms running on the DSP using OpenMax? ====
  
- +Yes, there is.  The AAC-LC encoder and decoder are integrated into the EZSDK using OpenMax. ​ Example code can be found in the directory:
-Yes, there is. The AAC-LC encoder and decoder are integrated into the EZSDK using OpenMax. Example code can be found in the directory: +
  
 <​code>​ <​code>​
Line 2012: Line 1920:
     $PRJROOT/​ezsdk/​component-sources/​omx_05_02_00_48/​src/​ti/​omx/​comp/​adec     $PRJROOT/​ezsdk/​component-sources/​omx_05_02_00_48/​src/​ti/​omx/​comp/​adec
 </​code>​ </​code>​
- 
  
 and an example of exercising the algorithms from the host can be found in: and an example of exercising the algorithms from the host can be found in:
- 
  
 <​code>​ <​code>​
Line 2022: Line 1928:
 </​code>​ </​code>​
  
 +\\
  
 ==== (13) Can you provide an example of EDMA working with the A8? ==== ==== (13) Can you provide an example of EDMA working with the A8? ====
- 
  
 An example can be found in: An example can be found in:
- 
  
 <​code>​ <​code>​
Line 2033: Line 1938:
 </​code>​ </​code>​
  
 +\\
  
 ==== (14) Is there a way of verifying the TVP7002 using V4L2? ==== ==== (14) Is there a way of verifying the TVP7002 using V4L2? ====
- 
  
 In the file: In the file:
- 
  
 <​code>​ <​code>​
     /​opt/​z3/​init_7611_edid.sh     /​opt/​z3/​init_7611_edid.sh
 </​code>​ </​code>​
- 
  
 there is the statement there is the statement
- 
  
 <​code>​ <​code>​
Line 2052: Line 1954:
 </​code>​ </​code>​
  
- +Here, change USE_V4L2=0 to USE_V4L2=1. ​ This will run a V4L2 loopback from the the TVP7002 to the HDMI output.
-Here, change USE_V4L2=0 to USE_V4L2=1. This will run a V4L2 loopback from the the TVP7002 to the HDMI output. +
  
 In later versions of the code, it may be necessary to swap I2C addresses in: In later versions of the code, it may be necessary to swap I2C addresses in:
- 
  
 <​code>​ <​code>​
     $PRJROOT/​kernels/​linux/​arch/​arm/​mach-omap2/​ti81xx_vpss.c     $PRJROOT/​kernels/​linux/​arch/​arm/​mach-omap2/​ti81xx_vpss.c
 </​code>​ </​code>​
- 
  
 Specifically,​ instance 0 should be set to 0x5c and instance 1 to 0x5d. Specifically,​ instance 0 should be set to 0x5c and instance 1 to 0x5d.
  
 +\\
  
 ===== DM810X/​DM814X/​DM816X-specific questions (RDK) ===== ===== DM810X/​DM814X/​DM816X-specific questions (RDK) =====
  
 +\\ 
  
 ==== (1) How do I access the GPMC regions from user space? ==== ==== (1) How do I access the GPMC regions from user space? ====
  
- +Typically, one uses /dev/mem to gain uncached access to physical memory. ​ Details can be found in:
-Typically, one uses /dev/mem to gain uncached access to physical memory. Details can be found in: +
  
 <​code>​ <​code>​
Line 2080: Line 1978:
 </​code>​ </​code>​
  
 +
 +\\
  
 ==== (2) How is pinmuxing handled? ==== ==== (2) How is pinmuxing handled? ====
- 
  
 You can check the current pinmuxing through the following commands: You can check the current pinmuxing through the following commands:
- 
  
 <​code>​ <​code>​
Line 2093: Line 1991:
 </​code>​ </​code>​
  
- +You can modify the pinmux by writing a hex value to the register. ​ Here is an example from the FPGA load script on the DM8107-SDI-RPS:​
-You can modify the pinmux by writing a hex value to the register. Here is an example from the FPGA load script on the DM8107-SDI-RPS:​ +
  
 <​code>​ <​code>​
     mountpoint /​sys/​kernel/​debug || mount -t debugfs none /​sys/​kernel/​debug     mountpoint /​sys/​kernel/​debug || mount -t debugfs none /​sys/​kernel/​debug
  
-    echo 0x10010> /​sys/​kernel/​debug/​omap_mux/​vout1_g_y_yc1 +    echo 0x10010 > /​sys/​kernel/​debug/​omap_mux/​vout1_g_y_yc1 
-    echo 0x10010> /​sys/​kernel/​debug/​omap_mux/​vout1_g_y_yc0 +    echo 0x10010 > /​sys/​kernel/​debug/​omap_mux/​vout1_g_y_yc0 
-    echo 0x10010> /​sys/​kernel/​debug/​omap_mux/​vout1_r_cr1+    echo 0x10010 > /​sys/​kernel/​debug/​omap_mux/​vout1_r_cr1
 </​code>​ </​code>​
- 
  
 Also, driving GPIOs are described more here: Also, driving GPIOs are described more here:
  
 +    * http://​processors.wiki.ti.com/​index.php/​TI81XX_PSP_GPIO_Driver_User_Guide
  
-    * [[http://​processors.wiki.ti.com/​index.php/​TI81XX_PSP_GPIO_Driver_User_Guide|http://​processors.wiki.ti.com/​index.php/​TI81XX_PSP_GPIO_Driver_User_Guide]] 
  
 +\\
  
 ==== (3) Where can I get more information on scaling? ==== ==== (3) Where can I get more information on scaling? ====
  
- +There is support for scaling in the frame buffer. ​ For more information,​ the customer can look up
-There is support for scaling in the frame buffer. For more information,​ the customer can look up +
  
 <​code>​ <​code>​
      ​TIFB_SET_SCINFO      ​TIFB_SET_SCINFO
 </​code>​ </​code>​
- 
  
 in in
- 
  
 <​code>​ <​code>​
Line 2131: Line 2023:
  
  
-==== (4) Sometimes I observe strange behavior in i2cdetect/​i2cdump (for example, when reading an invalid address, it no longer works even for valid addresses) ====+\\
  
 +==== (4) Sometimes I observe strange behavior in i2cdetect/​i2cdump (for example, when reading an invalid address, it no longer works even for valid addresses) ​ ====
  
-i2cdetect and i2cdump can be unreliable sometimes. It is better to use "i2c probe" in u-boot for debug.+i2cdetect and i2cdump can be unreliable sometimes. ​ It is better to use "i2c probe" in u-boot for debug.
  
  
-==== (5) The file board-ti8169-evm.c sets up an AIC device on i2c-2. However, i2c-2 is not used on the module. Is this needed? ====+\\
  
 +==== (5) The file board-ti8169-evm.c sets up an AIC device on i2c-2. ​ However, i2c-2 is not used on the module. ​ Is this needed? ====
  
-This is not needed. There are 2 parts to initializing the AIC device. The first is the init in board-ti8169-evm.c,​ which by itself does not have any effect. The second is in kernels/​linux/​sound/​soc/​davinci/​davinci-evm.c which, based on the board ID, drives instantiation.+This is not needed. ​ There are 2 parts to initializing the AIC device. ​ The first is the init in board-ti8169-evm.c,​ which by itself does not have any effect. ​ The second is in kernels/​linux/​sound/​soc/​davinci/​davinci-evm.c which, based on the board ID, drives instantiation.
  
  
-==== (6) There are 2 sets of development tools in the RDK – "​Arm_v5_le"​ and "​Arm-arago-linux-gnueabi"​. Which should I use? ====+\\
  
 +==== (6) There are 2 sets of development tools in the RDK -- "​Arm_v5_le"​ and "​Arm-arago-linux-gnueabi"​. ​ Which should I use? ====
  
-Use "​Arm-arago-linux-gnueabi"​ in dvr-rdk/​ti_tools/​cgt_a8/​argo/​linux-devkit. The $(CROSS_COMPILE) variable should already be set up to use this path when z3-env is sourced.+Use "​Arm-arago-linux-gnueabi"​ in dvr-rdk/​ti_tools/​cgt_a8/​argo/​linux-devkit. ​ The $(CROSS_COMPILE) variable should already be set up to use this path when z3-env is sourced.
  
 +
 +\\
  
 ==== (7) Can you describe the memory map of the RDK environment?​ ==== ==== (7) Can you describe the memory map of the RDK environment?​ ====
- 
  
 The memory maps for the ti816x platform are located here: The memory maps for the ti816x platform are located here:
- 
  
 <​code>​ <​code>​
Line 2159: Line 2054:
 </​code>​ </​code>​
  
- +The Linux memory is reserved in the first 512MB block as seen in the excerpt from the .bld file below. ​ In order to give Linux more memory, you will need to reallocate it from elsewhere. ​ Another option is to reserve less VRAM via bootargs_misc.
-The Linux memory is reserved in the first 512MB block as seen in the excerpt from the .bld file below. In order to give Linux more memory, you will need to reallocate it from elsewhere. Another option is to reserve less VRAM via bootargs_misc. +
  
 <​code>​ <​code>​
Line 2178: Line 2071:
 </​code>​ </​code>​
  
- +Z3 currently reserves 20MB of VRAM via the bootargs_misc variable in u-boot. ​ To change this, change the following line in $PRJROOT/​dvr-rdk/​dvr_rdk/​bin/​ti816x/​load.sh to have the VRAM usage less than the bootargs_misc VRAM setting:
-Z3 currently reserves 20MB of VRAM via the bootargs_misc variable in u-boot. To change this, change the following line in $PRJROOT/​dvr-rdk/​dvr_rdk/​bin/​ti816x/​load.sh to have the VRAM usage less than the bootargs_misc VRAM setting: +
  
 <​code>​ <​code>​
 insmod ./​kermod/​ti81xxfb.ko vram=0:​8M,​1:​8M,​2:​4M insmod ./​kermod/​ti81xxfb.ko vram=0:​8M,​1:​8M,​2:​4M
 </​code>​ </​code>​
- 
  
 Also, if LINUX_SIZE is increased, it is necessary to also adjust the mem= to reflect this in the bootargs_misc u-boot variable. Also, if LINUX_SIZE is increased, it is necessary to also adjust the mem= to reflect this in the bootargs_misc u-boot variable.
  
 +
 +\\
  
 ==== (8) Can you describe the boot sequence? ==== ==== (8) Can you describe the boot sequence? ====
  
- +(a)  As part of the kernel boot, the following /etc/rc.5 scripts are run:
-(a) As part of the kernel boot, the following /etc/rc.5 scripts are run: +
  
 <​code>​ <​code>​
Line 2203: Line 2093:
      ​*S99z3demo -> ../​init.d/​z3demo ​                                             [start DVR demo]      ​*S99z3demo -> ../​init.d/​z3demo ​                                             [start DVR demo]
 </​code>​ </​code>​
- 
  
 (b) "​z3demo"​ creates and executes (b) "​z3demo"​ creates and executes
  
- +<​code> ​   */​tmp/​z3start.tmp
-<​code>​ +
-    ​*/​tmp/​z3start.tmp+
 </​code>​ </​code>​
  
- +%%(c)%% ​"​z3start.tmp"​ then runs
-<​nowiki>​ +
- +
- +
-©</​nowiki> ​"​z3start.tmp"​ then runs +
  
 <​code>​ <​code>​
Line 2223: Line 2105:
 </​code>​ </​code>​
  
- +(d) "​runz3demo.sh"​ pulls the name of the application to run passed by u-boot from the kernel cmdline and calls the desired script(s) based on that.  In the default case 3 scripts are run:
-(d) "​runz3demo.sh"​ pulls the name of the application to run passed by u-boot from the kernel cmdline and calls the desired script(s) based on that. In the default case 3 scripts are run: +
  
 <​code>​ <​code>​
Line 2232: Line 2112:
     *run_mcsenc.sh ​ Starts the demo and creates the FIFOs for communication with the demo application     *run_mcsenc.sh ​ Starts the demo and creates the FIFOs for communication with the demo application
 </​code>​ </​code>​
- +    ​
 (e) The demo application is then started in the background: (e) The demo application is then started in the background:
- 
  
 <​code>​ <​code>​
Line 2242: Line 2120:
  
  
-==== (9) What is the default video input setting used? ====+\\
  
 +==== (9) What is the default video input setting used? ====
  
 It is 16BIT YUV422P. It is 16BIT YUV422P.
  
  
-==== (10) I would like to support hot plug by building a kernel module and doing an insmod later. Is this possible? ====+\\
  
 +==== (10) I would like to support hot plug by building a kernel module and doing an insmod later. ​ Is this possible? ====
  
-It should be. It looks like others have gone down this road (DM81xx RC with FPGA EP) and TI has some suggested patches to allow PCI rescanning. See the following threads:+It should be.  It looks like others have gone down this road (DM81xx RC with FPGA EP) and TI has some suggested patches to allow PCI rescanning. ​ See the following threads:
  
 +    *http://​e2e.ti.com/​support/​dsp/​davinci_digital_media_processors/​f/​716/​p/​154734/​569707.aspx#​581061
 +    *http://​e2e.ti.com/​support/​dsp/​davinci_digital_media_processors/​f/​716/​t/​239588.aspx?​pi199607=1
  
-    * [[http://​e2e.ti.com/​support/​dsp/​davinci_digital_media_processors/​f/​716/​p/​154734/​569707.aspx#​581061|http://​e2e.ti.com/​support/​dsp/​davinci_digital_media_processors/​f/​716/​p/​154734/​569707.aspx#​581061]] +\\ 
-    * [[http://​e2e.ti.com/​support/​dsp/​davinci_digital_media_processors/​f/​716/​t/​239588.aspx?​pi199607=1|http://​e2e.ti.com/​support/​dsp/​davinci_digital_media_processors/​f/​716/​t/​239588.aspx?​pi199607=1]] +
- +
- +
-==== (11) I'm using framebuffer and QT. How does framebuffer relate to what is displayed by MSCDEC? ====+
  
 +==== (11) I'm using framebuffer and QT.  How does framebuffer relate to what is displayed by MSCDEC? ====
  
 Please see the following documentation that is included in the build: Please see the following documentation that is included in the build:
- 
  
 <​code>​ <​code>​
Line 2268: Line 2146:
 </​code>​ </​code>​
  
 +Specifically,​ page 19 under the Transparency Keying heading. ​ Basically, you need to set a background color for the area of the screen you are not using and then set up the Transparency Keying to make that color transparent. ​ There are examples on how to do this in the document.
  
-Specifically,​ page 19 under the Transparency Keying heading. Basically, you need to set a background color for the area of the screen you are not using and then set up the Transparency Keying to make that color transparent. There are examples on how to do this in the document.+\\
  
 +==== (12)  Please tell us more about the voltage regulator on the DM8107 MOD and how to control it. ====
  
-==== (12) Please tell us more about the voltage regulator on the DM8107 MOD and how to control it. ==== +On the DM8107, voltage is controlled through the TPS65911 regulator. ​ The voltages for the TPS65911 can be read in two ways.  The first is via i2c from address 0x2D (assuming the chip is not in Smart Reflex mode):
- +
- +
-On the DM8107, voltage is controlled through the TPS65911 regulator. The voltages for the TPS65911 can be read in two ways. The first is via i2c from address 0x2D (assuming the chip is not in Smart Reflex mode): +
- +
- +
-^Voltage ^Address | +
-|CORE (SW) |0x28 | +
-|ARM (SW1) |0x22 | +
-|IVA (SW2) |0x25 |+
  
 +^ Voltage ​     ^ Address ​         ^
 +| CORE (SW)  | 0x28     |
 +| ARM  (SW1) | 0x22     |
 +| IVA  (SW2) | 0x25     |
  
 The default value for all 3 of these voltages is 1.2V. The default value for all 3 of these voltages is 1.2V.
- 
  
 The second way to read the TPS65911 voltages is by setting the following in your kernel config (should be default): The second way to read the TPS65911 voltages is by setting the following in your kernel config (should be default):
  
- +<​code>​CONFIG_MFD_TPS65910=y 
-<​code>​ +CONFIG_REGULATOR_TPS65910</​code>​
-CONFIG_MFD_TPS65910=y +
-CONFIG_REGULATOR_TPS65910 +
-</​code>​ +
  
 If the TPS65910 regulator driver is enabled, the voltage can be read from sysfs: If the TPS65910 regulator driver is enabled, the voltage can be read from sysfs:
  
- +<​code>​root@arago:​~#​ cat /​sys/​class/​regulator/​regulator.5/​microvolts ​
-<​code>​ +
-root@arago:​~#​ cat /​sys/​class/​regulator/​regulator.5/​microvolts ​+
 1200000 1200000
 </​code>​ </​code>​
  
- +To allow the automatic setting of the regulator based on CPU frequency, cpufreq has to be enabled in the kernel. ​ Also, an opp file containing the available frequencies and their corresponding voltages needs to be added to '/​arch/​arm/​mach-omap2/'​. ​ Lastly, in '/​arch/​arm/​mach-omap2/​cpu-omap.c',​ the correct device needs to be passed to regulator_get so the correct set_voltage function will be called. ​ See [[http://​processors.wiki.ti.com/​index.php/​TI81XX_PSP_PM_DVFS_User_Guide]]
-To allow the automatic setting of the regulator based on CPU frequency, cpufreq has to be enabled in the kernel. Also, an opp file containing the available frequencies and their corresponding voltages needs to be added to '/​arch/​arm/​mach-omap2/'​. Lastly, in '/​arch/​arm/​mach-omap2/​cpu-omap.c',​ the correct device needs to be passed to regulator_get so the correct set_voltage function will be called. See [[http://​processors.wiki.ti.com/​index.php/​TI81XX_PSP_PM_DVFS_User_Guide|http://​processors.wiki.ti.com/​index.php/​TI81XX_PSP_PM_DVFS_User_Guide]] +
  
 Below is an example of how to dynamically change the A8 frequency: Below is an example of how to dynamically change the A8 frequency:
- 
- 
 <​code>​ <​code>​
    #Set the governor to the userspace governor    #Set the governor to the userspace governor
-   echo -n "​userspace">​ /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_governor+   echo -n "​userspace"​ > /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_governor
    #Set the clock speed to 720MHz    #Set the clock speed to 720MHz
-   echo -n "​720000">​ /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_setspeed ​+   echo -n "​720000"​ > /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_setspeed ​
    #Set the clock speed to 1000MHz    #Set the clock speed to 1000MHz
-   echo -n "​1000000">​ /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_setspeed+   echo -n "​1000000"​ > /​sys/​devices/​system/​cpu/​cpu0/​cpufreq/​scaling_setspeed
 </​code>​ </​code>​
  
 +
 +\\
  
 ==== (13) How do you turn Smart Reflex power management off? ==== ==== (13) How do you turn Smart Reflex power management off? ====
- 
  
 In order to turn Smart Reflex off, set the following in the kernel config: In order to turn Smart Reflex off, set the following in the kernel config:
 +<​code>​CONFIG_REGULATOR_GPIO=n</​code>​
  
- +\\
-<​code>​ +
-CONFIG_REGULATOR_GPIO=n +
-</​code>​ +
  
 ==== (14) What are the supported motherboards for Z3's PCI boards? ==== ==== (14) What are the supported motherboards for Z3's PCI boards? ====
  
 +^ Motherboard ^ # of PCIe slots ^ Notes ^
 +| EliteGroup H77H2-M3 | 1 | On-board Ethernet Issues |
 +| ASUS P8H67-MPRO | 2 | PCIe slot 1 only uses x1 width (1/2 bandwidth)|
 +| GIGABYTE GA-Z77MX-D3H | 3 | N/A |
  
-^Motherboard ^# of PCIe slots ^Notes | +\\
-|EliteGroup H77H2-M3 |1 |On-board Ethernet Issues | +
-|ASUS P8H67-MPRO |2 |PCIe slot 1 only uses x1 width (1/2 bandwidth) | +
-|GIGABYTE GA-Z77MX-D3H |3 |N/A | +
  
 ==== (15) How do you add a new resolution to the HDVPSS and V4L2? ==== ==== (15) How do you add a new resolution to the HDVPSS and V4L2? ====
- 
  
 When adding a new resolution to the RDK HDVPSS driver, several files need to be edited: When adding a new resolution to the RDK HDVPSS driver, several files need to be edited:
  
- +  ​* prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​interfaces/​link_api/​system_const.h 
-    ​* prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​interfaces/​link_api/​system_const.h +    * The new resolution needs to be added to the SYSTEM_Standard enum 
-      * The new resolution needs to be added to the SYSTEM_Standard enum +    * <​code>​
-       +
-<​code>​+
     SYSTEM_STD_1080I_48,​     SYSTEM_STD_1080I_48,​
-    /​**<​1920x1080 48FPS interlaced HD standard. */ +    /**< 1920x1080 48FPS interlaced HD standard. */ 
-     +    ​</​code>​ 
- +  * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​fvid2.h 
-    ​* prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​fvid2.h +    * The FVID2_Standard enum needs to match the SYSTEM_Standard enum from above. 
-      * The FVID2_Standard enum needs to match the SYSTEM_Standard enum from above. +    * <​code>​
-       +
-<​code>​+
     FVID2_STD_1080I_48,​     FVID2_STD_1080I_48,​
-    /​**<​1920x1080 48FPS interlaced HD standard. */ +    /**< 1920x1080 48FPS interlaced HD standard. */ 
-    ​+    ​</​code>​ 
 +  * prjroot/​kernels/​linux/​include/​linux/​fvid2.h 
 +    * Propagate the DVR-RDK fvid2.h changes to Linux.
  
-    * prjroot/​kernels/​linux/​include/​linux/​fvid2.h +  ​* prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​src_bios6/​links_common/​system/​system_common.c 
-      * Propagate the DVR-RDK fvid2.h changes to Linux. +    * This file contains compile time checks for match FVID2_Standard and SYSTEM_Standard enums. 
- +    * <​code>​UTILS_COMPILETIME_ASSERT(SYSTEM_STD_1080I_48 == FVID2_STD_1080I_48);​</​code>​ 
-    ​* prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​src_bios6/​links_common/​system/​system_common.c +  * The following files all require the addition of the new standard: 
-      * This file contains compile time checks for match FVID2_Standard and SYSTEM_Standard enums. +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​drivers/​src/​fvid2_drvMgr.c 
-       +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​hal/​src/​vpshalHdVencDefaults.h 
-<​code>​ +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​hal/​src/​vpshal_hdvenc.c 
-UTILS_COMPILETIME_ASSERT(SYSTEM_STD_1080I_48 == FVID2_STD_1080I_48);​ +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​devices/​sii9022a/​src/​vpsdrv_sii9022a.c 
- +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​src/​vps_platform.c 
-    ​* The following files all require the addition of the new standard: +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​ti816x/​src/​vps_platformTI816x.c 
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​drivers/​src/​fvid2_drvMgr.c +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​ti814x/​src/​vps_platformTI814x.c 
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​hal/​src/​vpshalHdVencDefaults.h +    * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​ti8107/​src/​vps_platformTI8107.c
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​vps/​hal/​src/​vpshal_hdvenc.c +
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​devices/​sii9022a/​src/​vpsdrv_sii9022a.c +
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​src/​vps_platform.c +
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​ti816x/​src/​vps_platformTI816x.c +
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​ti814x/​src/​vps_platformTI814x.c +
-      * prjroot/​dvr-rdk/​ti_tools/​hdvpss/​dvr_rdk_hdvpss/​packages/​ti/​psp/​platforms/​ti8107/​src/​vps_platformTI8107.c+
  
 To add new standards to V4L2 the following modifications need to be made: To add new standards to V4L2 the following modifications need to be made:
- +  ​* A new extended standard needs to be added to both prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​src_linux/​devices/​z3_v4l2/​videohd.h and prjroot/​kernels/​linux/​inculde/​media/​davinci/​videohd.h <​code>​
-    ​* A new extended standard needs to be added to both prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​src_linux/​devices/​z3_v4l2/​videohd.h and prjroot/​kernels/​linux/​inculde/​media/​davinci/​videohd.h +
-     +
-<​code>​+
 /* Z3 - Digital TV standards EXT */ /* Z3 - Digital TV standards EXT */
 /* if V4L2_STD_EXT denotes the these standards */ /* if V4L2_STD_EXT denotes the these standards */
 #define V4L2_STD_1080I_24 ​      ​((v4l2_std_id)(0x0000800000000001ULL)) #define V4L2_STD_1080I_24 ​      ​((v4l2_std_id)(0x0000800000000001ULL))
- +</​code>​ 
-    * Processing for the new resolution needs to be added to prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​src_linux/​devices/​z3_v4l2/​z3_v4l2.c +  * Processing for the new resolution needs to be added to prjroot/​dvr-rdk/​dvr_rdk/​mcfw/​src_linux/​devices/​z3_v4l2/​z3_v4l2.c <​code>​
-     +
-<​code>​+
 case  V4L2_STD_1080I_24: ​ case  V4L2_STD_1080I_24: ​
    ​pStatus->​isVideoDetect = TRUE;    ​pStatus->​isVideoDetect = TRUE;
Line 2403: Line 2251:
    ​*pStartX = 192;    ​*pStartX = 192;
    ​*pStartY = 36;    ​*pStartY = 36;
-   ​break;​+   ​break;​</​code>​ 
 +  * Also, detection code needs to be added to the appropriate video drivers.
  
-    * Also, detection code needs to be added to the appropriate video drivers.+\\
  
 ==== (16) How many different present configurations can I save? ==== ==== (16) How many different present configurations can I save? ====
Line 2411: Line 2260:
 On the Z3 RDK-based platforms, up to 9 different configurations can be saved. On the Z3 RDK-based platforms, up to 9 different configurations can be saved.
  
-==== (17) I want to unicast the same input to more than 1 destination. What is the best way to do this? ====+\\
  
-The latest versions of the RDK contain an "​Encode 1 to 3 Ch" mode. This can be used to take the same input and encode it in 2 or 3 different ways.+==== (17) I want to unicast the same input to more than 1 destination. ​ What is the best way to do this? ==== 
 + 
 +The latest versions of the RDK contain an "​Encode 1 to 3 Ch" mode.  This can be used to take the same input and encode it in 2 or 3 different ways. 
 + 
 +\\
  
 ==== (18) Where can I find code for the serial UI? ==== ==== (18) Where can I find code for the serial UI? ====
Line 2420: Line 2273:
  
 <​code>​ <​code>​
-    $PRJROOT/​dvr-rdk/​dvr_rdk/​bin/​common/​run_mcsenc.sh+    $PRJROOT/​dvr-rdk/​dvr_rdk/​bin/​common/​run_mcsenc.sh ​
 </​code>​ </​code>​
- 
  
 <​code>​ <​code>​
-    $PRJROOT/​dvr-rdk/​dvr_rdk/​bin/​common/​run_mcsdec.sh+    $PRJROOT/​dvr-rdk/​dvr_rdk/​bin/​common/​run_mcsdec.sh ​
 </​code>​ </​code>​
- 
  
 These files are copied to the board filesystem at /​opt/​dvr-rdk/​ti816x. These files are copied to the board filesystem at /​opt/​dvr-rdk/​ti816x.
  
 +Note that there also may be an /opt/dvsdk directory. ​ Those files are for different platforms
 +and can be disregarded. ​ Only files in /​opt/​dvr-rdk should be examined for RDK development.
  
-Note that there also may be an /opt/dvsdk directory. Those files are for different platforms and can be disregarded. Only files in /​opt/​dvr-rdk should be examined for RDK development. +\\
  
 ==== (19) What happens if I try to encode interlaced source using "​progressive only" mode? ==== ==== (19) What happens if I try to encode interlaced source using "​progressive only" mode? ====
  
 +The RDK will convert the interlaced source to progressive by taking one field and resizing it to full size.
 +It will then encode that result as a progressive stream.
  
-The RDK will convert the interlaced source to progressive by taking one field and resizing it to full size. It will then encode that result as a progressive stream.+\\
  
 +==== (20) I see references to "​Z3_TRUEVIEW"​. ​ What does this mean? ====
  
-==== (20) I see references ​to "​Z3_TRUEVIEW"​What does this mean? ====+This refers ​to code that applies to the H.264 TruView encoder -- an enhanced quality version of the H264 encoder. ​ This 
 +TruView encoder is available to those that license DM8169 systems.
  
 +\\
  
-This refers to code that applies to the H.264 TruView encoder – an enhanced quality version of the H264 encoder. This TruView encoder is available ​to those that license DM8169 systems.+==== (21) When mounting the root filesystem I see that "​relatime"​ is used I would like to change this to "​noatime." ​ Do you see any issues with doing this? ====
  
 +There should be no issue with doing this.  "​relatime"​ is used because it was the default option. ​ Changing to "​noatime"​ should not cause any issues.
  
-==== (21) When mounting the root filesystem I see that "​relatime"​ is used. I would like to change this to "​noatime."​ Do you see any issues with doing this? ====+\\
  
 +==== (22) Where are the GPIO registers set up?  Is it in u-boot or the linux kernel? ====
  
-There should be no issue with doing this. "​relatime"​ is used because it was the default option. Changing to "​noatime"​ should not cause any issues. +Some are set up in u-boot and some in linux. ​ In u-boot many of the addresses can be found in
- +
- +
-==== (22) Where are the GPIO registers set up? Is it in u-boot or the linux kernel? ==== +
- +
- +
-Some are set up in u-boot and some in linux. In u-boot many of the addresses can be found in +
  
 <​code>​ <​code>​
    ​arch/​arm/​include/​asm/​arch-ti81xx    ​arch/​arm/​include/​asm/​arch-ti81xx
 </​code>​ </​code>​
- 
  
 Addresses not found there can be found in the TI chip documentation. Addresses not found there can be found in the TI chip documentation.
  
 +\\ 
  
-==== (23) When running MCSENC, I see an assertion set in encLink_common.c and encode doesn'​t run. What is the reason? ==== +==== (23) When running MCSENC, I see an assertion set in encLink_common.c and encode doesn'​t run.  What is the reason? ====
- +
- +
-This is indicative that encmode was not set. Make sure that encmode was set before running the encode command. +
- +
- +
-==== (24) I would like to use MCSENC in a script. Is there an example of how to do this? ====+
  
 +This is indicative that encmode was not set.  Make sure that encmode was set before running the encode command.
 + 
 +\\
  
-A few examples can be found in the file runz3demo.sh. A good example ​is at line 46:+==== (24) I would like to use MCSENC ​in a script Is there an example ​of how to do this? ====
  
 +A few examples can be found in the file runz3demo.sh. ​ A good example is at line 46:
  
 <​code>​ <​code>​
Line 2489: Line 2339:
 </​code>​ </​code>​
  
 +\\
  
 ==== (25) Where can I find an example of how actv_config is parsed? ==== ==== (25) Where can I find an example of how actv_config is parsed? ====
  
 +Examples can be found in the file run_mcsenc.sh and in the Web GUI scripts. ​ It is referred to as
 +WORKING_CONFIG in these scripts.  ​
  
-Examples can be found in the file run_mcsenc.sh and in the Web GUI scripts. It is referred to as WORKING_CONFIG in these scripts. +\\
- +
- +
-==== (26) I want to rebuild just the encoder app. How can I do this? ====+
  
 +==== (26) I want to rebuild just the encoder app.  How can I do this? ====
  
 You can use the following command: You can use the following command:
- 
  
 <​code>​ <​code>​
Line 2506: Line 2356:
 </​code>​ </​code>​
  
 +\\
  
 ==== (27) Do you have any suggestions for capturing RGB? ==== ==== (27) Do you have any suggestions for capturing RGB? ====
  
 +You should be able to do this by setting the busInterfaceType to 1 in the MultiCh_dectectStd(vipIst,​ videoDecoderName,​capstatus,​0,​ busInterfaceType) command. ​ In fact, if ":​RGB"​ is placed after the SRC in the MCSENC command, this automatically gets set (for example: ​ "​HDMI:​RGB"​).
  
-You should be able to do this by setting the busInterfaceType to 1 in the MultiCh_dectectStd(vipIst,​ videoDecoderName,​capstatus,​0,​ busInterfaceType) command. In fact, if ":​RGB"​ is placed after the SRC in the MCSENC command, this automatically gets set (for example: "​HDMI:​RGB"​). +\\
  
 ==== (28) What toolchain is used with the RDK? ==== ==== (28) What toolchain is used with the RDK? ====
  
- +We use the arago toolchain distributed with TI's RDK release. ​ It can be found in:
-We use the arago toolchain distributed with TI's RDK release. It can be found in: +
  
 <​code>​ <​code>​
Line 2523: Line 2372:
 </​code>​ </​code>​
  
 +\\
  
 ==== (29) How can you find out what the loading on the IVA and M3 are? ==== ==== (29) How can you find out what the loading on the IVA and M3 are? ====
- 
  
 You can find these out using the "​Z"​ command within the serial menu. You can find these out using the "​Z"​ command within the serial menu.
  
 +\\
  
 ==== (30) Is 720p29.97 encode supported in the RDK? ==== ==== (30) Is 720p29.97 encode supported in the RDK? ====
- 
  
 Yes it is. Yes it is.
  
 +\\
  
 ==== (31) Is it possible to change the bitrate without stopping and restarting the encoder? ==== ==== (31) Is it possible to change the bitrate without stopping and restarting the encoder? ====
  
 +Yes it is.  There are 2 ways this can be done.  The first is by changing the bitrate in the Web GUI and clicking the "​update"​ button. ​ The second is to use the "​dynamic"​ command in MCSENC.
  
-Yes it is. There are 2 ways this can be done. The first is by changing the bitrate in the Web GUI and clicking the "​update"​ button. The second is to use the "​dynamic"​ command in MCSENC.+\\
  
 +==== (32) I see a greenish tint when encoding HDMI with a DM8107 MOD.  What could be the cause? ====
  
-==== (32) I see a greenish tint when encoding HDMI with a DM8107 MOD. What could be the cause? ====+This is indicative of the one of the 2 ribbon connectors in the back of the module being loose. ​ Please double-check those connections.
  
 +\\
  
-This is indicative of the one of the 2 ribbon connectors in the back of the module being lose. Please double-check those connections. +==== (33) I have a DM8168-PCI-RPS (or DM8168-PCI2-RPS). ​ I want to put the board in endpoint mode.  How do I go about doing this? ====
- +
- +
-==== (33) I have a DM8168-PCI-RPS (or DM8168-PCI2-RPS). I want to put the board in endpoint mode. How do I go about doing this? ==== +
  
 There are 3 steps you should take to do this: There are 3 steps you should take to do this:
  
- +(1) Set the power jumper (J21) on the APP-22 board to 2-3 to accept power from the PCI bus (the jumper goes on the right 2 pins). ​ If an APP-41 is being used, this step is not necessary.
-(1) Set the power jumper (J21) on the APP-22 board to 2-3 to accept power from the PCI bus (the jumper goes on the right 2 pins). If an APP-41 is being used, this step is not necessary. +
  
 (2) Set the boot mode jumper on the module to PCI boot mode (1-2, 9-10). (2) Set the boot mode jumper on the module to PCI boot mode (1-2, 9-10).
  
- +(3) Make sure the motherboard connected to is a supported motherboard (see [[/faqs/general?&#​what_are_the_supported_motherboards_for_z3_s_pci_boards |question (14)]]).
-(3) Make sure the motherboard connected to is a supported motherboard (see [[:faqs:general?&#​what_are_the_supported_motherboards_for_z3_s_pci_boards|question (14)]]). +
  
 See the User's Guide for more details. See the User's Guide for more details.
  
 +\\
  
 ==== (34) How do I use composite output on the DM8107-RPS? ==== ==== (34) How do I use composite output on the DM8107-RPS? ====
  
 +The composite output always outputs whatever is sent through the HDMI output. ​ Whenever a resolution larger than NTSC is output on HDMI, the DM8107-RPS automatically resizes to NTSC before outputting through composite output.
  
-The composite output always outputs whatever is sent through the HDMI output. Whenever a resolution larger than NTSC is output on HDMI, the DM8107-RPS automatically resizes to NTSC before outputting through composite output. 
  
 +\\
  
-==== (35) We want to completely disable the Web GUI interface. What is the best way to do this? ==== +==== (35) We want to completely disable the Web GUI interface. ​ What is the best way to do this? ====
  
 The best way to do this is to remove "​S99webserver.sh"​ from /etc/rc5.d on the system. The best way to do this is to remove "​S99webserver.sh"​ from /etc/rc5.d on the system.
  
 +\\
  
-===== Miscellaneous =====+==== (36) I want to telnet to the board and run the same menu of options that you see when you run through the serial console. ​ How do I do this? ====
  
 +After telnet'​ing into the board, you can type the following command (for DM816X products):
  
-==== (1) Please explain the serial number that appears on the Z3 Module or App board====+<​code> ​  
 +   /​opt/​dvr_rdk/​ti816x/​run_mcsenc.sh 
 +</​code>​
  
 +For DM8107 and DM8148 products, the "​ti816x"​ would change to "​ti810x"​ and "​ti814x",​ respectively.
  
-The serial number on each board has the following form:+\\
  
 +
 +==== (37) I want to use serial port 0 for something else besides the console. ​ How do I configure serial port 0 so it no longer outputs the console? ====
 +
 +This can be done by editing the "​console"​ environment variable in u-boot. ​ Currently it is set to:
  
 <​code>​ <​code>​
-  mmmmmmyywwsssss+   ​console=ttyO0,​115200,​quiet
 </​code>​ </​code>​
  
 +You can reroute the console output to the second serial port instead by typing while in the Linux prompt on your target board:
  
 <​code>​ <​code>​
-  mmmmmm ​model number (i.e. 300012 means 30-0012) +   ​fw_setenv console=ttyO1,115200,quiet
-  yyww   = manufacturing date codeww=weekyy=year +
-  sssss  = serial number+
 </​code>​ </​code>​
  
 +You also need to edit /​etc/​inittab to keep getty from respawning on ttyO0.
  
-For example, a serial number of "​30002101133810001"​ would indicate:+\\
  
  
-<​code>​ 
-  Model # = 30-0021-01 (Rev 1 of the DM8107-MOD-02) 
-  Year    = 2013 
-  Week    = 38 
-  Serial ​ = 10001 
-</​code>​ 
  
 +===== Miscellaneous =====
  
-==== (2) How do you program the RTC? ====+\\
  
 +==== (1) Please explain the serial number that appears on the Z3 Module or App board. ====
  
-On the DM814x and DM816x modules, the RTC is controlled through code that can be programmed through a free Elprotronic utilityA TI MSP430 programmer is neededSome sample linux utilities to exercise the code are also provided. Detailed instructions on programming the RTCverifying operation in u-bootand verifying operation in linux can be found {{:doc-usr-0016-02_z3_rtc_firmware_for_the_dm81xx_instructions.pdf|here}}.+The serial number on each board has the following form: 
 + 
 +    mmmmmmyywwsssss 
 + 
 +    mmmmmm = model number (i.e300012 means 30-0012) 
 +    yyww   = manufacturing date code, ww=week, yy=year 
 +    sssss  = serial number 
 + 
 +For examplea serial number of "​30002101133810001"​ would indicate: 
 + 
 +    Model # = 30-0021-01 (Rev 1 of the DM8107-MOD-02) 
 +    Year    = 2013 
 +    Week    = 38 
 +    Serial ​ = 10001 
 + 
 +\\ 
 + 
 +==== (2) How do you program the RTC? ====
  
 +On the DM814x and DM816x modules, the RTC is controlled through code that can be programmed through a free Elprotronic utility.
 +A TI MSP430 programmer is needed. ​ Some sample linux utilities to exercise the code are also provided. ​ Detailed instructions on programming the RTC, verifying operation in u-boot, and verifying operation in linux can be found 
 +{{:​doc-usr-0016-02_z3 rtc firmware for the dm81xx instructions.pdf|here}}.  ​
  
 For details on programming the RTC on the DM368 or DM8107 products, please contact Z3. For details on programming the RTC on the DM368 or DM8107 products, please contact Z3.
  
  
-==== (3) What size battery does the RTC on the DM81XX modules use? ====+\\
  
 +==== (3) What size battery does the RTC on the DM81XX modules use? ====
  
 For the DM814x and DM816x modules, CR1220 or CR1225 batteries can be used. For the DM814x and DM816x modules, CR1220 or CR1225 batteries can be used.
  
 +
 +\\
  
 ==== (4) When updating firmware, should I use the "​UPD"​ or "​MFR"​ image? ==== ==== (4) When updating firmware, should I use the "​UPD"​ or "​MFR"​ image? ====
  
 +All Z3 firmware updates contain 2 versions -- an "​UPD"​ and a "​MFR"​ version. ​ They are identical with the one difference that the "​MFR"​ version changes all of the u-boot environment variables (IP address, netmask, TFTP server location, NFS server location etc) to default values. ​ This is the version that the manufacturer loads when the boards are first made.  The "​UPD"​ version does not modify the u-boot environment variables. ​ If you have already configured the software to work in your environment,​ you can use "​UPD"​ to preserve the u-boot environment variable changes you had done before. ​ In most situations the "​UPD"​ is the best to use.
  
-All Z3 firmware updates contain 2 versions – an "​UPD"​ and a "​MFR"​ version. They are identical with the one difference that the "​MFR"​ version changes all of the u-boot environment variables (IP address, netmask, TFTP server location, NFS server location etc) to default values. This is the version that the manufacturer loads when the boards are first made. The "​UPD"​ version does not modify the u-boot environment variables. If you have already configured the software to work in your environment,​ you can use "​UPD"​ to preserve the u-boot environment variable changes you had done before. In most situations the "​UPD"​ is the best to use. 
  
 +\\
  
-==== (5) I am in a remote location. Is there a way to reboot within the Linux system without physically turning the board on/off? ==== +==== (5) I am in a remote location. ​ Is there a way to reboot within the Linux system without physically turning the board on/off? ====
  
 From the Linux prompt, type "​reboot -f". From the Linux prompt, type "​reboot -f".
  
  
-==== (6) I changed the IP address within the app but I notice the board starts with a different one at boot-up before the app runs. How do I change the IP address that is used at boot-up? ====+\\
  
 +==== (6) I changed the IP address within the app but I notice the board starts with a different one at boot-up before the app runs.  How do I change the IP address that is used at boot-up? ====
  
-You can do this by changing the value of "​ipaddr"​ within the u-boot environment. If you have an RPS User's Guide, there is a detailed description of how to do this. Alternately,​ you can use the "​fw_setenv"​ command within Linux from the serial interface. From a serial demo menu, select "​X"​ to exit. This should bring you to an arago login prompt. Type "​root"​ and then <​enter>​. From there, you can use "​fw_setenv ipaddr"​ to set the IP address you want to use at boot-up. For example, to change this to 192.168.0.6,​ you would type: +You can do this by changing the value of "​ipaddr"​ within the u-boot environment. ​ If you have an RPS User's Guide, there is a detailed description of how to do this.  Alternately,​ you can use the "​fw_setenv"​ command within Linux from the serial interface. ​ From a serial demo menu, select "​X"​ to exit.  This should bring you to an arago login prompt. ​ Type "​root"​ and then <​enter>​. ​ From there, you can use "​fw_setenv ipaddr"​ to set the IP address you want to use at boot-up. ​ For example, to change this to 192.168.0.6,​ you would type:
  
 <​code>​ <​code>​
     fw_setenv ipaddr 192.168.0.6     fw_setenv ipaddr 192.168.0.6
 </​code>​ </​code>​
- 
  
 You can then type You can then type
- 
  
 <​code>​ <​code>​
Line 2655: Line 2527:
 </​code>​ </​code>​
  
 +to reboot the board and have your settings take effect. ​ As a side note, "​fw_printenv"​ can be used to find current values of u-boot environment variables.
  
-to reboot the board and have your settings take effect. As a side note, "​fw_printenv"​ can be used to find current values of u-boot environment variables. +On a DM365/​DM368,​ the procedure is slightly different. ​ Instead of "​fw_setenv ipaddr 192.168.0.6"​ you would type the following commands:
- +
- +
-On a DM365/​DM368,​ the procedure is slightly different. Instead of "​fw_setenv ipaddr 192.168.0.6"​ you would type the following commands: +
  
 <​code>​ <​code>​
Line 2668: Line 2537:
 </​code>​ </​code>​
  
 +\\
  
-==== (7) When I plug in a SATA drive, I see the message at boot-up "​ata1.00:​ failed to IDENTIFY"​ and I can't access the drive. What could be causing this? ====+==== (7) When I plug in a SATA drive, I see the message at boot-up "​ata1.00: ​ failed to IDENTIFY"​ and I can't access the drive. ​ What could be causing this? ====
  
 +When this happened before the root cause ended up being that the power supply for the SATA drive was not large enough. ​ We recommend you double-check the power supply to the SATA drive if you encounter this message.
  
-When this happened before the root cause ended up being that the power supply for the SATA drive was not large enough. We recommend you double-check the power supply to the SATA drive if you encounter this message. +\\
  
 ==== (8) We have a DM8169 product and want to add support for Service Description Tables (SDT) and Stream Identifier (SID) to conform to ISO 13818-11 and ETSI EN 300 468 V1.14.1. Is this possible to do? ==== ==== (8) We have a DM8169 product and want to add support for Service Description Tables (SDT) and Stream Identifier (SID) to conform to ISO 13818-11 and ETSI EN 300 468 V1.14.1. Is this possible to do? ====
Line 2681: Line 2551:
  
  
-\\+===== General Troubleshooting ​ ===== 
 + 
 + 
 +==== Capturing Packet Stream with Wireshark ==== 
 + 
 + 
 +1) Download and install [[http://​www.wireshark.org|Wireshark ]]and associated programs to enable live stream capture on the PC you already use VLC Media Player. A Restart will be required once installation is complete. 
 + 
 + 
 +2) Set encoder for RTP/RTSP transfer and begin encoding as described in your product'​s manual. 
 + 
 + 
 +3) Open Wireshark. Double click the "​Ethernet"​ near the center of the window to automatically begin capture. 
 + 
 + 
 +{{  http://​wiki.z3technology.com//​lib/​plugins/​ckgedit/​fckeditor/​userfiles/​image/​faqs/​media_servers/​wireshark_start.jpg?​nolink&​819x599 ​ }} 
 + 
 + 
 +4) Open VLC Media Player on the Same PC and begin Streaming RTSP as described in your product'​s manual. 
 + 
 + 
 +5) Allow Stream to capture for 1 minute. Click the Red Stop button on the menu bar of Wireshark. 
 + 
 + 
 +{{  http://​wiki.z3technology.com//​lib/​plugins/​ckgedit/​fckeditor/​userfiles/​image/​faqs/​media_servers/​wireshark_running.jpg?​nolink&​819x599 ​ }} 
 + 
 + 
 +6) Hit <​cntrl+S>​ or the Save button at the top of the window to open a save dialog. Give the file a name of your choice that you will remember. 
 + 
 + 
 +\\  
 +{{  http://​wiki.z3technology.com//​lib/​plugins/​ckgedit/​fckeditor/​userfiles/​image/​faqs/​media_servers/​wireshark_stop.jpg?​nolink&​819x601 ​ }} 
 + 
 + 
 +7) Attach the saved file to an email and send it to Z3 Technology. 
 + 
 + 
 +====  ==== 
 + 
 + 
 +==== Z3 Cam Solutions Forgotten Password ==== 
 + 
 + 
 +To reset a forgotten password you will need physical access to the unit. 
 + 
 + 
 +Create a file called **z3passreset ** on an empty SD Card or USB flash drive; insert the SD Card or USB flash drive and power cycle the unit to reset the password to nothing.
  
faqs/general.1431373925.txt.gz · Last modified: 2015/05/11 19:52 by rchen