I have good experience of DSP and FPGA and done different Industrial Computer Vision projects on those areas.
Recently I decided to use something like TK1 which seems to have some pros like a much better time to market and pricing.
My main interest is Computer Vision for Automated Part Inspection on a Production Line. I have good experience on Computer vision, OpenCV and some others but don’t have any experience with embedded Linux.
So before buying a Jetson TK1 I just need to get sure of something → Boot Time.
When using DSPs as I Power Up DSP it takes almost no time to start processing of input images, so I can start production line at the same time. But it seems for TK1 it should take some time before operating system boot Up and processing could be started. This is critical, because I should stop production line to get sure no part passes without inspection.
So my question is, Typically, how much it takes for operating system to Boot on TK1, and an app written using OpenCV start (Libraries get loaded to the RAM I guess).
The Jetson does take very little power, so it could be left on (you wouldn’t need to power off the Jetson to pause operation).
A JTK1 I’m using here with static network configuration (many people use DHCP, but this requires DHCP response…networking availability slows down waiting for DHCP) goes from power button press to being able to ping it in 20 to 25 seconds (a bit less than 10 seconds of that time is for boot loader).
I don’t know about the OpenCV time. Upon ping the desktop login screen also appears. So I would imagine GPU for CUDA or hardware accelerated OpenCV would be available at approximately the time of when ping starts, plus up to the time of a login if authentication is needed.
Thanks for your reply. Even 10 seconds seems very disappointing, because as i mentioned DSPs take Practically No Time to start processing.
But have you tested what if some Linux options get configured. for example no Internet connection is required, No GUI is required. Have you tested this configs?
The test was with a static network, so no configuration time was required for this. No DHCP time was required.
Ping starts right as the GUI driver begins to function. This is coincidence, not a dependency. The reason this is significant is that when the GUI can operate you know the GPU can also operate for other purposes, e.g., CUDA or OpenCV.
The Jetson is a full Linux operating system which can have many configurations, e.g., no graphical desktop if desired, or cut out some packages. More information on why power is removed versus simply pausing might help in answering about your specific use-case…I do not know of any full desktop type computer which can simply be instantly powered up since DOS 6.0 (after this caching got in the way of fast non-destructive power button on/off).
Thanks for another quick and useful respond “linuxdev”.
The reason why power is removed is because I am planning to use it in a semi-industrial application and in this application the only way to provide power to the board the whole time is using a battery which I am trying to avoid.
And I just watched a youtube video showing Windows Embedded starting in less than a second(surely different hardware). So what is a standard configuration for a fast startup of Jetson and how much it takes?
Although Ubuntu has been adapted to the Jetsons, this particular distribution is not really an embedded o/s. I have no doubt that something intended to be lean would boot very quickly, but I do not know of any “off the shelf” solutions for this on Jetson without giving up important functions…it would be a significant project to reduce startup time that much without losing some of a Jetson’s benefits.
Currently, u-boot is configured to allow people to interact with the boot loader and interactively develop with the boot loader over serial port. Fastboot could be used instead, then the menus which time out on u-boot when nobody hits a serial port key could be reduced to starting the kernel load in under one second (or u-boot could be configured to not wait…this would be more difficult), rather than taking nearly 10 seconds of the 25 or so seconds. After that you’d need to adapt one of the faster/slimmer/true-embedded distributions, or you’d still have up to 15 seconds or so for boot. Within the current distribution you could eliminate things like sound support, but on a regular Ubuntu desktop distribution you’ll get diminishing returns with effort versus removal-of-packages-to-speed-up.
Perhaps the biggest issue of putting other distributions on a Jetson is that the binary video driver is tied to a particular X11 ABI. You may not need X11, but you’d need something for the GPU driver to interface with, so you may still want a dummy virtual X11 server which doesn’t really do anything. However, there is no other embedded system with the video and GPU acceleration supported by Jetsons…those other systems don’t have X11 ABI worries because they don’t do CUDA or hardware accelerated image processing.
Under normal circumstances, running as a desktop system, you might expect a Jetson to consume about 7.5 watts. Up to 15 watts if doing heavy computations. Most other power consumption is due to powering optional PCIe or USB peripherals. I have not used it, but it should also be possible to suspend to RAM and restart much faster than from a true power off…but the power consumption would be quite low.
Thanks “linuxdev”. Great explanation.