[020] LKV373 Update - GCC for the IT9919

  Рет қаралды 13,847

OpenTechLab

OpenTechLab

4 жыл бұрын

In this series I will be hacking around with the IT9919 media processor that powers the Lenkeng LKV373 HDMI Extender Device and the EZCAP 283S which were reviewed in previous videos.
In this video I investigate the booting mechanism to try and uncover the mystery of the SMAZ compressions scheme and checksum.
Show Notes: opentechlab.org.uk/videos:020...
Twitter: @OpenTechLabChan
Mastadon: @opentechlab@mstdn.io
SubscribeStar: www.subscribestar.com/opentec...
PayPal: www.paypal.me/opentechlab
Bitcoin: 18CU9LxwRuiLHy9HsuMj2vzobbW4J3QVC2

Пікірлер: 94
@damny0utoobe
@damny0utoobe 4 жыл бұрын
When opentechlab posts a video, I stop everything and watch carefully. Thanks for not doing the 10 minute format and going deep into the details in every video.
@MrKlaygomes
@MrKlaygomes 2 жыл бұрын
Oh man, you really have the best content ano KZbin. We miss you. Hope you got more time to continue
@havresylt
@havresylt 3 жыл бұрын
Hope you are well. Looking forward to you next video! :)
@migry
@migry 4 жыл бұрын
Looking forward to your return!
@xxmisiekxxable
@xxmisiekxxable Жыл бұрын
just subscribed to this channel to find out its dead. what a shame, such fantastic content presented in such great way. I hope author is just too busy and it is just loooong break, not complete end of such promising channel.
@nathantron
@nathantron 4 жыл бұрын
I would love to see one of these random devices be reprogrammed with some really basic video input, and output to a simple stream on an Ethernet port. Like the hardware you originally showed us. This would be a great learning tool, and would also be useful for those who are restricted budget wise, and willing to put the elbow grease into making it do what we want. If they have a HD1080P High Refresh Rate version, I would be interested in seeing what it's capable of doing, it's processor has to be pretty decent. Please keep going, and don't spare us the details, this is amazing stuff.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
If we can build some momentum around these chips, they would be useful for lots of interesting projects. An open source firmware for these devices could unlock some really cool functionality e.g. swiss-army-knife of internet connected casting/streaming equipment, video-capture Raspberry Pi/FPGA modules. But to achieve that, it's going to be quite a big job - so we might see some proofs of concept, but to build a proper user-friendly firmware would require a team to dedicate themselves to make it happen. And in that time, will the chips remain available? I don't know where to source them right now. Are Lenkeng making new stock, or just running down the last remaining IT9070s and 9919s ? Are the newer higher-res Lenkeng devices related? - are those a better platform to processed with? We will hopefully find out soon when I do the teardowns. So for now I'm just interested to see where this goes, and how people respond to it. There are plenty of interesting avenues to pursue here if anyone cares to look into it.
@DarklinkXXXX
@DarklinkXXXX 4 жыл бұрын
TIL that there is at least one electronics product with an OpenRISC-based processor inside. That really surprised me, I didn't think anyone actually fabricated one of those.
@Evan-rn3kc
@Evan-rn3kc Жыл бұрын
I miss these videos
@riffshyperion
@riffshyperion 4 жыл бұрын
That rm -rf with the trailing slash at 17:23 made me really nervous. Imagine playing around with the script and making binutils_file_name void for some reason. Amazing video, as always.
@Mustardoable
@Mustardoable 3 жыл бұрын
Yea, me to, he does have `set -u` at the beginning of the script """-u When the shell tries to expand an unset parameter other than the '@' and '*' special parameters, it shall write a message to standard error and the expansion shall fail with the consequences specified in Consequences of Shell Errors."""
@grebz
@grebz 4 жыл бұрын
Such an interesting dive into the process to achieve the demo, fascinating series - thanks.
@sashadimitr2852
@sashadimitr2852 4 жыл бұрын
You are asking what is the goal. We are all want to unlock that web configuration page (or telnet config) to be able to change streaming port, enable rtp, have more flexible IP settings, extended resolutions options, and finally make it encode AAC instead of MPEG2 audio (for God's sake -_- it's 2019 now). Maybe make it stream via TCP instead of flooding UDP and tearing the picture. If you can make a modified firmware, that would be awesome. Thank you for your work!
@eznAnze
@eznAnze 3 жыл бұрын
I had only time to watch the first 5 minutes of this video. Now I have enough ideas to study for a couple of months! 😂
@gabiold
@gabiold 4 жыл бұрын
The insistence, time and research you have put into this project is amazing! 😉
@the_perigoso
@the_perigoso 4 жыл бұрын
Uh, I know that FFY00 guy, we're enrolled in the same uni, and even collaborated before, the world is small
@tolipwen1487
@tolipwen1487 4 жыл бұрын
Thanks for taking the time to make this video. Intensity in ten cities thats high density video! I'm off to watch it again to see how many of the questions I now have are already answered. :-)
@MissingClara
@MissingClara 4 жыл бұрын
I believe the SDK targets a simple evaluation board which drives a display. Actually the chip seems to have been designed to drive displays, Lenkeng just went a little bit creative.
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR 4 жыл бұрын
what about www.it7090.com
@MissingClara
@MissingClara 4 жыл бұрын
@@DAVIDGREGORYKERR does not seem related
@DAVIDGREGORYKERR
@DAVIDGREGORYKERR 4 жыл бұрын
@@MissingClara I was able to browse straight in text was all in Chinese.
@marcin.sobocinski
@marcin.sobocinski 11 ай бұрын
I wish I could understand all things you're talking about :D... nevertheless it's fascinating to see how you are discovering bit by bit (pun intended) the previously black-box device.
@colingale
@colingale 4 жыл бұрын
Been waiting for this video. Awesome
@srlorch406
@srlorch406 4 жыл бұрын
yay it continues! thanks for all the knowlage
@pipsqueak2009
@pipsqueak2009 4 жыл бұрын
Thank you very much. Super interesting video
@NeuroMod
@NeuroMod 4 жыл бұрын
This channel is so underrated!
@AxelWerner
@AxelWerner 4 жыл бұрын
Fantastic!! Keep on going.
@Rooey129
@Rooey129 4 жыл бұрын
I feel so stupid that I genuinely get super excited when I see you upload this series, Most of my subs have nothing to do with coding or electronics but somehow I get mostly excited by this and I cannot explain why. Thank you very much though.
@BuzZ.
@BuzZ. 4 жыл бұрын
AMAZING JOB !
@2TAK322
@2TAK322 4 жыл бұрын
Big Brain Stuffs! Impressive!
@Aemilindore
@Aemilindore 4 жыл бұрын
Sadly waiting for your SDR videos... But this is great too.
@victorpreuss
@victorpreuss 4 жыл бұрын
Man, that was fantastic! Thank you very much for your effort. Great to see some hardcore assembler and linker skills in use. Is there a way you could do some simple on-chip debugging now? Retrieve some data from register files or the RAM and print it to the UART, to get some insights on the microcontroller peripherals or make some leds on the board blink :)
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Certainly having a C compiler will make further experimentation much easier. The hacky python homebrew assembler was pretty accident prone to work with. At the moment we have no way to send input into U2 - but if we did, perhaps we could write a gdb remote debugging server for the IT9919. But that would probably be overkill for LKV373 experiments. It appears that the U2 software is actually very simple: all it does is kick off the capture/encoding engine - so as you say, just dumping the register settings would be extremely helpful. I need to take another look at the EzCAP 283S firmware - because I previously suspected it was powered by an IT9919, and it uses the chip to do a lot more: it has USB Host and Slave support, file systems, HDMI input, RGB888 input/output etc. So there's plenty of directions to proceed here. If you're interested in getting involved, I suggest lurking on the #lkv373a IRC channel on FreeNode.
@pixelflow
@pixelflow 4 жыл бұрын
Ahhhh so as long as you 'thin out' the code enough you can just use GPL stuff :D
@AnonyDave
@AnonyDave 4 жыл бұрын
OpenRISC turns up in some of the strangest (but also not unexpected - royalty free goes a long way) places. Another place I know of is deep inside the allwinner arm cortex-a chips. They use it as the low power control processor, basically it does some of the control things when the main cores are asleep or being bootstrapped.
@wolpumba4099
@wolpumba4099 3 жыл бұрын
This is amazing!
@jekader
@jekader 4 жыл бұрын
It will be interesting to look at how much in common do the new chips have with the old ones.
@colingale
@colingale 4 жыл бұрын
the uart signal should be connected to the IR , same on the other end, one doc shows a diagram of one TX and many RX in hotels for TV over IP , the uarts are then used to control the RX tv,s (via service port on samsungs) or via IR in some cases. thats what the extra ports are for under nmap. the SPI is control only and the U2 chip has data bus similar to ram access into U1, thats required for the speed. U2 then sends that h264 data out via the phy properly wrapped of course. back to the one tx many rx mention , therse also a many TX to many RX model too, so that offers switchable channels . the encryption option is not HDCP but encrypt between TX/RX for "secure IPTV' implementation , that leads me onto the protocol, out there is a doc for IPTV_UART_CMD protocol, this has a lot of diagrams showing the above implementations and a sample of the protocol for IR control, serial over IP, etc. Also out there is a control panel software for the IPTV part that can serve up files instead of needing a TX unit.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Interesting. These LKV373 devices have a non-populated jack connector. Other Lenkeng products seem to come with an IR widget on a jack cable. My understanding is that MU1 controls/monitors U2 through the Host SPI link into U2's memory bus. U2 encodes the HDMI into H.264 wrapped into MPEG-TS packets, and transfers it to MU1 through a TSI serial link - which is a defined standard for MPEG-TS transfer.
@methanoid
@methanoid 3 жыл бұрын
Great to see an update (as loved the other LKV video). I know you dont rush your videos but 9m later... will there be an update soon on LKV373 progress and also on the new devices you show at 39:03 ?? Subscribed of course...
@abder5453
@abder5453 3 жыл бұрын
hey.. where are you man ??????
@flecom5309
@flecom5309 4 жыл бұрын
I would love to see these things get some options for not doing multicast, ideally RTSP, so you can have a couple sets of these on the network as HDMI extenders or HDMI capture devices
@milendemli
@milendemli 4 жыл бұрын
I have one of those LKV373 and there is a firmware which enables 1080p, any other firmware I have tried has 720p. At the end you asked what the goal was: I absolutely would love to have a firmware which has telnet enabled by default (or by an options on the page) as well as all the options shown on the configuration page while supporting streaming 1080p. Maybe also make the page look a bit better. :P EDIT: loved watching the videos by the way and am eager for any upcoming videos :)
@ThanassisTsiodras
@ThanassisTsiodras 4 жыл бұрын
Just wanted to thank you Joel - for what is arguably the hacking/tinkering channel with the highest signal-to-noise ratio across the entirety of KZbin... I can only imagine the time and effort it takes to research and create your content! And I am always learning a lot from your videos - cheers, mate. On a tangent: how do you switch to some form of navigateable terminal output at 22:12?
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Glad you're enjoying it. I just wish I could post more often - but that's life. About the terminal: I switched from using tmux+vim to using vim8 which has terminal support and support for multiple windows and splits. The benefit is that can keep everything in a single instance. My vim config is here: github.com/jhol/shellrc/blob/master/vimrc In the terminal in vim8, the default key-binding is Ctrl-w, N to break into "normal" mode in the terminal which lets you move through the buffer and yank text just as if it was a normal text file. Then press i to return to "insert" mode i.e. normal terminal operation. I use the tinykeymap plugin to make window management feel more netural to a former tmux user.
@vincei4252
@vincei4252 4 жыл бұрын
Well, well well, my guess that this was something from opencores.org wasn't wrong. Props to the guy that spotted this from the opcodes :-) Unrelated, or kinda related, I recently bought several boards based on the SiFive RiscV cores.
@reireimael
@reireimael 4 жыл бұрын
Port 554 for RTSP is open when multicast check box is unticked, but is needed a url to access it. Is possible to discover what URL the LKV373 is using on the RTSP server? Using RTSP only devices connected to it will receive the data, instead of the network being flooded with multicast. Some people sugest that the receiver use RTSP protocol, and snifing its traffic should reveal the url.
@wxfield
@wxfield Жыл бұрын
So disappointed you stopped making content! I'm betting life just got in the way..too bad..really great videos. Even if you only came out with one per year, would you return??
@unodos1821
@unodos1821 4 жыл бұрын
Nice🖒
@MichaelKlitgaard
@MichaelKlitgaard 4 жыл бұрын
Would you consider testing out the LKV373KVM as well? It's interesting that it adds a few USB ports as well, would perhaps make it a good use case for adding BMC like capability to a desktop with KVM over the network to a laptop.
@edgeeffect
@edgeeffect 4 жыл бұрын
Although I'm not at likely to contribute (I prefer cheap microcontroller projects and playing with discarded junk... this is a bit too expensive for my budget) I've really been enjoying this "tale of discovery". This latest contribution from "MW" is both brilliant and a little bit sad. Although v3l0c1r4pt0r's original work on the instruction set and your own additions pointed the way for "MW" to tell you that it's an OpenRISC processor that means v3l0c1r4pt0r's work is now kinda redundant. I s'pose this is often the way with "scientific discovery" the work that paves the way for later development is then eclipsed by those later developments.... anyway, looking forward to the next episode. Keep up The Great Work.
@krattah
@krattah 4 жыл бұрын
It would be cool if this could convince the device to stream to KZbin over rtmp. Rather nifty to have a "black box" that streams to your channel anywhere it has a network connection.
@Dibblah1900
@Dibblah1900 4 жыл бұрын
Love the approach! Have you seen crosstool-NG? Automates a lot of getting a toolchain up.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
I know about it yes, though never actually used it. Someone said it doesn't have or1k support yet (maybe a side project for someone). Anyway, in this case I think it's good for people to understand how gcc bootstrapping works - even if they never do it. Most of the time, a crosstool-ng or a distro-supplied compiler is the right answer
@SwiatLinuksa
@SwiatLinuksa 4 жыл бұрын
Hey. Thanks 4 that, if there's any chance that cheap vga to lan extender will work something like that?
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 4 жыл бұрын
Newer devices theoretically may have cryptographic protection for firmware. So it is better to check this possibility somehow before buying them.
@Grazfather
@Grazfather 4 жыл бұрын
printf needs malloc because it calls sprintf to format the buffer. There may be a way to configure it to use static buffers, but it looks like you don't need it to.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
I'm sure you're correct - though it seems like overkill, when you can implement printf with a simple state-machine.
@Grazfather
@Grazfather 4 жыл бұрын
@@OpenTechLab I think part of it is also that some implementations avoid the syscall and such (think fflush), and so must maintain the buffer somewhere thread safe between calls.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Good point. An unbuffered state machine would have to flush constantly
@Graham_Wideman
@Graham_Wideman 4 жыл бұрын
OpenTechLab -- narrated by David Mitchell :-)
@ThinkinThoed
@ThinkinThoed 4 жыл бұрын
Haha, his voice is close but not quite there for me. Do love some David Mitchell though! :)
@0ChAnTi
@0ChAnTi 4 жыл бұрын
I bought some of those LKV373 HDMI senders as well , and I would love to reuse them as KVM adapter for mainboards without VGA port but HDMI instead. as well on mine I could not get the hack with the unicasts to run.
@MichaelKlitgaard
@MichaelKlitgaard 4 жыл бұрын
There is a LKV373KVM on ebay also, which have a few USB ports.
@DoctorMikeReddy
@DoctorMikeReddy Жыл бұрын
What happened to this channel? It just suddenly stopped 😢
@dtb9165
@dtb9165 2 жыл бұрын
where can I find the SDK? and is it compatibile with the new LKV372A version 4?
@sashadimitr2852
@sashadimitr2852 4 жыл бұрын
Wanted to add that I have about 7 transmitting units of lkv373a model, which is capable to output 1080P at 30 FPS (max). 60 FPS is available at 720P res only. Great little device, but it irritates me that I can't supply any custom h.264 parameters, like profile, quality etc. To get the best match of HDMI input quality, I have to set it to 20M bitrate (while input is just about 5M), which makes it very inefficient in term of BW usage.
@bastiaanschaap
@bastiaanschaap 4 жыл бұрын
Sorry if this is a stupid question, but could the 'mystery' chip MU1 actually be a FPGA with an OpenRISC soft-core on it?
@OpenTechLab
@OpenTechLab 4 жыл бұрын
From what we know, I think that's now ruled out. It seems to be an ITE processor of some sore, and we suspect it contains an ARM core of some kind. In general an FPGA would be an expensive part to put into a cheap consumer device like this. 10-years ago when 1080p was brand new, before there were mass market chipsets, devices like this may well have contained FPGAs. They would have also cost $$$. I'm sure 8K will go through a similar evolution in the next decade.
@bumelant
@bumelant 4 жыл бұрын
I'm curious how did you found newlib __sfvwrite_r() address in Lenkeng software.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Excellent question. Perhaps I should have explained in more detail. I added a note to the show notes, I used my call-graph script from the previous video to dump out the call-graph of the whole of the Lenkeng upgrader software. I then used the networkx graph library in python to isolate the sub-graph of functions called by puts() which I knew the address of from previous experiments, which gave this diagram: opentechlab.org.uk/_media/videos:020:20191002-puts-printf-subgraph.dot.png?cache= From various other hints in the strings, I suspected the software contained a build of newlib of whatever vintage. I then used the or1k disassembler to try and piece together a plausible theory for the number and type arguments to the various functions called by puts(). Still quite uncertain, I decided to take a punt on 0xa512c being the correct address, and voila - it worked! In future jobs like this will be a bit easier, because v3l0c1r4pt0r has written a patch for radare2 that adds support for or1k.
@bumelant
@bumelant 4 жыл бұрын
@@OpenTechLab Thanks for the explanation! It seems to be a fair amount of work.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
It took me about four evenings and a Sunday afternoon. It was tricky, yes, but I was reusing a lot of bits of code and information left over from previous work. Otherwise it would have taken a lot longer
@DavidRosengarden
@DavidRosengarden 3 жыл бұрын
May I ask for your knowledge or any suggestions: Mine came with the following Firmware: Version :4.0.0.0.20161116 Encoder Version :7.1.2.0.11.20161116 I used DanMan's blog to use the Firmware upgrade to 20160427 - I only did the .PKG one (not the Encoder) and now the device will not grab any IP address on the network. I cannot get to the webserver. The RTP in VLC works (and no longer the UDP). I have other devices I haven't touched and the web servers still work and VLC will only work with UDP and not RTP. Do you have any ideas of what may have happened that I can no longer see the device on the network, won't grab an IP address, and I can't get into the web server?
@themaster20484
@themaster20484 4 жыл бұрын
is the Projekt dead?
@ajlenze8
@ajlenze8 2 жыл бұрын
What happened to this channel?
@Krutonium
@Krutonium 4 жыл бұрын
One of the strings is MSDOS5.0 O.o
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Yes, I think that's part of the FAT filesystem handling code. All the web assets are stored in a read-only FAT file system embedded in the image
@Krutonium
@Krutonium 4 жыл бұрын
@@OpenTechLab That sort of makes sense, but Fat doesn't have any hard nor soft reliance on DOS, so it does seem out of place.
@rogermoore3599
@rogermoore3599 3 жыл бұрын
hey dude can you tell us what education you have please thanks
@DocGould
@DocGould 4 жыл бұрын
Took me for a ride, I was very concerned about that sdk. Glad you took that copyright, and copied what was left!
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Yeah and a few more copies have been found now. Check out the show notes for links
@ElmerFuddGun
@ElmerFuddGun 4 жыл бұрын
Interesting stuff but... what's with wearing your shirt inside out? - 39:44
@ryanavery7980
@ryanavery7980 4 жыл бұрын
You have never used malloc before? That seems crazy to me. You are way over my head with this video but malloc I thought was common.
@OpenTechLab
@OpenTechLab 4 жыл бұрын
Just on this device
@danielegger6460
@danielegger6460 4 жыл бұрын
It would be nice to have your custom compiler bootstrap script as configuration for github.com/crosstool-ng/crosstool-ng to make it easier build with different compiler versions and configurations and make it easier to find for other people.
@fthorup
@fthorup 3 жыл бұрын
Is the channel dead now?
@OpenTechLab
@OpenTechLab 3 жыл бұрын
I'm not dead, but it's a bit hard for me to make videos right now.
@fthorup
@fthorup 3 жыл бұрын
@@OpenTechLab Glad to hear that you are still alive. Just started watching your videos and really enjoyed it. Please find time&energy to make more. Thanks, a new subcriber
@MissingClara
@MissingClara 4 жыл бұрын
Some other people uploaded the SDK to github. Here's one of the repos: github.com/MindyWei/20171003_Doorbell_SDK_v1.2.3.1_758862
@themaster20484
@themaster20484 4 жыл бұрын
Please make a better Firmware :) *dream* Better Picture 30/60fps or Blu Ray Mode 24fps 1080p. Or a very very low latency Mode. Or Unicast Settings that could be saved after a reboot :)
[019] IT9919 Hacking - part 4 - Diving into the boot-ROM
26:48
OpenTechLab
Рет қаралды 19 М.
[002] Testing the Linux Kernel driver for the Lattice iCE40 FPGA
32:12
Llegó al techo 😱
00:37
Juan De Dios Pantoja
Рет қаралды 53 МЛН
WHAT’S THAT?
00:27
Natan por Aí
Рет қаралды 14 МЛН
Best KFC Homemade For My Son #cooking #shorts
00:58
BANKII
Рет қаралды 62 МЛН
[003] LKV373A: a $40 HDMI capture solution?
26:48
OpenTechLab
Рет қаралды 51 М.
Extracting Firmware from Embedded Devices (SPI NOR Flash) ⚡
18:41
Flashback Team
Рет қаралды 559 М.
[014] IcoBoard Software Defined Radio Project - Hardware
1:01:11
OpenTechLab
Рет қаралды 58 М.
[016] IT9919 Hacking - part 1 - Reading firmware with flashrom
32:55
[013-1] Open Source FPGA Synthesis with the icoBoard - part 1
20:40
OpenSCAD Assembly Animation Tutorial
45:15
Neri Engineering
Рет қаралды 431
Battery  low 🔋 🪫
0:10
dednahype
Рет қаралды 13 МЛН
Looks very comfortable. #leddisplay #ledscreen #ledwall #eagerled
0:19
LED Screen Factory-EagerLED
Рет қаралды 3,2 МЛН
Telefonu Parçaladım!😱
0:16
Safak Novruz
Рет қаралды 26 МЛН
Todos os modelos de smartphone
0:20
Spider Slack
Рет қаралды 62 МЛН