Have not worked with Linux or Android though there has been a lot of discussion about it. I also agree there should of been a lower level preceeding seminar in Linux. Did pick up a couple of tidbits though.
Are there archived copies of this class and the other four classes in this series that I could get a copy of? I was not able to hear any sound because our IT department blocks all streaming audio and video. I could not get our IT department to unblock it in time. alan.barman@us.yazaki.com.
Thanks nice lecture but it might have been nice to see a sample of a simple embedded system using Linix that could demonstrate the functionality discussed
Thanks danlafleur for your help. my company block internet radio so i was not even seeing the red box. I am working from a computer that is not a company machine now so I am able to view/listen to it now.
@LevitonDave - Ubuntu etc will give you a leg up - especially with 'Linux mindset' and the tools. I was messing around with building the Android kernel last fall; broke my brain with all the new things to learn.
Good day everyone! I hope to have you join again for the sessions during the rest of the week. We'll start digging into much lower levels... Bye for now.
Thanks Michael - I'm trying to do the prelimnary work at home for educational reasons and will translate it to work devices where we have access to JTAG debugging and custom hardware.
Education is intended to be expanding RTOS knowledge to Linux.
Ultimately you are always going to run on real hardware. The simulator is just a way to get started as well as a nice contained enviroment for general understanding of the linux core. Having simulators that match your HW platform is the absolute best possible place you can be. Hats off to the folks who have made that possible with ports of the beagle, gumstix and many others to QEMU.
@CHUCK: Thank you. I will send a note so you have my e-mail as well to keep me in the loop. I am not quitting, but I feel I won't benefit too much with this material in the current semester. This is at the "masters" level. :o)
@GBr Yes, the Linksys WRT54GL is a classic, cheap embedded target with many greate communities supporting it. OpenWRT is one such example. Greg Petersen and the guys at OpenWRT have done a great jopb at pulling together the toolchains and file systems to make it relatively painless to get started.
The use of QEMU as a playground is also a good starting point. You can do a lot of debugging in that context with risking a physical hardware crash. But, embedded Linux-capable hardware is cheap and available from (plug) Digikey ;-) . I use both beagleboards and beaglebones for development. Gumstix , APC and many many others are also available. I find that it's often easier to just use and real piece of hardware than get my desktop playing nicely with QEMU (better performance with the real hardware).
And interesting tidbit is that these days 90% development of the kernel debug core (which KDB / KGDB use as their back end) is done with Simulators where it is much easier to disect what went wrong. Of course debugging the debugger is a topic in and of itself which most folks are probably not too interested in. :-)
Most of the topics that we'll discuss this week apply to all CPU architecures. The JTAG is a bit tricky on the x86 because they tend to cost $10K+. But ARM JTAGS are cheap (<$100) for getting started.
@LevitonDave - Android apps, or Android kernel? (e.g. bringing Android up on a new device). Apps are mostly done in Java. (there is a native dev kit also)
There is also a more simple way to learn about source debugging and debugging through interrupt contexts etc... If you use a simulator such as QEMU you can debug all the way from the power on through the kernel hand off to user space, assuming you have a bit of documentation about where to load symbols into the debugger. It is no different with JTAG + real hardware, but the JTAG can be very cumbersome compared to the simplicity of a Simulator.
@CHUCK: @luizcosta: You raise a good point. It's a jump. Would you be more comfortable with a basic debugging class? Or perhaps a basic Linux programming class?
Either would be more at the level of all the courses of the ongoing curriculum. I asked Rich last two weeks ago, and I don't think I ever got any reply on the chat or e-mail.
Android features are now included in the latest Linux mainline kernel (3.x). So, if you're using a latest Linux distro like Ubuntu 12.04, you'll be able to use it as a springboard to learning out to create Android drivers.
Mike - that question (re course depth) was asked by luizcosta (poster's name is below message) the @CHUCK was directing the message to Chuck.
FWIW, I like the idea of jumping into a deep subject as well as the introductory classes as most have been so far. (but I have an embedded/drivers background; just mostly in Windows)
The kallsyms allows you to see *all* of the symbols including the ones that were dynamically loaded via kernel modules. Without it enabled, you get just the addresses from the hash table without the symbol names. Then you can use ksymoops to decode.
@luizcosta: You raise a good point. It's a jump. Would you be more comfortable with a basic debugging class? Or perhaps a basic Linux programming class?
Your best way to learn Linux as a beginner is to get an old PC, download a Linux distribtion and install it. I use Linux Mint, but a lot of folks use Ubuntu, Fedora and many others. Just search for "download Linux Mint" or "download fedora linux". That will take you to the page for downloads. Enjoy...
digitalwiz: When you don't have kallsyms or build the kernel with symbols it has a hash table of all the "exported" symbols for "connecting the dots" of the kernel module. load.
In terms of capture of an oops with embedded systems, the others that were not discussed are pmem, pstore, and kdump. The thing about kernel debugging is that there are lots of tools and sometimes no single tool will get you exactly what you need and they all have costs and benefits to implement.
strace vs. lttng... strace uses a different mechanism than lttng. I'll be discussing lttng later in the series. But, lttng can capture the system calls like strace does. But, strace is lighter weight and doesn't require patching tht kernel or rebuilding kernel modules.
@CHUCK: I am taking this CEC courses for about 4 months now (SECOND SEMESTER), and this Linux debugging course kind of feels out of sequence in the curriculum with no preliminary considerations. Everything else before was presented at a very basic level and evolved from there. Can you tell me what I'm missing?
If you want to debug kernel source code, you'll need to attend the rest of the seminar series ;-). Seriously, you can use KGDB or JTAG. I'll be discussing both later in the presentation.
Thanks, Mike and Digi-Key! One suggestion, I wish you could read and answer questions over the audio. Keeping up with this chat is like sipping from a firehose.
Oops output is captured into the system logs (klogd or syslog), THe Panic output isn't captures as we don;t know how much of the system is stable at that point.
What is even more useful is to get the lines for locations from the stack trace as that is your pointer in to where somethin crashed. It is not covered in this particular power point, but hopefully it will be at a later point. :-)
An oops can absolutely be fatal, not always but that is also the reason you can set the kernel to panic on oops. If a user space app generated an oops, that is certainly a way to you can end up exploting the system (for those security minded folks).
RandyS to answer your question: "Is there a specific flag to set to have the kernel automatically reboot on panic?" Yes, there is a kernel argument called panic=DELAY_IN_SECONDS see Documentation/kernel-parameters.txt
I couldn't get the latest adobe flash to install without installing "Google Toolbar", there was no place to uncheck the option. Sorry, I won't be taking the class- don't want "Google Toolbar"
I put in a request to unblock it, but it will probably take until next week before they do it so I guess I will have to listen to an archived version next week.
Information resources to help out with this course (Free and under US$10)
*) Self-Service Linux - Mastering the Art of Problem Determination, Open Publication Licensed http://www.informit.com/content/images/013147751X/downloads/013147751X_book.pdf
*) Debugging Linux Systems: US$7.99 http://www.informit.com/store/product.aspx?isbn=0136123546
*) SystemTap: Instrumenting the Linux Kernel for Analyzing Performance and Functional Problems http://www.redbooks.ibm.com/abstracts/redp4469.html
*) Linux Performance and Tuning Guidelines https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/redp4285.html
Bit on the costly side, but highly recommended: Linux Debugging and Performance Tuning: Tips and Techniques, Steve Best ISBN-10: 0131492470 ISBN-13: 9780131492479 http://www.pearsonhighered.com/educator/product/Linux-Debugging-and-Performance-Tuning-Tips-and-Techniques/9780131492479.page
By experimenting with the photovoltaic reaction in solar cells, researchers at MIT have made a breakthrough in energy efficiency that significantly pushes the boundaries of current commercial cells on the market.
In a world that's going green, industrial operations have a problem: Their processes involve materials that are potentially toxic, flammable, corrosive, or reactive. If improperly managed, this can precipitate dangerous health and environmental consequences.
With LEDs dropping in price virtually every year, automakers have begun employing them, not only on luxury vehicles, but on entry-level models, as well.
The 3D printing revolution seems to have a knack for quickly moving technology ahead by way of collaborative effort and even a little friendly competition -- all of course in the name of scientific advancement.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 3
Early in my career, I worked as a draftsman and remember the days of drawing on vellum with numbered pencils and Mylar with plastic lead. This was a fun experience in the sense that I ...
I've been using workstations for more than 10 years and love finding ways to get more performance from my system. With demanding professional applications that require more power each ...
A lasting memory from my first job as an engineer in an auto assembly plant is standing on hard concrete at six in the morning, vending-machine coffee clutched in hand, listening to ...
A quick look into the merger of two powerhouse 3D printing OEMs and the new leader in rapid prototyping solutions, Stratasys. The industrial revolution is now led by 3D printing and engineers are given the opportunity to fully maximize their design capabilities, reduce their time-to-market and functionally test prototypes cheaper, faster and easier. Bruce Bradshaw, Director of Marketing in North America, will explore the large product offering and variety of materials that will help CAD designers articulate their product design with actual, physical prototypes. This broadcast will dive deep into technical information including application specific stories from real world customers and their experiences with 3D printing. 3D Printing is
To save this item to your list of favorite Design News content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.