Today I'm speaking for myself in sort of personal capacity as a Linux maintainer, rather than anything to do with arm. So, yeah, today I'm here to give you a whistle stop tour of embedded Linux. So, so the goal here is to give you an overview of the embedded Linux landscape and point you in the direction of some interesting projects are out there and give you some ideas for the sort of things that people do with Linux in the embedded space and how people work with Linux in the embedded space. Because it's covering a huge area, it's going to be a fairly or a very high level talk, and it's going to cover each individual area that I cover in quite a superficial level. If you have questions as kind of says please don't hesitate to ask, we can go into things a bit more deeply. The idea with the presentation is to start discussion and give you ideas. So, by all means, you know jump in whenever throughout the presentation. If you, if you have questions or comments or anything like that. So just to give sort of a brief orientation. I'm going to start off by just firstly defining the ground explaining what I mean when I'm talking about embedded systems. And then I'll move on to give a high levels tour of embedded related projects in the next space. So, I'll go to that in roughly three levels I'll start off talking about embedded projects or tool systems, the, you know, a complete thing. And then I'll drill down a bit to talk about the operating systems people use in an embedded context on Linux, or using Linux rather. I will go go down another level to talk about some of the individual programs that those operating systems use. So the Linux kernel is one example of those but there are, there are a few others. So, yeah, like I say very high level talk, mainly pointers to useful information projects and the focus here is on free software so I've skipped over a few things that are out there and use Linux but are mainly proprietary. So start off with what we mean when we talk about embedded system. Frankly, it's kind of a fuzzy concept. You can write formal definitions. But any formal definition that you write there's going to be places at the edges where, where the definition doesn't apply either something sort of fits in the definition but nobody looking at it would say it was an embedded system. There are things clearly to everybody concerned to look like embedded systems, but they don't fit the definition for whatever reason. So, what I'll say is that for the purposes of this talk is, is kind of fuzzy, but it's about how developers and users interact with the system. From a development point of view with an embedded system, you're thinking about hardware, you're thinking about very specific hardware, a particular, a particular machine, not not just a device within a machine, but a system as a whole. And you're thinking about that at a very low level interacting with the hardware, what very specifically will that hardware do. And from a user point of view, you're thinking about something which you probably know that there's a computer there, but you don't really interact with it as a general purpose computer. You interact with it as some level of fixed function device, which does a thing. And some of how it does that thing is, is based on software. But it's not really important to how you deal with the thing that that's the case. You're dealing with the system as a whole. And the development side of that gets influenced by, or the development side of thinking about things gets influenced by meeting the user that user need. And the user side of that is partly a function or. And the user side of that is partly a function of what the developers are doing. So, hopefully that makes some sense. I don't know. Please. So, when people when you say embedded system. The first thing people often think of is the small single board computers that are commonly are quite widely used. So here's a couple of examples I've got one here physically as well to give you an idea of how big these things typically are that can be much bigger.  So they've got USB, so you can plug a keyboard on a mouse in they've got ethernet and Wi-Fi so you can connect them to a network. And they've got all it's not so visible in these pictures here HDMI so you can connect up a monitor so you can deal with them just as a computer. But what's really interesting about these for the point of view of them being embedded is is the connectors they've got that allow you to plug extra hardware onto them. So if you look at the back, I can't point to this. Can anybody see my my pointer on the screen. Yes, we can see that. Oh, you can see my point. Oh great. That's very helpful. So yes, if you if you look at the this connect this here, you can see that there's a bunch of pins that you can plug something into. And there's the equivalent thing on this board here. Down there. I'm just pointing out just now.  And what people do what people can do with these that really make the difference with these things being embedded systems is you can build extra hardware that plugs onto onto these systems. So for example, onto onto these connectors. So for example, this board I just waved into the camera earlier. This board actually has a small module plugged into plugging into the the equivalent pins on it on it. This is a Raspberry Pi by the way, original Raspberry Pi. And so that this small module extends this Raspberry Pi which doesn't have any audio functionality normally to have what is according to the manufacturer is a very high quality audio thing. And this is a common way of putting together a computer for some sort of fixed function fixed function purpose. It gets used a lot by people working themselves just as hobbyists, but also is quite commonly used in industrial applications. So it's a lot easier to usually to design the custom hardware you need for your application. Then it is to design a complete system. So what a lot of people who need need to want to make hardware do is they take one of these systems they design just the hardware they need, and then they use the off the shelf computer that's available on the market. And sometimes that's not what you need you need something you need the entire device to be built to your specifications. So people also build complete Linux systems from the ground up. Everything from the silicon upwards. So here's a couple of examples over on the left here we've got an Android smartphone. This is quite possibly the most common embedded Linux system that's some people have dealt with I imagine a lot of you have one of these in your hands already. And over on the right here we've got the Steam Deck. This is a gaming console that runs Linux, but the users of these systems never really deal with them as Linux systems on Android. You're dealing with the Android operating system you're installing apps on it but you don't really have general control over the system.  It's all just a games and a system for loading games. However, you can go to the other extreme, you can have something that people deal with as a system, but there's basically nothing custom about it. So this is an example of an embedded product I worked on many, many years ago. This is, well, its function is to be a phone exchange for an office. The users of this system, they'd buy this box, they'd install it, and they would interact with it via a web application that the thing ran. But if you open up this system, what you'll see inside is that it's actually an off the shelf PC. The only custom, or the only interesting bits of this PC are that there's a PCI card sitting here. And this panel, the labelling is custom. But otherwise it's just a PC, the same sort of PC you would get in the store more or less just in a different case. But because of the software running on it, it's turned into an embedded system from the perspective, at least from the perspective of the users and also frankly from the perspective of the developers. And even more to the edges of embedded systems, you've got modern laptops. So a modern laptop is a general purpose computer from the point of view of the user. However, it's also a very specific piece of hardware that needs to work in enabling that hardware requires the developers to supporting it to understand the specific hardware they're dealing with. So they need to know, for example, how many speakers there are, where the speakers are, they need to know not to make the speakers so loud that the case starts to rattle or anything like that. And for some of the more advanced features of the displays and of the audio, you really care about the physical system itself. So from a development point of view, while users are dealing with this as a general purpose computer from a development point of view, the people working to support these systems are basically doing embedded development, you know, in terms of how they think about things and how they deal with things. So does this make sense to people? Are there any questions so far? No questions at this time, Mark, in the chat or Okay, feel free to ask questions. Everybody. Right, so I saw some comments going fast. They're a bit fast for me to keep up with So Sorry, hands are going up. If you want to take one or two questions, let me see who has their hand up. Alexander, if you have a question, just unmute yourself and ask. Oh, okay. I guess. Yeah, if you have a question, just ask. Or type it in the chat or Q&A. There is a hand up. Oh, sorry. I think I clicked back. Sorry. Okay, nobody. Okay, so there is. Okay, there is one question, Mark. It's a longer question. I can try to Read it out to you or it's in the chat. Would you like me to read that out to you? Yeah, that's fine. I can somewhere. So this is from Majid Who's Who's saying that there is a lot of challenges with Assemble because there's a lot of software on a typical Linux system needs to be assembled and Developers need to understand what they're doing, select the correct version of the Colonel and Develop support for their the features that are unique to their system. So he's asking if the problem lies in the choice of system. So yes. So yeah, that is certainly a big A big part of the chat. I wouldn't say it's the only challenge by a long stretch, but yeah, yeah, working out Where to start from is definitely a big challenge that faces people Working in with embedded systems that you Often what people do is they look at What other people are using for similar products and systems and they do something similar. Often there's what are called reference designs. So these are No, I don't have one to wave the camera right now. So these are systems that chip manufacturers or other people put together They're intended to provide an example of sort of how you could make a system. They're not they're not properly finished. They've usually got a lot of rough edges. But they're intended to help people with the problem you raise of figuring out where to start from. Yep. So you're saying in summary, your question is how to choose the right system to start from yes and this this concept of the reference system is Looking at what other people are doing in the same space is often a good place to go with them. You take something that somebody sort of integrated maybe 90%. And then you customize both the hardware and the software to make whatever is you want to do. And if you're doing something truly new, then the Completely different to everybody else, then the problem gets a lot harder. But usually you're not dealing completely with The green field usually you your system is based on something Either in hardware or software terms. And so you can then take take a look at how whatever it was your system is built on was It was put together and you can use that as a starting point and customize it. And yes, as an angel says in the chat, don't reinvent the wheel. So I see there's also a question from Salah. Hopefully I've not mispronounced your name too badly. Asking if users can take a backup of Files and embedded system to somewhere else. And that's something that's really depends on how the The person or the people making the embedded system have built the system. Some systems Are built in a way that would allow that some systems aren't it's really a feature of the the system. And some systems don't even have any enough state on them to have files you might want to back up. So Yeah, it's That's So the question just vanished from me. So yeah, so that that that's A thing that could be possible in some systems but isn't necessarily guaranteed to be available. It's some it's a feature that the system would have to have that the The developers would have to implement. Okay, it looks like we have another question in the chat from Fabio. Do you have a scorecard for the most popular and or promising platform. So Not Not really so I mean I will like a lot of what the rest of the presentation is frankly is going through and walking around a bunch of different Different platforms. I think that's That's not really a question that it's It's possible to Answer you answer because different platforms are designed with very different purposes in mind. So for example, a A system that's built to be a mobile phone will be very focused on things like power consumption and for modern phones where people expect fancy graphics and High-speed networking, you know that those will be, you know, key features that people care about enabling. But on the other hand a system that's designed to run, say an industrial process or control the elevators in a building or something Will maybe be designed, you know, they'll probably be plugged into the mains. They don't really care about power consumption. Unlike a phone they'll be expected to last for say 10, 20 years. And so there's a whole bunch of other considerations that come there with in terms of availability of components, reliability of the hardware That are just not relevant for or interesting for mobile phones. So, yeah, I don't think you can make an you can give a specific answer to that question. I think that's something that you have to If you're thinking about doing something in the embedded space you have to look at and consider for yourself and Work out what matters to you and then select a system that Both hardware and software that will Deliver what the things that you need to make your system work well. So speaking of systems. Let's start going through. If there's no further questions, let's start going through our Tour of some of the system level software that's out there. Here we go. Yeah, so the the the first one I'll mention is Android. That's Obviously very popular in the mobile space it's That's that's what it's primarily there for but it's not some it's not actually just for phones it's very widely used in general that that comes from That comes from a couple of Places what one is that chip manufacturers see that there's a lot of phones being sold and they want to Get into that market so they They target a lot of their software support at The phone at the phone market and then people want to use those chips and other applications they pick them up and they pick up the software that came with the chips Which happens to be based on Android. And the other thing is that while Android is intended for phones it's also just a general user interface for Custom hardware that can be repurposed with a bit of work for other things so people Already have skills or know people with skills in In Android and they Until they build their system on Android so they can reuse all their user interface Design and implementation knowledge With a familiar system and also get third party apps maybe depending on what the application is So In terms of developing Android itself rather than Developing with Android the two big areas that people work on are Device support so enabling systems to run run Android Whether that's new hardware or maybe sometimes keeping older hardware running newer versions of Android And also working on adding us features that Are needed for whatever application they have So maybe feature controlling real time maybe some fancy multimedia things Who knows The sky's limit really when it comes to think of applications But unfortunately For people not working for big companies Android itself is mostly developed While it is open source it's mostly developed within Google with their Partners for For application, specific applications So a lot of the community effort around Android is centered on Lineage OS Which is a project that takes the Open source releases that Google do from the Android or the Android project within Google does And then they build on that so they do a bunch of work in both supporting hardware So like I mentioned keeping old phones running is a big part of that And also enabling OS features that people want So one reason you might run Lineage OS is because there's something you really want Lineage OS happens to have it So Sandeep in the chat Mentioned that he's seen Android used for car dashboards, exercise machines and point of sale machines Yep all good examples Yeah I actually have an exercise machine sitting in the other room in my flat here Which runs Android And Majeed is asking for Recommendations for securing embedded systems So that's a very open-ended question When you ask about securing things So one The important thing with security is to think of what the attacks You're worried about are And working out how to both try and stop them happening obviously And how to mitigate problems if they do happen So there's big things you can do Like not connecting your system to the internet If your system has no network connection Then there's a lot less of your system that somebody can talk to And make it do untoward things If you must connect your system to the internet Make sure you can ship software updates for it And provide those updates promptly In terms of non-network things Yeah Tim Bird has linked in the chat to some security recommendations Thanks Tim So yeah in terms of avoiding the system doing untoward things Based on somebody who can physically access the system It's a lot tougher To make sure that whatever ways people can physically interact with the system Only do the things that they're supposed to do Which in turn depends on what those things are And this comes back to the backup question that was asked earlier If you're supporting somebody plugging in a USB drive And copying files onto it Then you need to start worrying about What will happen if somebody plugs in a malicious USB drive That's maybe trying to trigger some software bug on your system So that's kind of a rambling answer But hopefully that's helpful pointers at least to things And like Tim's link there Which is to the embedded Linux wiki Should hopefully have a bunch of stuff that's a bit more practical and useful And less hand-wavy And Eric has asked in the Q&As about secure distribution upgrades I don't have a link off the top of my head like Eric asked for That I could point to But I would suggest checking out the embedded Linux wiki And in particular there's a list of presentations there From the embedded Linux conference over the years And I know that there have been some talks done at ELC in the past About over-the-ear updates Which hopefully would point you in roughly the right direction But yeah I'm afraid I can't I don't have anything immediately to hand off the top of my head And there's another question from Sandeep about Driver and development and debugging So I was going to mention the kernel later on towards the end of the presentation So if you could remind me to talk about that topic Later on when I get to the kernel bit that would be great, thanks I'll do that Thanks Right, so moving on, yep So if you don't like Android for whatever reason There are a few other phone and tablet-focused OSes that you can look at One of the most interesting ones is Post Market OS Which is a from scratch implementation of something that's essentially an Android competitor It's an interesting project to check out And there's also Ubuntu Touch Which was originally developed by Canonical Although they now don't really work on it so much And it's now entirely done by the community Which is as the name suggests Basically a port of Ubuntu to work on phones Phone type hardware like tablets And Plasma Mobile is a similar idea for KDE The desktop environment It's the KDE developers taking KDE and adapting it to mobile So, yeah, those are interesting projects to check out If you want to work on a phone type hardware But you're not so interested in Android for whatever reason Another big area and probably one of the earliest areas for embedded Linux is networking So this comes at all scales The interesting thing here is that Linux has a very powerful and flexible network stack It's probably the most powerful and flexible network stack out there Certainly the most powerful and flexible one that you can readily get access to But consumer products based, and even frankly a lot of enterprise products based on Linux don't really let users get access to the Anything like the potential of the stack You can't do very much with them at all So one of the OpenDWRT and OpenWRT are both projects which take Mostly consumer grade routers, just things you can buy in the store And then they replace the firmware on those systems with custom firmware Which aims to let people do whatever they want and can With the Linux networking stack, so that could be setting up VPNs, that could be advanced firewalling That could be trying to prioritise traffic Could be separating out different devices on your internal network from each other Really it's a sky's the limit thing in terms of what you can imagine doing And what you can try and accomplish with the software So in technical terms there's two big bits to these things And they're both very similar projects by the way They're doing roughly the same thing in very similar ways There's some differences I don't want to get into Frankly I don't really understand, never mind I want to get into it right now But in technical terms there's two bits to what's going on here There's the kernel bit where people implement support for the various devices that are out there So that's things like getting a kernel that can work on the device And then making sure that the kernel works as well as it possibly can So optimising the performance of the networking hardware and anything else that's relevant For example enabling features that maybe can be supported in the hardware but aren't for whatever reason And then there's also the applications that run on the system These for both DDWRT and OpenWRT are primarily web applications So when an end user is dealing with one of these systems and configuring it Usually they will try and go in via the web interface And that web interface will then configure the Linux networking stack to do whatever the user needs Whether that's setting up a VPN, monitoring traffic, firewalling things, whatever So there's a bunch of web type development that you can do in an embedded context Yeah, in these projects And in fact I think both of these projects are actually used by some commercial routers There's some router vendors have decided that they want to ship a more powerful software than their competitors So they've gone and taken these distributions and used that as the firmware for their routers IP Fire is slightly different, IP Fire is more targeting an office type enterprise application But it's kind of a similar idea, but rather than running on a consumer router That's usually targeted at running on a PC And in many ways the goals are kind of similar, but the focus of the project is different And so the way it presents itself to users is different And they also have a birding penguin as a logo, so there's that In the chat I see there's some more questions I think it's more of a comment than a question, but yeah, if you want to take a look at that Mark Yes, that's more of a, yes that's more of a statement than a question Yep, my camera is doing something, there we go Okay, so if there's no questions on the networking type applications Let's move on to home automation, so this is quite an interesting area that's fairly new Or at least the wide adoption of it's fairly new So many of you will be familiar with things like Apple's home kit and Google's home So systems for controlling and monitoring the environment in your home So measuring temperatures, turning on and off switches, detecting whether people are present And maybe triggering actions either from a computer or a phone or Automatically based on some of the things like temperature monitoring, setting the controls for your thermostat So there's a couple of big projects based on Linux that work in this space named a variety of free and open versions of these systems So they're linked here, home assistant and home assistant and open hub In terms of what they do, they're very similar, the difference between the two is to my understanding And I'm not super familiar with either project frankly is more of a focus on how they present themselves to users So open hub is a bit more low level and a bit more focused on people who really want to tinker Whereas home assistant is more aiming for something that's more polished and end user targeted But there's still scope within each for the applications of the other, it's just a more question of emphasis in slightly different communities So in terms of how these systems are put together They're very similar to DDWRT, OpenWRT IP Fire, their applications with primarily a web user interface Some control the apps as well They can run on generic single board computers like the ones I showed before For both of these you typically need some sort of radio to talk to accessories, so for example temperature monitors or what have we So those could either be on your board, on your embedded system or maybe plugged in via USB to it And often because these systems are designed to automate your home and hence be running all the time, people want to select People want to select the lowest power hardware they can to keep their energy costs down So they'll typically want to use some sort of embedded board for that reason as well They're often a bit more power efficient than a desktop computer is So I see there's a question in the chat which There is a question Mark and then I try to answer it just expand on it if you, I think they're asking for it So yeah, yeah so Angel's asking if there's a reference to map, a reference to map in match embedded systems Boards to the sources in the kernel And she was saying that vendors do sometimes provide a repository, which Yeah, so I'll cover this one a bit later when I talk about device tree I think I mean the short answer is the not really Not really one central thing usually you're better off looking at the starting from the documentation for your particular board But you can sort of trace things through from the description of the hardware but I'll cover that later when I mention device tree So yeah sure, I get if you could remind me about that if I if I forget Yeah, yeah I'm on it I have a couple of questions I'm taking notes on to remind you Great thanks Great, so if there's no questions specifically on home automation, then the last area that Let's go and mention for where there's there's full system for it's that you can get is storage so it's an this is another one that's People have been working on with Linux for a long time so again as with networking Linux has a very advanced storage and very flexible storage system and there's lots of support for network protocols as well so People will Often try and build systems which which take the Linux storage stack and make it available over the the network in various forms. Three of the big ones here are three big open source ones here. So there's a rock store, which is a generic Discs shared disks on on your local network focused product or system. So that's Again, as as with so many of these things it's primarily a web application. It also runs networking file systems software as well. And it runs on a variety of hardware from off the shelf PC hardware to to embedded boards. That's, and as well as well as just sharing files. It's also grown some Some support some support for other related things. Things where you might want to where you have a lot you might want to access the bells in the store on your storage. So things like streaming media is a big part of that. And doing backups things like that. It's not just about storage. So Open media vault is kind of similar. It's very much more focused on storage on streaming media though. So things like cataloging your movies your Audio files and then providing mechanisms to get at them and Find the media you want and view it. And finally enterprise storage OS ESOS. That's Very very different thing that that's more much more targeted at I suggest enterprise it's about providing storage technologies like ice guzzy, which does have free open implementations over the network using commodity or relatively commodity hardware. So that that's less interesting to the average home user, but equally well it can be fun to play with. So I see some more questions have popped up so machine is asking if there's resources regarding Linux in biometric systems. I am sure there are. I don't have any offhand. Maybe Tim will be able to jump in with some. Andrew has jumped in and linked to a project called fprint which I know nothing about. But yeah, I don't know but yes I'm certain there are. And pop has asked What my opinion is on using rust versus CNC plus plus. I think for us looks fun. I think I think it's a good choice. It does help with some things there's a learning curve though and it's relatively new. I think thanks to has also linked to some other some other software as well. But yeah, yes, I think it's an exciting technology that's worth and definitely worth investigating but there's a lot of new ground. I don't want to cover so I wouldn't necessarily read completely reject the use of seen plus plus just yet it's a bit early days for that. And Chien chung again apologies if I'm mispronouncing names here is asking if there are projects around cars and car entertainment systems. So that's definitely a thing people do commercially. I am not aware of anything that's generally available to sort of random people not making cars to work on. There probably are especially for the entertainment systems. But I I'm not aware of them. I can't provide points. I'm afraid sorry. If anybody else in the chat has any ideas, please do link them. That'd be very helpful. So, and yeah, Alexander is come to provide a bit of explanation to what print is as well. That's that's good. Thanks, Alexander. Moving on to the software software distributions. So one thing you can do when you're putting together your embedded system is you can just use a standard desktop Linux distribution and run it on your embedded hardware. This is often a really good choice. It can it can work well. A lot of the single board computers do ship images for say Ubuntu or Debian or Fedora. The big advantage with the standard desktop distributions is for most developers is familiarity. So you can you can run your software in an environment that's very similar to what you've got on your laptop or your desktop or whatever is you use as your daily driver computer. And you also have access to all the things that have been packaged for that distribution in the same way that they're packaged when you use them on your when you when you use them on your laptop or desktop. The disadvantage the disadvantage is that you you're dealing with a distribution that was put together primarily for use on laptops, desktops or maybe depending on the distribution servers. So sometimes you find that things don't fit very well to an embedded context. So for example, you might want to start up a GUI, which maybe your system doesn't actually have a GUI. So that's that's an issue and maybe the system isn't so easy to use without the GUI. Or maybe the system is just the the the OS you're familiar with is just a bit too big and heavyweight for the small board you're trying to run on. Yeah, in the in the chat. Prasad is asking for some from guidance on getting started. And she says starting small with Raspberry Pi is a good idea. Yeah, I fully agree with sure there. Let what one of these small embedded boards. Some of them are expensive but there's an awful lot of them are quite are quite cheap and easy to get hold of relatively speaking. So yeah, they're definitely a good place to start in terms of hardware. The other thing I think really helps with this sort of thing is finding a problem. You want to solve or a goal you want to achieve and working towards that. So, as you can see from the the area I've covered already in terms of the the systems. And seeing embedded Linux is, you know, it's a very broad and poorly directed topic. See, and it can be easy to get lost going down different alleys looking at different things unless you have a particular goal in mind. So if it works better for you, it can really help to think of just to think of something you're trying to accomplish, you know, maybe sharing files from a and as would be good or maybe something like some basic home automation stuff, you know, monitoring the temperature in your house or something. So that might be, it might be an interesting project to get started on just, you know, thinking of something you want to do and trying to accomplish that goal can provide a lot of good direction in terms of, you know, when you're trying when you're trying to get going and trying to get a grasp on things. It's a very big area. So finding something, finding this small bit that you want to look at can help focus thing and help help focus your work and help focus your learning. And Sushavan again apologies if I'm mispronouncing names is asking if the embedded system support is available in Kali. I do not know off the top of my head. Hopefully somebody in the chat does. If not, I would look at their website and see if they support. You see what systems they say they support. If they say they support arms. Video is still working. How do you're working video froze for a little bit Mark. Okay, good. Yeah, I saw the video freezing. I was worried it would fall over. I was thinking that when you when the audio cut out you were saying that check called the college in excite and you started to say arm systems if they support arm systems. Yep, yep, so yeah if these. Yeah, yeah, basically check what what systems they support and if they look embedded ish. Alexander and the and can act in the chat are saying be as the smaller Intel systems might be considered embedded as well. And yeah, Kali is just you know Kali Kali is a Linux distro as can access so it's entirely possible it supports embedded systems already maybe if it doesn't live maybe that's an interesting project to work on people are looking for embedded projects to get started with. Because yeah it should be if it doesn't support medicine systems right now. I don't see a reason why it shouldn't be possible for it to work on such things. Absolutely one more thing to add is Kali Linux as I understand is a based on cell next so for people looking at security aspects of embedded systems colleague could be. If it supports embedded it might bring some of the next features. Indeed, yeah. Yep, so look at the time and better move on a bit. So just in another distribution to mention I wanted to touch on or a thing I want to touch on briefly in the distribution section is Android. So Android, like I mentioned it's widely used. In the in the meta sphere, it's it's basically a completely independent ecosystem to the rest of it Linux apart from the kernel. So, if you're working with Android you're probably not working with other Linux technologies other than the kernel. But yeah, it's not much more to say about it as a distribution just that it's yeah if you're selecting Android then that's selected your full software stack for you. So as well as the sort of generic desktop distributions there are also a couple of distributions that are specifically targeted at embedded systems. So the smallest and simplest of them is build route. This is really this is really simple, a really simple system to get going with is designed to build everything you might run on your device from scratch, giving you full control over what what goes on there. It's got a nice simple configuration. It's got a nice simple configuration scheme and yeah it's a quite often a good place to start if you want to go build everything from the ground up and really see everything that's going on going on to your system. Something that's a bit bigger and a lot more flexible is Yocto. Yocto isn't exactly a distribution. It's more a framework for building operating systems if you like. It's designed around the concept of layering. So with Yocto you combine software from a bunch of different sources, some of which will be standard off the shelves once. So for example there's basic things with the very lowest level software like the kernel. In there there's extra layers that you can get which add support for all the hardware that you might find on a given SOC and you can also add in off the shelf layers for a bunch of standard applications and then you can write your own layer for your custom stuff and then Yocto will work out how to combine all these things, work out what it needs to do and build a full operating system image for you. That makes it sound a bit complicated. It's not quite as complicated as I've made it sound. It's very easy to get going with, but there's a lot of depth and flexibility to it. So if you're running into problems with build route not being able to do things you need to do, then Yocto is a good place to move on and look around for things to work with. It's the same idea as build route. It will build everything you want to run on all the software for your system from source. You can see exactly what's going on there and you can tinker with everything on the system. So Sulla is asking about dedicated groups specifically focused on beginners. What I would say is probably a good place to start is the any of the projects, or each of these projects will have their own community of some kind, whether that's mailing lists, IRCs, channels. Some of them have Slack and Discord or things like that as well. So you're finding something you're interested in learning more about and looking at the resources for that. That project is probably the best way into that, I would say. Some of them are more beginner focused than others. Some of them have sort of introductory tutorial things, or maybe suggested bug lists that are easy to look at, hopefully. But yeah, hopefully that's useful. Any more questions on the distributions or comments? Sulla is anticipating one of my later slides there, recommended Zephyr. Okay. So in Pedro is asking if you just need to build a minimal root file system, which software I would recommend. Yeah, both Buildroot and Yocto, as you say, will allow you to build a minimal system. At the small level, the results from Buildroot and Yocto are very similar. The differences between Buildroot and Yocto mainly come into play when you want to do something bigger and more complicated. Yocto has a lot more tunability and flexibility. But the cost of that tunability and flexibility is that you can get a lot more complexity with it too. So I would recommend looking at either of those projects and seeing what makes sense to you, what works for you. They're both perfectly suitable and good projects. Personally, I tend to use Yocto. But that's mainly because I've been using it since before Buildroot was a thing, rather than because there's any specific reason to use it. And Majeed is asking if there, I'm not clear what your question is, if you could clarify maybe. Well, while you do that in the interest of time, I'm going to move on a bit and start talking about individual projects. So obviously this is a Linux foundation thing. We're here to talk about embedded Linux. A big part of embedded Linux is the Linux kernel. There's two broad areas where people work on Linux in a specifically embedded context. One of them is hardware enablement. Can act asking if an industry, Buildroot or Yocto are used. Yes, both of them. They're both used commercially. So yeah. So probably the biggest area where people work on Linux and embedded context on the kernel itself and embedded context is on hardware is with hardware enablement. So that there's several layers where that happens. So the simplest layer is just describing the hardware so that Linux knows how to work with it from. So Linux can run on it without making any changes the actual code of Linux. So that's a thing called device tree. I will cover that a bit in one of my upcoming slides. So once you've described the hardware, you need drivers that can run on the hardware. So that's the the other big area people work on. Shiny new hardware often needs shiny new code to make it do things. So people will. People will work on that either. Either starting from scratch based on documentation from the vendor, or sometimes people will provide or people will look at the software that the vendors provided either, you know, a system, some new ship to system and has made a legally course code release or perhaps the Silicon vendor ships and reference codes that you can look at. And they will work out how to make upstream Linux work on their system or, you know, their particular Linux version that they happen to have on their system work with the hardware. And sometimes it's not just a question of doing the device specifics. It's not just the case that you've got an Ethernet controller and you just write, you can just write the standard Ethernet controller integration. Sometimes the hardware has some shiny new feature that no hardware support and Linux has had before. So you have to go and implement features in the higher level of the Linux kernel to support, to support whatever is your hardware can do so limits can understand the concept of what it's trying to accomplish. So one really simple example of that. I dealt with recently as in relatively recently as an upstream maintainer. The flash ships that a lot of embedded boards used to store their operating systems. Keep on getting originally these were usually used a single signal to transmit the transmit data from the chip to the CPU. Which was slow because you needed to you need to send every but every single bit of the image one after another. So flash vendors started adding support for sending to to for or sometimes even eight bits at once. The kernel didn't really understand how to do that so we needed to add options. To the system for talking to the spy subsystem which talks these chips to allow it to tell the spy control in the CPU and the flash chip that they should communicate with a higher number of data lanes at once. So yeah, so that's hardware enablement. And the other the other thing that people often work on is the hardware all functionally works. But maybe it doesn't work fast enough or maybe it's too power inefficient or what you know there's some there's some metric. The system isn't doing very well on and you know that the hardware could do it you can see that the system is being inefficient, but you need to. You need to do some software work to make sure that the kernel actually works well. So people will go and they will try and optimize the kernel. They will try and enhance the way it deals with hardware to make the kernel run more effectively on their heart or whatever the whatever the metric they need to hit is So there have been a lot of questions just there and I Mark they're mostly there aren't too many questions they're mostly people talking to giving information to each other. One is what are the advantages of building kernel with build route instead of building it from source. That's probably one question there that could be answered. Okay, yeah, so there it's I mean build route will build the kernel from sources part of part of what it's doing the the main advantage of doing your kernel build from within build route rather than independent independently would Is usually the build route will make a whole system image that you can just write onto an SD card or flash once your device or whatever it is you put on there. So if you buy If you if you build thing if you build the whole system at once then you you it's just one step to write that out onto your your device. You can also find that there's some software which will be able to configure itself more optimally if it knows exactly which kernel it's running on so there's maybe features that depend on kernel options that are turned on or turned off, for example that can be selected. So if you're if the things building the applications and the user space knows exactly what the kernel it's work it's supposed to be working with is it can configure itself. Or it can configure the rest of the software to work optimally with the the kernel you're building. Is this a good time for you for me to remind you about the two questions that you wanted to answer during this time. Yes, I know there was one about device tree. Do you want me to just cut and paste them in the chat. Yeah, that works. Yeah. Okay, that's the first one. Right. So, yeah, techniques techniques for developing and debugging, debugging drivers. Yeah, that's, that's a tricky one. It does depend a lot on how easy the the hardware you've got is to work with. As you say, or as the person asked the question originally said the printf debugging is or printk in the case of the kernel I guess is unfortunately quite common here. The, yeah, it's thanks for the reminder can this. It's, it's a difficult question which depends very much on the specific system you have the specific problems you face. If you can get log messages out some way that's a good. You can you do that you can either trace what's happening or you can put checks in the code to make sure that things that you believe are true at a given point in time continue to be true. And then you know display if they're if it finds a problem. You can maybe put some of these store log that diagnostic information on a disk, although there are challenges with that when it comes to making sure that the things actually written out before things explode. You can often get gdb if you've got networking or some things you associate connecting with the debugger is possible. Often even even if it's not very easy. In general, though my advice is, or you know my techniques tend to to be. Yeah, it tend to be that sort of printf asserts in there makes you know verify that everything's doing what you expect and think really hard about it it's not easy if the hardware isn't very well designed for diagnostics which. A fully integrated system often isn't. I'm afraid there isn't anything really good or straightforward there the actually the other thing to check out there is the F trace subsystems so that there are facilities for putting hooks into the kernel for adding extra logging with very low overhead, which can be really really useful so you can trace huge volumes of information with very low overhead without disrupting things in the way that you can if you're printing to say a serial console that's quite slow. Yeah. So moving on to the hardware description bit and. Yep, which is just reminding me. So the way most embedded Linux systems describe their hardware to the kernel is with a special language called device tree. I don't have the time to go into in huge detail here. I will just give you a brief overview and some which you can go and check out check out the documentation for it and. If you want, if you want to learn more, but what did what the device tree does is it writes you write out a description of what the hardware in the system is and how it's connected. And then the kernel looks at that description and then it loads drivers based on what it sees. So that's. These device tree descriptions are often the best way to match up the drivers in the kernel with the. The hardware on the board. And so you'll see. Is talking through this. This example here which is for the GPU on on the Samsung phone socks it seems. CC this. It's just saying this is a GPU and then this this line compatible here is the key one for matching drivers. So if you. This this says that. This device is can be described with a string Samsung Exynos for five four three three Mali and arm Mali T seven sixty so. When the kernel runs it will look at these compatible strings and it will go through its list of drivers. For any drive, see if it's got a driver that says it supports the use of those compatible strings. And if there is one it will try and load that driver against the. It's run with this hardware block. So if you've got a device tree for a board, you can look at the compatible strings for you see listed in that device tree. And you can then go and look at the kernel and see what's supported. And then when the driver and binds to the device, it looks at the the rest of the description of the device. So here you see this line reg says there are some registers at this hardware address that are this big. There are some interrupt signals that the. The device can use to tell the host something's happening. And then we can have other. Other properties that customize the device they'll be defined in the. On a per device basis sure has linked in the chat to. To the documentation for this I don't have time to go into any detail so. Please go and check out the documentation to see exactly how that works. One thing I will mention is that. Often.  There'll be a lot of different blocks of hardware that. The need the need to work together so then the device will also show links between different things. Or different components in the system. So here's a brief example. We have an MMC controller storage controller. Which needs some clocks. One of the. You can see here the I've bolded. The name. There's a named clock. Or a named. Device. With an hand in front of it. And then that references somewhere else. So. In the device tree the device that provides that clock. So here we've got this Samsung Exynos seven clock top one. Provides the clock top one is you is used by the MMC controller there. Yeah.  Mostly used and embedded rather than. On desktop systems. So GPIOs are for simple. Simple individual wires. PWMs pulse width. Modulation. Is a sort of semi analog. Output from a. I O is for. Any random sort of sensor or analog output from a device. And the input display and audio subsystems. Well, obviously they are used on regular computers as well. There. There's quite a bit of embedded work there too, because obviously you need to interact with your system somehow. Yeah. Pedra is asking if you can load devices. After the route is loaded, you absolutely can. So I'm going to. That just works the same way as it does on a desktop system. Fully works. So I've got very little time left. So I will just briefly skate over the firmware section here. The two main. Firmware projects for Linux are UBOOT and Tiana core. Frankly, in the embedded context, you're almost certainly going to be using UBOOT. Tiana core. Is mainly for desktop systems. Although that there are a few embedded systems that. That use it. So UBOOT. Is a program that deals with the. Early setup of the computer of the board. Getting it. Working in the state that Linux needs to start. And it will also. With loading the operating system from whatever storage the system has. Getting into memory ready to start. Yeah. Again, I'm. Short on time. So I'm going to skate on quickly. And mention. Zephyr, which she mentioned before. So this is. A small operating system designed for. Either. Very small systems too small to run Linux. Or also utility processors running within a Linux system. But separately. So this is useful for situations where either your system doesn't have very many resources. Or where you need to do something with very tight time constraints. So one of the reasons. Or one of the main reasons you're likely to run into a Zephyr system. On a, when you're running Linux. Is. A project called sound open firmware. Which is the DSP firmware that's used by most. Non Qualcomm. Chips these days. Including a lot of Linux laptops. Will use a sound open firmware. To deal with the very bottom of the audio stack. So, yeah, if you have a. A small low power. Or very small system or a real time need. Zephyr is a good thing to check out. And. That's the end of the project. So. And. That's the end of the presentation and we have. Maybe. Three more minutes for. For. Questions or. Candice, I don't know if you want to take over already or. You're more than welcome to take. Answering questions. It looks like we might have just got one in the Q&A. So I see, yes. So. Is asking. What are the potential use cases for EBPF and embedded Linux systems. So. They're the same use cases as. For. EBPF. Anywhere else. It can be useful for the sort of monitoring and debugging things. We're mentioning earlier, actually. It's useful for. Yeah, it's useful for it. Yeah, it's useful for instrumenting things. It's useful for. Customizing the kernel without having to. Go and actually modify the kernel code. Yeah. Yeah, so I'm not, I don't actually use EBPF very much. So I'm not super familiar with other than the sort of trace and debug. Applications. But yeah, yeah, anything you can use EBPF for in a. Desktop system or a server you can use it for the same things in embedded system. Pedro and Ravi are asking if and when the system will be available later and yeah, Candice's said it'll be available on the Linux platform on YouTube channel. And. Yazid is asking what the main benefit of Linux is. So the, the, the main thing I would say that you're getting with Linux is an awful lot of shared work. So. I was mentioning the, the networking stack. And the storage stack earlier. You know, there's a huge amount of work gone into making sure the, or into making Linux. A best in work class. Operating system for networking and make a best in class operating system for. For storage. And. You can just pick that work up and use it in your own thing for your own purposes. And suddenly there's an awful lot of work going into making sure that the various embedded SOCs out there work well in. With Linux. And by, by taking Linux or by basing your, your work, your system on Linux, you can take advantage of all that other work that people have done. And you really only have to deal with the things that are special for, for your system. It's all the other great thing about Linux being open source is that, or specifically due to use the open source is that you have full access to the whole thing. So if you run into a problem. With enough time and effort, then hopefully you can fix it yourself or find somebody you can hire who will fix it for you. So with proprietary systems, you're often stuck waiting for a vendor to fix something for you if you run into a problem in the proprietary bits. By basing your work on an open source system like Linux, you have full control or more full control in your much less at the mercy of external vendors. That can be really important, especially if you have to support your product for a very long time. If it's one of these embedded systems that's going to be deployed for 10 or 20 years, then knowing that you don't have to rely on a vendor still being around in 10 or 20 years can be a very reassuring thing. So yeah, hopefully that answers that question. And I see that we're over time. So I should probably hand over to Candice to wrap the session up. Thank you, Mark. This has been great. That's from my side. Thank you. Thank you, Mark. And thank you, Shua, for your time today and thank you everyone for joining us. As a reminder, this recording will be on the Linux Foundation's YouTube page later today. And a copy of the presentation slides will be added to the Linux Foundation website. We hope you are able to join us for future mentorship sessions. Have a wonderful day.


