Vweb SDK2の修正
SDK2/dirver_linux/vw2010.c
SDK2/driver_linux/vw2010.c
- if (remap_page_range(vma, vma->vm_start, virt_to_phys( (void*)((unsigned long)pdx->dmaData[i].PagedAddr)), size, PAGE_SHARED)) { + if (io_remap_page_range(vma, vma->vm_start, virt_to_phys( (void*)((unsigned long)pdx->dmaData[i].PagedAddr)), size, PAGE_SHARED)) {
SDK2/driver_linux/modload
insmod /$PWD/${module}.ko $*
CONFIG_IP_MULTICAST=y
% ./net_recv option_files/dec_mp4ts_ntsc.ini do_network=true hostname=239.255.255.241 port=48688 do_multicast=true
[ Vweb VW2010 SDK2 Network Decoder v2.50 ] [ NET_DECODER ] -> Compiled on: [Jun 16 2005 10:54:02] [ vwSDK.so ] -> Compiled on: [Apr 11 2005 16:47:29] => setMsgLevel set to 1 openDevice("/dev/vw2010/vw2010_00") board #0 succeeded, handle=00000003 => Putting VW2010 Board #0 in Reset Mode...success! => Resetting Encoder...success! => Resetting Decoder...success! => Resetting Signature...Success! => Reset Driver handles board #0 => VW2010 chip detected => PCI Driver Version = 0x20041207 transfer timeout is 5 single transfer is 8 pages setConfigParam [do_network=true] setConfigParam [hostname=239.255.255.241] setConfigParam [port=48688] setConfigParam [do_multicast=true] => FW Download: [boot.sre] succeeded! => FW Verify: [boot.sre] succeeded! => FW Download: [tscodec.sre] succeeded! => FW Verify: [tscodec.sre] succeeded! starting MIPS checking MIPS > MIPs microcode initialization succeeded! => Firmware running! => Firmware is Running! => TSDEMUX Firmware version N/A Firmware version # = 0 [0x00000000] Transfer Size is 32712 --- network_read_thread() created! init_udp_receiver() - connecting to 239.255.255.241 --- decode_thread() created! setupDevice() <Transport Stream DEMUX> Send reset cmd... setting (0x020A) video_format = ( 1 [0x00000001] ) setting (0x020E) loopback_mode = ( 0 [0x00000000] ) setting (0x020E) mpeg_coding_standard = ( 4 [0x00000004] ) setting (0x0001) bypass_mode = ( 0 [0x00000000] ) setting (0x0020) preview_mode = ( 0 [0x00000000] ) setting (0x0003) input_device = ( 3 [0x00000003] ) setting (0x0013) serial_cdi_endianess = ( 1 [0x00000001] ) setting (0x0021) auto_demux = ( 1 [0x00000001] ) setting (0x001E) pci_endianess = ( 1 [0x00000001] ) setting (0x001F) bit_rate = ( 20000000 [0x01312D00] ) setting (0x1003) demux_write_fifo_address = ( 12586752 [0x00C00F00] ) setting (0x1002) demux_read_fifo_address = ( 12583424 [0x00C00200] ) setting (0x000E) play_back_prog_num = ( 0 [0x00000000] ) setting (0x0004) pmt_pid = ( 0 [0x00000000] ) setting (0x0005) nit_pid = ( 0 [0x00000000] ) setting (0x0006) private_data_pid = ( 0 [0x00000000] ) setting (0x0038) video_pid = ( 0 [0x00000000] ) setting (0x0030) audio1_pid = ( 0 [0x00000000] ) setting (0x0031) audio2_pid = ( 0 [0x00000000] ) setting (0x0010) pcr_pid = ( 0 [0x00000000] ) setting (0x0018) user_pid1 = ( 0 [0x00000000] ) setting (0x0019) user_pid2 = ( 0 [0x00000000] ) setting (0x001A) user_pid3 = ( 0 [0x00000000] ) setting (0x001B) user_pid1_mask = ( 0 [0x00000000] ) setting (0x001C) user_pid2_mask = ( 0 [0x00000000] ) setting (0x001D) user_pid3_mask = ( 0 [0x00000000] ) setting (0x003C) av_sync = ( 1 [0x00000001] ) setting (0x0210) short_header = ( 0 [0x00000000] ) setting (0x0220) vsync_output_gpio = ( 0 [0x00000000] ) setting (0x0050) audio_delay = ( 0 [0x00000000] ) setting (0x005A) Video_output_config = set 3 INT32 array elements setting (0x0420) Video_aspect_ratio = ( 0 [0x00000000] ) setting (0x0420) gpio_configuration = ( 16711680 [0x00FF0000] ) setting (0x0421) gpio_access = ( 0 [0x00000000] ) setting (0x0031) av_sync = ( 1 [0x00000001] ) setting (0x0507) fixed_pattern = ( 0 [0x00000000] ) setting (0x003F) stop_background_color = ( 49 [0x00000031] ) setting (0x0040) decoder_pwm = ( 0 [0x00000000] ) setting (0x0041) underflow_background_color = ( 49 [0x00000031] ) setting (0x0043) flush_before_stop = ( 0 [0x00000000] ) setting (0x0044) timeout_to_show_background = ( 2 [0x00000002] ) setting (0x0045) fast_restart = ( 0 [0x00000000] ) setting (0x003E) clock_recovery = ( 1 [0x00000001] ) setting (0x0046) audio_dual_mono = ( 0 [0x00000000] ) setting (0x0047) audio_mute = ( 0 [0x00000000] ) configureI2CTable(): sending I2C Table # 5 Starting DEMUX device... decode_thread startWriteDevice() success! +++++++++++++++++++++++++++++++++ net_decoder_thread() recv 1.03 MBytes
multicastが有効になっているときだけpingが自分からかえってくる。
% ping 239.255.255.241 PING 239.255.255.241 (239.255.255.241) 56(84) bytes of data. 64 bytes from 192.168.100.7: icmp_seq=1 ttl=64 time=0.205 ms 64 bytes from 192.168.100.7: icmp_seq=2 ttl=64 time=0.535 ms
# wpa_net_play /usr/wpar/bin/wpa_mp4ts.ini do_network=true hostname=239.255.255.241 port=48688 do_multicast=true
[ Vweb VW2010 SDK2 Network Decoder v2.50 ] [ NET_DECODER ] -> Compiled on: [Jan 17 2005 19:50:12] [ vwSDK.so ] -> Compiled on: [Dec 24 2004 15:18:51] => setMsgLevel set to 1 openDevice("/dev/vw2010/vw2010_00") board #0 succeeded, handle=00000003 => Putting VW2010 Board #0 in Reset Mode...success! => Resetting Encoder...success! => Resetting Decoder...success! => Resetting Signature...Success! => Reset Driver handles board #0 => Enable VW2002 MODE => VW2010 chip detected => PCI Driver Version = 0x20041113 transfer timeout is 5 single transfer is 8 pages setConfigParam [do_network=true] setConfigParam [hostname=239.255.255.241] setConfigParam [port=48688] setConfigParam [do_multicast=true] => FW Download: [/usr/wpar/bin/boot.sre] succeeded! => FW Verify: [/usr/wpar/bin/boot.sre] succeeded! => FW Download: [/usr/wpar/bin/tscodec.sre] succeeded! => FW Verify: [/usr/wpar/bin/tscodec.sre] succeeded! starting MIPS checking MIPS > MIPs microcode initialization succeeded! => Firmware running! => Firmware is Running! vw2010_ioctl(0): [_ALLOC_CMD_BLOCK] (0) virtAddr=0xaf710000 busAddr=0x0f710000 => TSDEMUX Firmware version N/A Firmware version # = 0 [0x00000000] Transfer Size is 32712 --- network_read_thread() created! init_udp_receiver() - connecting to 239.255.255.241 init_udp_receiver(), setsockopt() - error unable to initialize network, aborting... --- decode_thread() created! setupDevice() <Transport Stream DEMUX> Send reset cmd... setting (0x020A) video_format = ( 1 [0x00000001] ) setting (0x020E) mpeg_coding_standard = ( 4 [0x00000004] ) setting (0x020F) loopback_mode = ( 0 [0x00000000] ) setting (0x0001) bypass_mode = ( 0 [0x00000000] ) setting (0x0020) preview_mode = ( 0 [0x00000000] ) setting (0x0003) input_device = ( 3 [0x00000003] ) setting (0x0013) serial_cdi_endianess = ( 1 [0x00000001] ) setting (0x0021) auto_demux = ( 1 [0x00000001] ) setting (0x001E) pci_endianess = ( 1 [0x00000001] ) setting (0x001F) bit_rate = ( 20000000 [0x01312D00] ) setting (0x1003) demux_write_fifo_address = ( 12586752 [0x00C00F00] ) setting (0x1002) demux_read_fifo_address = ( 12583424 [0x00C00200] ) setting (0x000E) play_back_prog_num = ( 0 [0x00000000] ) setting (0x0004) pmt_pid = ( 0 [0x00000000] ) setting (0x0005) nit_pid = ( 0 [0x00000000] ) setting (0x0006) private_data_pid = ( 0 [0x00000000] ) setting (0x0038) video_pid = ( 0 [0x00000000] ) setting (0x0030) audio1_pid = ( 0 [0x00000000] ) setting (0x0031) audio2_pid = ( 0 [0x00000000] ) setting (0x0010) pcr_pid = ( 0 [0x00000000] ) setting (0x0018) user_pid1 = ( 0 [0x00000000] ) setting (0x0019) user_pid2 = ( 0 [0x00000000] ) setting (0x001A) user_pid3 = ( 0 [0x00000000] ) setting (0x001B) user_pid1_mask = ( 0 [0x00000000] ) setting (0x001C) user_pid2_mask = ( 0 [0x00000000] ) setting (0x001D) user_pid3_mask = ( 0 [0x00000000] ) setting (0x003C) av_sync = ( 1 [0x00000001] ) setting (0x0210) short_header = ( 0 [0x00000000] ) setting (0x0220) vsync_output_gpio = ( 0 [0x00000000] ) setting (0x0050) audio_delay = ( 0 [0x00000000] ) setting (0x005A) Video_output_config = set 3 INT32 array elements setting (0x005B) Video_aspect_ratio = ( 0 [0x00000000] ) setting (0x0420) gpio_configuration = ( 16711680 [0x00FF0000] ) setting (0x0421) gpio_access = ( 0 [0x00000000] ) setting (0x0031) av_sync = ( 1 [0x00000001] ) setting (0x0507) fixed_pattern = ( 0 [0x00000000] ) setting (0x003F) stop_background_color = ( 49 [0x00000031] ) setting (0x0040) decoder_pwm = ( 0 [0x00000000] ) setting (0x0041) underflow_background_color = ( 49 [0x00000031] ) setting (0x0043) flush_before_stop = ( 0 [0x00000000] ) setting (0x0044) timeout_to_show_background = ( 2 [0x00000002] ) setting (0x0045) fast_restart = ( 0 [0x00000000] ) setting (0x003E) clock_recovery = ( 1 [0x00000001] ) setting (0x0046) audio_dual_mono = ( 0 [0x00000000] ) setting (0x0047) audio_mute = ( 0 [0x00000000] ) configureI2CTable(): sending I2C Table # 5 Starting DEMUX device... decode_thread startWriteDevice() success! qUser hit 'q' key, stopping program
受信してくれない。
# ping 239.255.255.241 PING 239.255.255.241 (239.255.255.241): 56 data bytes ping: sendto: Network is unreachable
pingも通らない。
default gatewayも設定しないといけないらしい。
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.100.2
おお。
# ping 239.255.255.241 PING 239.255.255.241 (239.255.255.241): 56 data bytes 64 bytes from 192.168.100.7: icmp_seq=0 ttl=64 time=0.7 ms 64 bytes from 192.168.100.7: icmp_seq=1 ttl=64 time=0.4 ms
wpar01で受信した場合、VLCと同時使用できる。