litex-hub / litex-buildenv-udev Goto Github PK
View Code? Open in Web Editor NEWudev rules for LiteX BuildEnv supported boards
License: Apache License 2.0
udev rules for LiteX BuildEnv supported boards
License: Apache License 2.0
I am assuming 3 devices should get all0, all1 and all2, but I don't see 1 or 2.
same with /dev/hdmi2usb/by-num/opsis
This might be due to #3
2 Opsis, 1 Atlys:
pi@oppi:~/prebuilt $ tree /dev/hdmi2usb/
/dev/hdmi2usb/
├── by-num
│ ├── all0
│ │ ├── tty -> ../../../ttyACM5
│ │ ├── usbdev -> ../../../bus/usb/001/019
│ │ └── video -> ../../../video6
│ ├── atlys0
│ │ ├── tty -> /dev/ttyVIZ0
│ │ ├── usbdev -> ../../../bus/usb/001/011
│ │ └── video -> /dev/video2
│ └── opsis0
│ ├── tty -> ../../../ttyACM5
│ ├── usbdev -> ../../../bus/usb/001/019
│ └── video -> ../../../video7
├── by-path
│ ├── tty -> ../../../ttyACM5
│ ├── usb.bus1.port1-hub.port2-hub.port1
│ │ ├── tty -> ../../../ttyACM0
│ │ ├── usbdev -> ../../../bus/usb/001/018
│ │ └── video -> ../../../video1
│ ├── usb.bus1.port1-hub.port3-hub.port1
│ │ ├── tty -> ../../../ttyACM1
│ │ ├── usbdev -> ../../../bus/usb/001/007
│ │ └── video -> ../../../video2
│ ├── usb.bus1.port1-hub.port3-hub.port2
│ │ ├── tty -> ../../../ttyACM5
│ │ ├── usbdev -> ../../../bus/usb/001/019
│ │ └── video -> ../../../video7
│ ├── usb.bus1.port1-hub.port3-hub.port4
│ │ ├── tty -> ../../../ttyACM4
│ │ ├── usbdev -> ../../../bus/usb/001/011
│ │ └── video -> ../../../video4
│ ├── usbdev -> ../../../bus/usb/001/019
│ └── video -> ../../../video7
└── by-serial
├── 0123456789abcdef
│ └── usbdev -> ../../../bus/usb/001/011
├── ffffd8803967d4f5
│ └── usbdev -> ../../../bus/usb/001/018
├── ffffd88039680b41
│ └── usbdev -> ../../../bus/usb/001/007
├── ffffd88039680b42
│ └── usbdev -> ../../../bus/usb/001/019
├── tty -> ../../../ttyACM5
└── video -> ../../../video7
@mithro With current rules, OpenOCD is not able to access the device for programming. I needed to do this to make it work -> timvideos@806c2a0
Is it correct workaround? Or should I add device-specific match-filter there like this: ENV{ID_HDMI2USBDEV_BOARD}=="mimas_a7"
?
Atlys rules create links to ttyACM1, should be ttyVIZ0
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ tree /dev/hdmi2usb/
/dev/hdmi2usb/ [error opening dir]
0 directories, 0 files
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ atlys-on.sh
[18630.594340] usb 1-1.3.3: new full-speed USB device number 23 using dwc_otg
[18630.827147] usb 1-1.3.3: New USB device found, idVendor=04e2, idProduct=1410, bcdDevice= 0.03
[18630.827174] usb 1-1.3.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[18630.833618] cdc_acm 1-1.3.3:1.0: ttyACM1: USB ACM device
[18631.044391] usb 1-1.3.4: new high-speed USB device number 24 using dwc_otg
[18631.275259] usb 1-1.3.4: config 1 interface 0 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
[18631.275290] usb 1-1.3.4: config 1 interface 0 altsetting 0 bulk endpoint 0x81 has invalid maxpacket 64
[18631.276328] usb 1-1.3.4: string descriptor 0 read error: -32
[18631.276365] usb 1-1.3.4: New USB device found, idVendor=1443, idProduct=0007, bcdDevice= 0.00
[18631.276382] usb 1-1.3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[18631.447052] vizzini 1-1.3.3:1.0: This device cannot do calls on its own. It is not a modem.
[18631.447205] vizzini 1-1.3.3:1.0: ttyVIZ0: XR21v14x usb uart device
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ tree /dev/hdmi2usb/
/dev/hdmi2usb/
├── by-num
│ ├── all0
│ │ └── usbdev -> ../../../bus/usb/001/021
│ └── atlys0
│ └── usbdev -> ../../../bus/usb/001/021
└── by-path
└── usb.bus1.port1-hub.port3-hub.port4
└── usbdev -> ../../../bus/usb/001/021
5 directories, 3 files
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ ./load-fx2.sh
WARNING:root:unbind-helper not found, will have to run as root!
Found exart-uarts at [LsusbDevice(04e2:1410:0003 /dev/bus/usb/001/020)] associating with Atlys at [Board(dev=LsusbDevice(1443:0007:0000 /dev/bus/usb/001/021), type='atlys', state='unconfigured')]
Digilent Atlys in 'unconfigured' mode at /dev/bus/usb/001/021
/sys/bus/usb/devices/1-1.3.4
/sys/bus/usb/devices/1-1.3.4:1.0
Serial port at /dev/ttyVIZ0
My root dir: /home/pi/HDMI2USB-mode-switch/venv/lib/python3.5/site-packages/hdmi2usb.modeswitch-0.0.1.post39-py3.5.egg/hdmi2usb/modeswitch
Found exart-uarts at [LsusbDevice(04e2:1410:0003 /dev/bus/usb/001/020)] associating with Atlys at [Board(dev=LsusbDevice(1443:0007:0000 /dev/bus/usb/001/021), type='atlys', state='unconfigured')]
Digilent Atlys in 'unconfigured' mode at /dev/bus/usb/001/021
/sys/bus/usb/devices/1-1.3.4
/sys/bus/usb/devices/1-1.3.4:1.0
Serial port at /dev/ttyVIZ0
Using FX2 firmware hdmi2usb.hex
Running 'fxload -t fx2lp -D /dev/bus/usb/001/021 -I /home/pi/prebuilt/hdmi2usb.hex -v'
[18698.751836] usb 1-1.3.4: USB disconnect, device number 24
[18700.428117] usb 1-1.3.4: new high-speed USB device number 25 using dwc_otg
[18700.659008] usb 1-1.3.4: config 1 interface 2 altsetting 0 endpoint 0x81 has an invalid bInterval 64, changing to 10
[18700.659939] usb 1-1.3.4: New USB device found, idVendor=1d50, idProduct=60b7, bcdDevice= 0.02
[18700.659961] usb 1-1.3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[18700.659973] usb 1-1.3.4: Product: HDMI2USB.tv - Numato Opsis Board
[18700.659984] usb 1-1.3.4: Manufacturer: TimVideos.us
[18700.659995] usb 1-1.3.4: SerialNumber: 0123456789abcdef
[18700.666000] uvcvideo: Found UVC 1.00 device HDMI2USB.tv - Numato Opsis Board (1d50:60b7)
[18700.666444] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[18700.667749] uvcvideo 1-1.3.4:1.0: Entity type for entity Extension 3 was not initialized!
[18700.667778] uvcvideo 1-1.3.4:1.0: Entity type for entity Processing 2 was not initialized!
[18700.667799] uvcvideo 1-1.3.4:1.0: Entity type for entity Camera 1 was not initialized!
[18700.705211] cdc_acm 1-1.3.4:1.2: ttyACM1: USB ACM device
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ tree /dev/hdmi2usb/
/dev/hdmi2usb/
├── by-num
│ ├── all0
│ │ ├── tty0 -> ../../../ttyACM1
│ │ ├── usbdev -> ../../../bus/usb/001/022
│ │ └── video -> ../../../video1
│ └── atlys0
│ ├── tty0 -> ../../../ttyACM1
│ ├── usbdev -> ../../../bus/usb/001/022
│ └── video -> ../../../video1
├── by-path
│ ├── platform-20980000.usb-usb-0:1.3.4:1.0
│ │ └── video -> ../../../video1
│ ├── platform-20980000.usb-usb-0:1.3.4:1.2
│ │ └── tty0 -> ../../../ttyACM1
│ └── usb.bus1.port1-hub.port3-hub.port4
│ ├── tty0 -> ../../../ttyACM1
│ ├── usbdev -> ../../../bus/usb/001/022
│ └── video -> ../../../video1
└── by-serial
└── 0123456789abcdef
├── tty0 -> ../../../ttyACM1
├── usbdev -> ../../../bus/usb/001/022
└── video -> ../../../video1
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ tio /dev/ttyACM1
[tio 07:17:47] tio v1.20
[tio 07:17:47] Press ctrl-t q to quit
[tio 07:17:47] Connected
[tio 07:17:52] Disconnected
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ tio /dev/ttyVIZ0
[tio 07:18:06] tio v1.20
[tio 07:18:06] Press ctrl-t q to quit
[tio 07:18:06] Connected
H2U 00:03:08>C�C3^N^*
/dev/video0 good, video1 .. bad?
power on Atlys:
[ 151.146340] usb 1-1.3.1: new high-speed USB device number 8 using dwc_otg
[ 151.377038] usb 1-1.3.1: config 1 interface 0 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
[ 151.377064] usb 1-1.3.1: config 1 interface 0 altsetting 0 bulk endpoint 0x81 has invalid maxpacket 64
[ 151.378066] usb 1-1.3.1: string descriptor 0 read error: -32
[ 151.378096] usb 1-1.3.1: New USB device found, idVendor=1443, idProduct=0007, bcdDevice= 0.00
[ 151.378108] usb 1-1.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 151.776373] usb 1-1.3.4: new full-speed USB device number 9 using dwc_otg
[ 152.009207] usb 1-1.3.4: New USB device found, idVendor=04e2, idProduct=1410, bcdDevice= 0.03
[ 152.009231] usb 1-1.3.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 152.029606] cdc_acm 1-1.3.4:1.0: ttyACM1: USB ACM device
[ 152.517499] vizzini: loading out-of-tree module taints kernel.
[ 152.531199] vizzini 1-1.3.4:1.0: This device cannot do calls on its own. It is not a modem.
[ 152.531333] vizzini 1-1.3.4:1.0: ttyVIZ0: XR21v14x usb uart device
[ 152.558161] usbcore: registered new interface driver vizzini
[ 152.558178] vizzini: Exar USB UART Driver for XR21V141x
pi@oppi:~/prebuilt $ ~/HDMI2USB-mode-switch/venv/bin/hdmi2usb-mode-switch -v --by-type atlys --load-fx2-firmware hdmi2usb.hex
[ 342.751228] usb 1-1.3.1: USB disconnect, device number 8
wut?
[ 344.426418] usb 1-1.3.1: new high-speed USB device number 10 using dwc_otg
[ 344.657205] usb 1-1.3.1: config 1 interface 2 altsetting 0 endpoint 0x81 has an invalid bInterval 64, changing to 10
[ 344.658037] usb 1-1.3.1: New USB device found, idVendor=1d50, idProduct=60b7, bcdDevice= 0.02
[ 344.658052] usb 1-1.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 344.658063] usb 1-1.3.1: Product: HDMI2USB.tv - Numato Opsis Board
[ 344.658071] usb 1-1.3.1: Manufacturer: TimVideos.us
[ 344.658080] usb 1-1.3.1: SerialNumber: 0123456789abcdef
[ 344.690326] cdc_acm 1-1.3.1:1.2: ttyACM1: USB ACM device
[ 345.147841] uvcvideo: Found UVC 1.00 device HDMI2USB.tv - Numato Opsis Board (1d50:60b7)
[ 345.148316] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[ 345.150919] uvcvideo 1-1.3.1:1.0: Entity type for entity Extension 3 was not initialized!
[ 345.150945] uvcvideo 1-1.3.1:1.0: Entity type for entity Processing 2 was not initialized!
[ 345.150959] uvcvideo 1-1.3.1:1.0: Entity type for entity Camera 1 was not initialized!
[ 345.154216] usbcore: registered new interface driver uvcvideo
[ 345.154230] USB Video Class driver (1.1.1)
pi@oppi:~/prebuilt $ tree /dev/hdmi2usb
/dev/hdmi2usb
├── by-num
│ ├── all0
│ │ ├── tty -> ../../../ttyACM1
│ │ ├── usbdev -> ../../../bus/usb/001/010
│ │ └── video -> ../../../video1
│ └── atlys0
│ ├── tty -> ../../../ttyACM1
│ ├── usbdev -> ../../../bus/usb/001/010
│ └── video -> ../../../video1
├── by-path
│ ├── tty -> ../../../ttyACM1
│ ├── usb.bus1.port1-hub.port3-hub.port1
│ │ ├── tty -> ../../../ttyACM1
│ │ ├── usbdev -> ../../../bus/usb/001/010
│ │ └── video -> ../../../video1
│ ├── usbdev -> ../../../bus/usb/001/010
│ └── video -> ../../../video1
└── by-serial
├── 0123456789abcdef
│ └── usbdev -> ../../../bus/usb/001/010
├── tty -> ../../../ttyACM1
└── video -> ../../../video1
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=3 ! jpegdec ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:00.258886279
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ gst-launch-1.0 v4l2src device=/dev/video1 num-buffers=3 ! jpegdec ! fakesink
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video1' is not a capture device.
Additional debug info:
v4l2_calls.c(633): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Capabilities: 0x4a00000
Setting pipeline to NULL ...
Freeing pipeline ...
it;s a little surprising, and maybe related to #6
[18865.518653] usb 1-1.3.4: Product: HDMI2USB.tv - Numato Opsis Board
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $ ./load-fx2.sh
dmesg
[18865.286826] usb 1-1.3.4: new high-speed USB device number 26 using dwc_otg
[18865.517654] usb 1-1.3.4: config 1 interface 2 altsetting 0 endpoint 0x81 has an invalid bInterval 64, changing to 10
[18865.518618] usb 1-1.3.4: New USB device found, idVendor=1d50, idProduct=60b7, bcdDevice= 0.02
[18865.518641] usb 1-1.3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[18865.518653] usb 1-1.3.4: Product: HDMI2USB.tv - Numato Opsis Board
[18865.518664] usb 1-1.3.4: Manufacturer: TimVideos.us
[18865.518674] usb 1-1.3.4: SerialNumber: 0123456789abcdef
[18865.524619] uvcvideo: Found UVC 1.00 device HDMI2USB.tv - Numato Opsis Board (1d50:60b7)
[18865.525066] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[18865.526408] uvcvideo 1-1.3.4:1.0: Entity type for entity Extension 3 was not initialized!
[18865.526437] uvcvideo 1-1.3.4:1.0: Entity type for entity Processing 2 was not initialized!
[18865.526457] uvcvideo 1-1.3.4:1.0: Entity type for entity Camera 1 was not initialized!
[18865.577662] cdc_acm 1-1.3.4:1.2: ttyACM1: USB ACM device
pi@oppi:~/litex-buildenv-jenkins/hdmi2usb/tests $
pi@oppi:/dev $ ls -l /dev/hdmi2usb/by-path/tty
lrwxrwxrwx 1 root root 16 May 28 03:36 /dev/hdmi2usb/by-path/tty -> ../../../ttyACM1
/dev/hdmi2usb/by-path is .
/dev/hdmi2usb is ..
/dev/ is ../..
/ is ../../..
so ../../../ttyACM is /ttyACM not /dev/ttyACM
pi@oppi:/dev $ tree hdmi2usb/
hdmi2usb/
├── by-num
│ ├── all0
│ │ ├── tty -> ../../../ttyACM1
│ │ ├── usbdev -> ../../../bus/usb/001/017
│ │ └── video -> ../../../video1
│ └── opsis0
│ ├── tty -> ../../../ttyACM1
│ ├── usbdev -> ../../../bus/usb/001/017
│ └── video -> ../../../video1
├── by-path
│ ├── tty -> ../../../ttyACM1
│ ├── usb.bus1.port1-hub.port2-hub.port2
│ │ ├── tty -> ../../../ttyACM1
│ │ ├── usbdev -> ../../../bus/usb/001/017
│ │ └── video -> ../../../video1
│ ├── usbdev -> ../../../bus/usb/001/017
│ └── video -> ../../../video1
└── by-serial
├── ffffd8803967d4f5
│ └── usbdev -> ../../../bus/usb/001/017
├── tty -> ../../../ttyACM1
└── video -> ../../../video1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.