It's Hapalong Cassidy. With action and suspense, out of the Old West comes the most famous hero of them all, Hapalong Cassidy, starring William Boyd. The Ring of the Silver Spurs heralds the most amazing men ever to ride the prairies of the early West, Hapalong Cassidy. This famous hero thrills his 60 million fans with action and dangerous adventure. In the role of Hapalong Cassidy is the popular star of the motion picture series, William Boyd. And now, another exciting story of the early West. Hapi and the school mom. When you have a spread the size of the VAR 20 to keep ship shape, it takes a lot of plain hard work. And it's kind of habit with fellows that work hard, they relax hard too.  Hapi has come to expect this of most of his boys, but when his pal, California, disappears in this same ominous fashion, Hapi decides he'd better do a little investigating. Investigating which leads him to the town's new saloon, the Golden Mill. California? Well, Hapi, my old pal. Oh, this ain't the gosh darnedest surprise. Sit down and name your own pison. How much have you had to drink? Why, not over three bottles. Four, maybe. What? Be careful not to drink too much of the darned stuff, Hapi.  Bubbles? What are you drinking? Sassaparilli. Sarsaparilli. Hapi, I came in here to get me some of the real stuff. And then, well, I guess you kind of lost my nerve. Yeah. With the dog on, someday I'm going to taste it. And when I do, I'll be a rip sortin'. Oh, well, you weren't enjoying yourselves, boys? Ah, we're just leaving. Oh, you can't do that. I'm a morson. This here's my little place. Isn't it a beauty? Right, swanky. You don't turn, it's a swanky. Had them plush seats brought in from New Orleans. Look at that fancy chandelier. Don't see things like that in these parts. Ah, we've gotten along all right. Look at the scenery. Hey, hey, you over there. You'll be careful where you throw it on the signal racket.  Yeah, when he started building everybody, that was going to be a new general store. I guess maybe it's doing more business as a saloon than it would have as a general store. Yeah, I'm afraid you're right. What's that? Duck down. Don't stand there. The positions are there. Somebody's breaking up the place. Hapi, did you ever hear such a ruckus? I can't even see. Hapi, Hapi, where are you? Lots of incarnations are happening out here. Sure, what is it? Nothing just seemed to explode all at once. That's right, Mr. Morrison. I was just sipping myself. You were the goat. Did you start a- This is me, old goat? My friend had nothing to do with this. Hapi, how about time you come back? I'll find who's responsible for this. So when I do what ain't gonna be pretty, I'm gonna break a bone for every piece of my chandelier that's a monster. He's probably Dinky Davis. He said he'd never let another saloon go open in this year, town. Nobody treats a monster this way. We're not paying for it. Rocks to Joe. Lippy, come here. He's awful mad, Hapi. Yeah, I think we'd better go warn somebody. Now, Hapi, you don't need to warn that other saloon keeper, Dinky Davis. He can take care of himself. It's not Davis I'm thinking of. It's the person who threw those, broke those windows. Yeah, but, uh, wasn't it Davis? Wait a minute. I thought I was right. See this? An apple. Now, what's that got to do with it? Well, while the smash was going on, I slipped to the door to see who was doing it. There was only one person in sight across the street for the schoolyard. Come on, California. Let's go to school. Huh? To school? I want to ask the teacher why she doesn't eat her apples instead of throwing them through windows. Now, back to Huffle on Cassidy. Hapi and California are trying to find out who threw a bag full of apples through the windows of the town's new saloon. Number one suspect is a prim little lady with tight corsets and a stern jaw. Even from behind her teacher's desk, they both show. Howdy, Miss Abbott. Well? My name is Huffle on Cassidy. There's nothing I can do about it. Why don't you have a change? The, uh, huh? Oh, the Huffle on part you mean. Well, it's really Bill. William would be the proper pronunciation of that. Oh. What do you want, quickly, to the point? Was this your apple? Oh, why? There's nothing further to discuss. I just thought maybe I could help. Mawson isn't a man to be fooled with. Did he send you here? No, ma'am. Mawson thinks the rival saloon keeper did the damage. I guess I'm the only one who suspects. Oh. Then I've failed. I don't understand. Sit down, please. I'm no reformer, William, but I have a responsibility in this town. And that responsibility is to run this school and try to teach the children to be decent and upstanding. I can't do it with a saloon and a gambling hall right at our front door. A woman alone can't fight a thing like this. I'm used to fighting, William. I've been trying for years to get a new schoolhouse built on that plot over on the south side. I think I'll try persuading Mawson to close his place. You mean you're a better shot than I am with an apple? Well, not exactly with an apple, Miss Abbott. Why, it's the saloon window. The one remaining window. You may not be finished, Miss Abbott, but I sure think you started something. Mr. Davis, I'm Hop along Cassidy. I run the bar 20 out north of town. I'm always interested in what's doing around here. Yeah. Well, sit down. Have a cigar. No, thanks. Well, what can I do for you? I heard it was some of your men who made a shambles out of Mr. Mawson's gold mill saloon yesterday afternoon. Did you also hear what he'd done to my place? Yeah, I had to walk through it to get to your office. I saw some windows were broken. That scunk moves into this town saying he's going to be a general storekeeper, see? He builds that joint and opens it yesterday as a saloon, see? Well, I tell him this town ain't big enough for competition. So then his front windows are broken? I didn't have nothing to do with it. I know you didn't. Huh? You'll come over to Mawson's with me. We'll try to get this settled. Several men have already been hurt in the fighting that's going on. There's one more that's going to get hurt. Bad. We don't learn to stay out of things. My parents got to choose between Mawson or me. One of us is going to stay and one of us is going to leave. You're being pretty foolish, Davis, to continue these fights and brawls. I'm being pretty patient to sit here listening to you. Well, I ain't got no more time. I got to take my boys down to Mawson's place to pay my mourn and respect. Ah, good day. Yeah? Oh, well, do you managed to stay out of trouble this time? Oh, nah, Hoppy. It ain't my getting into trouble that ever bothers you. It's just that when I do it alone, you get jealous. Maybe you're right. You saw Davis? Yeah, but it didn't do any good. He just has determined as Mawson to continue this fight. He's trying to get all the folks in town to take sides. A lot of them will. A lot of them will get hurt before it's over. Yeah, and what for? What's any feud for? Just a fight between two selfish men. And if it goes on long enough, somebody will be killed. Are we going to see Mawson again? To talk sense to him, maybe? Before I do, I'm going in the schoolhouse here and have a word with Miss Abbott. Coming with me? Well, I don't want to, but I guess I...  What's the matter? Oh! Right in the ear! Oh, look at me, Hoppy. Oh, it's dangerous to get this near school. See, in my day, we just made spitballs, but them little critters soak them in ink. You can't stop progress. I'll see you.  If that's what education does for folks, I'm awful glad I ain't been exposed to it. Well, where's your teacher this morning, children? She's late to school. Who are waiting for her? Was she ever late before? Nope. Who's going to make her stand in the corner? Well, I'm sure Miss Abbott will be along presently. In the meantime, can you get along all right? Sure, I guess so. That's fine. Oh, by the way, don't you think you'd better erase that picture on the blackboard? Teacher only has one head, you know. I'll see you later. No apples this morning? No Miss Abbott this morning. Yeah, you mean... I'm not sure what I mean yet. Come on. I'm sure there's someone in there. You got one more knock like that and them hinges will give up the struggle. I heard someone at my door. What do you thought about right, man? How do you do? I'm Mr. Cassidy and we've come to inquire about your rumor. Don't have any room. No, no, I say we'd like to ask about Miss Abbott who rooms with you. I came to rent. Come on if you don't believe me, I'll show you. I already got a rumor. I'll take you right back to Miss Abbott's room. You're doing fine, Hoppy. Keep it up. Yeah, I'd rather bust a Bronco. Right here, Tiz. Now see, this room is taken. I'll say it is taken by storm. Hoppy, look at this. Must have been some struggle. Is that the blood on the floor? Yeah, and here's something else. Looks like a... Now are you convinced I got no room to rent? I kept telling you Miss Abbott lives here. Hoppy, she don't even notice her room is wrecked. This old gal is in bad shape. Yeah, I know she couldn't hear it. Now it appears that she can't even see. I heard that, you toadhead old goat.  Come on, Hoppy. I just let the fuse. You come here and annoy a person and insult them and scare a body half to death with...   Wait a minute. You're under Miss Abbott's window. A piece of torn clothing. And on the ceiling. More blood. Well, let's start looking. Well, there are four directions, Hoppy. Well, I'll start in the only direction I know. Moss, and I'd like a word with you. Oh, the cow puncher. Go ahead. Raise me two boys. I'm in. Miss Abbott isn't in school today. Well, now, what do you think of that? I'll tell you something. I didn't go to school today neither. So I see. But perhaps you did go to Miss Abbott's home, say, last night. What are you talking about? Miss Abbott. She's missing. Oh, what that mean to me? It might mean a lot. Seems you're the one who has the best reason to get rid of her. Are you insinuating... I'm not insinuating anything. I'm asking a question. Where is Miss Abbott? I don't know where she is. But I know where I wish she was. And that goes for you, too. Put down that chair, Ma. You all agree I had to do that in self-defense? Don't you, gentlemen? Yeah. That bullet just burnt your hand, Mawson. I hope I never had to come any closer. In the meantime, I'm staying in town till somebody remembers where a school teacher was misplaced. Now back to Hop along Cassidy and our story, Hoppy and the School Mom. Hoppy agrees with Miss Abbott and has joined the fight. It suddenly takes on a new note of seriousness when Hoppy discovers indications that Miss Abbott has been abducted by force.  Back in the school room. Has Miss Abbott come? Are you going to be the teacher? That's it. Get in your seat. Recess is over. I'm sorry, you kids didn't have a teacher today. We've been nice. Ah, let's have it quiet, please. I've got a little concentrating to do myself. I figured the school room is the best place to do it.  Excuse, oh, sure. Run right along. Now, let's see now. What shall we study? I know we'll have an open discussion. How about each of you tell me what you want to be when you grow up? You over there, young man.  Indian? Why? My pop says we ought to give the country back to him. So what could I lose? Well, it's a neat trick if you can do it, son. Now, how about you in the second row, young fella? What do you want to do? I want to stand in the corner. I want to stand in the corner. Why? It fits my head. I see what you mean. Poor mishandled. Now, about you, young man. I'm Jimmy.  See, I've already got me a coon skin hat. I hear my desk. Well, that's a pretty good business, but I didn't know there were any bear around here. Oh, sure. High up in the hills, there's plenty of them. Only last week, I went with my brother, and he got two big ones, right near the old Mawson cabin. Right. Where did you say? Up the canyon, back in that old cabin of Mr. Mawson's. Do you mean the Mr. Mawson who owns the Golden Mill Saloon across the street? Yes, sir. Cabin's kind of old, and he never uses it much. I don't think there are any more bears around there. Come here a moment, please. You other kids, get out your history books and read about General Custer. But we can't read. Well, look at the pictures, then. Ain't no pictures. Look at the scenery, then. There's plenty of that out the windows. Son, does this cabin you mentioned very far from here? Oh, it's a hard ride up above the timber line. How many folks ever get up there? No, imagine not. That would be an ideal place. Tell me, how do you get there? Well, you ride five miles out to the fork in the North Trail. Now, looky here, you young engine. I want you to get something straight right off.  My pal Hoppy says you need looking after him, and I'm doing this for him. You got that straight? Well, can't you even talk? Here we can. Wait a minute. Wait a minute. All right, now I know you can talk. I guess we better get to studying because learning is awful important. And judging from the looks of some of you, you sure ain't got a minute to lose. Nature. You mean me? How many times is two going to nine? Two and a... Well, that's four. Yes, sir, four with a half left over. What do I do with a half that's left over? Well, do with it. Throw it away. What do you suppose? Half anything ain't no good. Glad I got out of that one. Where's China? China? That's a darn fool question. But I'll tell you anyway. It's a fur piece from here. It had a camp cook once who was Chinese. I knew him for twenty years. Fine fellow. He talked to me all the time. What did he say? He would return to find all you. It was all Chinese to me. You like that, huh?  I got lots more like that. And second thought, you better keep laughing at that one. Sounds like there's some trouble I'd better look into. Keep laughing now, and I'll be right back. Why, it's you, Jimmy. Mr. Cassidy. Well, I didn't mean to scare you like that, but whenever I hear someone that trail me, I just like a rope and make sure that they're friendly. Here, let me take this off of you. I just had to do it, Mr. Cassidy. I hope you aren't mad. Well, I guess I'm a little surprised. Now, I suppose you'd tell me why you're here. Well, you asked me how to get to the Mawson Cabinet, and I was afraid that's where you were going. Oh, I was just out giving Topper a little exercise. Oh, if you aren't going there, I guess it's all right. I guess I'll just go on back. Why, Jimmy? Why if I were going there? Well, I sneaked out of school after you left today. I was trying to get to the creek to do a little fishing without anybody seeing me. So I was kind of sneaking around behind the general store, and I heard somebody talking over behind a bush. Well, what were they saying? Well, one fellow was telling the other fellow that you had just taken the north trail out of town, and that he was sure you were heading for the cabin. I see. Is that all they said? Oh, no, sir.  Blowing up the bridge? Yes, sir. I think they meant why you were on it. That's all I heard. I guess that's enough. And you aren't mad about my leaving school and following you? Jimmy, folks don't get mad when other folks are nice enough to go to all this trouble to say they're live. Oh, gee, I'm glad. Now, let's see. We got to move fast before that fellow overtakes us on the trail. Oh, you don't have to worry about that. He's already far ahead of you. What? He took a cutoff way down the line. It's awful grown over, but he seemed to know it all right. Well, that puts a different light on things. You better go back, Jimmy. Oh, no, sir. I'm sorry, sir, but I can't. Why? Because I've got to lead you to where that fellow was going to hide until you got on the bridge. From there, you can see him and maybe even rope him like he did me a minute ago. Well, let's get going then. You seem to know a lot more about this than I do. You can see him through here, Mr. Cassidy. All right. Now, let me get where this bush won't be in the way. Just a little further now. He's looking around. By a flat, he didn't see us. But he can see our horses above if he looks again. We've got to be quick, Jimmy, and if I miss... Oh, you won't miss, Mr. Cassidy. Got him! I've been used to roping Cass along that I was afraid I might miss a pig. Well, there's the cabin. We'll leave the horses here. Now, Jimmy, I want you to stay here. Oh, no, sir. Haven't I been of help so far? And haven't we got to get Ms. Abbott if she's in there? But... Haven't we? I give up. Would you at least let me lead the way? Yes, sir. Thanks.  Hello, Ms. Abbott. I had a feeling you'd come, William. His name's Hop along, Ms. Abbott. Jimmy, I'll have to give you a black mark for being out of school today. Now, William, will you please untie these ropes? I feel like a bullet, trust up for roasting. But are you all right? Certainly I'm all right. Those fools didn't hurt me. In fact, I drove them out of here early this morning. You drove them? How, Ms. Abbott? With the one weapon a woman always has. Talk. Their ears were good and red when I got through. I wonder where they are. One's asleep on the porch. How many are there? Three altogether. Was Marsden with them when they kidnapped you? I don't know. I just turned the lamp off when they came in my window. I struggled, but they tied and blindfolded me. I found some blood. Oh, yes. I bit one, scratched another. I don't know which drew blood. I'd like to hear more about that later. Right now we've got to get out of here. I guess our best bet is this window. Yeah, I'll look to see if everything is clear. Yeah. Well, if this ain't a surprise... Get back. Maybe this will fix him. Ah, thanks, Ms. Abbott. I always maintained a heel of a shoe is a most adequate weapon. Gee, he sure out cold. That's nothing new for him. He was unconscious 15 years ago when he was a pupil of mine. Stay low, both of you. The other two are about to rust the cabin. Let's see if this will slow him down. Man! Man, listen to me. I just got word. Quiet. What is it, David? A rider just come down trail for Bear Lake. And he says that Ms. Abbott has been found. Listen, that ain't all. She was found all right, but she's dead. Dead? Yeah. She was shot by the vomit she was holding her prisoner. And do you know where she was being held? In Steve Mawson's cabin. Mark, of course that you said. Out of my way, you all walrus. Man, what are we going to do? Now look at him, Mr. Davis. These men ain't in a very nice mood. With a little more of your urgent, there's no telling what they might do. They'll bring justice, that's what. A mob like this ain't no judge or justice. What's the matter? You mixed up Ms. Abbott's killing too? Me? My dislike of school teachers don't go that far. Ah, men! Are you with me? Let's go get Mawson. What do you say? He ain't the one who done it. Let's get him. Yeah, come on. All right, come on. Now back to hop along Cassidy. Well, here he is, man. What are we waiting for? Here, Steve Mawson. Davis, what's the meaning of this? What are you doing here with these men? They're outraged town folks, Mawson. And they just got word that Ms. Abbott was killed in your mountain cabin. In my cabin? Everybody knew you had a feud on, Mawson. But I didn't think it'd go quite that far. I tell you, I have nothing to do with this. Come on, man, let's... That's not to do anything for a while, man. Hop along. There's no word big enough for the awful thing you were doing just then, Davis. A mob with a bad leader is the deadliest thing on earth. What's Ms. Abbott? Ms. Abbott is very well thanked. After the ride down that trail, I'll be standing on my constitutional rights for a while. Oh, don't get this straight, Ms. Abbott. I don't know anything about what's happened to you. Ah, what's the use of lying, Mawson? How'd she get there if you didn't take her? Davis, suppose you tell us how you know where Ms. Abbott was. Wait, wait. One of my... Could it be that you went to Ms. Abbott's room where you were careless enough to drop this band off a very unusual brand of cigars? Huh? Why you... God, reach for your gun. Well, I guess that takes the care of Davis. Thanks, Cassidy. I was in a pretty tough spot. And you'll still be in one, Mawson, if you don't make peace with Ms. Abbott. Oh, Ms. Abbott, I don't want to know no more trouble, but I can't move the saloon of mine after all the money I spent on it. You'll have to spend more to keep getting new windows. All right, I tell you what. If you promise not to buy apples with it, I will donate the money to build that new school you've been wanting on the other end of town. Sounds like a good deal. Yes, indeed. Your offer for the new Mawson Elementary School is accepted. Without any further applesauce. Hoppy! You in there, Hoppy! California, where you been? Trying to keep down trouble in two spots. I couldn't look after the school kids and the mob Davis was gathering two. So... Sorry? So, I dismissed school, ma'am. And I made a friend of every kid in town because I started summer vacation four months early. Goodbye from Hoppillong Cassidy. We hope you'll be back with us soon when Hoppy will again bring you more adventure and excitement. Hoppillong Cassidy, starring William Boyd, is transcribed and produced in the West by Walter White Jr. Hoppy and the school mom was written by Tom Shirley. All stories are based upon the characters created by Clarence E. Mulford. This is a Commodore production.


