[00:00.000 --> 00:16.040] All right. Oh, wow. Microphone. A couple of months ago, I went shopping to the IKEA. [00:16.040 --> 00:28.280] Who am I? My name is Hawa. As the slide says, I've been playing with Linux and computers [00:28.280 --> 00:35.000] for over 20 years, and I've been doing it professionally for more than 10 years. I'm [00:35.000 --> 00:43.000] currently a software consultant at Mind, which is a local company. We have a rebranding new [00:43.000 --> 00:53.760] logo here. Not on the slides yet. So we're going to talk about this device. It's a new [00:53.760 --> 01:05.680] smart home hub from IKEA. Is smartphone smart home? Is that a good idea? I guess in this [01:05.680 --> 01:13.880] crowd we have two extremes. You either think it's part of the internet of shit, or you [01:13.880 --> 01:23.880] have already 20 of these devices at your home. Well, in my personal opinion, I like them [01:23.880 --> 01:36.200] a lot, but only if the data stays with me at my home, at my local computer. So no clouds. [01:36.200 --> 01:43.680] And preferably, it should run as much open-source software as possible. So that's the state [01:43.680 --> 01:55.360] for this review. So the app, well, it's really, really simple. It's IKEA. It's what you can [01:55.360 --> 02:05.240] expect if you have ever assembled something from IKEA. You either love it or you hate it. [02:05.240 --> 02:11.040] So this app is the same thing. You're either going to love it and can use it from scratch [02:11.040 --> 02:21.160] or you're going to hate it, like my mother, which also doesn't assemble IKEA furniture. [02:21.160 --> 02:31.000] Great app. Regarding the point I made from the cloud, they're actually scoring really [02:31.000 --> 02:41.840] great. So there's a really clear and easy-to-read privacy statement. And the app is opt-in. [02:41.840 --> 02:52.200] So it asks you nicely if you want to send the usage data towards IKEA in the same manner. [02:52.200 --> 03:01.840] It has support for Apple HomeKit. It also has support for the Google AI stuff, but it's [03:01.840 --> 03:12.600] all opt-in. Really nice. What's inside? Well, we're in an embedded room, so we had to take [03:12.600 --> 03:26.960] a look. This device has a dual-core STM processor, a single chip of DDR3 memory, and about four [03:26.960 --> 03:35.080] gigabytes of MMC memory, and dual ZigBee slash Bluetooth radios. So this should be fun to [03:35.080 --> 03:46.560] work with. Well, I opened it up. This thing has a laser. I always recognize these three [03:46.560 --> 04:03.520] pins on PCBs. Those pads look familiar. So simple. You are thingy on the laptop. You [04:03.520 --> 04:15.760] use Minicom, default settings for Minicom, of course. We get a boot prompt, but that's [04:15.760 --> 04:27.160] not really useful. It's the only thing that it shows. It's a Dirigera app. Very nice to [04:27.160 --> 04:39.960] tell me again. What we can see is that it uses the STM32 secure boots stuff. I don't [04:39.960 --> 04:45.640] really know the details quite yet. I haven't worked with those chips that much. And then [04:45.640 --> 04:54.680] it starts up system D, and it ends there. So what this is telling us is that they really [04:54.680 --> 05:09.840] cleaned up their information that they put on the U-word. Right. In the app, they have [05:09.840 --> 05:21.800] a link to this website, gplcode.ikea.com. And if you press that download button, you [05:21.800 --> 05:31.240] get a zip file. Yay. And if you unzip that zip file, you get a bunch of directories. [05:31.240 --> 05:41.960] It's pretty much a huge dump of source code. The things that we do recognize in that entire [05:41.960 --> 05:51.960] dump, it's a kernel, system D, base files. Everything is called base files. Busybox, [05:51.960 --> 06:01.000] and it uses Raoq as the update mechanism. The naming of these directories makes me think [06:01.000 --> 06:11.840] that this uses Yocto, but there are no build scripts or flashing scripts included in this [06:11.840 --> 06:30.480] zip file. So if you go look at the Yocto reference manual in chapter 35-3, you'll see this text. [06:30.480 --> 06:41.200] 35.3.1 talks about providing the source code. It shows you how to make a Yocto recipe to [06:41.200 --> 06:51.680] generate the directory that they just zipped and dumped on the Internet. The next subchapter [06:51.680 --> 07:00.760] talks about providing the license text, which pretty much just takes all the license.txts [07:00.760 --> 07:11.080] from that first directory, concatenates them in one huge file. So that one is also, that's [07:11.080 --> 07:18.760] what this button does, download license information, so you get that huge file. And then they [07:18.760 --> 07:28.720] forgot about chapter 3, providing compilation scripts and the source code modifications. [07:28.720 --> 07:37.080] So Ikea, you will have some more work to do. I would like my compilation scripts. And [07:37.080 --> 07:47.680] I would really like to flash my own hardware with the GPL code that I received on my hardware. [07:47.680 --> 07:49.880] And that's my talk. Thank you very much.