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
A new battery design, which replaces lithium with abundant and low-cost elemental sulfur, is still in its nascent stages but shows real promise for giving batteries more energy potential.
PTC will offer a virtual desktop environment for its Creo product design applications, potentially freeing engineers to run them from remote desktops on a variety of operating systems and mobile devices.
The push to achieving more intelligent, integrated manufacturing is putting a strong focus on networking and connectivity as key enabling technologies.
Now that solar and wind harvesting technologies are a thriving market, researchers are seeking other environmentally related energy sources for which they can create harvesting devices.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 5
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 ...
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This radio show will show what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.
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.