Glenn Clark with a head coach Tracy Johnson after an incredibly dramatic 2-1 win for Stevenson over Morrisville State Coach down to the final seconds in a really important game for your team as far as seating is concerned for the tournament What an unbelievably gutty dramatic victory for your team. Yeah We needed four points out of the weekend and and we did that so it I would have loved for us to finish it in Regulation, but you know and in quite like you said dramatic exciting fashion We got it done. Can you take me through when you go to an overtime and when you know? It's not that they were playing for the tie, but the tie would have benefited them Just how important it is and and how much you're barking at your team what it is that you're trying to get done to try to get That goal. Yeah, we need to focus on What we need to do to get the puck in the net and that was communicating really just having a lot of heart at the end Of that game, you know, it's it's the second game You're in that extra five minutes and you just got to push through and find that that last gear and then just kick It up a notch. So, you know, I really looked around at them and I just said this is let's have fun with this like let's have fun like this is overtime hockey and you know, I just I'm just happy that we got the result that we did because I really felt like they worked for it and they earned it I don't know what more can be said about any blackburn or Chelsea blackburn. Sorry She's been unbelievable five goals for the weekend and the assist on the game winner. What else can you say about her? Yeah, she she just works hard, but you know it definitely is a team effort And I I honestly saw so much out of our entire team this weekend It's I feel really good about the fact that people are taking pride in that and stepping up And, you know, certainly she's able to find the back of the net But we also have the rest of our team who's who's helping her out with that and keeping the puck out of out of the net, too So just just fun to see our all-around team effort and speaking of Annie and it's keeping Speaking of keeping the puck out of the net. What an effort the night from Annie Smith Hammond and goal Yeah, she stepped right up, you know, we put her in it's not easy to go in cold Like we did yesterday and she played very well And so we just wanted to keep letting her roll with that and I thought she stepped up and did exactly what we needed her to do and That was fun to watch as well. She she really brought it back there And now a big final weekend on tap at Canton. Yeah, we've told the team I'm like we've got to get back to work on Monday. Our job's not over yet We haven't earned a bye week yet So that's what we're aiming for and we just got to get back to what we got to do to make that happen Coach congratulations on a big win. Thanks so much. She is Tracy Johnson I'm Glenn Clark for go mustang sports.com


