=== ompaul changed the topic of #ubuntu-classroom to: Ubuntu Open Week | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | How to ask questions: https://wiki.ubuntu.com/UbuntuOpenWeek/Rules | Ask questions in #ubuntu-classroom-chat, prefaced with "QUESTION:" |See https://wiki.ubuntu.com/UbuntuOpenWeek/JoiningIn to filter out channel noise | Next up: Unwinding Stacktraces - Emmet Hikory (15:00, UTC) [16:00] Ok, let's get started [16:00] welcome back everyone to the last day of OpenWeek [16:00] thanks for coming out on a Saturday! :) [16:00] The last set of sessions are listed here: [16:00] https://wiki.ubuntu.com/UbuntuOpenWeek/ [16:00] First up we have Emmet Hikory with "Unwinding Stacktraces" [16:00] persia: take it away! [16:01] Welcome to Unwinding Stacktraces. [16:01] The intent of this discussion is to describe a stacktrace, explain how to find bugs with stacktraces, and walk through the process of investigation to be able to find (and fix) the bug. [16:01] Feel free to interrupt with specific questions or requests for clarification at any time, and there will be a more general question period at the end. [16:02] As a program executes, it typically involved calling some sequence of functions, each of which will call further functions, and so on. [16:03] The current state of the running program is stored in the stack, and a stack trace is simply a dump of all the information in the stack at the time the trace is taken. [16:03] For the interesting stacktraces, this is usually the point at which the program crashes, but it can be any point. [16:04] s an example, at the point where we print the second 'l' in the following simple program: int main() { printf("Hello World\n"); } the stack consists of three interesting frames (and some initialisation) [16:04] At the top (#0), we have the actual character display, with a local variable holding 'l'. [16:04] The next frame (#1) is printf(), with the local variable "Hello World". [16:04] The third (#2) is main(), with no local variables, reprenting our program. [16:05] A more complex example may be found from http://launchpadlibrarian.net/9409147/Stacktrace.txt, which is a crash in w3m: a text-mode browser. [16:06] As you can see, this stack is a little longer, as w3m is a bit more complicated than the previous example. [16:06] Also, this stacktrace represents a real crash, so instead of knowing we are at 'l', we have to discover our location. [16:07] < wolfger> QUESTION: for us noobs, how is a stack trace taken? [16:07] I find it easiest to read these from the bottom, as this goes from the general environment (starting the program), and becomes more specific. [16:07] wolfger: The common way to take a stacktrace is within GDB, although in Ubuntu the apport tool helps generate them for bug reports. [16:08] I'll talk a little about apport later, but https://wiki.ubuntu.com/Backtrace provides a quick guide to doing it manually. [16:09] < BonesolTeraDyne> QUESTION: Is a stacktrace the same as the backtrace that the KDE crash handler gives? [16:09] BonesolTeraDyne: I'm not actually familiar with the KDE crash handler, but I expect that if it's not the same, it's very close. [16:10] So, looking at the w3m example, from the bottom, we can find out what is happening. I've not looked closely at the w3m code, but the following would be my guess: [16:10] At frame 15, the program is trying to start [16:10] At frame 14 glibc is processing the start request [16:11] At frame 13, the main() function starts, and we're in the code [16:11] At frame 12, it calls a function to load a file, so I'm guessing this is opening a local file on the machine [16:11] At frame 11 is calls "loadSomething", which is probably a generic helper function for the file load [16:12] At frame 10, it appears to have discovered this was an HTML file, and so is loading HTML [16:12] At frame 9, it is processing the HTML data as a data stream [16:12] At frame 8 it is processing a single line of the data [16:13] At frame 7, it seems to be processing a table [16:13] (At this point, we can say "Aha!", as while it's obvious a browser would be reading HTML, it being a table tells us more specifically where the problem is happening) [16:14] Frames 6, 5, 4, and 3 appear to be more table calls. Maybe it's nested tables, or maybe the code is just highly recursive. Determining which usually means reading the code or the data. [16:14] Frame 2 appears to be rendering an image within the table [16:14] Frame 1 appears to be handling the description of the image [16:15] And frame 0 crashes with the call to Strnew_size with the passed argument of (n=256). [16:15] From this, we can safely say that w3m has crashed while processing an image nested in a table, which is a lot more information then we had before. [16:17] < wolfger> QUESTION: how did we determine that about Frame #1? That step lost me [16:18] wolfger: I guessed it based on the local variables. I could be completely mistaken: to check for sure, one should check the code of w3m around line 2917 of file.c. [16:19] The part that makes me think it is related to handing the various attributes of the image is all the local variables (anchor, img, bold, etc.). [16:21] if one is using a stacktrace to debug something, one will likely pass back and forth over two or three frames, most commonly #0 - #2, but sometimes as high as #50 (if the program is compiled against a library with extensive internal signal handling, such as GTK+2) [16:22] From the point of view of getting an idea of what is happening, the specifics right near the problem aren't as important, as one will want to look at the code: it's mostly a matter of seeing how far one can get towards #0 before getting lost to save time in reviewing it. [16:23] So, in Ubuntu, the majority of stacktraces available for analysis are provided in launchpad by Apport. The apport tool captures the results of every program crash on every user's workstation, and offers the opportunity for the user to report the crash back to Ubuntu. [16:24] This is paired with the apport retracing service which processes these crash reports, and generates the nice stacktraces with the symbol names, and the line numbers of the corresponding code. [16:24] At some point in the apport process, the apport-crash tag is typically added to the bug, so that looking through all the bugs with the apport-crash tag is often a good way to find stacktraces. [16:25] This list is most easily accessible from the Tags list on https://launchpad.net/ubuntu/+bugs [16:25] When reviewing this myself, I tend to skip down until I find a package a use a fair bit, as it's a lot easier to understand a problem with a program that one uses than with a program one has to learn at the same time one is debugging. [16:26] The reports will have several different attachments that may be useful in understanding the problem, but the "Stacktrace.txt (retraced)" is typically the right one to review. [16:27] In cases where there are multiple threads and may be timing issues or interthread communication issues, the "ThreadStacktrace.txt (retraced)" may also be useful, but most of the time even when one reviews this, the problem is actually in Stacktrace.txt. [16:29] That about covers the definition, reading, and availability of stacktraces. Are there any questions about these before we look at a debugging example? [16:30] Great then! [16:31] So, I've picked one I did before to look at, specifically that the hydrogen frun machine crashed when a certain (broken) drumkit was used. This was bug #147476, and the Stacktrace is available from http://launchpadlibrarian.net/9612459/Stacktrace.txt [16:31] < bran_damage> QUESTION: Are the stacktraces similar no matter what language the code was written in ? [16:32] bran_damage: Typically, although they may look a little different. [16:33] In an interpreted language like python, the symbols are typically available at runtime, and so the trace can be presented to the user directly. In a compiled language like C, the symbols are typically opimised out, so the stacktrace has to be retraced to make sense. [16:33] An unretraced stacktrace looks like http://launchpadlibrarian.net/9032770/Stacktrace.txt [16:34] While the codes are meaningful with the debug symbols, without them, the function names are unknown, and the locals are hidden. [16:36] Going back to hydrogen, and the process of looking at a stacktrace for debugging. [16:37] I usually start around frame #3 or #4, unless it's a lot of signal handlers, in which case, I'll keep going back until I get to some function that looks like it was written for the program that crashed. [16:38] For this stacktrace, the mouse movement handling around frames 7&8 provide a nice boundary: anything earlier than this is the user doing something else, not likely related to the crash. [16:39] Also, a stacktrace doesn't actually keep a history of what was done, but only the nesting of function calls, so there's not enough information about what else the user did with the mouse before clicking on the button at 0x107bd40 at frame 7. [16:41] Frames 5 & 6 look like the callbacks to handle the mouse click, and frames 3&4 look like some QT function to call the actual handler for the button click (and here, I'm just guessing based on the name: if you're unsure, it's always safe to check the code) [16:42] This takes us to Frame #2 which is pretty clearly the loader that handles the loadDrumkitBtn click. [16:45] When debugging, you'll want to get an idea of the context for the local variables. In this case, we're looking around line 168 of DrumkitManager.cpp (available from http://paste.ubuntu.com/9766/ for those without source handy) [16:46] Now since frame #1 is in the Hydrogen::loadDrumkit function, it's actually line 167 of the pastebin. [16:46] Looking at what happens previously in this function, we can see that some name gets set (line 160) [16:46] It does a loop over the list of drumkits [16:47] Compares the selected name to each of the names [16:47] When it matches, it sets a cursor to tell the user to wait, and calls loadDrumkit, passing the information about he drumkit from the drumkit list. [16:49] Going back to the stacktrace, the intersting parts are drumkitInfo and sselectedDrumkitName, which are the defined local variables. Since this matches what we see in the code, and nothing is obviously wrong, we go to the next frame. [16:49] (code for this is available from http://paste.ubuntu.com/9756/ ) [16:50] Here, we're looking at the function starting at line 2469 [16:51] Going down, it crashes at an assignment, which ttrial and error showed to be line 2494. [16:51] Now, any questions about comparing the code and the stacktrace to debug a problem? [16:52] no questions so far [16:54] Well then, a few random notes, before we're out of time (but please interrupt if you have a question). [16:54] I find it typically takes an hour or two to go through a stacktrace carefully, and figure out the problem in the code. The first few can take longer. [16:56] Also, sometimes the code is in a language that you might not know well. Don't worry about this: it's better to get a rough idea of what is happening. Even if you can't figure out how to fix it, being able to pinpoint the problem (it crashes at this point, and I think it's because this variable didn't get set the way we wanted), can help someone who does know that language to fix it, [16:57] Most of all, be confident, and make a lot of guesses. As the stacktrace shows each line of code, and each function called, it's hard to get lost, even if you guess wrong, but there's usually more detail than you need. [16:58] Anyway, thanks for attending. Enjoy the other sessions today, and I'll hope to see you in #ubuntu-bugs or #ubuntu-motu looking at stacktraces and fixes for crashes. [16:58] thanks persia! === jcastro changed the topic of #ubuntu-classroom to: Ubuntu Open Week | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | How to ask questions: https://wiki.ubuntu.com/UbuntuOpenWeek/Rules | Ask questions in #ubuntu-classroom-chat, prefaced with "QUESTION:" |See https://wiki.ubuntu.com/UbuntuOpenWeek/JoiningIn to filter out channel noise | "Virtualization" Soren Hansen [16:59] Next up will be a hot topic lately, Virtualization with Soren Hansen! [17:00] In about 1 minute. :D [17:01] soren: take it away! [17:02] hmm, let's give him a few minutes [17:07] Ok, we're texting soren, thanks for being patient! [17:10] Ok, soren is on his way! [17:11] o/ [17:11] Sorry, guys! [17:11] I was sure it wasn't for another two hours. [17:11] No worries! [17:11] Ok... Hi, everyone. [17:11] I'm Soren Hansen, and I work for Canonical as virtualisation specialist. [17:12] Er.. [17:12] This caught me a bit off guard :) [17:12] Are there any questions already or should I just talk about stuff? [17:13] I guess not. [17:13] Well, I can tell you what Ubuntu is focusing on and has focused on for Hardy. [17:14] I think we're the first major distro to put out a major release with a virtualisation solution based on kvm. [17:14] KVM is a modular hypervisor that runs in the linux kernel. [17:15] It's in the official kernel tree, and is very well-maintained. [17:15] Real quick soren, can you explain virtualization, hypervisor, and KVM? [17:15] KVM relies on the presence of the virtualisation extensions that are found in recent processors from both AMD and Intel. [17:16] jcastro: Ah.. Right :) [17:16] Virtualisation is not as well-defined as one would have hoped. [17:16] The easiest way to think of it is "some method for running many operating systems on just one machine at the same time". [17:17] That's a rather broad definition, though. [17:17] You can divide virtualisation into various categories.. [17:17] There's containers, such as openvz and linux vserver. [17:18] They basically allow you to have process running in a completely separate namespaces, thus separating the completely from one another. [17:18] Then you have paravirtualisation. [17:18] This is stuff like Xen. [17:19] The idea is that instead of exposing what looks like a regular PC as we all know it, it exposes a different interface, on top of which you can run e.g. a specialised linux kernel. [17:20] The there's full virtualisation. [17:20] This is stuff like KVM and QEmu. [17:20] The idea here is that run unmodified operating systems inside of it. [17:21] To accomplish this, the virtualisation technology must make it looks exactly as though it's a regular PC. [17:21] ...just like the one you've got under your desk. [17:22] There are variour variations of these things, but that's basically the gist of it. [17:22] A hypervisor is the bit of magic that makes this all possible. [17:23] It's the "thing" that takes care of assigning resources to guest operating systems and such. [17:24] I say "thing" because it's can be implemented in different ways. Xen works by booting a completely different system from the start and then you run Linux on top of it. (sort of) [17:24] KVM works by loading a module in your regular system, which makes userspace processes able to use the virtualisation extensions in the CPU. [17:24] So in this case, the hypervisor is the kernel module and the kvm userspace process. [17:25] < highvoltage> QUESTION: Does that mean that KVM won't run on any of the older CPUs, like Qemu did? [17:25] Short version: Yes. [17:26] One thing to remember is that the percentage of machines that can't use kvm is constantly dropping. [17:26] ..and due to this hardware requirement, KVM's design is very simple compared to most alternatives. [17:27] < Toadinator> QUESTION: could you explain the benefits of virtualization to someone who doesn't run a virtual machine? [17:27] Sure. [17:27] Hardware is cheap these days. [17:27] Most of the time, you fill up your data centers with the monstrous machines. [17:28] If you run some form of virtualisation on top of that, you can have many separate operating systems running. [17:29] If, some day, these virtual machines start to max out the server, all you need to do is migrate the virtual machine off to another physical machine. [17:29] The virtual machine still sees the same hardware, so there's no reconfiguration to be done in the guest. [17:30] The process of moving it is a simple matter of either copying a few disk images (regular files) ove rto another machine, or if you have some form of shared storage, you can just move the virtual ram over to another box and it can keep running there. [17:30] I've heard people suggest it used as a power saving mechanism. [17:31] Your servers are much busier during the day than they are at night, so at day, your virtual machines can be running on 200 servers, but at night you move them onto perhaps 25, and shut the other 175 down and save loads of power. [17:31] ..and the rain forest. [17:31] :) [17:31] The possibilities are endless. [17:32] On your desktop, you can use virtualisation to run other operating system for testing or for that last application under Windows you just can't live without. [17:32] < chell> QUESTION: what exactly does he mean by running a process in a different namespace? what kind of namespaces are we talking about here? [17:32] Containers are sort of an extended version of a chroot jail. [17:33] If you're in a chroot jail, device nodes, memory usage, processes are still the same as it is outside the chroot. [17:33] Inside a container, you can't see processes from other containers, you can't access their device nodes, etc., etc. [17:34] < chell> Question: so KVM is a program like vmware or virtual box? [17:34] Yes, kvm is very much like those. The differences are that it's completely free and maintained in the mainline linux kernel. [17:35] < smeg0l> QUESTION i find qemy very heavy what other alternatives do i have that wil run on hardy heron ? [17:35] QEmu is very heavy indeed. [17:35] Emulating a CPU is a very heavy process. [17:35] KVM uses parts of QEmu, but not the cpu emulation parts. [17:36] We also have virtualbox and Xen in universe and vmware server runs, too, so there are plenty of options. [17:36] We've just chosed to focus mostly on Xen. [17:36] Er.. [17:36] Damn, I did not just say that. [17:36] I meant, of course, that we've chosed to focus mostly on kvm. [17:37] QUESTION: does virtualization let the guest OS see your BIOS? I ask because I have a vista Express upgrade DVD which will only install in a virtual machine on THIS machine (the one it was distributed for)[D [17:37] No, that's the entire point of virtualisation. The virtual machines don't see your hardware. [17:37] < smeg0l> QUESTION what vitual maniger would cause the least trouble ? [17:37] I don't understand the questin. [17:38] < Salumu> QUESTION: How does hypervisors manage to run system calls from the applications in the virtual guest OS? [17:38] This is where Xen and kvm differ very much. [17:38] Well, one of the places, anyway. [17:38] System calls in Xen are translated to hypercalls to the hypervisor. [17:39] In Kvm guests, you're running a regular linux kernel. It turns into CPU instructions which the hypervisor execetes on the host CPU (expect for privileged instructions, which are trapped and handled differently). [17:40] < DoruHush> QUESTION: What other requirements have to be mentioned beside the processor? [17:40] Nothing, really. [17:40] If your processor has the magic stuff and your bios doesn't block them, then you're set. [17:41] Flyser> QUESTION: Can we expect a stable KVM release some day? (if yes, when? ^^) [17:41] I'm not sure what you mean by a stable KVM release. [17:42] The KVM in Hardy is rather stable. It's been working for a quite a few people with different use cases. [17:42] highvoltage> QUESTION: How stable is KVM compared to VMWare and Xen, and how does it compare performance wise? [17:43] KVM as achieved massive results in a very short time. It's already very stable for a lot of different work loads and I'd say it's a strong competitor to Xen. [17:43] I can't speak much of VMWare. I've not used it in any serious settings (only for small case testing on my desktop). [17:44] < smeg0l> QUESTION what vitual manager would cause the least trouble ? [17:44] I don't understand the question. [17:45] tzeentch_> QUESTION: Why the focus on KVM? What advantages does it have over VirtualBoxOSS or Xen? Do you think Xen couldn't be wrapped up to provide easy to use virtualization solution? [17:45] KVM as much, much simpler than Xen. [17:45] It's actually something that we can reasonable maintain and support. [17:45] Xen has famously been rejected by the linux kernel developers on several occasions. [17:46] One of the primary reasons we didn't choose virtualbox is the lack of headless support in the free version. [17:47] The non-free version offers an RDP server, so it's actually usable in server settings (which was our focus). [17:47] Also, virtualbox is not in mainstream Linux. That really, *Really* means a lot. [17:47] QUESTION: Do you know of any large uses of virtualisation, running on Ubuntu? [17:48] Well, Hardy is the first release where it's a major feature, and Hardy's still quite young. [17:48] Nevertheless, I do know of a rather large installation, but I'm not sure if I'm at liberty to tell you about it :/ [17:49] < bran_damage> QUESTION: Soren .. so I have hardy, I have AMD64 with VM extensions ... now what ? What do I do to get KVM running [17:49] The easy way: [17:49] sudo apt-get install kvm virt-manager libvirt-bin [17:49] sudo adduser $USER libvirtd [17:49] (log out, and log back in) [17:49] virt-manager -c qemu:///system [17:50] That'll give you a nice, graphical interface for managing your virtual machines. [17:50] highvoltage> QUESTION: how scriptable is KVM? can I suspend it on host shutdown and start it again when the host starts? [17:50] Yes, you can do that rather easily. [17:51] It's recommended to use libvirt to manage your virtual machines, and if you do so, it's a simple matter of "virsh save name-of-domain saved.img" and then "virsh load saved.img", when you're back up. [17:51] < smeg0l> QUESTION which virtual manager is the most userfriendly ? [17:51] What do you mean by virtual manager? [17:51] Do you mean hypervisor? [17:52] If so, it's a matter of taste, I think. [17:52] tip: screenshots of virtual manager: http://www.phoronix.com/scan.php?page=article&item=983&num=1 [17:52] VMWare server is still a bit ahead of virt-manager in many respects. [17:52] VirtualBox, too. [17:52] ...but the libvirt/virt-manager combination is really starting to shine, and it offers excellent scriptability, which is a major userfriendliness factor for me. [17:53] Oh, I forgot part of this question: [17:53] < ~tzeentch_> QUESTION: Why the focus on KVM? What advantages does it have over VirtualBoxOSS or Xen? Do you think Xen couldn't be wrapped up to provide easy to use virtualization solution? [17:54] Anything's possible, but I'm very happy indeed that I don't need to support and maintain a Xen kernel for 5 years. [17:54] We're starting to run out of time, can you tell everyone about ubuntu-vm-builder after this question? [17:54] livirt can manage Xen instances, too, so the userfriendliness can be about the same (from the user's POV). [17:55] jcastro: Oh, sure. [17:55] ubuntu-vm-builder started out as a bit of a pet project for me. In short, it's a script that creates an Ubuntu based virtual machine. [17:56] It doesn't go through the regular installer, it doesn't even use any virtualisation technology. [17:56] ..so it's really fast. [17:56] I've built ubuntu virtual machines in less than 45 seconds. [17:56] More info here: https://help.ubuntu.com/8.04/serverguide/C/ubuntu-vm-builder.html [17:57] If you have further questions, #ubuntu-virt is the channel for virtualisation in Ubuntu. Feel free to stop by any time. [17:57] thanks Soren! [17:58] Thanks for stopping by, everyone! [17:58] And sorry again for being late :( === jcastro changed the topic of #ubuntu-classroom to: Ubuntu Open Week | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | How to ask questions: https://wiki.ubuntu.com/UbuntuOpenWeek/Rules | Ask questions in #ubuntu-classroom-chat, prefaced with "QUESTION:" |See https://wiki.ubuntu.com/UbuntuOpenWeek/JoiningIn to filter out channel noise | "Reporting Bugs" - Brian Murray [17:58] ok, next up is Reporting Bugs with Brian Murray [17:59] this session was done on Monday but we scheduled one today to get maximum participation! [17:59] Hi, I'm Brian Murray and I'm Ubuntu's bug master. [18:00] I'm here to talk today about how to report bugs about Ubuntu as there are various ways you can do it. [18:00] Additionally, I'll cover how to make your bug report more complete and therefore more likely to get fixed! [18:00] Perhaps you are wondering what exactly is a bug? [18:01] In computer software it is an error or a flaw that makes it behave in ways for which it wasn't designed. [18:01] Some of these can result in crashes, others may have a subtle effect on functionality, others can be spelling errors. [18:01] By reporting these issues you can help to make Ubuntu even better than it already is. [18:02] Reported bugs are kept in Launchpad, the bug tracking system used by Ubuntu. [18:02] Let's look at a sample bug report - http://launchpad.net/bugs/222278. [18:03] There are 4 things there that I want to point out. [18:03] 1) The bug's title or summary is 'upgrade hanges in checkViewDepends()' [18:04] 2) In the affects table, below the title, you'll see that this bug report affects 'update-manager (Ubuntu)' [18:04] This is the package / application which the bug is about [18:04] 3) Below that is the bug's description, labelled "Bug description" ;), which is filled out when you are reporting a bug [18:05] 4) You'll also notice that there are 5 comments, 4 of which contain attachments with supporting information about the bug. [18:05] So, that's what a bug report looks like. Are there any questions about the format of a bug report or what a bug is? [18:07] < wolfger> QUESTION: if something is behaving as designed, but we don't like it, is it bug report material? [18:08] Yes, that is a valid bug however it is ultimately up to the developers of that particular piece of software whether or not they will fix it. [18:09] < smeg0l> QUESTION when do determine if it's a hardware faily or a bug ? [18:10] Determining whether or not a bug report is due to faulty hardware can be quite tricky. [18:11] Most of those bug reports would be about the kernel and by looking at kernel log files we can help you determine whether or not it is a hardware or software issue. [18:11] Moving on - How can bugs be reported to Launchpad? [18:12] They can be reported via the web interface at https://bugs.launchpad.net/ubuntu/+filebug where you start by filling out the summary which becomes the bug's tile. [18:12] After which you are asked for the package affected and for 'Futher information' which becomes the bug's description. [18:12] The description should contain at a minimum the following: [18:13] 1) The release of Ubuntu that you found the bug in. [18:13] This is important as there is more than 1 supported release of Ubuntu out there right now. [18:13] 2) The version of the package you found the bug in. [18:14] 3) The behaviou that you expected to happen [18:14] and 4) What happened instead [18:14] You also have the opportunity to add an attachment to your bug when you are reporting it via the web interface. [18:15] Another way to report a bug is using apport an automated problem report application included with Ubuntu. [18:15] The advantage to using apport is that it automatically collects information about the release of Ubuntu you are using and the version of the package / application that you are reporting the bug about. [18:15] Let's say that you have encountered a bug with Firefox. [18:15] You can use apport to report the bug by going to Firefox's "Help" menu and choosing "Report a Problem". [18:16] Apport will start collecing information about your bug and then open a new window where you enter the bug's summary / title and then enter the bug's description. [18:17] Let's look at a bug reported using the "Report a Problem" menu item [18:17] http://launchpad.net/bugs/223455 [18:17] At the bottom of the description you'll see information regarding the DistroRelease, the package and version, and kernel version among other things. [18:18] All of this information is gathered for you automatically. [18:18] The "Report a Problem" functionality has been integrated into lots of applications and is the preferred way to report a bug. [18:19] Additionally, apport has a command line interface, called apport-cli, where you can report a bug about a specific package via 'apport-cli -f -p PACKAGE' which is useful for non GUI applications. [18:19] Additionally, you can also specify a process id number via 'apport-cli -f -P PID'. [18:19] Further information about reporting bugs can be found at https://help.ubuntu.com/community/ReportingBugs [18:20] Are there any questions about how you can report a bug? [18:21] < lyzium> Question: can apport initialise outside given example. If firefox crashes on start you are unable to launch the "report a problem" option [18:21] In that case you could use apport-cli -f -p firefox-3.0 for example [18:22] Also when you are running a development release of Ubuntu apport will watch for application crashes and report those [18:23] < Lardarse> QUESTION: Do you find that the differences between the developer's definition of a bug (to quote you: "an error or a flaw that makes it behave in ways for which it wasn't designed") and the end-users definition (to word it in the same way, it's usually something along the lines of "an error or a flaw that makes it behave in ways that don't make [18:23] sense") cases problems for you and for lthe other people inv [18:24] Ubuntu is designed for "human beings" and if an application behaves in a way that doesn't make sense then their is something wrong. [18:25] Possibly there is a bug in the documentation or the software's description. [18:26] That bug report won't have as a high of priority as a crash report or other bugs but it still is a valid bug. [18:26] So how can we make our bug reports more useful for developers? [18:26] Choosing the name of the package or application the bug is about is critical. [18:27] If a bug does not have a package assigned to it is much less likely to get looked at by anyone let alone the developer of that application. [18:27] Some helpful hints for finding the proper package are at https://wiki.ubuntu.com/Bugs/FindRightPackage [18:27] This page also contains the names of packages that might be hard to discover. [18:27] For example, bugs about the kernel in Hardy Heron should be reported about the 'linux' package. [18:28] Additionally, members of the Ubuntu bug squad are available in the #ubuntu-bugs cahnnel if you need help identifying the proper package. [18:29] After the bug is reported in Launchpad an important part of its life cycle is it entering the Confirmed status. [18:29] Pedro will talk about this more in the next class, but when a bug is Confirmed it means that someone has been able to recreate the bug or believes sufficient information has been included in the bug report for a developer to start working on it. [18:29] Any Launchpad user can confirm a bug report, but please don't confirm your own! [18:30] This will make the Confirmed status less useful. [18:30] What this means is that you should include extremely detailed steps to recreate the bug in it's description so anyone, not just a developer, could confirm it. [18:31] Let's take OpenOffice for example, there are phenomenal amount of things you can do in the Word Processor or the Spreadsheet parts of it. [18:31] And not every bug triager may now all the intricacies of that application. [18:32] So by putting extremely detailed steps in your bug report you are increasing the chances of it being confirmed. [18:32] It is far better to have too much detail than not enough! [18:33] Some fairly simple things you can do to make your report easier for someone to confirm are including a screenshot. [18:33] Or you can create a screencast, a movie of your desktop, using an application like istanbul. [18:34] Let's take a look at http://launchpad.net/bugs/212425 [18:34] This bug has a screencast attached to it [18:35] Their description of how to reproduce the bug is pretty good but is a little hard to understand [18:36] By watching the screencast though, bug triagers are able to clearly see what steps we should take to recreate the bug. [18:37] Are there any more questions at this point in time? [18:38] < BonesolTeraDyne> QUESTION: Are there any plans to make a KDE version of Apport, or to at least give the KDE crash handler some sort of LP integration? [18:40] There are some crash reports about KDE applications reported by apport. [18:41] In regards to integration with the KDE crash handler, I'm not certain but will look into it. [18:42] One of the best ways to make your bug report more likely to be fixed is to follow the debugging procedures for the package or subsystem your bug is about. [18:44] Bug triagers and software developers have written up a variety of these debugging procedures. [18:44] A list of them can be found at https://wiki.ubuntu.com/DebuggingProcedures [18:46] If you look at the debugging update-manager page - https://wiki.ubuntu.com/DebuggingUpdateManager [18:47] You'll see there is a how to file section, there we have instructions about which log files we need if your bug is about upgrading from one release to another [18:47] Providing information like that makes your bug report much more complete [18:49] And a bug report with more relevant information is more likely to get fixed! [18:49] QUESTION: If you wanted to report a bug, but are unsure what the bug is for (ex: it could belong to one of many programs) how would you know what package to file it under? [18:50] Toadinator: early I mentioned the wiki page https://wiki.ubuntu.com/Bugs/FindRightPackage [18:51] This contains some high level information about when an application is running [18:51] For example when your system boots and you see the "Ubuntu" logo that is the usplash package [18:52] Also printing bugs should generally be reported about cupsys and then they will be moved to the proper package if necessary [18:53] Additionally, there is information about how to find out what application an open window belongs to [18:53] < gscholz> QUESTION: Coming back to apport, how do you include the functionality into an applications menu (report a problem)? Do you write a patch against the source code? I guess these are no upstream features, or is this a kind of generic GNOME functionality? How do you select the applications worth this feature? [18:55] The functionality of apport is integrated into an application via the package 'liblaunchpad-integration1' [18:56] And I'm fairly certain this is a patch that Ubuntu carries for the package with that integration [18:56] Any more questions? [18:58] Okay, then thanks for coming to the class on How to Report bugs [18:58] If you need any help reporting a bug please come to the #ubuntu-bugs channel on freenode [18:58] Thanks! === jcastro changed the topic of #ubuntu-classroom to: Ubuntu Open Week | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | How to ask questions: https://wiki.ubuntu.com/UbuntuOpenWeek/Rules | Ask questions in #ubuntu-classroom-chat, prefaced with "QUESTION:" |See https://wiki.ubuntu.com/UbuntuOpenWeek/JoiningIn to filter out channel noise | "Ubuntu Bugsquad and Triaging Bugs" - Pedro Villavicencio [18:59] ok guys, next up is pedro_ and Iulian - talking about the Ubuntu bugsquad! [18:59] take it away guys! [18:59] thanks jcastro! [19:00] Thank you, jcastro. [19:00] Hello folks my name is Pedro Villavicencio and I'm the guy behind the Ubuntu Desktop Bugs, i'm here to day with the great bugsquader Iulian to talk about our Bugsquad and how to Triage Bugs [19:02] the awesome Brian Murray already talked to you on how to report good quality bugs [19:02] so we're going to talk to you about the rest of the process [19:02] Bugsquad first: [19:02] The Ubuntu BugSquad is the first point of contact for the bugs filed about Ubuntu [19:03] we keep track of them and try to make sure that major bugs do not go unnoticed by developers [19:03] we do this with a process called "Triage" will talk to you about it in a minutes [19:03] Working with the Bug Squad it's an excellent way to start helping out and learn a lot about Ubuntu and it's infrastructure [19:03] You do not need any programming knowledge to join the team in fact it is a great way to return something to our lovely Ubuntu project if you cannot program at all [19:04] we have a few points of contact [19:04] a team on LP https://edge.launchpad.net/~bugsquad it's an open team, so everybody can join us [19:04] so if you're interested on bugs feel free to join now ;-) [19:05] we also have a mailing list https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugsquad [19:05] and a couple of IRC channels [19:05] where the bugs are discussed: #ubuntu-bugs [19:06] and another one where the bugs are announced: #ubuntu-bugs-announce [19:06] also, if you have questions over a specific project you can look https://wiki.ubuntu.com/BugSquad/Contacts to see to who you can ask about it later [19:07] Ok so, Bug triage is an essential part of Ubuntu's development and consists in a list of things: [19:07] - Responding to new bugs as they are filed [19:07] - Ensuring that new bugs have all the necessary information [19:08] - Assigning bugs to the proper package [19:08] Brian already talked to you about this things so we hope you'll be filing good quality reports ;-) [19:09] most of the bugs we have to deal with are not assigned to the right package [19:09] and moreover not assigned to anything [19:09] if you look to this list http://tinyurl.com/32l4gd [19:09] there's ~3500 reports without a package assigned to it [19:10] lets keep going with the list of parts [19:10] - Confirming bug reports by trying to reproduce them [19:10] - Setting the priority of bugs reports [19:10] - Searching for and marking duplicates in the bug tracking system [19:10] - Sending bugs to their upstream authors, when applicable [19:11] for this one you might want to look to https://wiki.ubuntu.com/Bugs/Upstream for instructions on how to do it [19:11] - Cross-referencing bugs from other distributions. [19:11] - Expiring old bugs. [19:11] All of these activities help the bug get fixed and subsequently making Ubuntu even better [19:11] As soon as you have done enough good triage work, you can apply to the ubuntu-bugcontrol team which is the one with more rights over the reports [19:12] so basically you can see the Private reports, change the Importance of the bugs and set a couple of bug status (Triaged, Won't Fix) we will talk about both in a min [19:12] the requirements for join the team are available here: https://wiki.ubuntu.com/UbuntuBugControl [19:13] and the lp url is : https://edge.launchpad.net/~ubuntu-bugcontrol [19:14] Bug status: [19:15] We currently have 9 status, they are: New, Incomplete, Invalid, Confirmed, Triaged, In Progress, Fix Committed, Fix Released and Won't Fix [19:15] New status means that no one has triaged or confirmed the report [19:16] The Incomplete status means that the bug is missing some information, for example, the steps for trigger that behavior [19:17] A Confirmed is almost self explanatory, someone else than the reporter is having the same bug [19:17] I guess that Brian told you this, but in case of: Please do not confirm your own reports [19:18] The Triaged state is set by a member of the Ubuntu Bug Control team [19:19] when they think that the bug has enough information for a developer to start working on fixing the issue [19:19] If a bug was marked as Triaged and a Developer is working on fixing the bug [19:19] that report needs to be marked as "In Progress" [19:20] please use "In Progress" just for that, I've encounter some bugs marked as In Progress because the reporter is collecting more info because a triager asked they to do so [19:20] that's wrong, so please don't do it [19:21] If that developer committed the fix to a bzr branch or to another repository [19:21] the reports now needs to be marked as "Fix Committed" [19:21] and when the fix is released, released meaning available on a Official Ubuntu repository [19:22] the status of that report needs to be changed to "Fix Released" [19:22] if you have any doubt or want to know more about status, you can read about them here: https://wiki.ubuntu.com/Bugs/Status [19:24] does anybody has a question regarding bug status? [19:24] It seems that you missed the 'Invalid' status. [19:24] ok so the bad guy the "Invalid" status [19:24] go ahead Iulian [19:25] This status should be used when the bug report does not contain adequate information to determine whether or not it is a bug even if it is resolved for the reporter. [19:26] Be careful when you set this status, when a bug has the invalid status it will no longer show up in default searches. [19:27] We have one question. [19:27] ok [19:27] QUESTION: how long does it takes to be able to join the ubuntu-bugcontrol team? [19:28] sourcercito: it depends on how much work you been doing, the whole process can take a few weeks [19:29] for the whole process i mean, for a new triager to start doing a good triage work [19:29] apply for the team and then get the membership [19:30] ok so Bug Importance [19:30] as i said one of the nice privileges you're going to have if you join to the bugcontrol team is set importances [19:31] we currently have 6 importances [19:31] Undecided [19:31] Wishlist [19:31] Low [19:32] Medium [19:32] High and Critical [19:32] during your first steps into the Ubuntu Bugsquad you're probaby not going to use them [19:32] but you can always ask on #ubuntu-bugs for someone to set an importance for you [19:34] the Undecided one is the default for new bugs [19:35] and it means that there's no sufficient information to determine the importance [19:37] A Wishlist is a request to add a new feature to the programs available on Ubuntu [19:38] rodolfo> QUESTION: Sometimes it's hard to describe a bug in English, specially when it's about the system behavior. In these cases, there would be better to upload a video, demonstrating the bug and how it happens. Is there any idea to make this possible? [19:38] rodolfo: yes, you can do it, the more information you can provide us the better [19:38] there's a program called istanbul that allow you to record things happening on your desktop [19:39] and if you don't know how to explain what's happening , a video it's always a good thing [19:40] ok when a wishlist request it's too complex [19:40] it should rather be written as a feature specification [19:40] you can read about how to write them here https://wiki.ubuntu.com/FeatureSpecifications [19:41] and also if you have some ideas that you'd like to see included on Ubuntu [19:41] you can use the Ubuntu Brainstorm website [19:41] http://brainstorm.ubuntu.com/ [19:42] where you can vote for ideas and the ubuntu developers will probably going to discuss the better ones at the Ubuntu Developer Summit [19:42] so *now* is the right time to do it [19:42] We currently have ~8000 ideas reported on the brainstorm website. [19:43] yep so feel free to add yours or vote for one that you'd like to have on our next version [19:43] Every day we get 5-10 ideas. [19:43] Even more sometimes. [19:44] Ok, so let's get back to the Importance of a bug. [19:45] The Low importance are the bugs which affect functionality. [19:46] They can be easily worked around, are the bugs that affect unusual configurations or uncommon hardware. [19:47] It is a bug that has a moderate inpact on a non-core application. [19:47] Medium importance: [19:48] Most bugs are of medium importance. For example: it has a moderate impact on a core application. [19:49] It's a bug that has a severe impact on a non-core application. You can set this importance if you have a problem with a non-essential hardware component (network card, webcam, sound card, printer, etc) [19:51] High importance: This is a bug that has a severe impact on a small portion of Ubuntu users. It makes a default Ubuntu installation generally unusable. [19:51] e.g: system fails to boot or X fails to start on a certain make and model of computer. [19:51] QUESTION: Can all of the status only be set by the Bug Team or can some status be set by other people, too, and only some are reserved to the Bug Team? [19:52] All statuses can be set by everyone, except Triage and Won't Fix. [19:53] You have to be a member of the Ubuntu Bug Control to set those two statuses. [19:54] Ok, so, the High importance should be set only if it has a moderate impact on a large portion of Ubuntu users. [19:55] The Critical importance is pretty much self-explanatory. [19:55] Only set this importance if a bug has a SEVERE impact on a large portion of Ubuntu users. [19:56] yes, ok if you want to work with the bugsquad we organize the Bug Days [19:56] also known as Hug Days (triage a bug and get a hug) [19:57] well the idea of a hug day is to work together with the bugsquad and project maintainers on a specific task, weekly we organize two hug days, Tuesdays and Thursdays [19:58] QUESTION: what about the bug status "wishlist"? [19:58] first one are more general hug days, focused for example of the bugs without a package and the Thursday ones are focused on desktop related task like compiz, firefox and GNOME applications [19:59] If you want to join us at Hug Days just come to #ubuntu-bugs the days I've mentioned and join the fun [19:59] nosrednaekim: There is no such status, that is an importance. You set that importance if it's a feature request. Pedro just talked several minutes ago about it. [19:59] yes ;-) [20:00] ok so we're running out of time === jcastro changed the topic of #ubuntu-classroom to: Ubuntu Open Week | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | How to ask questions: https://wiki.ubuntu.com/UbuntuOpenWeek/Rules | Ask questions in #ubuntu-classroom-chat, prefaced with "QUESTION:" |See https://wiki.ubuntu.com/UbuntuOpenWeek/JoiningIn to filter out channel noise | "LoCo Teams" - Nick Ali [20:00] everyday is perfect day for triaging so don't wait till hug day! [20:00] yep, you're out of time, thanks guys! [20:00] Yup, thanks everyone! [20:00] thanks you all ;-) [20:00] ok boredandblogging, take it away! [20:01] Hi folks, welcome to the Ubuntu Open Week LoCo Teams session [20:01] I'm Nick Ali, part of the Ubuntu Georgia US team. [20:01] So lets get started. [20:02] First, what is a LoCo? [20:02] LoCo stands for Local Community. [20:02] LoCos are run by the community, not Canonical. However Canonical does support LoCo in various ways that we will cover later. [20:03] Its purpose is to help advocate, develop, and support Ubuntu in your local region. [20:03] Advocacy is the most important job of a LoCo. LoCos should promote Ubuntu to schools, organizations, companies, and media outlets. [20:04] Usually, there is one LoCo per country. But depending on size and population, there may be several per region. For example, the United States has one LoCo per state. [20:04] The list of LoCos is available at https://wiki.ubuntu.com/LoCoTeamList. [20:05] If you find a LoCo in your area, join its mailing list and Launchpad team. Introduce yourself on the mailing list and IRC channel. [20:05] All teams welcome new members. You can help out with advocacy, supporting new members, helping organize events, translation, and many other arenas. [20:06] LoCos have online meetings, usually in IRC, and meet in person. [20:06] They organize or participate in events promoting Ubuntu. [20:06] This can be holding install fests after the release of new version of Ubuntu or running stalls and booths at conferences or expos. [20:06] What if there is no LoCo in your area? [20:07] See https://wiki.ubuntu.com/LoCoTeamHowto on directions on how to set up your online presence. Instructions are provided on how to request mailing lists and forums, setting up wiki pages and IRC channels. [20:07] If you are interested in starting a LoCo, remember that being a leader is more than just setting up your mailing list, IRC channels, etc. [20:08] You will have to motivate all the volunteers in your team to participate and get things done. [20:08] Everyone should be involved in some way, and you will need to encourage everyone to participate however they feel comfortable and to their talents. [20:08] * Communication is key! * [20:08] So, how are LoCos different from existing Linux user groups (LUG)? [20:09] The main difference is that LoCos are specifically promoting Ubuntu. LoCos are not interested in replacing existing LUGs. [20:09] Instead you should work with LUGs to promote Ubuntu. LUGs can be helpful, like getting a place for LoCos to hold meetings. [20:10] LUGs also provide a good starting point for promoting Ubuntu. There may be existing LUG Ubuntu users who might be interested in advocating Ubuntu. [20:10] Some of you have seen references to approved LoCos. What are they? [20:11] Approved LoCos are officials teams that have been recognized for their ongoing contributions and their plans for promoting Ubuntu in the future. [20:11] Approved LoCos get CDs after every release, hosting for their websites (by Canonical), and materials for booths at conferences. [20:12] LoCos wanting to be approved should provide evidence of their experience in advocacy, support, exhibitions, translations, etc. [20:12] To find out how to get approved, see https://wiki.ubuntu.com/LoCoGettingApproved. [20:12] Currently, there are some ongoing changes in how LoCos will be approved [20:12] The Community Council was responsible for evaluating LoCos and approving them. [20:13] A LoCo Council has been created that will be in charge of approvals from now on. [20:13] Can non-approved LoCos get CDs? [20:14] The best way for non-approved LoCos to get CDs is to have each LoCo member order a few from shipit, then collect them together and distribute them as necessary. [20:14] A common question that is often asked: Having a website would help LoCos grow. Why can't non-approved teams have websites? [20:15] Usually LoCos spend too much time trying to figure out what tools to use on their websites, how it should look, etc. The time is better spent contacting local resources and offering to do presentations or interacting face to face. [20:15] Hopefully most teams will work hard and get approved quickly, so this should not be a problem :-) [20:16] Another common question: I can't motivate anyone. Everyone just idles on IRC! [20:16] This is tough. Many people don't like to take initiative, but like to do things. Try giving them a small specific task to do. They might feel more involved at that point. [20:17] Just for reference, a good starting point for LoCos is https://wiki.ubuntu.com/LoCoTeamKnowledgeBase. [20:17] How do run install fests or other real life events? [20:17] The wiki has a wealth of information. [20:18] See https://wiki.ubuntu.com/LoCoRunningInstallfests [20:18] and [20:18] https://wiki.ubuntu.com/UbuntuAtConferences [20:18] questions? [20:20] face to face meetings can be a good way to get started [20:21] they may be small at first [20:21] but getting to know fellow ubunteros can help people bring together [20:21] and easier to start holding events to promote Ubuntu [20:22] it also allows for better opportunities to find out where your local region needs help [20:22] and can take advantage of the LoCo [20:23] join the loco-contacts mailing list to discuss ideas with other LoCos or just to bounce ideas off of other LoCos [20:24] to see what has worked for other teams [20:25] Leadership in LoCos can be structured in different ways [20:25] some teams have an individual that runs the team [20:26] some have a small group responsible for the direction of the team [20:26] there is no best way, but you should see what works for you LoCo [20:30] Synutx asked if the LoCo can provide commercial support to companies [20:31] specifically if the business opportunity can be done under the LoCo team [20:32] while that really isn't the point of the LoCo team, I would probably encourage creating some kind of legal entity [20:33] while probably partnering with Canonical to provide partner services [20:34] QUESTION i like ti get involved on the danish loCo team What steps do i need to tke ? [20:34] smeg0l: take a look at https://wiki.ubuntu.com/DanishTeam [20:35] i would suggest joining the mailing list, irc channel, and forums [20:35] introduce yourself [20:35] see what they need help with [20:35] and ask for what you can help with [20:35] remember, every LoCo needs help [20:35] every time wants to do lots of different projects [20:36] but there is usually a shortage of people [20:36] smeg0l: I'm sure the Danish Team would love to have you [20:37] next? [20:37] QUESTION: Which locos are setting a good example for others to look at? [20:38] nealmcb: take a look at the approved teams in https://wiki.ubuntu.com/LoCoTeamList [20:38] most of them should be pretty active [20:39] australia and brazil are very active [20:39] also lots of teams in central america [20:40] they are very active in organizing events and holding expos promoting Ubuntu [20:41] for example, the nicaragua team just did the FLISOL 2008 event [20:41] next? [20:41] QUESTION: I'm going to host a program at my local library with another LoCo member (Indiana) to get people to try Ubuntu for one week risk free (thank God for Wubi). What are some things I could do to get people interested and come? [20:42] progfou: prepare instructions on how to install Wubi and hand them out with CDs [20:42] provide URLs for help [20:42] the question was from Toadinator, not mine :-) [20:42] make sure they understand that you are willing to help them out [20:43] you might also want to demonstrate the wubi installtion at the library [20:43] just so they know what to expect [20:43] if you walk them through it in person, they will be more comfortable [20:44] also make sure they have links to the indiana team [20:44] forums, mailing lists, or a contact person [20:44] next? [20:44] QUESTION: What if a LoCo team decided to release a Localized distro based on ubuntu, or localization-package to make it more local ie, more Jordanian in my case; would that hurt if we call it Jordan/Ubuntu ? [20:46] Syntux: that should be fine... [20:46] lots of LoCos localize for their region [20:46] i'm not sure the name is an issue [20:46] next? [20:47] QUESTION: What if a LoCo team decided to release a Localized distro based on ubuntu, or localization-package to make it more local ie, more Jordanian in my case; would that hurt if we call it Jordan/Ubuntu ? [20:47] ooops... [20:47] QUESTION (mine this time): do you know if canonical would sponsorize such localisation? [20:48] what do you mean sponsorize? Like doing official translations through Rosetta? [20:48] I would check Launchpad to see if someone has already started working with your language [20:49] you can find some marketing material on https://wiki.ubuntu.com/MarketingTeam [20:50] QUESTION: Would this be a good time to make a plug for the https://wiki.ubuntu.com/MarketingTeam (since there isn't a session this week for them)? [20:50] if your LoCos does create some new material, I encourage LoCos to put their material on it [20:50] so other LoCos can benefit from it as well [20:50] next [20:50] QUESTION: Any idea when the new Loco Council will first meet to approve new teams? [20:51] the next meeting will be during UDS week actually... [20:52] I'm not sure if it will be taking approval requests then [20:52] what's UDS week [20:52] but it will be widely announced when the LoCo Council is ready [20:52] UDS-Intrepid will be Monday 19th May to Friday 23rd May 2008 [20:53] the LoCo Council is working on logistics, so the approval process can be smooth [20:54] and easy for LoCos [20:54] next [20:54] (no other question for now) [20:54] QUESTION: When a Kubuntu team has active members, a forum, a wiki, active IRC, a planet, its own packaging archive, a translation team, participates in many local and national Linux conventions and related events with boots and talks ... why can it not be a Loco team? [20:55] Monika|K: there is nothing wrong with it being a sub-team of a general loco [20:56] but having a separate loco for kubuntu seems too much [20:56] ~5 more minutes boredandblogging [20:56] too much overlap in resources [20:57] a LoCo can promote Ubuntu, Kubuntu, Xubuntu, etc [20:57] a LoCo doesn't just have to do just gnome Ubuntu [20:58] next? [20:58] (no other question so far) [20:59] ok that's it for time, thanks Nick! [20:59] thanks everyone === jcastro changed the topic of #ubuntu-classroom to: Ubuntu Open Week | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | How to ask questions: https://wiki.ubuntu.com/UbuntuOpenWeek/Rules | Ask questions in #ubuntu-classroom-chat, prefaced with "QUESTION:" |See https://wiki.ubuntu.com/UbuntuOpenWeek/JoiningIn to filter out channel noise | "Hardware Debugging and Diagnostics" - Michael Anderson [21:00] hello everyone [21:01] My name is Michael Anderson, aka, nosrednaekim (extra points to those who can figure out what that stands for) [21:02] I have been doing community support in #kubuntu (and now #kubuntu-kde4) ever since the release of edgy, so about 2 years. [21:02] While I do work on the occasional app or bug for Kubuntu, I normally do just user support. [21:03] At least half of the probems in user support deal with getting hardware functioning (its not called "hard" for nothing). [21:03] In this session, we will deal with some simple command line applications to: [21:03] *determine hardware configurations and associated drivers [21:03] manipulating common hardware components [21:03] such as wireless cards, sound chips, and storage devices. [21:04] Why not graphical applications to do these tasks you may ask? [21:04] 1) the output of graphical applications is hard to communicate via any text means (forums, IRC) [21:04] 2) command line output is usually far more informative and easily searchable with grep as well (more on that later) [21:05] 3) a graphical tool is mot much use when you are trying to fix your video card drivers [21:05] This information should be invaluable to you if you are either thinking of doing user support, or commonly do installs [21:05] on different hardware configurations. [21:06] So first, some commands to determine what your hardware devices are: [21:06] (if I'm going to fast... someone yell at me in chat) [21:06] There are three very useful command for this purpose -- lshw, lspci and lsusb. [21:07] Everyone run lspci in a terminal/console. your output should look something like this: [21:07] .... [21:07] 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [21:07] 01:05.0 VGA compatible controller: ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP] [21:07] 08:01.0 CardBus bridge: ENE Technology Inc CB-712/4 Cardbus Controller (rev 10)) [21:07] 08:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) [21:07] 08:04.0 Ethernet controller: Atheros Communications Inc. AR2413 802.11bg NIC (rev 01) [21:08] ... [21:08] As you can see, I have a not-so-nice ATI card on PCI bus 1:5.0 [21:08] Why is this important? Well, the PCID is a [21:08] very crucial part of the "Device" section of the many xorg.conf configurations, allowing you to differentiate between multiple video cards in the same configuration file. [21:09] A host of other information can be gleaned from this output such as exact model numbers for hardware components to google with. [21:09] Next command is "lsusb". Everyone can run that too if you want. My output is: [21:09] Bus 002 Device 001: ID 0000:0000 [21:09] Bus 001 Device 003: ID 05e1:0b02 Syntek Semiconductor Co., Ltd [21:09] Bus 001 Device 001: ID 0000:0000 [21:10] ... [21:10] Not really exciting since this is a laptop and the only thing I have attached right now is a webcam i'm trying to fight to get working (yes, I have hardware troubles too) [21:11] Printers and fancy(USB) keybaords will show up here too. [21:11] ... [21:11] Onwards! to lshw, the most powerful command of them all. [21:12] lshw is best run with sudo, since that gives you alot more information. [21:12] Everyone can run "sudo lshw" if you want. [21:12] As you can tell, it takes a bit longer and generates quite a bit more information than lspci. [21:13] Here, you can find good information on everything from your BIOS version to what driver your wireless card is using. [21:13] Lets run through one of these sections and see what information is included. [21:13] .... [21:13] *-multimedia [21:13] description: Audio device [21:13] product: IXP SB4x0 High Definition Audio Controller [21:13] vendor: ATI Technologies Inc [21:13] physical id: 14.2 [21:13] bus info: pci@0000:00:14.2 [21:14] version: 01 [21:14] width: 64 bits [21:14] clock: 33MHz [21:14] capabilities: pm msi bus_master cap_list [21:14] configuration: driver=HDA Intel latency=64 module=snd_hda_intel [21:14] ... [21:14] This tells us alot of information we already knew from lspci. [21:14] It also gives us another very crucial piece of information: the driver and kernel module for the device. [21:14] The module can be used along with rmmod to very effectively disable this piece of hardware or "free it up" for a new driver. [21:15] for instance, here I would run "sudo rmmod snd_hda_intel" [21:15] If you want to permanantly disable this module/device, you can place a reference to the module in /etc/modprobe.d/blacklist with [21:15] 'sudo echo "blacklist modulename" >> /etc/modprobe.d/blacklist ' [21:15] or manually editing that file [21:16] Ok, lets have a +1 fromeveryone who is keeping up [21:16] in #ubuntu-classroo-chat of course [21:16] *classroom [21:17] ok, great! [21:17] Finally, a related command to this is "lsmod" which lists the loaded kernel modules. [21:17] In conclusion, you can "pipe" any of these commands though grep -i (-i makes the search case insensitive) to search for just what you want. [21:18] For example: "lspci | grep -i ethernet" will return: [21:18] ... [21:18] 08:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) [21:18] 08:04.0 Ethernet controller: Atheros Communications Inc. AR2413 802.11bg NIC (rev 01) [21:18] ... [21:19] Thats on my computer of course. [21:19] This is especially useful for IRC support where a pastebin would waste time when you only need one line. [21:20] ... [21:20] The next command we are going to explore is "dmesg" [21:20] Dmesg prints out the errors and status messages from the kernel as stored in /var/log/messages. [21:20] Dmesg output is useful for seeing the /dev location of newly attached removeable disks, and for many other things such as module loading errors. [21:21] Normally, when you run dmesg, only the last 50 lines or so are useful for the purpose, so you may want to pipe the output through tail, or only paste that many lines. [21:22] Now, lets move onto some diagnostics for pieces of hardware that commonly have "issues" within Ubuntu: wireless and sound. [21:22] As many of you may know, Wireless is an especially finicky piece of hardware and the NetworkManager does not always work either. [21:23] Iwconfig is the most powerful command for wireless diagnostics. If you have wireless, go ahead and run that. [21:23] th0 IEEE 802.11g ESSID:"OpenWRT" [21:23] Mode:Managed Frequency:2.437 GHz Access Point: FE:ED:FA:CE:DB:EE:F [21:23] Bit Rate=54 Mb/s [21:23] Power Management:off [21:23] Link Quality:48/100 Signal level:-65 dBm Noise level:-96 dBm [21:24] Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 [21:24] Tx excessive retries:1330 Invalid misc:5687 Missed beacon:0 [21:24] .... [21:24] thats my output [21:24] From this we can the following useful information: [21:24] *can gather [21:24] * the protocol of the card (IEEE 802.11x), if your card is in b mode, it could explain why you are getting slower speeds. [21:25] * the mode, this should almost always be Managed, unless you are doing somthing special [21:25] * Number of Errors for different reasons, these can tell you if your antennae is not on, or if you are [21:25] not correctly connected to your wireless AP (the error numbers in ifconfig are equally useful for this) [21:25] You can also change any of these values (except the errors) with the iwconfig command (probably requiring sudo) [21:26] Run "man iwconfig" to see how each of these (and others) can be changed (but not now since its a fairly long document) [21:26] The next useful wireless command is "iwlist scan" [21:26] is the logical name of the device seen on iwconfig, ath0 for myself [21:26] This should give a list of AP's, their ESSID and any encryption they may have. [21:26] Again, this information may be in the NetworkManager, but the text is both more informative and ALWAYS available [21:27] ... [21:27] Ok! thats it for networking! [21:27] Next, lets do some hard drive diagnostics. [21:27] Here will will have a nice speed contest, so stop watching those movies and playing those games and let your hard drive be dedicated to this benchmark (and your eyes to my talk!!!!) [21:28] run "sudo hdparm -t /dev/hda" or whatever logical drive name you have, maybe /dev/sda [21:29] When its finished, paste the MB/sec measurement in -chat, and we'll see who has teh l33test computer :) [21:31] ok! thank you... as you can see, there is quite a range [21:31] and I would bet that gscholz has a 4200RPM drive with that number... [21:32] if you are getting numbers below 10, its not good, and could cause things to run very slowly [21:33] ok, so that will tell you if a computer might be possibly be performing poorly because of a slow, or under utilized disc [21:33] hdparm can tell you alot more stuff about your disc, as well as perform some --many potentially dangerous -- performance enhancments [21:34] I just heard all the ricers listening to this talk suddenly become very interested,So [21:34] if you are the ricer type, please do read the man page first :) [21:35] ... [21:35] Next, is the command "smartctl" for reading the SMART information for your hard drive. [21:35] you can install it with "sudo apt-get install smartmontools" and execute it with "sudo smartctl --all /dev/hda" [21:35] of course, changin /dev/hda for your device name [21:36] Note... if your load count is over 100,000 and you have had your computer for a year or less, you may have the [21:36] infamous power-management bug which could potentially drastically shorten the life of your drive. [21:38] Ok, everyone done with that? [21:38] ... [21:39] SOUND! [21:39] lets have a -1 from everyone who has had a problem with this essential function. [21:40] I'm not very good at sound since it has always Just Worked(tm) for me, and I mostly only have experiece with commands I personally use. [21:41] However, there is one command that is vital for sound debugging that I have been told about, and that is "alsa-info.sh." [21:41] you can get it with "wget http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh" [21:42] (there is a wiki page for sound troubleshooting here as well where you can get this information https://wiki.ubuntu.com/DebuggingSoundProblems ) [21:42] execute this command with "./alsa-info.sh --no-upload" [21:43] Include the output of this in your bug report/forum post for better reponses (I personally have no clue about what it all means, so don't talk ot me about it :P [21:43] crimsun, you about? [21:44] I guess not.... progfou I can take questions now [21:44] QUESTION: What do the numbers in brackets mean ie [ 320.656000] (dmesg output)? [21:44] gscholz: that is the "kernel time" in seconds since boot [21:45] next? [21:45] QUESTION: how to get rid of the problem sr0 device? i am don install new version ubuntu because of this problem [21:45] I am not aware of that issue or how to fix it, sorry :( [21:46] next [21:46] (no other question so far) [21:47] QUESTION: What does that tell me (load cycle)? How to repare? [21:47] gsholz, no, it simply tells you that you have an alot of on/off cycles, which depending on the age of the drive, can be very bad [21:48] A word about what you should include when you make a forum post about certain issues [21:50] VIDEO/X problems -- always include your /etc/X11/xorg.conf, the output of "lspci | grep -i Vesa" and the contents of "/var/log/Xorg.0.log" [21:50] QUESTION: What if my HDD has a load cycle count over 100K? Is there a script/patch to get around this? [21:51] if you have a laptop, yes, there is a powermanagement patch to lessen this [21:52] QUESTION: There are plans when (if ever) to include into the Ubuntu distro an application with human interface (GUI) to analyze and configure hardware problems regarding network devices drivers, sound drivers, tvtuner devices? [21:52] rodolfo: here https://launchpad.net/bug59695.html [21:52] DoruHush: I am not aware of what Ubuntu has in that regard, but I know Kubuntu(KDE) includes such a app by default [21:54] DoruHush: the ouput is akin to lshw, so you can't exactly fix things within it though [21:54] DoruHush: such a application would be very nice though, yes. [21:55] OK, I hope this session has helped you debug hardware problems better [21:55] many of the commands I listed have more options, so "man programname" will help you hone your detection skills even better [21:56] Thank you all for coming out today (and to OpenWeek in general since this is the last general session)! [21:56] thanks Michael! [21:56] ok, that was the last session, thanks everyone for coming! [21:57] and especially to our speakers for giving up their saturday! [21:57] I am now opening up this room for feedback and questions about openweek itself === wirechief is now known as wirechief-intel [21:58] jcastro: thanks for putting together a fascinating week! [21:58] you're welcome, thanks for coming! [21:58] a session on marketing might make sense next time [21:58] Awesome, learned alot! [21:59] jcastro: great week :D [21:59] too bad we didn't get a training session [21:59] thanks jcastro :) [21:59] nealmcb: yeah for sure I will schedule training next time [21:59] specially for including my last minute request! [21:59] jcastro: just before the open week started, i heard a comment about the timing of the open week sessions not being ideal for people who aren't in a timezone that's close to UTC. Are there any plans to look at ths for future open weeks? [22:00] also the intro to mobile Q+A was interrupted by the presenters DSL messing up so we will reschedule that again as well [22:00] jcastro: Excellent open week, the speakers did a fantastic job. Thank you. [22:00] yep, great week! even if I sadly miss almost half of it... hopefully we'll get logs online :) [22:00] I wonder if a regular schedule of session, like one a week at different times, would work, rather than a firehose of info for a week straight [22:00] Lardarse: yes I have been knocking the idea of hemisphere-specific openweek, but it's difficult enough to get enough speakers for the one open week [22:00] progfou: they should all be up by now [22:01] nosrednaekim, ok I'll correct a sudo one right now then ;-) [22:01] nealmcb: that's a good idea, I will put that down, thanks [22:01] progfou: ah! forgot about that! heh [22:01] progfou: thanks [22:02] I noticed that attendance is down a bunch today (by 100 people), do you guys think it's worth having sessions on a saturday? [22:02] jcastro: not a full day, weekends are for living [22:02] I agree. :D [22:03] just my .02 [22:03] jcastro, I second for the training one! I'm interested in trying to do some in Vietnam and so I'll need to learn how to organize them [22:03] I thought weekends would be more attended [22:03] because there would not be so much time zone difficulties [22:04] Monika|K: I was expecting that as well [22:04] (note: we'll do that in native language here, so we'll need some translation work, which means access to materiel first...) [22:04] monday and tuesday sessions were packed.. [22:04] How was Thursday, as a holiday in most of the world? [22:05] jcastro: maybe a way to solve the timezone difficulty would be a audio component, a podcast but then again I have suggested something like this when I met you [22:05] eh... what holiday was Thursday? [22:05] <_< [22:05] nearly every session had around 300-350 people in the channel [22:05] there were two holidays on Thursday [22:05] except today, where we hovered around 200-ish [22:05] publishing stats on attendance would be nice, to help us all figure out what might be worth changing [22:05] one: the first of May, worker's day [22:05] ah.... ok... that comes a month later here in the US [22:05] and the other is always a Thursday ... means something like Christ going back to heaven [22:06] no idea what it's in English [22:06] Monika|K, and the 30 of April in Vietnam ;-) [22:06] the day of Assencion? [22:06] could be [22:07] 1st of June is worker's day in the US? [22:07] that's children's day ... but it's not a holiday (not free) [22:07] Friday was weird at work, I was almost alone in my department [22:07] erm... sorry, I was mixed up... too much coffee I guess :) [22:08] Memorial day is later this month [22:08] and Labor day is in Sept. :) [22:08] I've got one major suggestion: Encourage the speakers to loosen up on their speeches. It seemed like the business-esqe talks didn't get as much in the way of attendance\interest. [22:08] BonesolTeraDyne: example? === jcastro changed the topic of #ubuntu-classroom to: Ubuntu Open Week is over, thanks for participating! | Information and Logs: https://wiki.ubuntu.com/UbuntuOpenWeek | [22:09] progfou: BTW... thanks for handling questions [22:09] Nixternal's talk seemed to pull in the crowd, while... grr... I can't think of the one I wanted to use [22:10] haha... nixternal is awesome :) [22:10] he's cool [22:10] nosrednaekim, you're welcome :) [22:10] nixternal was awesome [22:10] nosrednaekim: he is our version of balmer, after all [22:10] !nixternal [22:10] And no, I don't plan on letting him live it down [22:10] belh... no bot [22:11] btw you can also send feedback to me via mail - jorge (at) ubuntu.com [22:11] nixternal: "ubottu: Oh no! The pointy-clicky Vista lover has arrived! He's rumoured to be giving out free money, too!" [22:11] XD [22:12] We're thinking about doing something like Ubuntu Open Week for D-A-CH (German-speaking countries), but the planning is not very far yet, not sure if it will work out. [22:12] bit late, but the bots here now [22:12] XD [22:13] !Riddell [22:13] certainly not 7 hours a day [22:13] Factoid riddell not found [22:13] Monika|K: yeah I believe the dutch team islooking about doing a localized "openweek" [22:13] Ah,I enjoyed Open Week. Well, what I could attend of it, anyway. Had to go to work on Mon, Wed, and Fri. [22:13] if there is people-power to do localized openweeks then that would also handle the timezone problem as well [22:14] yes, that's the main thought behind it [22:14] and doing it in German, of course ;) [22:14] even though essentially all Germans speak English, chats are too fast for many [22:15] jcastro: does the doc team mine the transcripts for adding to the wiki and docs in any organized way? [22:15] the scribes team have been doing that iirc [22:16] :-) [22:16] asking for questions ahead of time somehow might be handy also, to help with timezone stuff [22:17] e.g. on a wiki page [22:18] e.g. on the log wiki page [22:18] * nealmcb nods [22:18] since the links are ready as soon as the week is planned [22:18] that might work for the Ask Mark session, but I don't think it'd work for ones in which things are taught like "python packageing" [22:18] yeah, plus the realtime aspect is what makes it interesting [22:18] otherwise it'd be just like a forum thread [22:18] that's true... [22:19] jcastro: you say someone from the scribes team might be creating docs based on the session logs? [22:19] * nealmcb notes the note at the top of https://wiki.ubuntu.com/MeetingLogs/openweekhardy/ReportBugs2 [22:19] tzeentch__: maybe for some things? usually sessions refer to existing docs [22:19] jcastro: yeah - I'd give preference to live questions. but some sessions ended early for lack of questions, and some presenters didn't know what folks were most interested in [22:19] no, he said they « have been doing that » ;-) [22:20] they have been posting the logs ups [22:21] jcastro: any idea how to let them know to skip 'python packaging' one? just to avoid duplicated effort. i created a tutorial from it (on stani's request). [22:21] are the logs managed manually? (I'm currently waiting for this one: https://wiki.ubuntu.com/MeetingLogs/openweek/hardy/hardwareDB ) [22:21] ah, ok [22:22] tzeentch__: you can add something to the top of the log as in "Check out the guide _here_, this info is now deprecated" or something like that [22:22] tzeentch__, thanks for this work! where will you put it? [22:22] progfou: yeah someone has been doing them, but if you want and have logs feel free to add them [22:22] progfou: yes, someone has to manually enter them into the wiki after formatting them nicely [22:22] jcastro: ok, it's on the wiki: https://wiki.ubuntu.com/PackagingGuide/Python [22:23] tzeentch__: oh cool! [22:23] tzeentch__: link to that page on top of the log but keep the original log intact for archival purposes [22:23] jcastro: no probs [22:24] tzeentch__: yeah - pretty! [22:24] stdin, done (I've uploaded my log from XChat), but what's the meaning of "formatting them nicely" here? [22:25] tzeentch__: you might want to link the other way also, to help people find it and other openweek transcripts [22:25] ok any more burning feedback? I need to get food soonish [22:25] nealmcb: heh, thanks! ok, will do [22:25] :-) [22:26] progfou: just making sure it has not clutter like join/part messages [22:26] jcastro: you've earned a nice meal..... [22:26] and a beer! [22:26] \o [22:26] progfou: where did you upload it? [22:27] free beer as in free beer ;) [22:27] jcastro: I would like to complain about last-moment changes... it really is a pain when you are in GMT+0700 ! but the quality of the sessions would let me forgive everything ;-) [22:28] Monika|K: Prost! [22:28] :-) [22:28] progfou: yeah, that was unfortunate. :-/ [22:28] that is not a normal thing we do [22:28] what happened? people sick? [22:29] mark's schedule got wonked for us at the last minute. :-/ [22:29] ok off to dinner, feel free to hang out! [22:29] stdin, on the wrong page... :-P I've just redone it [22:29] what's wonked [22:29] have a nice dinner! :) [22:29] Monika|K: abruptly changed [22:29] progfou: looks good to me [22:30] or fouled up [22:31] gute Nacht [22:36] stdin, should the log be kept exactly as the original or may I have the right to correct some errorneus command line? (acknowleged by the author) [22:37] good night all [22:38] progfou: if the commands are dangerous then I would say it's a good idea, but if they aren't (and the author corrects them) then I don't see a reason to [22:38] I'd rather the log was as un-tampered with as possible, it is a log after all ;) [22:39] the command is not dangerous, but not useful too because of the mistake (so the reader may be misguided because of this error) ; the author forgot to correct it during the session, that's why I proposed him to correct it [22:40] if the correction isn't in the log, then go, correct it :) [22:47] done, and so I've finished with my DUD (Daily Ubuntu Duty) and I have the right to go to sleep and have nice dreams ;-) [22:48] see ya everyone! [22:48] * progfou is gone to sleep... ZZZzzz [22:48] good night [22:48] later