 So we're here in a hacker room right here at the Linaro Connect Hong Kong 2018 and you're booting some Android over here. This is Android, AOSP TV. Right. This is, as you can see now, AOSP TV. So it has an interface that is pretty much the same as you've probably seen. With a Leanback UI? Yeah, like a Leanback UI. And one of the things we've done here is put it on a newer version. So this is actually based off the Android 8.1 code while the, I think, all the available TV boxes are still on seven and maybe some have moved on to 8.0, but there's definitely not an 8.1 yet. So this is running on the popular, is it the popular, high-slick and based? Right. This is the old version of the high-slick and popular. There's a new version that is already floating around here and should be available soonish. What's new with the new one? Not that many differences. I think it's mostly bug fixes in the hardware. So what do we see in your code here? What's going on? Oh, what's that? That is just messages coming from the popular board over the serial port, showing a couple of errors that still happen, but that aren't fatal. So what can you do? What would you be doing right now if I didn't interrupt you? Essentially just monitor those, see if there's anything that really needs to be fixed. Before the demo day tomorrow, right? Exactly. So what you've been working on this week? One part of it, yeah. And the other stuff is mobile related? Yeah. The other thing we're going to show tomorrow is mobile phones that have been updated to newer kernel versions. So probably you've seen a lot of phones and then looked at the settings and they all say kernel 4.4.13 or so, which is two and a half years old. Others, we're trying to fix that and to show vendors that they can safely move to newer kernels, at least within the same release line. Which phones, for example? We've done a lot of work getting the Sony Xperia XZ1 to work with newer kernels. Snapdragon 835, yeah? I think it's an 820, but certainly a Snapdragon of some sort. And then there's another pixel or? Yeah. The other one that may or may not make the demo tomorrow is a Pixel 2 XL, which currently doesn't boot, but it's probably not that far away from it. During the show, I was showing you this one. What do you think about this kind of phone? That's a super interesting device. It has a nice keyboard, so much nicer to type on than any on-screen things. And it dual boots between Android and regular Linux, so you can even do some development on it. But it's running on a MediaTek X27, right, with a Mali GPU. Did you hear the story about this open-source Mali driver that's appearing? Yes, it would be really nice if only at a point where it's usable. Did you hear about this? It's called a panfrost, right? Panfrost free open-source driver for Mali T8 series, T6 or T7. So what do you think? Do you think it might be usable or not? I know for a fact that it's not currently usable, because that is one of the biggest problems we currently see in our Linux world. But if it can be usable, that'd be cool, right? Yeah, of course. That would essentially fix all our graphics problems at the same time. That would make a lot more boards immediately usable without having to wait for them to build drivers, including this one. So we could instantly run all the interesting distributions on it, because it wouldn't need a rebuilt binary driver. And so you were very busy with AOSP TV, and you also have the Macchiato bin right here. This is your development board and the Quad A72. This is essentially a board that I'm using to replace my desktop. It has pretty much everything you'd need in a standard development setup. It has SATA ports, so we can connect to a real hard disk. It has DDR4 slots, so we can connect enough memory. It has a PCIe slot, so we can connect a graphics card, but unfortunately that slot isn't working right now. So that's one thing that needs to be done. It's only yours that has an issue, right? Because lastly, now I connect, you had it working. Right. I think there's several different versions of that board, and some have to problem, some don't. So that's something that we'll need to work around. So on this one, I've seen a cellfish OS that's using the LibRibras library to accelerate. Let's say you really like the OpenMend River, right? So what would it take to get that on here? Probably not that much. Essentially, it's an AX64 processor. We have a port for that. We could just copy the OS image over, and then the problem would be getting all the hardware components to work with the graphics drivers. Certainly a problem because it's Mali, and then maybe we'd need a special driver for the touch screen. I'm not sure if that uses any special protocol, but everything else should just work out of the box. Probably a lot of applications aren't really made to work for the small screen like this, but if you can work around that. What do you think about this LibRibras? Do you think it's complicated maybe to put it into, let's say, OpenMend River to speed it up? So essentially what that does is translate regular Linux calls to Android calls so you can use binary drivers that were originally written for Android. I don't really like that idea because it's just another source of errors and you should really have proper drivers, and if the drivers were just as open as they should be, people could compile them for whatever OS they want to use. That is really the right thing to do, but LibRibras is a fairly decent workaround for a problem that currently doesn't have a good solution. But if this Panfrost driver, this open source Mali GPU, how long do you think it might take for it to be good? That can take forever if it even succeeds at all. There have been a couple of attempts before like the Lima driver and then a revival of the Lima driver and both projects essentially gave up at some point. Shouldn't ARM provide support for these kind of projects? They totally should. Well, then they should just open source the driver, right? That would be the same or? That would be even better because those guys know what's in their GPUs, so they wouldn't have to do all of the reverse engineering. And another thing that is taking, you know, the LibRibras is taking like the 4G LTE, like phone calls, some other things, right? There are kind of like Android's things that might not just work. If you just copy and paste your OpenMan driver, maybe it's going to miss some things that Android has, not only the GPU, right? So that would be a challenge too. I mean, that would be... Right. I mean, first of all, the gold when I get hold of one of those devices because you wanted one of those. Yeah, sure. I've already pre-ordered one. Yeah. So the first goal will be to use the Android side to do phone thing stuff and boot into OpenMan driver in our buttons that will allow you to do a boot. So in the first step, we'll just turn off the phone functionality when you're booted into OpenMan driver and boot into Android for that. But of course, in the second step, all the functionality should be available in both worlds. How about running the other Linuxes in a container in Android? That would be another interesting approach that is really what should be happening because you want to access your same emails regardless of what operating system you're currently booted into. You want to access your same contact data and everything. And probably you want... If it's one device, you don't want to go through the cloud in order to just keep your own data and sync with your own device. So the thing that is missing there is essentially mostly the switching between the totally different graphics systems. Android uses SurfaceFlinger and Linux depending on which distribution you're on will use either X11 or Valend and they don't really coexist all that well at the moment. Could you just run one of them in the container somehow? It should be doable to just kill SurfaceFlinger when you're switching into Linux and just kill X11 or Valend and restart SurfaceFlinger when you're switching to Android while keeping the rest of the system essentially running. That's not yet a perfect solution, so that's really something that needs to be worked out. Or maybe you would have to take over the whole screen so you don't get all the Android notifications and stuff if you do stuff in the OpenMandreva, but if you get back, it's there again, right? Yes. So you'd have to take over the whole screen, but you would somehow run it on top of the Android without rebooting or... Yes, and there's probably basically the ground that... There's a tool called KDE Connect that you can put on an Android phone and you can put on a Linux desktop and that essentially makes the phone talk to the desktop and send the notifications there, so you see them. And of course, in this context, that could just be used on the local host, so it would just send the notifications over the network to itself and then the desktop on the other side would display them. So right here in the mobile group and home group room, hacking room, this is the last day of basically a few hours before the demo day, right? So usually there are a few more people, but would you like to introduce around some of the guys that are around here? Yes, sure. Great. This is Andrei. Hi. He's from TI and has been at a lot of Linux connects. Do you want to explain what you're doing? At the moment, I'm mostly busy with the OpenMandre builds, setting up those builds for LG group, adding the features they're working on. Otherwise, these builds are trying to follow reference platform builds. All right, so open embedded stuff. That's kind of like for the embedded market, right? Or runs on any kind of hardware or? This is kind of build system. Build system solution. Yes, it's for embedded market, but mostly yes. This is a way to build your own distribution, if Satan, if you would. Cool, all right. Thanks a lot. And how about over there? Yeah, we have Peter. He's taking it up to home group. Hey. Hey, hi. Yeah, working on the popular two board. So this is the same, the new revision of what Beret was just showing you. Trying to get Opti and Widevine and PlayReady DRM schemes working on the board. So all done to work on the AOSP TV kind of a solution? Yeah, and integrated with Opti, which is the T that Andrei developed. Because all the Android TV boxes out there that are kind of like commercial are not using Opti yet or what security they're using? Quite a lot of vendors have their own teas. We are obviously trying to encourage people to use open source tea. So we provide reference solutions to our members and we're just trying to bring it up for the demo tomorrow. And so just for example, what are you doing there? Are you communicating with it or? I'm just putting a server image from my server at home. Okay, you just want your server at home. To flash on the board, yeah. All right. Is it going to work tomorrow? I hope so. All right. So who else is on your team? I think you know. Do you want to go first? No, you can go ahead. This is Alex from NXP. He's working on the IMAX 8M as you see. Hey, what are you doing over there? Well, currently I'm doing standard development, but because my, our demo is already ready for tomorrow. You got everything working? Well, everything that we wanted to show you. All right. So, but you are still hacking the, is it this one over there? Yeah, IMAX 8. Is it 8M? Yeah, 8M. M doesn't stand for multimedia. No, it just stands for medium or something. But it's one of those that have recently become available on a whole bunch of boards. They're actually on the market now. So it could be for the TV box, set the box market, potentially. Yeah, yeah. Yeah, exactly. Yeah. So I think it's a quad core A53, right? Yeah. Yeah. So we're there and you're doing some, some fixing or some, some, some stuff. Yeah. Going forward for the next step. Yeah. Cool. All right. Cool. Thanks a lot. Yeah. Yeah. This is Janken. You've probably met him. Yeah. He works with me and the mobile group. How long time you work together? Forever. Like five years? Six years? Oh, probably. Yeah. So what do you do and what do you do? How do you work together? Yeah. Baro is my tech leader. Yeah. He helps me a lot on my Android development. So what does that mean, tech leader? Does that mean you kind of like, like suggesting things to do and he just does them or? Essentially it means whenever he sees me, he has to raise his right arm and shout, No. All right. Cool. All right. So do you enjoy working together? No, we're not that kind of company. Of course not. Of course, even though your accent is funny, but it's not that kind of accent. So just what's it called? How do you feel like working with Baro? How is that? Yes. I'm happy to work with him. Yeah. He knows many things about Android, especially about the 2.0. And they are C++ and very downy product. Yeah. So for example, what kind of challenges, huge things has he solved in the last five years you can mention? A lot of things. Yeah. He is essentially maintaining all of our builds and running all the tests, looking at their problems, fixing lots of bugs. Just recently we've had one really big bug that we spent weeks debugging and he finally found a solution for it. That was the settings app was constantly crashing inside ICU and it turned out that it was caused by bugging. What was it? Power management app? Yeah. Yeah. In what? In parameter. In power. In power. Module. Module. How do you find this bug? How do you find the solution? I add some hack lines, some hack source in the code and make it stop. Stop before the crash happened and I then use JDP to debug from there to debug the address, memory address to monitor that. And the JDP point to me that the crash is caused by the power power module. So do you have to be very creative in this business to be able to do this kind of stuff that you're doing? Do you have to imagine kind of where the bugs are and find them and stuff? Yeah. Sure. Mostly debugging tools should take away the need for that sort of creativity but they don't always do. That's the problem when you have a modern system that is highly parallelized. There's just so many components that are running at the same time that if there's any serious problem like memory corruption or so that can interfere with each other. So only this week, twice a year, you meet for the Lenara Connect and the rest of the time you were like in Switzerland, right? Yeah. Switzerland on the mountain. And where are you? Where do you live? Your home in the country? I'm in China. In China? Where? China. I'm living in Tangshan city now. Tangshan, yeah. Yeah. So you meet on the chat, right? And you say, hey, how about we fix it and you just fix it. Does that work? Essentially, yes. We have two weekly meetings on IRC and sometimes a video chat meeting on Hangouts of Blue Jeans. Cool. So it's going to be challenging in the future. There's many things that needs to happen in the mobile group and the home group, right? Certainly. One of the next big things will be Android P coming out and us needing to build ASP versions of that and making sure they are useful and other things are, of course, continuing optimization work and getting all those features and getting the DVB support into ASP TV. Nice. So, lots of things to do. How about these guys over there? Should we introduce? Do you want to say hello? Hey. Hey. So who are you? Yeah. I'm Seba Subramanian. I'm working as a LG as any for Comcast. Comcast, yeah? Yes. So you're working on some home group stuff right now? Yes. We are working on bringing up the secure playback on the WP browser on the high key platform. All right. Does it work? Yeah. We were able to get clear key content playback working, but we're trying to get play ready DRM also means that work is still going on. Cool. All right. Yeah. We do. We have a high key platform here containing RDK media stack so that we have a WP browser. So in that, we just enable the Linaro CDM capable to do clear key and play ready encrypted media playback. So clear key, it's progressed well, so we're ready for the demo. And play ready, Seba Subramanian is going with. Oh. This is the school call. Yeah, that was cool. All right. Yeah. So are you going to work all night to make it work or is it working now? So is it going to work for tomorrow? Essentially, it's working for tomorrow. I'll still try to get that Pixel 2 XL to do something useful within your corner. But the problem there seems to be on the hardware side, not necessarily on the phone. There's some problems flashing images on that phone. And I've read a lot of complaints saying it really depends on what cable you're using. So it might just be some sort of interference on the cable. All right. And I think Android is shipping a couple billion phones per year. So how much code do you think is from you and all these Android phones? Not all that much, but certainly a couple of lines. Because all the stuff Linaro does gets taken in by Google, right? It's open. Yeah, most of it. We try to upstream everything we can. Most of it gets taken. Some of it just remains sitting in the garage repository for a long time. Some stuff gets rejected because they don't agree on how something should be done, but then we usually get around to revising it to a more acceptable way. And why did you join and work on the mobile group with the Android staff? That was actually an interesting story. I don't remember exactly how long ago, seven years or so. Android was really new. My previous employer had just gone out of business. So I was looking for interesting things. I found a message from Linaro that they are looking for a kernel developer and I applied for that job. And essentially we've already hired someone else for this job. But your CV looks interesting and we have an opening in a group that's looking at that new coming thing Android. Have you ever heard of that? And I said, I know what it is. I know it's some Linux-based mobile OS. I haven't really had a look at it, but it would be interesting taking a look. And then I got tired to do that. And you're still doing that? Yeah. You like the Android guy at one of the areas? One of the Android guys at Linaro? Yes. And how about Android Things? That is another really interesting thing that I'd like to look into, but so far we didn't come around to looking into. The members haven't expressed any real interest and we don't get to do things our members aren't interested in. So that's just something I can do on the side as a hobby. But there's so many things I'm doing there with OpenMendriva and other things that Linaro doesn't care about already, that it will take a while before I get around to looking into Android Things or Android Wear or some other interesting tools. I think it is getting interesting with Cortex-A75 coming out. Not just that they have meltdown, I'm joking, but the A75 is a huge performance and the second generation of the 10 nanometer, Qualcomm says it's 40% more powerful. That would be really interesting, especially for building desktop boxes and servers that can really compete with x86 boxes. So at the Nuremberg Embedded World, did you find some components that you needed? Yes, certainly. I'm pretty sure I found it interesting as I see to put into a laptop, which is based on the IMX8. The interesting thing there is that it has an OpenGPU driver, even before the Mali driver gets reverse engineered. And it can take enough memory, it has an SATA port so we can put it in proper SSD and hard disk. So then you have the choice of the PCD and how about the... It's stuck behind here. So you have the PCB and the software is okay? Yes, software is just long soft. To build an ARM laptop? Yes, the problem is just that nobody is building the hardware and that's just being addressed now. So once you have the PCB, you want to have a laptop case, right? Right. So once that is there, the keyboard, the mouse and the screen? No, that will all be part of the laptop case. Essentially we wanted to behave just like an x86 laptop with something different in the inside and of course the longer battery life you'll get from that. So like there's the ARM developer box with the socialnext, there should be a new working in the MyCure to bin also, there should be an ARM developer laptop which is what you're doing, right? Yes, exactly. Cool. And with the PCIe or no? It has a PCIe but it's always a bit of a matter of finding something that will still fit into a laptop case without making it too big so you obviously don't want to put a regular size PCIe card into that but we might end up making a mini PCIe slot available also. For example if people want to put in a 4G modem also. And how long do you think it might take before something like that is available? Essentially the board has the problem that the IMX8 chip isn't released yet so we'll have a prototype pretty soon but until it's ready to go to the general public it will take a few more months. So you're not using the 8M, the one that's released right now, you're taking the higher performance right? Right. The 8M is a really good chip if you're building a phone but if you put it into a computer or a laptop. Or a TV box also is good. Yes, for a TV box it's also good enough. But then you're taking the other one with 72's and the whole stuff going on and it has a bigger GPU and an open source driver for it. Exactly.