today we are going to discuss about pulse code modulation at the end of this session what we expect from students that students will be able to explain basic blocks of PCM they must be also able to describe advantages and disadvantages they must be able to differentiate linear and non-linear quantization these are the contents of this session that we are going to discuss first the basic blocker of the PCM system we will be discussing the advantages disadvantages and few applications now let us start with the basic blocker of the PCM system here you can see in this figure the PCS system consists of three basic blocks those are sampler quantizer and the encoder now the functional sampler that you all you know that it is going to take the sample of the input signal but it has to satisfy the basic theorem of the sampling theorem what it states that the sampling frequency must be at least twice of the maximum input signal frequency so this is we are going to assume that the sampling frequency is twice of the input signal frequency now here we see that the output of the sampler here it consists of number of samples so depending on the frequency we have a different samples at different time instants so at that time instant whatever the sample value is there those will be the outputs so here we can see here there are different samples of different sampling values now this output is given to the quantizer now what is the function of the quantizer is that it is going to approximate the real-time sample values so here you can see the basic the process here we see that different amplitude sample values and those are approximate values that we can see here so here for example if if we see that if the sample value is say 2.2 volts so in this quantization level we see that that it is lying between two volts and three volts so here the approximation process will start it will see that it is more closer to the two than the three and the approximation is taken is that is the actual quantized value is considered as a two volts another example for example if the say for example here the sample value is say 0.2 volts so while quantizing it checks that it is in between two quantization levels that is it is going to check between zero and one volt and it is it is approximated to the zero volt because it is closer to the zero volt than the one volt so approximately taken as one so here the quantization is nothing but an approximation so the actual sample values are approximated to the known standard values so the difference between the two quantization levels is also known as step size now the output of the quantize quantizer it is given to an encoder so the function of the encoder is that depending on the number of quantization levels the number of bits for that those sample values those are decided for example if there are four quantization levels then the encoding bits required will be two bits how this we can get it it all depends on the number of quantize levels so in general what we can say that if m is the number of quantized levels then log m to the base two now for example if there are four quantized levels log four to the base two that comes to two so that means for each and every sample those are specified with the two encoding bits if there are eight quantizer levels so log eight to the base two that comes to three bits that specifies that every sample is represented by three bits so the output of encoder it is nothing but simply in those are represented in the form of ones and zeros so the analog signal is converted in one zero one zero form so it is a binary representation now what we are discussed up till now so any data which is analog in nature must be translated into a series of binary digits before they can be transmitted also the amplitude of the sound for example voice data wave is sampled at regular intervals and translated into binary numbers with pulse code modulation the difference between the original analog signal and the translated digital signal is called quantization error as we have here we have observed that when the real-time sample value when it is appropriate to the known standard value there always some difference is going to be occur and that difference is known as quantization error now the analog signal is sampled every t s seconds that is a time interval this is referred as the sampling interval the sampling frequency can be calculated if you know the sampling time period it is one upon t s we get the sampling frequency the samples have three different shapes or we can say three same three different types of three different methods that we can observe here so first is an ideal case that is an impulse at each sampling instant natural a pulse of short width with varying amplitude varying shape that we can see it flat off where pulses will have the flat shape so you don't have the natural shape shape of the input signal so here this can we can get such type of flat outputs by using sample and hold circuits now we have discussed about the quantization now think what can be the different possible types of the quantization so quantization broadly are of two types linear quantization and non-linear quantization linear quantization is also known as uniform quantization and non-linear quantization is also known as non-uniform quantization to decrease the distortion the number of steps in the given amplitude range has to be increased more quantization levels in small amplitude region and less quantization levels in large amplitude region are planned and this results to non-linear quantization also called non-uniform quantization now how we can calculate the bit rate or the bandwidth of the pcm system the pcm bit rate of a given signal can be calculated from the number of bits per sample multiplied by the sampling rate so in short what we can say that bit rate is equal to number of bits per sample into fs that is the sampling frequency a digitized signal will always need more bandwidth than the original analog signal the bandwidth required to transmit the signal depends on the type of line encoding used here different line encoders are there like nrz nrz m return to bias by phase Manchester so different so depending on the type of line coding used the bandwidth is going to vary it so what are the advantages of the pcm with the pcm we can have uniform transmission quality it is compatible to different classes of traffic in the network integrated digital network increase utilization of existing circuit good performance over poor transmission paths low manufacturing cost so what are the disadvantage of the pcm system inter-symbol interference is the major problem of the pcm system noise and crosstalk leaves low but rises the attenuation this requires large bandwidth for transmission than analog type and integrated digital network can be realized some applications of the pcm system that pcm systems can be used in digital Germany we all know that typical sample frequency used in telephony is 8 kHz pcm is also used in compactics also used in digital audio application as we all know that the enhanced pcm systems are dpcm and the adpcm so where data compression techniques are widely used so the pcm is the basic building block of all these techniques


