[00:00.000 --> 00:11.000] So, last 10 seconds to leave the room, if no, you're staying towards the end of the [00:11.000 --> 00:12.000] lighting talks. [00:12.000 --> 00:24.720] One, two, three, four, five, six, seven, eight, nine, ten. [00:24.720 --> 00:27.920] And we are starting the next lighting talk by Leon. [00:27.920 --> 00:30.720] Thank you very much for joining. [00:30.720 --> 00:31.720] It's not the end of the world. [00:31.720 --> 00:37.240] It's just a lighting talk about, oh, is it? [00:37.240 --> 00:38.240] That's working? [00:38.240 --> 00:39.740] Kind of. [00:39.740 --> 00:40.740] Is it working? [00:40.740 --> 00:41.740] Yeah. [00:41.740 --> 00:42.740] All right. [00:42.740 --> 00:43.740] It's a little bit broken. [00:43.740 --> 00:44.740] So, it's not the end of the world. [00:44.740 --> 00:51.640] It's just a lighting talk about Wayland, Weston, the Yocto project, and RDP. [00:51.640 --> 00:55.520] So, Wayland is a display protocol. [00:55.520 --> 01:02.360] It was started like 15 years ago with the idea to replace X11, and it's slowly getting [01:02.360 --> 01:03.360] there. [01:03.360 --> 01:07.520] How many of you are using Wayland on your desktop computers or trying to use it? [01:07.520 --> 01:08.920] All right. [01:08.920 --> 01:11.680] Pretty much all of us, all right. [01:11.680 --> 01:12.680] We're trying, right? [01:12.680 --> 01:16.480] I'm not a Wayland, neither a Western developer, but I'm a user. [01:16.480 --> 01:19.480] Actually, I'm a contributor to the Yocto project and open embedded. [01:19.480 --> 01:25.600] So here I'm sharing ups and downs of the integration of RDP. [01:25.600 --> 01:30.200] So Western is just one of the compositors for Wayland. [01:30.200 --> 01:33.640] There are so many different compositors. [01:33.640 --> 01:39.120] Probably Western is not the best one of them, actually, but for embedded systems, it's actually [01:39.120 --> 01:45.360] sometimes pretty useful because it's small and simple. [01:45.360 --> 01:52.800] And there are options how to share your screen when you're running Wayland and Western. [01:52.800 --> 01:58.520] And there is this protocol, which is RDP, which stands for Remote Desktop Protocol. [01:58.520 --> 02:00.480] It's an alternative to VNC. [02:00.480 --> 02:03.640] Basically, you are doing remote screen sharing with it. [02:03.640 --> 02:09.440] There are some ups and downs, like it's proprietary protocol. [02:09.440 --> 02:12.600] The ups is that it's actually a semantic protocol. [02:12.600 --> 02:19.120] So you are sharing the fonts, the controls, all that kind of stuff with RDP. [02:19.120 --> 02:26.080] And the good thing about RDP is that you actually have an implementation for it in Western, [02:26.080 --> 02:29.400] the reference compositor of Wayland. [02:29.400 --> 02:36.400] So keep in mind that if you come into a situation where you're working on an embedded device, [02:36.400 --> 02:41.560] you have Wayland, you're using Western, and one moment you want to share screen for one [02:41.560 --> 02:48.320] reason or another, you can use RDP as an alternative of VNC. [02:48.320 --> 02:53.040] So you might have heard about the Yocto project. [02:53.040 --> 03:00.560] If you attended some of the other talks earlier today, they're quite famous because they make [03:00.560 --> 03:03.400] really good Hooties that you can order online. [03:03.400 --> 03:07.200] But the Yocto project is not just about hooties and t-shirts. [03:07.200 --> 03:12.200] It's a collaborative project of the Linux Foundation for building a custom embedded Linux distribution [03:12.200 --> 03:20.680] that is using the open embedded build framework and a tool for building images called BitBake. [03:20.680 --> 03:26.960] The Yocto project comes with a reference Linux distribution, which is called Pocky. [03:26.960 --> 03:33.720] So basically this is a way how you can get started relatively easy with some images that [03:33.720 --> 03:39.280] are out there, and you can pretty much build them out of the box if you have the right [03:39.280 --> 03:43.920] BSP for the hardware that you're touching. [03:43.920 --> 03:49.440] So I said relatively easy, but I have to say that the truth is the Yocto project has a [03:49.440 --> 03:51.000] steep learning curve. [03:51.000 --> 03:55.840] It has an amazing flexibility, but it takes some time to learn it. [03:55.840 --> 04:02.600] And it has releases twice per year, and nowadays there is a long term support release. [04:02.600 --> 04:05.640] So here's an example for the releases. [04:05.640 --> 04:09.840] This is the release that is going to be released in April. [04:09.840 --> 04:13.840] And we have Kirkstone, which is an LTS release. [04:13.840 --> 04:17.200] And we have Dunfa, which is also a long term release. [04:17.200 --> 04:24.160] It was released almost three years ago, and it will be supported for a year more. [04:24.160 --> 04:28.920] So keep in mind that, especially in the terms of the things that we're talking here about [04:28.920 --> 04:35.080] Wayland and Weston and the BSPs, there are different versions of Wayland and Weston depending [04:35.080 --> 04:40.120] on your BSP, but also on the Yocto release that you are using. [04:40.120 --> 04:46.200] So you might end up in this situation where a feature is missing from Weston because you [04:46.200 --> 04:52.360] are using an older version of Weston, and you are using this older version of Weston [04:52.360 --> 04:56.920] because you are using an older release of Yocto. [04:56.920 --> 05:04.680] So my personal recommendation is that if you are not sure, and if you can make a choice, [05:04.680 --> 05:08.160] go for the latest and greatest long term support release. [05:08.160 --> 05:11.800] But of course, that's not always true, it depends. [05:11.800 --> 05:18.000] So here is a simple example how to do a BBA pen file. [05:18.000 --> 05:23.360] This is basically extending the existing recipe for Weston so that we can build the [05:23.360 --> 05:26.800] module for screen sharing with RDP. [05:26.800 --> 05:32.000] Out of the box, it's not built, so we have to go one step further and make this configuration. [05:32.000 --> 05:37.120] It's just a build configuration to make sure that in core image Weston, which is a small [05:37.120 --> 05:45.920] image containing Wayland and Weston, we can have this module and we can enable, after that, [05:45.920 --> 05:48.680] screen sharing over RDP. [05:48.680 --> 06:01.440] And the RDP implementation in Wayland is based on free RDP, so we have to add it as a dependency. [06:01.440 --> 06:07.480] So after we have this, at runtime, we need to do a little bit of more configuration. [06:07.480 --> 06:12.960] Well, actually, we have to do them unless we haven't done them as part of the automation [06:12.960 --> 06:15.400] of the recipes with Yocto and Open embedded. [06:15.400 --> 06:21.320] But this is just a simple example of how to generate appropriate keys. [06:21.320 --> 06:26.880] After that, to configure the Weston init file, this is the master configuration file [06:26.880 --> 06:31.920] of Weston with various configurations depending on your system. [06:31.920 --> 06:40.160] So there, you have to enable in the screen sharing section the command to be launched [06:40.160 --> 06:42.480] when you do screen sharing. [06:42.480 --> 06:48.280] But when this is done, remember to launch Weston or restart it just to make sure that [06:48.280 --> 06:51.040] the right configuration is loaded. [06:51.040 --> 06:53.560] But after that, there is one more thing you need to do. [06:53.560 --> 06:59.360] You need to press control out plus S. That's pretty cool if you have a keyboard. [06:59.360 --> 07:03.160] But some embedded devices don't have keyboards, right? [07:03.160 --> 07:10.840] So hold on, hold on, I've told you it's ups and downs, so sometimes they're downs. [07:10.840 --> 07:18.120] You are versions of Weston actually have this option to put in Weston init, which allows [07:18.120 --> 07:25.280] you to do automatic start up of the screen sharing with Weston. [07:25.280 --> 07:29.680] And this has been added to Weston version nine. [07:29.680 --> 07:37.080] And I believe this feature was added by Marek who had a talk here earlier about you boot. [07:37.080 --> 07:38.800] So you probably know him. [07:38.800 --> 07:43.360] So thank you very much for doing this because this is a really useful feature if you are [07:43.360 --> 07:48.680] working on an embedded device that doesn't have a keyboard. [07:48.680 --> 07:54.160] And once you're ready with this, from another computer in the same network, you can launch [07:54.160 --> 08:00.440] a client that supports RDP and you can connect remotely to your embedded device. [08:00.440 --> 08:08.520] Here are a couple of examples depending whether you're using Wayland and based on your response [08:08.520 --> 08:13.760] to my question at the beginning of the session, it looks like a lot of you are using Weston. [08:13.760 --> 08:19.120] So here you go, you just replace the IP and if everything is okay, you'll be able to connect [08:19.120 --> 08:21.480] to your embedded device remotely. [08:21.480 --> 08:25.680] And if you're still using X11, you're still in the game. [08:25.680 --> 08:29.000] So here is a very simple demonstration. [08:29.000 --> 08:32.920] And what we see here is a screenshot from my computer. [08:32.920 --> 08:39.320] My computer is, I'm kind of a lazy Linux user, so it's just Ubuntu FTS support. [08:39.320 --> 08:44.560] So we have Ubuntu with Wayland and GNOME, which we see on the back. [08:44.560 --> 08:51.520] And here in this screen, we are seeing core image Weston running on Raspberry Pi 4 with [08:51.520 --> 08:55.920] the configurations that you have seen in the previous slides. [08:55.920 --> 08:58.440] All right. [08:58.440 --> 08:59.440] So that's all. [08:59.440 --> 09:01.640] That's pretty much how it works. [09:01.640 --> 09:05.000] RDP has some ups and downs. [09:05.000 --> 09:10.120] I guess the major conclusion from this lightning talk is that if you come into a situation [09:10.120 --> 09:16.040] where you need to do screen sharing on embedded device that is running Wayland and Weston, [09:16.040 --> 09:21.080] as an alternative to VNC, you have RDP as an option. [09:21.080 --> 09:24.920] And use the Yocto project and open embedded, it's pretty cool and it's pretty much everywhere [09:24.920 --> 09:25.920] nowadays. [09:25.920 --> 09:27.920] Thank you very much for the attention. [09:27.920 --> 09:35.400] I think we're just on time.