Hello and welcome to the session. In this session we will discuss how to apply quadratic equations and equations in one variable to solve problem. Now using quadratic equation let us see the parallel illustration. Now, lava coming from the eruption of volcano follows a parabolic path the height h in feet of a piece of lava. Two seconds after it is ejected from the volcano is given by h of t is equal to minus t square plus 16 t plus 906. Now we have to find after how many seconds does the lava reach height of 1000 feet. Now let us start with its solution. Now where we are given the function of eruption which is a quadratic equation where height h is the function of time t. Let this be equation 1. Now we have to find time t when height h is 1000 feet. So let us put h is equal to 1000 in equation 1. So here we have 1000 is equal to minus t square plus 16 t plus 936. Now let us subtract 936 from both sides. It should be 1000 minus 936 is equal to minus t square plus 16 t plus 936 minus 936. Now forever this will be 1000 minus 936 is 64 is equal to minus t square plus 16 t. Now subtract 64 from both sides of this equation. So it will be 64 minus 64 is equal to minus t square plus 16 t minus 64 this further implies 0 is equal to minus t square plus 16 t minus 64. Now multiplying by minus 1 on both sides we have minus 1 into 0 is equal to minus 1 into minus t square plus 16 t minus 64 the whole. And this implies 0 is equal to minus t square minus 16 t plus 64 or we can write it as t square minus 16 t plus 64 is equal to 0. Now this is a quadratic equation in t. So let us factorize it by splitting the middle term this implies t square minus 8 t minus 8 t plus 64 is equal to 0 and this further implies t into t minus 8 the whole minus 8 into t minus 8 the whole is equal to 0 which further implies t minus 8 the whole into t minus 8 the whole is equal to 0. So either t minus 8 is equal to 0 or t minus 8 is equal to 0 which implies t is equal to 8 or t is equal to 8. So in both these cases we are getting t is equal to 8 thus t is equal to 8 seconds. So if we reach is height of 1000 feet in 8 seconds now many times we use quality inequalities or quality equations in solving the real life problems which are related to find profit, loss, maximum height and minimum height of an object etc. Now we can find the solution of quality inequalities graphically as well as algebraically. Now here we will discuss to find the solution algebraically. Now let us see an example and here calculate daily profit p in dollars for solving x for solving subscriptions is written by the formula p is equal to minus x square plus 8 t x minus 1500 and here we will have to find that for what function of x is hyperbolic positive. Now let us start with the solution. Now here we want to find values of x for which profit that is function of x given by p of x is positive. Now we know that it is positive if it is strictly greater than 0 is positive p of x is greater than 0. Now here profit p of x is determined by the equation minus x 50 x minus 1500. Now p of x is positive if p of x is greater than 0. So here p of x is positive if minus x square plus 8 t x minus 1500 is greater than 0 and this is the quality inequality. Now to find its solution we will follow three steps. In the first step we write its related equation and its related equation will be minus x square plus 8 t x minus 1500 is equal to 0. Now in second step we solve this quadratic equation for critical values of x which will give us the set of intervals which represents the solution of the inequality. Now let us see equation number 2. First of all we need coefficient of x square positive for this we multiply this equation number 2 by minus 1 on both sides and it will be minus 1 into minus x square plus 8 t x minus 1500 is equal to minus 1 into 0 which implies x square minus 8 t x plus 1500 is equal to 0. Now let us factorize this quadratic equation in x by splitting the middle so this implies x square minus 30 x minus 50 x plus 1500 which is equal to 0 which further implies x into x minus 30 the whole minus 50 into x minus 30 the whole is equal to 0 and this implies x minus 30 the whole into x minus 50 the whole is equal to 0. Now either x minus 30 is equal to 0 or x minus 50 is equal to 0 which implies either x is equal to 30 or x is equal to 50 so we have got x is equal to 30 or x is equal to 50. Now in the next step we test for any value from the given intervals and we will check which value satisfies the given inequality that is we will plot these critical points which we have obtained in step 2 on the number 9. Now here we have got x is equal to 30 and x is equal to 50. Now here you can see that the points x is equal to 30 and x is equal to 50 divide the number line in 3 parts. Now in first part that is the split shaded portion we have interval s is less than 30. The second part gives us an interval 30 if less than x is less than 50 that is this yellow shaded portion and the third part gives us interval x is greater than 50 that is this green shaded portion that is like each interval which satisfies the given inequality. First of all we consider the interval s is less than 30 it means all these values on the number line that are less than 30 so let us take every part in this interval let it be x is equal to 29 which is less than 30. Now let us put this value in inequality minus x square plus 80 x minus 1500 is greater than 0 so this will be minus of 29 square plus 80 into 29 minus 1500 is greater than 0. This implies now minus of 29 square now 29 square is 841 plus 80 into 29 is 2320 minus 1500 is greater than 0. Now minus 841 minus 1500 is minus 2341 plus 2320 is greater than 0 and this further implies minus 21 is greater than 0 which is plus s minus 21 is less than 0. Thus this interval is not the solution of the given inequality. Now let us take the second interval that is 30 is less than x is less than 50 it means the values that are between 30 and 50. Now let us take x is equal to 40 that lies in this interval. Now let us put this in given inequality so we have minus of 30 square plus into 30 minus 1500 is greater than 0. And this implies minus 1600 plus 3200 minus 1500 is greater than 0 which implies minus 3100 plus 3200 is greater than 0 and this gives 100 is greater than 0 which is true. This means this interval is the solution set of the given inequality. Now lastly we have this third interval that is x is greater than 50 it means all the values that are greater than 50 so let us take x is equal to 51. Now let us put this value in the given inequality so we have minus of 51 square plus 80 into 51 minus 1500 is greater than 0. This implies minus 2600 and 1 plus 4000 and 80 minus 1500 is greater than 0 this further implies minus 4100 and 1 plus 4000 and 80 is greater than 0. This further implies minus 21 is greater than 0 which is false thus this interval is not the solution set of the given inequality thus solution set is interval 13 is less than x is less than 50 or we can say x belongs to the open interval 30, 50 and solution set is a set of all x such that 13 is less than x is less than 50. Thus Catherine's profit is positive that is p of x is greater than 0 if 13 is less than x is less than 50 that means if x lies between 13 and 50. So in this session we have discussed how to plan a quadratic equations and in equations in one variable to solve real life problems and this completes our session hope you all have enjoyed the session.