[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:03.06,0:00:05.00,Default,,0000,0000,0000,,So, I think we are ready to start Dialogue: 0,0:00:05.02,0:00:08.77,Default,,0000,0000,0000,,So, next talk is from Martin, about Debian on ARM devices. Dialogue: 0,0:00:14.21,0:00:21.53,Default,,0000,0000,0000,,So, it's Debian on ARM devices, it's not about the Debian ARM port itself, or any of the various ARM ports Dialogue: 0,0:00:21.97,0:00:27.13,Default,,0000,0000,0000,,I would say it's sort of a mix of different topics Dialogue: 0,0:00:27.13,0:00:27.28,Default,,0000,0000,0000,,it's basically --- Dialogue: 0,0:00:27.28,0:00:29.13,Default,,0000,0000,0000,,I mean, basically I often get\Nit's basically --- Dialogue: 0,0:00:29.13,0:00:32.02,Default,,0000,0000,0000,,I mean, basically I often get Dialogue: 0,0:00:32.08,0:00:35.24,Default,,0000,0000,0000,,the question from users Dialogue: 0,0:00:35.53,0:00:38.93,Default,,0000,0000,0000,,"Well, Debian works on this particular ARM device, Dialogue: 0,0:00:39.11,0:00:42.08,Default,,0000,0000,0000,,I have a device which is like really really similar, Dialogue: 0,0:00:42.08,0:00:44.86,Default,,0000,0000,0000,,so surely Debian should work on it, right?" Dialogue: 0,0:00:44.86,0:00:48.64,Default,,0000,0000,0000,,And so far, the answer unfortunately was usually "no" Dialogue: 0,0:00:48.64,0:00:53.02,Default,,0000,0000,0000,,and - and it's really frustrating for users Dialogue: 0,0:00:53.02,0:00:55.53,Default,,0000,0000,0000,,because they don't see why. Dialogue: 0,0:00:55.53,0:00:58.57,Default,,0000,0000,0000,,You know, the device is very much the same, so why doesn't it just work. Dialogue: 0,0:00:58.57,0:01:01.31,Default,,0000,0000,0000,,And so, basically what I'm trying to do is Dialogue: 0,0:01:01.31,0:01:04.04,Default,,0000,0000,0000,,to show like a little bit behind the scenes Dialogue: 0,0:01:04.04,0:01:06.51,Default,,0000,0000,0000,,of how Debian on ARM works Dialogue: 0,0:01:07.04,0:01:09.62,Default,,0000,0000,0000,,And there has been a whole lot of progres Dialogue: 0,0:01:09.62,0:01:13.13,Default,,0000,0000,0000,,So I'm going to show how {\i1}did{\i0} it work, Dialogue: 0,0:01:13.13,0:01:15.13,Default,,0000,0000,0000,,what are the improvements, and Dialogue: 0,0:01:15.13,0:01:17.60,Default,,0000,0000,0000,,and how is it going to work in the future Dialogue: 0,0:01:19.93,0:01:21.88,Default,,0000,0000,0000,,And it's all more from a develeoper perspective Dialogue: 0,0:01:22.11,0:01:25.88,Default,,0000,0000,0000,,so, it's like, how do we support it in the Debian Installer Dialogue: 0,0:01:26.22,0:01:31.44,Default,,0000,0000,0000,,its' like a mix of stuff, and I should say, Dialogue: 0,0:01:31.68,0:01:35.11,Default,,0000,0000,0000,,I'm really looking at it from somebody who basically Dialogue: 0,0:01:35.11,0:01:37.51,Default,,0000,0000,0000,,adds support for devices in the installer Dialogue: 0,0:01:37.51,0:01:40.46,Default,,0000,0000,0000,,but I'm not like a kernel guy or anything, so Dialogue: 0,0:01:40.46,0:01:45.06,Default,,0000,0000,0000,,there are a lot of people in this room who know a bit more about the technical details Dialogue: 0,0:01:45.40,0:01:48.80,Default,,0000,0000,0000,,but I'm not going to really drill down really deep down anyway Dialogue: 0,0:01:48.80,0:01:51.68,Default,,0000,0000,0000,,But if I'm incorrect, I'm sure that Dialogue: 0,0:01:51.68,0:01:53.68,Default,,0000,0000,0000,,there are plenty of people that will correct me. Dialogue: 0,0:01:54.17,0:02:00.82,Default,,0000,0000,0000,,So, where do you find ARM? So it's pretty much everywhere these days, I mean... Dialogue: 0,0:02:01.15,0:02:05.04,Default,,0000,0000,0000,,Pretty much every phone has an ARM chip in it Dialogue: 0,0:02:07.48,0:02:11.95,Default,,0000,0000,0000,,All those "Internet of Things" gadgets are ARM-based Dialogue: 0,0:02:12.53,0:02:18.48,Default,,0000,0000,0000,,You have NAS devices, and that's really the area I used to focus on Dialogue: 0,0:02:19.02,0:02:22.60,Default,,0000,0000,0000,,those small boxes where you basically add a hard drive Dialogue: 0,0:02:22.60,0:02:26.73,Default,,0000,0000,0000,,and most people just use it for storage, but it's actually a Dialogue: 0,0:02:27.13,0:02:30.15,Default,,0000,0000,0000,,full PC where you can install Debian on it Dialogue: 0,0:02:30.64,0:02:33.93,Default,,0000,0000,0000,,so I always found that to be very interesting Dialogue: 0,0:02:34.28,0:02:37.31,Default,,0000,0000,0000,,and nowadays you have a lot of development boards Dialogue: 0,0:02:37.46,0:02:41.28,Default,,0000,0000,0000,,And I'm not sure whether "development boards" is the right word Dialogue: 0,0:02:41.28,0:02:45.13,Default,,0000,0000,0000,,Because when I hear "development boards" I think of it as really expensive, Dialogue: 0,0:02:45.64,0:02:48.11,Default,,0000,0000,0000,,Like 5K for boards or something Dialogue: 0,0:02:48.42,0:02:52.40,Default,,0000,0000,0000,,But nowadays you have those, maybe, a better board would be like bareboards Dialogue: 0,0:02:52.40,0:02:56.20,Default,,0000,0000,0000,,Like "Raspberry Pi", like basically it's just the board Dialogue: 0,0:02:56.20,0:02:59.82,Default,,0000,0000,0000,,it does not come with a case, you can buy those as well Dialogue: 0,0:02:59.82,0:03:03.06,Default,,0000,0000,0000,,and it's like 30 dollars or something, you can get Dialogue: 0,0:03:03.37,0:03:06.53,Default,,0000,0000,0000,,And that gets pretty much where most of the Dialogue: 0,0:03:06.53,0:03:10.95,Default,,0000,0000,0000,,excitement is going for Debian users at this moment Dialogue: 0,0:03:11.22,0:03:13.93,Default,,0000,0000,0000,,And that can cause a lot of frustration Dialogue: 0,0:03:16.64,0:03:20.15,Default,,0000,0000,0000,,And everybody says that ARM is going to be big on servers Dialogue: 0,0:03:20.15,0:03:24.02,Default,,0000,0000,0000,,and I think that's something we ar going to see Dialogue: 0,0:03:24.02,0:03:26.60,Default,,0000,0000,0000,,But right now, again, it's Dialogue: 0,0:03:26.60,0:03:28.60,Default,,0000,0000,0000,,a little bit frustrating Dialogue: 0,0:03:30.60,0:03:34.00,Default,,0000,0000,0000,,How does it work as a Deban Installer Dialogue: 0,0:03:34.00,0:03:36.00,Default,,0000,0000,0000,,There are basically two Dialogue: 0,0:03:36.97,0:03:40.28,Default,,0000,0000,0000,,ways of installing on those ARM Pi devices Dialogue: 0,0:03:41.02,0:03:44.35,Default,,0000,0000,0000,,So the, like, historic, that we normally Dialogue: 0,0:03:44.35,0:03:47.95,Default,,0000,0000,0000,,would be to install on, like, ascreen Dialogue: 0,0:03:47.95,0:03:49.95,Default,,0000,0000,0000,,can be a serial console, Dialogue: 0,0:03:50.31,0:03:54.55,Default,,0000,0000,0000,,and then you just download via the network Dialogue: 0,0:03:54.75,0:03:58.97,Default,,0000,0000,0000,,and then you just download via the network Dialogue: 0,0:03:58.97,0:04:00.97,Default,,0000,0000,0000,,from a CD image or wherever, Dialogue: 0,0:04:00.97,0:04:04.66,Default,,0000,0000,0000,,But the other method, which we actually use for those Dialogue: 0,0:04:04.66,0:04:07.91,Default,,0000,0000,0000,,net devices was a network console Dialogue: 0,0:04:07.91,0:04:11.46,Default,,0000,0000,0000,,where you basically ssh into the installer Dialogue: 0,0:04:11.73,0:04:14.44,Default,,0000,0000,0000,,and you perform the installation via ssh Dialogue: 0,0:04:15.40,0:04:19.84,Default,,0000,0000,0000,,and that was really the only way, because those mass devices Dialogue: 0,0:04:19.84,0:04:22.95,Default,,0000,0000,0000,,don't have any I/O, so I Dialogue: 0,0:04:23.20,0:04:25.37,Default,,0000,0000,0000,,even in there, you can Dialogue: 0,0:04:25.37,0:04:28.08,Default,,0000,0000,0000,,it's just a serial console, most of them Dialogue: 0,0:04:28.33,0:04:32.00,Default,,0000,0000,0000,,That's something we didn't want to require from the user Dialogue: 0,0:04:33.22,0:04:36.84,Default,,0000,0000,0000,,And the other thing that's coming through, I think that it's basically cool that was announce today, Dialogue: 0,0:04:36.84,0:04:38.84,Default,,0000,0000,0000,,screen support, so basically Dialogue: 0,0:04:40.02,0:04:43.33,Default,,0000,0000,0000,,so you can have multiple sessions with in vi, Dialogue: 0,0:04:43.33,0:04:47.11,Default,,0000,0000,0000,,which can be useful if you have an open shell to debug Dialogue: 0,0:04:49.11,0:04:53.50,Default,,0000,0000,0000,,And so, how -- And so, this is really looking back at Dialogue: 0,0:04:53.50,0:04:55.50,Default,,0000,0000,0000,,like running Debian on NAS devices Dialogue: 0,0:04:55.50,0:04:58.42,Default,,0000,0000,0000,,which is something that used to be really popular Dialogue: 0,0:04:58.42,0:05:02.50,Default,,0000,0000,0000,,And the way it worked was basically Dialogue: 0,0:05:02.50,0:05:05.20,Default,,0000,0000,0000,,that we provided an installer image Dialogue: 0,0:05:05.20,0:05:07.20,Default,,0000,0000,0000,,which was sort of a firmware image Dialogue: 0,0:05:07.20,0:05:09.20,Default,,0000,0000,0000,,as a lot of those NAS devices Dialogue: 0,0:05:09.20,0:05:12.08,Default,,0000,0000,0000,,have like a firmware upgrade mechanism Dialogue: 0,0:05:12.24,0:05:14.18,Default,,0000,0000,0000,,and so we would basically fake Dialogue: 0,0:05:14.18,0:05:17.24,Default,,0000,0000,0000,,we would create a firmware image Dialogue: 0,0:05:17.30,0:05:19.52,Default,,0000,0000,0000,,which the software would accept Dialogue: 0,0:05:19.60,0:05:22.46,Default,,0000,0000,0000,,but instead of a firmware update Dialogue: 0,0:05:22.54,0:05:24.84,Default,,0000,0000,0000,,it would actually contain the Debian installer Dialogue: 0,0:05:24.84,0:05:27.62,Default,,0000,0000,0000,,so you would install that upgrade Dialogue: 0,0:05:27.64,0:05:30.08,Default,,0000,0000,0000,,you would reboot, and Dialogue: 0,0:05:30.08,0:05:32.86,Default,,0000,0000,0000,,you could ssh to the installer Dialogue: 0,0:05:32.92,0:05:36.36,Default,,0000,0000,0000,,and obviously, in order to ssh to the installer Dialogue: 0,0:05:36.36,0:05:38.02,Default,,0000,0000,0000,,it needs to bring up the network Dialogue: 0,0:05:38.02,0:05:41.06,Default,,0000,0000,0000,,and there is a tool called oldsys-preseed Dialogue: 0,0:05:41.06,0:05:43.28,Default,,0000,0000,0000,,that basically reads the network configuration Dialogue: 0,0:05:43.28,0:05:45.28,Default,,0000,0000,0000,,from the device Dialogue: 0,0:05:45.28,0:05:47.28,Default,,0000,0000,0000,,and then sets up the network Dialogue: 0,0:05:47.28,0:05:51.82,Default,,0000,0000,0000,,and it can always recognize the DHCP Dialogue: 0,0:05:51.82,0:05:53.82,Default,,0000,0000,0000,,and then the user connects via ssh Dialogue: 0,0:05:53.82,0:05:57.60,Default,,0000,0000,0000,,again, there would be some indication, maybe Dialogue: 0,0:05:57.60,0:05:59.60,Default,,0000,0000,0000,,you know, there would be a "beep" Dialogue: 0,0:05:59.60,0:06:01.26,Default,,0000,0000,0000,,or maybe change the LED Dialogue: 0,0:06:01.26,0:06:03.26,Default,,0000,0000,0000,,to indicate that the installer is ready Dialogue: 0,0:06:03.26,0:06:05.26,Default,,0000,0000,0000,,and then, the user basically performs Dialogue: 0,0:06:05.26,0:06:07.26,Default,,0000,0000,0000,,a regular installation Dialogue: 0,0:06:07.26,0:06:09.26,Default,,0000,0000,0000,,with normal d-i; they don't have to Dialogue: 0,0:06:09.26,0:06:11.26,Default,,0000,0000,0000,,do anything differently. Dialogue: 0,0:06:12.32,0:06:14.52,Default,,0000,0000,0000,,And at the end, flash-kernel runs Dialogue: 0,0:06:14.52,0:06:17.34,Default,,0000,0000,0000,,to make the system bootable Dialogue: 0,0:06:17.34,0:06:20.46,Default,,0000,0000,0000,,flash-kernel is called that way Dialogue: 0,0:06:20.46,0:06:20.66,Default,,0000,0000,0000,,because it used to support\Nflash-kernel is called that way Dialogue: 0,0:06:20.66,0:06:22.66,Default,,0000,0000,0000,,because it used to support Dialogue: 0,0:06:22.66,0:06:25.38,Default,,0000,0000,0000,,like the initial device it supported Dialogue: 0,0:06:25.38,0:06:27.38,Default,,0000,0000,0000,,booted from flash Dialogue: 0,0:06:27.38,0:06:29.38,Default,,0000,0000,0000,,but it also generates bootable devices Dialogue: 0,0:06:29.38,0:06:31.38,Default,,0000,0000,0000,,bootable images of disk devices Dialogue: 0,0:06:34.18,0:06:36.56,Default,,0000,0000,0000,,so it really, flash-kernel really requires Dialogue: 0,0:06:36.56,0:06:38.56,Default,,0000,0000,0000,,understanding of each device Dialogue: 0,0:06:38.56,0:06:41.08,Default,,0000,0000,0000,,and our philosophy Dialogue: 0,0:06:41.08,0:06:43.08,Default,,0000,0000,0000,,in those cases, with those NAS devices Dialogue: 0,0:06:43.08,0:06:44.04,Default,,0000,0000,0000,,was really, Dialogue: 0,0:06:44.04,0:06:46.04,Default,,0000,0000,0000,,we don't touch anything Dialogue: 0,0:06:46.04,0:06:48.04,Default,,0000,0000,0000,,in the firmware, like Dialogue: 0,0:06:48.04,0:06:50.04,Default,,0000,0000,0000,,in the configuration, Dialogue: 0,0:06:50.04,0:06:52.04,Default,,0000,0000,0000,,so sometimes Dialogue: 0,0:06:52.04,0:06:54.70,Default,,0000,0000,0000,,instead of changing the root device Dialogue: 0,0:06:54.70,0:06:56.70,Default,,0000,0000,0000,,in the u-boot config we would actually Dialogue: 0,0:06:56.70,0:06:58.70,Default,,0000,0000,0000,,hard-code that in the ramdisk Dialogue: 0,0:06:58.70,0:07:02.72,Default,,0000,0000,0000,,just because we wanted people to go back Dialogue: 0,0:07:02.72,0:07:05.16,Default,,0000,0000,0000,,to the original firmware if they had to Dialogue: 0,0:07:05.16,0:07:07.70,Default,,0000,0000,0000,,if they had to send it in for repair or something Dialogue: 0,0:07:07.70,0:07:09.70,Default,,0000,0000,0000,,and Dialogue: 0,0:07:09.70,0:07:12.50,Default,,0000,0000,0000,,and that kind of approach really worked well Dialogue: 0,0:07:12.50,0:07:14.50,Default,,0000,0000,0000,,so I think we really had a lot of Dialogue: 0,0:07:14.50,0:07:16.50,Default,,0000,0000,0000,,people, lot of users running Dialogue: 0,0:07:16.50,0:07:18.50,Default,,0000,0000,0000,,in Debian in those kind of NAS devices Dialogue: 0,0:07:18.50,0:07:20.86,Default,,0000,0000,0000,,and it was really easy to do. Dialogue: 0,0:07:20.86,0:07:22.58,Default,,0000,0000,0000,,You get a firmware image, Dialogue: 0,0:07:22.58,0:07:25.38,Default,,0000,0000,0000,,you connect to the installer via ssh, Dialogue: 0,0:07:25.38,0:07:27.38,Default,,0000,0000,0000,,and it just works, it's a normal Dialogue: 0,0:07:27.38,0:07:28.62,Default,,0000,0000,0000,,debian-installer, the way Dialogue: 0,0:07:28.62,0:07:30.62,Default,,0000,0000,0000,,everybody knows it, Dialogue: 0,0:07:30.62,0:07:32.62,Default,,0000,0000,0000,,because some of the other distros Dialogue: 0,0:07:32.62,0:07:33.82,Default,,0000,0000,0000,,they basically provide, like, Dialogue: 0,0:07:33.82,0:07:35.24,Default,,0000,0000,0000,,tarballs and instructions Dialogue: 0,0:07:35.24,0:07:37.24,Default,,0000,0000,0000,,so you need to partition a disk, Dialogue: 0,0:07:37.24,0:07:39.24,Default,,0000,0000,0000,,need to un-tar it, Dialogue: 0,0:07:39.24,0:07:41.24,Default,,0000,0000,0000,,you need to change those files, Dialogue: 0,0:07:41.24,0:07:43.24,Default,,0000,0000,0000,,and even if it sounds simple, Dialogue: 0,0:07:43.24,0:07:45.24,Default,,0000,0000,0000,,it's so many steps that Dialogue: 0,0:07:45.24,0:07:47.62,Default,,0000,0000,0000,,you always... you often get something wrong Dialogue: 0,0:07:47.62,0:07:50.38,Default,,0000,0000,0000,,and then you put the drive into the Dialogue: 0,0:07:50.38,0:07:52.38,Default,,0000,0000,0000,,NAS device, and it doesn't boot, and you don't know why Dialogue: 0,0:07:52.38,0:07:54.80,Default,,0000,0000,0000,,where did you make that mistake, Dialogue: 0,0:07:54.80,0:07:56.00,Default,,0000,0000,0000,,which step Dialogue: 0,0:07:56.00,0:07:58.00,Default,,0000,0000,0000,,and you basically have to start from scratch Dialogue: 0,0:07:58.00,0:08:00.44,Default,,0000,0000,0000,,so Debian really provided something unique Dialogue: 0,0:08:00.44,0:08:02.44,Default,,0000,0000,0000,,by adding Dialogue: 0,0:08:02.44,0:08:04.44,Default,,0000,0000,0000,,the debian-installer support Dialogue: 0,0:08:04.44,0:08:06.44,Default,,0000,0000,0000,,but anyway, that's the way Dialogue: 0,0:08:06.44,0:08:08.44,Default,,0000,0000,0000,,it sort of used to work. Dialogue: 0,0:08:08.44,0:08:10.44,Default,,0000,0000,0000,,Nowadays, with a lot of those bareboard Dialogue: 0,0:08:10.44,0:08:12.44,Default,,0000,0000,0000,,it's much easier Dialogue: 0,0:08:12.44,0:08:14.44,Default,,0000,0000,0000,,I'll get to that. Dialogue: 0,0:08:15.18,0:08:18.10,Default,,0000,0000,0000,,So at the moment there are three different ARM ports: Dialogue: 0,0:08:18.10,0:08:20.10,Default,,0000,0000,0000,,There is the old armel Dialogue: 0,0:08:20.10,0:08:22.10,Default,,0000,0000,0000,,which used to be the "newer" ARM Dialogue: 0,0:08:22.10,0:08:24.82,Default,,0000,0000,0000,,and now it's old, Dialogue: 0,0:08:24.82,0:08:26.82,Default,,0000,0000,0000,,and one of the discussions Dialogue: 0,0:08:26.82,0:08:28.82,Default,,0000,0000,0000,,that we are probably going to have later today on the BoF Dialogue: 0,0:08:28.82,0:08:31.22,Default,,0000,0000,0000,,is about, should we remove that Dialogue: 0,0:08:31.22,0:08:33.22,Default,,0000,0000,0000,,after Stretch. Dialogue: 0,0:08:33.22,0:08:36.44,Default,,0000,0000,0000,,There is armhf and the arm64 Dialogue: 0,0:08:37.64,0:08:40.54,Default,,0000,0000,0000,,and we get basically the question I hope to answer. Dialogue: 0,0:08:40.54,0:08:43.30,Default,,0000,0000,0000,,If, you know, device A works, Dialogue: 0,0:08:43.30,0:08:45.30,Default,,0000,0000,0000,,I have a device which is really similar, Dialogue: 0,0:08:45.30,0:08:47.30,Default,,0000,0000,0000,,but it doesn't work. Why is that? Dialogue: 0,0:08:49.30,0:08:51.30,Default,,0000,0000,0000,,So, heh, Dialogue: 0,0:08:51.30,0:08:53.30,Default,,0000,0000,0000,,There have been a lot of changes Dialogue: 0,0:08:53.30,0:08:58.12,Default,,0000,0000,0000,,in various upstream projects, specially Dialogue: 0,0:08:58.12,0:09:00.12,Default,,0000,0000,0000,,the kernel and U-boot Dialogue: 0,0:09:00.12,0:09:02.12,Default,,0000,0000,0000,,that really make things easier. Dialogue: 0,0:09:02.12,0:09:04.12,Default,,0000,0000,0000,,So, in the past Dialogue: 0,0:09:04.12,0:09:07.26,Default,,0000,0000,0000,,we basically had Dialogue: 0,0:09:07.26,0:09:09.26,Default,,0000,0000,0000,,a kernel image Dialogue: 0,0:09:09.26,0:09:10.78,Default,,0000,0000,0000,,for each platform, Dialogue: 0,0:09:10.78,0:09:12.78,Default,,0000,0000,0000,,where a platform is basically like Dialogue: 0,0:09:12.78,0:09:14.78,Default,,0000,0000,0000,,a SSE family Dialogue: 0,0:09:14.78,0:09:17.66,Default,,0000,0000,0000,,and there would be a different image Dialogue: 0,0:09:17.66,0:09:21.54,Default,,0000,0000,0000,,because ARM takes a long time Dialogue: 0,0:09:21.54,0:09:23.54,Default,,0000,0000,0000,,to compile, there was always some debate Dialogue: 0,0:09:23.54,0:09:26.10,Default,,0000,0000,0000,,about adding a new platform Dialogue: 0,0:09:26.10,0:09:28.10,Default,,0000,0000,0000,,because there would be a new Dialogue: 0,0:09:28.10,0:09:30.60,Default,,0000,0000,0000,,image flavor, which takes some time, Dialogue: 0,0:09:31.74,0:09:33.54,Default,,0000,0000,0000,,and that was just really like, Dialogue: 0,0:09:33.54,0:09:36.28,Default,,0000,0000,0000,,we couldn't just have one ARM kernel Dialogue: 0,0:09:36.28,0:09:38.28,Default,,0000,0000,0000,,which works everywhere. Dialogue: 0,0:09:38.28,0:09:40.28,Default,,0000,0000,0000,,And a lot of people didn't understand Dialogue: 0,0:09:40.28,0:09:42.28,Default,,0000,0000,0000,,why you had a different kernel Dialogue: 0,0:09:42.28,0:09:44.28,Default,,0000,0000,0000,,because different platforms, Dialogue: 0,0:09:44.28,0:09:48.04,Default,,0000,0000,0000,,although there has been a lot of progress upstream, Dialogue: 0,0:09:48.04,0:09:51.58,Default,,0000,0000,0000,,at least nowadays, with armhf Dialogue: 0,0:09:51.58,0:09:54.02,Default,,0000,0000,0000,,and with arm64 Dialogue: 0,0:09:54.02,0:09:56.02,Default,,0000,0000,0000,,we just have one kernel. Dialogue: 0,0:09:57.34,0:09:59.98,Default,,0000,0000,0000,,And upstream basically Dialogue: 0,0:09:59.98,0:10:02.74,Default,,0000,0000,0000,,Maybe some of you remember the rant Dialogue: 0,0:10:02.74,0:10:04.74,Default,,0000,0000,0000,,by Niels about Dialogue: 0,0:10:04.74,0:10:06.74,Default,,0000,0000,0000,,the ARM people doing everything Dialogue: 0,0:10:06.74,0:10:08.18,Default,,0000,0000,0000,,in different ways, Dialogue: 0,0:10:08.18,0:10:10.18,Default,,0000,0000,0000,,and there has been a lot of standarization Dialogue: 0,0:10:10.18,0:10:12.18,Default,,0000,0000,0000,,over the years. Dialogue: 0,0:10:12.18,0:10:14.18,Default,,0000,0000,0000,,Basically, the other thing is Dialogue: 0,0:10:14.18,0:10:16.18,Default,,0000,0000,0000,,there used to be for each device Dialogue: 0,0:10:16.18,0:10:18.18,Default,,0000,0000,0000,,there was a board file Dialogue: 0,0:10:18.18,0:10:20.18,Default,,0000,0000,0000,,it was like a C file Dialogue: 0,0:10:20.18,0:10:22.58,Default,,0000,0000,0000,,to initialize the different components, Dialogue: 0,0:10:22.58,0:10:24.58,Default,,0000,0000,0000,,and the boot loader would Dialogue: 0,0:10:24.58,0:10:27.66,Default,,0000,0000,0000,,pass the machine ID to the kernel, Dialogue: 0,0:10:27.66,0:10:30.38,Default,,0000,0000,0000,,and it would load that boot file. Dialogue: 0,0:10:30.38,0:10:32.38,Default,,0000,0000,0000,,And nowadays, Dialogue: 0,0:10:32.38,0:10:34.38,Default,,0000,0000,0000,,there is basically a Dialogue: 0,0:10:34.38,0:10:36.38,Default,,0000,0000,0000,,device tree in the kernel, Dialogue: 0,0:10:36.38,0:10:38.38,Default,,0000,0000,0000,,which is a description of the hardware Dialogue: 0,0:10:40.04,0:10:41.80,Default,,0000,0000,0000,,and it will basically compile it Dialogue: 0,0:10:41.80,0:10:44.58,Default,,0000,0000,0000,,to, like, a binary blob, the .dtb. Dialogue: 0,0:10:44.58,0:10:46.58,Default,,0000,0000,0000,,And, so, basically you just need Dialogue: 0,0:10:46.58,0:10:48.58,Default,,0000,0000,0000,,the kernel image, and Dialogue: 0,0:10:48.58,0:10:51.20,Default,,0000,0000,0000,,the .dtb, which is hardware-specific, Dialogue: 0,0:10:51.20,0:10:53.20,Default,,0000,0000,0000,,and then it boots. Dialogue: 0,0:10:53.20,0:10:55.64,Default,,0000,0000,0000,,And obviously, for us in Debian Dialogue: 0,0:10:55.64,0:10:57.64,Default,,0000,0000,0000,,that makes it much much easier Dialogue: 0,0:10:57.64,0:11:00.54,Default,,0000,0000,0000,,to support a lot of devices. Dialogue: 0,0:11:01.96,0:11:04.56,Default,,0000,0000,0000,,The other thing that changed in U-boot, Dialogue: 0,0:11:06.04,0:11:09.08,Default,,0000,0000,0000,,when you install the Debian kernel image, Dialogue: 0,0:11:09.08,0:11:10.72,Default,,0000,0000,0000,,it creates Dialogue: 0,0:11:10.72,0:11:13.90,Default,,0000,0000,0000,,the vmlinux file Dialogue: 0,0:11:13.90,0:11:16.74,Default,,0000,0000,0000,,and also the RAM disk Dialogue: 0,0:11:16.74,0:11:18.74,Default,,0000,0000,0000,,but with U-boot, Dialogue: 0,0:11:18.74,0:11:20.74,Default,,0000,0000,0000,,you couldn't actually load those files Dialogue: 0,0:11:20.74,0:11:22.74,Default,,0000,0000,0000,,correctly. You basically Dialogue: 0,0:11:22.74,0:11:25.84,Default,,0000,0000,0000,,had to wrap them in a U-boot image Dialogue: 0,0:11:25.84,0:11:28.42,Default,,0000,0000,0000,,and it's not really hard Dialogue: 0,0:11:28.42,0:11:31.44,Default,,0000,0000,0000,,it's just the command initram, Dialogue: 0,0:11:31.44,0:11:33.44,Default,,0000,0000,0000,,but all of the different devices had Dialogue: 0,0:11:33.44,0:11:34.94,Default,,0000,0000,0000,,different load addresses, Dialogue: 0,0:11:34.94,0:11:36.94,Default,,0000,0000,0000,,and, again, that's hardware-specific knowledge Dialogue: 0,0:11:36.94,0:11:39.36,Default,,0000,0000,0000,,that flash-kernel needed to know. Dialogue: 0,0:11:39.36,0:11:40.82,Default,,0000,0000,0000,,And nowadays, Dialogue: 0,0:11:40.82,0:11:42.72,Default,,0000,0000,0000,,there is a command which Dialogue: 0,0:11:42.72,0:11:44.72,Default,,0000,0000,0000,,directly loads the kernel, Dialogue: 0,0:11:44.72,0:11:48.38,Default,,0000,0000,0000,,so that, again, was a step to make things easier. Dialogue: 0,0:11:48.38,0:11:52.32,Default,,0000,0000,0000,,And the last thing which really made Dialogue: 0,0:11:52.32,0:11:54.32,Default,,0000,0000,0000,,things easier is distro support Dialogue: 0,0:11:54.32,0:11:56.32,Default,,0000,0000,0000,,in U-boot. Dialogue: 0,0:11:56.32,0:11:58.32,Default,,0000,0000,0000,,So, basically, in the past Dialogue: 0,0:11:58.32,0:12:00.32,Default,,0000,0000,0000,,every U-boot, every Dialogue: 0,0:12:00.32,0:12:02.32,Default,,0000,0000,0000,,devices in U-boot, Dialogue: 0,0:12:02.32,0:12:04.32,Default,,0000,0000,0000,,booted in a different way, Dialogue: 0,0:12:05.24,0:12:08.70,Default,,0000,0000,0000,,just in terms on where would it load Dialogue: 0,0:12:08.70,0:12:10.70,Default,,0000,0000,0000,,the file from, or Dialogue: 0,0:12:10.70,0:12:12.70,Default,,0000,0000,0000,,what variables would it use, and Dialogue: 0,0:12:12.70,0:12:14.70,Default,,0000,0000,0000,,nowadays there is something called distro-support Dialogue: 0,0:12:14.70,0:12:16.70,Default,,0000,0000,0000,,which is basically a standardized way Dialogue: 0,0:12:16.70,0:12:18.70,Default,,0000,0000,0000,,to boot a Linux distro Dialogue: 0,0:12:19.30,0:12:21.66,Default,,0000,0000,0000,,with U-boot. Dialogue: 0,0:12:21.66,0:12:23.66,Default,,0000,0000,0000,,There are basically Dialogue: 0,0:12:23.66,0:12:25.66,Default,,0000,0000,0000,,two ways, either can Dialogue: 0,0:12:25.66,0:12:27.66,Default,,0000,0000,0000,,read a config file, Dialogue: 0,0:12:27.66,0:12:29.66,Default,,0000,0000,0000,,or it can basically run a Dialogue: 0,0:12:29.66,0:12:31.66,Default,,0000,0000,0000,,boot script, and that's what Dialogue: 0,0:12:31.66,0:12:33.66,Default,,0000,0000,0000,,we use in Debian, so we basically have Dialogue: 0,0:12:33.66,0:12:35.66,Default,,0000,0000,0000,,a generic boot script Dialogue: 0,0:12:35.66,0:12:38.10,Default,,0000,0000,0000,,which loads the kernel, Dialogue: 0,0:12:38.10,0:12:40.10,Default,,0000,0000,0000,,loads the ramdisk, the .dtb, Dialogue: 0,0:12:40.10,0:12:42.10,Default,,0000,0000,0000,,and boots Debian. Dialogue: 0,0:12:42.10,0:12:44.10,Default,,0000,0000,0000,,It can use the generic Dialogue: 0,0:12:44.10,0:12:46.10,Default,,0000,0000,0000,,bootscript in almost all Dialogue: 0,0:12:46.10,0:12:47.86,Default,,0000,0000,0000,,of the modern devices. Dialogue: 0,0:12:47.86,0:12:49.86,Default,,0000,0000,0000,,So nowadays, because of that, Dialogue: 0,0:12:49.86,0:12:51.86,Default,,0000,0000,0000,,it's much more standard, and Dialogue: 0,0:12:51.86,0:12:53.86,Default,,0000,0000,0000,,it's much easier to support Dialogue: 0,0:12:53.86,0:12:56.44,Default,,0000,0000,0000,,those devices. Dialogue: 0,0:12:56.44,0:12:59.98,Default,,0000,0000,0000,,So here are some examples of flash-kernel Dialogue: 0,0:12:59.98,0:13:02.80,Default,,0000,0000,0000,,So, basically, flash-kernel has like a database Dialogue: 0,0:13:02.80,0:13:04.80,Default,,0000,0000,0000,,of devices which it supports Dialogue: 0,0:13:04.80,0:13:07.58,Default,,0000,0000,0000,,so it's like the machine entry Dialogue: 0,0:13:07.58,0:13:09.58,Default,,0000,0000,0000,,in /proc/cpuinfo, Dialogue: 0,0:13:09.58,0:13:11.96,Default,,0000,0000,0000,,and then the kernel flavors Dialogue: 0,0:13:11.96,0:13:13.96,Default,,0000,0000,0000,,it can run Dialogue: 0,0:13:13.96,0:13:15.96,Default,,0000,0000,0000,,and, so, this one is Dialogue: 0,0:13:15.96,0:13:17.96,Default,,0000,0000,0000,,an old device, it still uses Dialogue: 0,0:13:17.96,0:13:19.96,Default,,0000,0000,0000,,a board file, and it Dialogue: 0,0:13:19.96,0:13:22.40,Default,,0000,0000,0000,,needs the U-boot wrapper, Dialogue: 0,0:13:22.40,0:13:24.40,Default,,0000,0000,0000,,So... Dialogue: 0,0:13:24.40,0:13:27.18,Default,,0000,0000,0000,,You are basically setting the machine ID Dialogue: 0,0:13:27.18,0:13:29.84,Default,,0000,0000,0000,,those are the flash partitions Dialogue: 0,0:13:29.84,0:13:31.84,Default,,0000,0000,0000,,where the kernel and the Dialogue: 0,0:13:31.84,0:13:33.84,Default,,0000,0000,0000,,ramdisk are stored, and Dialogue: 0,0:13:33.84,0:13:35.66,Default,,0000,0000,0000,,that's the load address for the Dialogue: 0,0:13:35.66,0:13:37.66,Default,,0000,0000,0000,,U-boot wrapper Dialogue: 0,0:13:39.66,0:13:43.12,Default,,0000,0000,0000,,And, now, that's a device Dialogue: 0,0:13:43.12,0:13:45.12,Default,,0000,0000,0000,,which used to have Dialogue: 0,0:13:45.12,0:13:47.12,Default,,0000,0000,0000,,a boot file, Dialogue: 0,0:13:47.12,0:13:49.12,Default,,0000,0000,0000,,and which then migrated Dialogue: 0,0:13:49.12,0:13:51.12,Default,,0000,0000,0000,,to a .dtb, Dialogue: 0,0:13:51.12,0:13:53.12,Default,,0000,0000,0000,,so basically, heh, Dialogue: 0,0:13:53.12,0:13:56.16,Default,,0000,0000,0000,,that was really really painful for Debian Dialogue: 0,0:13:56.16,0:13:58.80,Default,,0000,0000,0000,,so, basically, the kernel people said Dialogue: 0,0:13:58.80,0:14:00.80,Default,,0000,0000,0000,,"Oh, you are going to move to device tree, Dialogue: 0,0:14:00.80,0:14:02.06,Default,,0000,0000,0000,,so don't worry, Dialogue: 0,0:14:02.06,0:14:04.46,Default,,0000,0000,0000,,we are not gonna remove those old board files, Dialogue: 0,0:14:04.46,0:14:06.46,Default,,0000,0000,0000,,you can still use them." Dialogue: 0,0:14:06.46,0:14:08.80,Default,,0000,0000,0000,,And then, a few years later they realized Dialogue: 0,0:14:08.80,0:14:11.24,Default,,0000,0000,0000,,it's really hard to keep both alive, Dialogue: 0,0:14:11.24,0:14:13.76,Default,,0000,0000,0000,,and they got rid of the board files. Dialogue: 0,0:14:13.76,0:14:16.36,Default,,0000,0000,0000,,And that was really painful to us Dialogue: 0,0:14:16.36,0:14:18.82,Default,,0000,0000,0000,,because we had to migrate Dialogue: 0,0:14:18.82,0:14:20.82,Default,,0000,0000,0000,,So you can see, Dialogue: 0,0:14:20.82,0:14:23.50,Default,,0000,0000,0000,,here, a kernel version, Dialogue: 0,0:14:23.50,0:14:25.50,Default,,0000,0000,0000,,and so, from that kernel on, Dialogue: 0,0:14:25.50,0:14:27.50,Default,,0000,0000,0000,,you needed to use the new way. Dialogue: 0,0:14:29.06,0:14:33.24,Default,,0000,0000,0000,,And one of the reasons it was painful Dialogue: 0,0:14:33.24,0:14:35.78,Default,,0000,0000,0000,,specially on the QNAP devices Dialogue: 0,0:14:35.78,0:14:38.40,Default,,0000,0000,0000,,is because with Dialogue: 0,0:14:38.40,0:14:40.40,Default,,0000,0000,0000,,they actually have two different CPUs Dialogue: 0,0:14:40.40,0:14:42.40,Default,,0000,0000,0000,,so there are different barriers Dialogue: 0,0:14:42.40,0:14:44.40,Default,,0000,0000,0000,,and whilst the board files, Dialogue: 0,0:14:44.40,0:14:46.40,Default,,0000,0000,0000,,the same board file worked Dialogue: 0,0:14:46.40,0:14:48.40,Default,,0000,0000,0000,,regardless of the CPU, Dialogue: 0,0:14:48.40,0:14:51.24,Default,,0000,0000,0000,,because of the way the device tree worked Dialogue: 0,0:14:51.24,0:14:53.24,Default,,0000,0000,0000,,it actually needed two different device trees Dialogue: 0,0:14:53.24,0:14:55.24,Default,,0000,0000,0000,,depending on the CPU Dialogue: 0,0:14:55.60,0:14:59.32,Default,,0000,0000,0000,,so now we basically, you know, something that just worked, Dialogue: 0,0:14:59.32,0:15:01.32,Default,,0000,0000,0000,,you know, it used to work fine, Dialogue: 0,0:15:01.32,0:15:03.32,Default,,0000,0000,0000,,you just had one kernel Dialogue: 0,0:15:03.32,0:15:05.74,Default,,0000,0000,0000,,with the machine ID Dialogue: 0,0:15:05.74,0:15:06.92,Default,,0000,0000,0000,,at least would work, Dialogue: 0,0:15:06.92,0:15:09.62,Default,,0000,0000,0000,,and somehow with the device tree Dialogue: 0,0:15:09.62,0:15:11.62,Default,,0000,0000,0000,,we needed to figure out which one Dialogue: 0,0:15:11.62,0:15:13.62,Default,,0000,0000,0000,,we need, and so Dialogue: 0,0:15:13.62,0:15:16.96,Default,,0000,0000,0000,,[?] fortunately did all of that work. Dialogue: 0,0:15:16.96,0:15:18.96,Default,,0000,0000,0000,,So that's actually a script that runs Dialogue: 0,0:15:18.96,0:15:20.96,Default,,0000,0000,0000,,to figure out which device tree Dialogue: 0,0:15:20.96,0:15:22.96,Default,,0000,0000,0000,,that particular device needs. Dialogue: 0,0:15:26.66,0:15:29.16,Default,,0000,0000,0000,,So now, that's actually Dialogue: 0,0:15:29.16,0:15:31.16,Default,,0000,0000,0000,,the reason I want to show this is Dialogue: 0,0:15:31.16,0:15:33.16,Default,,0000,0000,0000,,how simpler things are these days, so Dialogue: 0,0:15:33.16,0:15:35.16,Default,,0000,0000,0000,,this is an example from Dialogue: 0,0:15:35.16,0:15:38.60,Default,,0000,0000,0000,,[?] platform, which uses distro-support, Dialogue: 0,0:15:38.60,0:15:40.96,Default,,0000,0000,0000,,and the only thing you really need is Dialogue: 0,0:15:40.96,0:15:42.96,Default,,0000,0000,0000,,a machine entry with the name, Dialogue: 0,0:15:42.96,0:15:44.96,Default,,0000,0000,0000,,and then Dialogue: 0,0:15:44.96,0:15:46.96,Default,,0000,0000,0000,,like the kernel-flavor, Dialogue: 0,0:15:46.96,0:15:48.96,Default,,0000,0000,0000,,but that's the same for... Dialogue: 0,0:15:48.96,0:15:50.96,Default,,0000,0000,0000,,you know, there is only one kernel flavor. Dialogue: 0,0:15:52.74,0:15:55.38,Default,,0000,0000,0000,,And then, the device tree ID Dialogue: 0,0:15:56.48,0:15:58.36,Default,,0000,0000,0000,,and, again, all of that stuff is generic, Dialogue: 0,0:15:58.36,0:16:00.76,Default,,0000,0000,0000,,so it just uses the generic bootscript, Dialogue: 0,0:16:02.18,0:16:03.78,Default,,0000,0000,0000,,and the generic boot path, Dialogue: 0,0:16:03.78,0:16:05.78,Default,,0000,0000,0000,,so basically Dialogue: 0,0:16:05.78,0:16:07.78,Default,,0000,0000,0000,,all it pretty much needs for Dialogue: 0,0:16:07.78,0:16:09.78,Default,,0000,0000,0000,,a new device is, like, Dialogue: 0,0:16:09.78,0:16:11.78,Default,,0000,0000,0000,,you know, Dialogue: 0,0:16:11.78,0:16:13.78,Default,,0000,0000,0000,,these two entries, Dialogue: 0,0:16:13.78,0:16:15.78,Default,,0000,0000,0000,,it's really really simple. Dialogue: 0,0:16:18.78,0:16:21.26,Default,,0000,0000,0000,,So here, I just wanted to Dialogue: 0,0:16:21.26,0:16:23.26,Default,,0000,0000,0000,,tell about the different ARM ports and... Dialogue: 0,0:16:24.20,0:16:26.94,Default,,0000,0000,0000,,So, for me it was really hard to structure this, because Dialogue: 0,0:16:26.94,0:16:29.46,Default,,0000,0000,0000,,those changes in the kernel Dialogue: 0,0:16:29.46,0:16:31.46,Default,,0000,0000,0000,,and U-boot Dialogue: 0,0:16:31.46,0:16:34.64,Default,,0000,0000,0000,,you know, happen independent of our ARM ports, Dialogue: 0,0:16:36.10,0:16:37.72,Default,,0000,0000,0000,,But at the same time, because Dialogue: 0,0:16:37.72,0:16:40.34,Default,,0000,0000,0000,,because the armhf world is much newer, Dialogue: 0,0:16:40.34,0:16:42.34,Default,,0000,0000,0000,,it works in a different way. Dialogue: 0,0:16:42.34,0:16:45.20,Default,,0000,0000,0000,,So, basically, the armel Dialogue: 0,0:16:45.20,0:16:49.48,Default,,0000,0000,0000,,we still have different flavors Dialogue: 0,0:16:49.48,0:16:54.00,Default,,0000,0000,0000,,but we have already combined the orion and the kirkwood Dialogue: 0,0:16:54.00,0:16:56.00,Default,,0000,0000,0000,,into one marvell flavor, Dialogue: 0,0:16:56.00,0:16:59.06,Default,,0000,0000,0000,,and we have the versatile one. Dialogue: 0,0:17:00.86,0:17:03.76,Default,,0000,0000,0000,,So one of the problems we have in armel is that Dialogue: 0,0:17:03.76,0:17:05.76,Default,,0000,0000,0000,,a lot of those NAS devices Dialogue: 0,0:17:05.76,0:17:07.76,Default,,0000,0000,0000,,boot from flash Dialogue: 0,0:17:07.76,0:17:10.18,Default,,0000,0000,0000,,and they only have, some of them, Dialogue: 0,0:17:10.18,0:17:12.18,Default,,0000,0000,0000,,3MB for the kernel, Dialogue: 0,0:17:12.18,0:17:15.12,Default,,0000,0000,0000,,which used to be a lot of space Dialogue: 0,0:17:15.12,0:17:16.66,Default,,0000,0000,0000,,but nowadays it's not. Dialogue: 0,0:17:16.72,0:17:19.38,Default,,0000,0000,0000,,So that really puts a lot of restrictions Dialogue: 0,0:17:19.38,0:17:21.38,Default,,0000,0000,0000,,so basically we disable some stuff Dialogue: 0,0:17:21.38,0:17:23.38,Default,,0000,0000,0000,,from armel Dialogue: 0,0:17:23.38,0:17:27.18,Default,,0000,0000,0000,,but I think that armel is really really widely used Dialogue: 0,0:17:27.18,0:17:29.18,Default,,0000,0000,0000,,because of those NAS devices, Dialogue: 0,0:17:29.18,0:17:31.18,Default,,0000,0000,0000,,but I think they are slowly getting old, Dialogue: 0,0:17:31.18,0:17:33.68,Default,,0000,0000,0000,,but there are still a lot of people that use them. Dialogue: 0,0:17:33.68,0:17:37.22,Default,,0000,0000,0000,,Like I said, it requires the U-boot image Dialogue: 0,0:17:37.70,0:17:40.38,Default,,0000,0000,0000,,Originally, we used board files Dialogue: 0,0:17:40.38,0:17:43.36,Default,,0000,0000,0000,,and device tree, most of them Dialogue: 0,0:17:43.36,0:17:45.94,Default,,0000,0000,0000,,have switched over to device tree Dialogue: 0,0:17:45.94,0:17:48.58,Default,,0000,0000,0000,,even if some of them still use board files Dialogue: 0,0:17:48.58,0:17:51.54,Default,,0000,0000,0000,,and adding a new device requires Dialogue: 0,0:17:51.54,0:17:54.20,Default,,0000,0000,0000,,a number of changes in the installer. Dialogue: 0,0:17:54.20,0:17:57.10,Default,,0000,0000,0000,,So basically, you needed to map Dialogue: 0,0:17:57.10,0:17:59.10,Default,,0000,0000,0000,,the device to Dialogue: 0,0:17:59.10,0:18:01.10,Default,,0000,0000,0000,,the complete image Dialogue: 0,0:18:01.10,0:18:04.20,Default,,0000,0000,0000,,and there are just there a couple of Dialogue: 0,0:18:04.20,0:18:06.26,Default,,0000,0000,0000,,things, so basically, any one device Dialogue: 0,0:18:06.28,0:18:08.20,Default,,0000,0000,0000,,you have to change like five different Dialogue: 0,0:18:08.20,0:18:10.20,Default,,0000,0000,0000,,places in the installer. Dialogue: 0,0:18:10.20,0:18:12.20,Default,,0000,0000,0000,,And it was quite confusing for people who wanted Dialogue: 0,0:18:12.20,0:18:14.20,Default,,0000,0000,0000,,to add new devices Dialogue: 0,0:18:14.20,0:18:17.08,Default,,0000,0000,0000,,Because it isn't really documented very well Dialogue: 0,0:18:18.48,0:18:21.40,Default,,0000,0000,0000,,So some examples are a list of three people Dialogue: 0,0:18:21.40,0:18:23.40,Default,,0000,0000,0000,,who are involved in that port Dialogue: 0,0:18:23.40,0:18:25.40,Default,,0000,0000,0000,,So, Roger is someone Dialogue: 0,0:18:25.40,0:18:27.40,Default,,0000,0000,0000,,who is quite new, and who really got Dialogue: 0,0:18:27.40,0:18:29.92,Default,,0000,0000,0000,,involved into porting those old devices. Dialogue: 0,0:18:31.44,0:18:34.56,Default,,0000,0000,0000,,And so, armhf is much nicer, Dialogue: 0,0:18:34.56,0:18:36.56,Default,,0000,0000,0000,,so the majority of Dialogue: 0,0:18:36.56,0:18:39.14,Default,,0000,0000,0000,,devices support distro-support. Dialogue: 0,0:18:40.44,0:18:42.70,Default,,0000,0000,0000,,And the other thing we do Dialogue: 0,0:18:44.70,0:18:47.04,Default,,0000,0000,0000,,is, for some of the devices Dialogue: 0,0:18:47.04,0:18:49.04,Default,,0000,0000,0000,,we provide SD card images, Dialogue: 0,0:18:49.04,0:18:51.04,Default,,0000,0000,0000,,which contain Dialogue: 0,0:18:51.04,0:18:55.16,Default,,0000,0000,0000,,U-boot and the Debian installer Dialogue: 0,0:18:55.16,0:18:57.16,Default,,0000,0000,0000,,So basically Vagrant Dialogue: 0,0:18:57.16,0:18:59.96,Default,,0000,0000,0000,,maintains U-boot in Debian, and Dialogue: 0,0:18:59.96,0:19:01.96,Default,,0000,0000,0000,,a lot of those devices are supported Dialogue: 0,0:19:01.96,0:19:03.96,Default,,0000,0000,0000,,in U-boot in Debian. Dialogue: 0,0:19:03.96,0:19:05.96,Default,,0000,0000,0000,,So we just Dialogue: 0,0:19:05.96,0:19:07.96,Default,,0000,0000,0000,,provide an SD image, so you can just Dialogue: 0,0:19:07.96,0:19:10.48,Default,,0000,0000,0000,,store it in the SD card, you put it in Dialogue: 0,0:19:10.48,0:19:12.94,Default,,0000,0000,0000,,and, because of the distro-support, Dialogue: 0,0:19:12.94,0:19:14.94,Default,,0000,0000,0000,,it just loads debian-installer, Dialogue: 0,0:19:14.94,0:19:17.84,Default,,0000,0000,0000,,you do the installation, reboot, Dialogue: 0,0:19:17.84,0:19:19.84,Default,,0000,0000,0000,,and things just work. Dialogue: 0,0:19:19.84,0:19:21.84,Default,,0000,0000,0000,,So I think it really has gone Dialogue: 0,0:19:21.84,0:19:25.20,Default,,0000,0000,0000,,...Come a long way. Dialogue: 0,0:19:27.20,0:19:29.82,Default,,0000,0000,0000,,So nowadays, Dialogue: 0,0:19:29.82,0:19:31.82,Default,,0000,0000,0000,,adding a new device Dialogue: 0,0:19:31.82,0:19:34.14,Default,,0000,0000,0000,,requires much fewer changes Dialogue: 0,0:19:34.14,0:19:36.14,Default,,0000,0000,0000,,than it used to be. Dialogue: 0,0:19:36.14,0:19:40.98,Default,,0000,0000,0000,,Because as everything uses the same, like, one kernel flavor, Dialogue: 0,0:19:40.98,0:19:43.90,Default,,0000,0000,0000,,you don't need to patch all those different places anymore, Dialogue: 0,0:19:45.02,0:19:47.74,Default,,0000,0000,0000,,and because of distro-support, it just works. Dialogue: 0,0:19:47.74,0:19:52.28,Default,,0000,0000,0000,,You can pretty much use the generic bootscript. Dialogue: 0,0:19:54.14,0:19:56.14,Default,,0000,0000,0000,,So, arm64. Dialogue: 0,0:19:56.14,0:19:58.30,Default,,0000,0000,0000,,So, the problem until recently Dialogue: 0,0:19:58.30,0:20:00.30,Default,,0000,0000,0000,,is that there simply wasn't any hardware Dialogue: 0,0:20:00.30,0:20:02.30,Default,,0000,0000,0000,,that people could buy. Dialogue: 0,0:20:02.30,0:20:04.30,Default,,0000,0000,0000,,And that's changing rapidly now Dialogue: 0,0:20:05.64,0:20:07.54,Default,,0000,0000,0000,,[?] Dialogue: 0,0:20:07.54,0:20:10.28,Default,,0000,0000,0000,,We have for example the Raspberry Pi 3 Dialogue: 0,0:20:10.28,0:20:13.96,Default,,0000,0000,0000,,which uses a 64 bit CPU Dialogue: 0,0:20:13.96,0:20:16.62,Default,,0000,0000,0000,,but the software it ships is only 32 bits, Dialogue: 0,0:20:16.62,0:20:18.62,Default,,0000,0000,0000,,but most of the work Dialogue: 0,0:20:18.62,0:20:20.62,Default,,0000,0000,0000,,is now Dialogue: 0,0:20:20.62,0:20:23.68,Default,,0000,0000,0000,,upstreamed to run 64 bit on it Dialogue: 0,0:20:25.00,0:20:27.60,Default,,0000,0000,0000,,and there are a lot of Dialogue: 0,0:20:28.12,0:20:31.50,Default,,0000,0000,0000,,devices which sort of work but not quite Dialogue: 0,0:20:31.96,0:20:35.66,Default,,0000,0000,0000,,but anyway, so the idea for arm64 Dialogue: 0,0:20:35.66,0:20:37.66,Default,,0000,0000,0000,,is that a lot of the Dialogue: 0,0:20:37.66,0:20:39.66,Default,,0000,0000,0000,,new hardware Dialogue: 0,0:20:39.66,0:20:41.66,Default,,0000,0000,0000,,specially on the server side Dialogue: 0,0:20:41.66,0:20:43.66,Default,,0000,0000,0000,,will use UEFI, Dialogue: 0,0:20:43.66,0:20:45.66,Default,,0000,0000,0000,,and so you basically just Dialogue: 0,0:20:46.38,0:20:48.10,Default,,0000,0000,0000,,it just works like a PC. Dialogue: 0,0:20:48.10,0:20:50.10,Default,,0000,0000,0000,,So you have Grub, Dialogue: 0,0:20:50.10,0:20:53.02,Default,,0000,0000,0000,,you can run debian-installer from Grub Dialogue: 0,0:20:53.02,0:20:54.90,Default,,0000,0000,0000,,and you get Grub afterwards. Dialogue: 0,0:20:54.92,0:20:56.48,Default,,0000,0000,0000,,And just boots like a PC, Dialogue: 0,0:20:56.48,0:20:59.86,Default,,0000,0000,0000,,and Steve has done a lot of work in that area, Dialogue: 0,0:20:59.86,0:21:01.86,Default,,0000,0000,0000,,And in theory, Dialogue: 0,0:21:01.86,0:21:03.86,Default,,0000,0000,0000,,it should just work out of the box. Dialogue: 0,0:21:03.86,0:21:06.22,Default,,0000,0000,0000,,So, if it uses Dialogue: 0,0:21:06.22,0:21:08.22,Default,,0000,0000,0000,,UEFI, we don't need to add anything. Dialogue: 0,0:21:08.22,0:21:10.22,Default,,0000,0000,0000,,It just works. Dialogue: 0,0:21:10.22,0:21:12.22,Default,,0000,0000,0000,,There's nothing to do. Dialogue: 0,0:21:13.40,0:21:15.30,Default,,0000,0000,0000,,At least, that's the theory. Dialogue: 0,0:21:15.30,0:21:17.30,Default,,0000,0000,0000,,So, what I found is Dialogue: 0,0:21:17.30,0:21:19.30,Default,,0000,0000,0000,,...I made a disclaimer, so Dialogue: 0,0:21:19.30,0:21:21.30,Default,,0000,0000,0000,,...Assuming the kernel Dialogue: 0,0:21:21.30,0:21:23.30,Default,,0000,0000,0000,,you know, kernel support and stuff... Dialogue: 0,0:21:23.30,0:21:25.30,Default,,0000,0000,0000,,...To be honest, Dialogue: 0,0:21:25.30,0:21:28.16,Default,,0000,0000,0000,,right now, that's a big assumption. Dialogue: 0,0:21:28.16,0:21:30.16,Default,,0000,0000,0000,,So I've been playing with a few Dialogue: 0,0:21:30.16,0:21:33.20,Default,,0000,0000,0000,,64 bit ARM boards Dialogue: 0,0:21:33.20,0:21:36.58,Default,,0000,0000,0000,,and basically, what I found is Dialogue: 0,0:21:36.58,0:21:39.42,Default,,0000,0000,0000,,there is some support upstream, Dialogue: 0,0:21:39.42,0:21:41.42,Default,,0000,0000,0000,,so I can boot a kernel, Dialogue: 0,0:21:41.42,0:21:43.70,Default,,0000,0000,0000,,but, oh! There is no USB support! Dialogue: 0,0:21:43.70,0:21:45.28,Default,,0000,0000,0000,,there is no Wifi support! Dialogue: 0,0:21:45.28,0:21:48.06,Default,,0000,0000,0000,,So I cannot actually do anything with it. Dialogue: 0,0:21:48.06,0:21:51.58,Default,,0000,0000,0000,,But I can get to something that Dialogue: 0,0:21:51.58,0:21:54.98,Default,,0000,0000,0000,,because arm64 is still farily new. Dialogue: 0,0:21:54.98,0:21:57.64,Default,,0000,0000,0000,,And there is a lot of work going on upstream Dialogue: 0,0:21:57.64,0:22:00.00,Default,,0000,0000,0000,,to support the various platforms. Dialogue: 0,0:22:00.00,0:22:03.30,Default,,0000,0000,0000,,So, I think over time that's really going to be much better. Dialogue: 0,0:22:05.30,0:22:09.44,Default,,0000,0000,0000,,Even though that UEFI idea is there Dialogue: 0,0:22:09.44,0:22:11.20,Default,,0000,0000,0000,,in reality, Dialogue: 0,0:22:11.20,0:22:13.20,Default,,0000,0000,0000,,we are going to see different solutions Dialogue: 0,0:22:13.20,0:22:15.20,Default,,0000,0000,0000,,for arm64. Dialogue: 0,0:22:15.20,0:22:18.24,Default,,0000,0000,0000,,So we are going to see UEFI, in particular on servers, Dialogue: 0,0:22:18.24,0:22:20.24,Default,,0000,0000,0000,,but we will also see U-boot. Dialogue: 0,0:22:20.24,0:22:22.70,Default,,0000,0000,0000,,So a lot of those bare boards Dialogue: 0,0:22:22.70,0:22:24.70,Default,,0000,0000,0000,,they have U-boot. Dialogue: 0,0:22:24.70,0:22:26.70,Default,,0000,0000,0000,,And, so, right now Dialogue: 0,0:22:26.70,0:22:28.70,Default,,0000,0000,0000,,we can use the distro support Dialogue: 0,0:22:28.70,0:22:31.98,Default,,0000,0000,0000,,and I think that it works pretty well. Dialogue: 0,0:22:31.98,0:22:34.32,Default,,0000,0000,0000,,But one thing that SuSE has done Dialogue: 0,0:22:34.32,0:22:36.32,Default,,0000,0000,0000,,so, they just had the same issue, Dialogue: 0,0:22:36.32,0:22:38.32,Default,,0000,0000,0000,,they want to support all those devices Dialogue: 0,0:22:38.32,0:22:41.24,Default,,0000,0000,0000,,but they just want to use the same mechanism everywhere, Dialogue: 0,0:22:41.24,0:22:43.42,Default,,0000,0000,0000,,so they have actually implemented Dialogue: 0,0:22:43.42,0:22:46.02,Default,,0000,0000,0000,,UEFI on top of U-boot, Dialogue: 0,0:22:46.02,0:22:49.24,Default,,0000,0000,0000,,so you can basically use U-boot to load Grub Dialogue: 0,0:22:49.24,0:22:51.72,Default,,0000,0000,0000,,and then you have Grub Dialogue: 0,0:22:51.72,0:22:54.32,Default,,0000,0000,0000,,so I think that's something we need to figure out; Dialogue: 0,0:22:54.32,0:22:56.84,Default,,0000,0000,0000,,do we want to stay with distro-support? Dialogue: 0,0:22:56.84,0:22:58.84,Default,,0000,0000,0000,,do we want to use Dialogue: 0,0:22:58.84,0:23:01.14,Default,,0000,0000,0000,,UEFI on top of U-boot? Dialogue: 0,0:23:01.14,0:23:03.14,Default,,0000,0000,0000,,is that something we want to Dialogue: 0,0:23:03.14,0:23:05.14,Default,,0000,0000,0000,,give users the option? Dialogue: 0,0:23:05.14,0:23:08.02,Default,,0000,0000,0000,,And then, Fastboot Dialogue: 0,0:23:08.02,0:23:10.14,Default,,0000,0000,0000,,is something used Dialogue: 0,0:23:10.14,0:23:12.14,Default,,0000,0000,0000,,in the Android world Dialogue: 0,0:23:12.14,0:23:14.76,Default,,0000,0000,0000,,and a lot of those, like, I see a lot of Dialogue: 0,0:23:14.76,0:23:17.80,Default,,0000,0000,0000,,both bare boards, but also Dialogue: 0,0:23:17.80,0:23:19.94,Default,,0000,0000,0000,,game consoles and stuff, which Dialogue: 0,0:23:19.94,0:23:21.94,Default,,0000,0000,0000,,which are sort of Android-oriented, Dialogue: 0,0:23:21.94,0:23:23.94,Default,,0000,0000,0000,,but which can also run normal Linux, Dialogue: 0,0:23:23.94,0:23:26.84,Default,,0000,0000,0000,,and they will use like Fastboot or something. Dialogue: 0,0:23:26.84,0:23:30.12,Default,,0000,0000,0000,,And there are tons of other bootloaders out there Dialogue: 0,0:23:30.12,0:23:32.54,Default,,0000,0000,0000,,But I would definitively say, like, the good ones Dialogue: 0,0:23:32.54,0:23:34.54,Default,,0000,0000,0000,,are UEFI and U-boot Dialogue: 0,0:23:36.54,0:23:40.32,Default,,0000,0000,0000,,So, I gave a similar talk a few weeks ago Dialogue: 0,0:23:40.32,0:23:43.06,Default,,0000,0000,0000,,and turns out, a lot of non-free Dialogue: 0,0:23:43.06,0:23:45.06,Default,,0000,0000,0000,,firmware, like, "can I Dialogue: 0,0:23:45.06,0:23:46.92,Default,,0000,0000,0000,,run that stuff, you know, Dialogue: 0,0:23:46.92,0:23:48.92,Default,,0000,0000,0000,,purely with free software?" Dialogue: 0,0:23:48.92,0:23:51.26,Default,,0000,0000,0000,,...And... Dialogue: 0,0:23:51.26,0:23:52.98,Default,,0000,0000,0000,,So, the thing with ARM is that Dialogue: 0,0:23:52.98,0:23:54.98,Default,,0000,0000,0000,,there are a lot of different platforms Dialogue: 0,0:23:54.98,0:23:56.98,Default,,0000,0000,0000,,I'm not sure about all of them, Dialogue: 0,0:23:56.98,0:23:59.46,Default,,0000,0000,0000,,but some of the platforms Dialogue: 0,0:23:59.46,0:24:01.96,Default,,0000,0000,0000,,I looked at, yes, you Dialogue: 0,0:24:01.96,0:24:05.32,Default,,0000,0000,0000,,do need some... There is always something propietary. Dialogue: 0,0:24:06.46,0:24:08.42,Default,,0000,0000,0000,,So in a lot of cases Dialogue: 0,0:24:08.42,0:24:10.42,Default,,0000,0000,0000,,I see where you have Dialogue: 0,0:24:10.42,0:24:13.58,Default,,0000,0000,0000,,you use the proprietary first-stage boot loader, Dialogue: 0,0:24:13.58,0:24:16.16,Default,,0000,0000,0000,,so the Raspberry Pi is an example, Dialogue: 0,0:24:16.16,0:24:18.54,Default,,0000,0000,0000,,so, I don't actually have a Raspberry Pi, but Dialogue: 0,0:24:18.54,0:24:20.54,Default,,0000,0000,0000,,the way I understand it is Dialogue: 0,0:24:20.54,0:24:23.06,Default,,0000,0000,0000,,you basically put some boot files Dialogue: 0,0:24:23.06,0:24:25.06,Default,,0000,0000,0000,,in an SD card, Dialogue: 0,0:24:25.06,0:24:27.06,Default,,0000,0000,0000,,and they are proprietary, and Dialogue: 0,0:24:27.06,0:24:29.06,Default,,0000,0000,0000,,then they load the kernel. Dialogue: 0,0:24:29.06,0:24:31.50,Default,,0000,0000,0000,,Or in case of [?] Dialogue: 0,0:24:31.50,0:24:33.50,Default,,0000,0000,0000,,supported in Debian, Dialogue: 0,0:24:33.50,0:24:35.50,Default,,0000,0000,0000,,the first stage boot loader would basically Dialogue: 0,0:24:35.50,0:24:37.82,Default,,0000,0000,0000,,be used to run U-boot, Dialogue: 0,0:24:37.82,0:24:40.14,Default,,0000,0000,0000,,and then we could use U-boot, and Dialogue: 0,0:24:40.14,0:24:43.88,Default,,0000,0000,0000,,the U-boot support all of it is free software, Dialogue: 0,0:24:43.88,0:24:46.44,Default,,0000,0000,0000,,but the first stage boot loader isn't. Dialogue: 0,0:24:46.44,0:24:49.82,Default,,0000,0000,0000,,I have had, there are some people Dialogue: 0,0:24:49.82,0:24:51.82,Default,,0000,0000,0000,,working on a free replacement for Dialogue: 0,0:24:51.82,0:24:53.82,Default,,0000,0000,0000,,the Raspberry Pi, though. Dialogue: 0,0:24:53.82,0:24:55.82,Default,,0000,0000,0000,,With nVidia Tegra, Dialogue: 0,0:24:55.82,0:24:57.64,Default,,0000,0000,0000,,which is Dialogue: 0,0:24:57.64,0:24:59.64,Default,,0000,0000,0000,,something I'm working on at the moment Dialogue: 0,0:24:59.64,0:25:03.04,Default,,0000,0000,0000,,you also have a tiny first stage boot loader, Dialogue: 0,0:25:03.04,0:25:05.94,Default,,0000,0000,0000,,but then again, you have U-boot, which is free, Dialogue: 0,0:25:05.94,0:25:08.98,Default,,0000,0000,0000,,and in that case, you also have some firmware Dialogue: 0,0:25:08.98,0:25:10.98,Default,,0000,0000,0000,,images for the GPU Dialogue: 0,0:25:10.98,0:25:13.32,Default,,0000,0000,0000,,and for other stuff. Dialogue: 0,0:25:13.32,0:25:15.98,Default,,0000,0000,0000,,For the Dragon board, Dialogue: 0,0:25:15.98,0:25:18.98,Default,,0000,0000,0000,,The Dragon board sounded really interesting Dialogue: 0,0:25:18.98,0:25:20.82,Default,,0000,0000,0000,,because it actually has a Dialogue: 0,0:25:20.82,0:25:22.82,Default,,0000,0000,0000,,a graphics chip Dialogue: 0,0:25:22.82,0:25:25.12,Default,,0000,0000,0000,,which can be used with free software, Dialogue: 0,0:25:25.12,0:25:27.92,Default,,0000,0000,0000,,so that sounded pretty cool, Dialogue: 0,0:25:27.92,0:25:30.34,Default,,0000,0000,0000,,but again, it has a Dialogue: 0,0:25:30.34,0:25:32.46,Default,,0000,0000,0000,,proprietary first Dialogue: 0,0:25:32.46,0:25:34.46,Default,,0000,0000,0000,,stage boot loader, Dialogue: 0,0:25:34.46,0:25:36.46,Default,,0000,0000,0000,,and then there is a second stage boot loader Dialogue: 0,0:25:36.46,0:25:38.46,Default,,0000,0000,0000,,which is actually open source Dialogue: 0,0:25:38.46,0:25:41.52,Default,,0000,0000,0000,,and then there's actually a U-boot of that, Dialogue: 0,0:25:41.52,0:25:44.60,Default,,0000,0000,0000,,and then you have some Dialogue: 0,0:25:44.60,0:25:46.60,Default,,0000,0000,0000,,binary blobs which Dialogue: 0,0:25:46.60,0:25:49.90,Default,,0000,0000,0000,,also need to be installed in flash to work properly Dialogue: 0,0:25:49.90,0:25:51.90,Default,,0000,0000,0000,,On the Marvell side, I'm Dialogue: 0,0:25:51.90,0:25:53.90,Default,,0000,0000,0000,,not really aware of anything. Dialogue: 0,0:25:53.90,0:25:55.90,Default,,0000,0000,0000,,I have never needed to flash anything Dialogue: 0,0:25:55.90,0:25:57.90,Default,,0000,0000,0000,,proprietary, but Dialogue: 0,0:25:57.90,0:25:59.90,Default,,0000,0000,0000,,I'm not sure how U-boot gets started Dialogue: 0,0:25:59.90,0:26:01.90,Default,,0000,0000,0000,,on Marvell, so maybe there is something. Dialogue: 0,0:26:04.38,0:26:08.18,Default,,0000,0000,0000,,So the future is all... So NAS devices are Dialogue: 0,0:26:08.18,0:26:09.80,Default,,0000,0000,0000,,like I said, that's something that's Dialogue: 0,0:26:09.80,0:26:11.80,Default,,0000,0000,0000,,really been popular in Debian. Dialogue: 0,0:26:11.80,0:26:15.48,Default,,0000,0000,0000,,Specially on the QNAP devices, Dialogue: 0,0:26:15.48,0:26:17.48,Default,,0000,0000,0000,,but the problem is, so, QNAP... Dialogue: 0,0:26:17.48,0:26:19.48,Default,,0000,0000,0000,,so the devices we currently support Dialogue: 0,0:26:19.48,0:26:21.48,Default,,0000,0000,0000,,are pretty old Dialogue: 0,0:26:21.48,0:26:23.48,Default,,0000,0000,0000,,nowadays, Dialogue: 0,0:26:23.48,0:26:25.48,Default,,0000,0000,0000,,and they have some newer devices, Dialogue: 0,0:26:25.48,0:26:27.74,Default,,0000,0000,0000,,but they are not properly supported Dialogue: 0,0:26:27.74,0:26:29.74,Default,,0000,0000,0000,,in the upstream kernel. Dialogue: 0,0:26:29.74,0:26:31.74,Default,,0000,0000,0000,,So, I have no plans Dialogue: 0,0:26:31.74,0:26:33.74,Default,,0000,0000,0000,,to support Debian on those. Dialogue: 0,0:26:33.74,0:26:36.92,Default,,0000,0000,0000,,I recently did some work on Dialogue: 0,0:26:36.92,0:26:38.92,Default,,0000,0000,0000,,Seagate NAS devices Dialogue: 0,0:26:38.92,0:26:42.50,Default,,0000,0000,0000,,which are actually pretty interesting Dialogue: 0,0:26:42.50,0:26:44.50,Default,,0000,0000,0000,,but again, they will go out of date Dialogue: 0,0:26:44.50,0:26:46.50,Default,,0000,0000,0000,,already, Dialogue: 0,0:26:46.50,0:26:48.50,Default,,0000,0000,0000,,and then there's the whole 64 bit ARM Dialogue: 0,0:26:48.50,0:26:50.50,Default,,0000,0000,0000,,so I think people are really waiting Dialogue: 0,0:26:50.50,0:26:52.50,Default,,0000,0000,0000,,for arm64 servers Dialogue: 0,0:26:52.50,0:26:54.72,Default,,0000,0000,0000,,I think there's going to be a whole lot of Dialogue: 0,0:26:54.72,0:26:56.72,Default,,0000,0000,0000,,work on that area. Dialogue: 0,0:26:56.72,0:26:59.46,Default,,0000,0000,0000,,And then, there are all of those development boards Dialogue: 0,0:26:59.46,0:27:01.46,Default,,0000,0000,0000,,Raspberry Pi, Dialogue: 0,0:27:01.46,0:27:03.46,Default,,0000,0000,0000,,Pine64, Dialogue: 0,0:27:03.46,0:27:06.20,Default,,0000,0000,0000,,Allwinder, Dialogue: 0,0:27:06.20,0:27:08.90,Default,,0000,0000,0000,,Basically, all of them Dialogue: 0,0:27:08.90,0:27:10.90,Default,,0000,0000,0000,,sound exciting, but if you Dialogue: 0,0:27:10.90,0:27:12.70,Default,,0000,0000,0000,,look at them, all of them Dialogue: 0,0:27:12.70,0:27:14.70,Default,,0000,0000,0000,,have some upstream issues, so it's... Dialogue: 0,0:27:14.70,0:27:18.34,Default,,0000,0000,0000,,It is really quite frustrating at the moment. Dialogue: 0,0:27:18.34,0:27:20.34,Default,,0000,0000,0000,,But I think things are really Dialogue: 0,0:27:20.34,0:27:22.80,Default,,0000,0000,0000,,moving [?] Dialogue: 0,0:27:22.80,0:27:25.88,Default,,0000,0000,0000,,And then there's this 96Board initiative, Dialogue: 0,0:27:26.06,0:27:28.54,Default,,0000,0000,0000,,which is actually done by Linaro, Dialogue: 0,0:27:28.54,0:27:30.70,Default,,0000,0000,0000,,and, so, Linaro supports Dialogue: 0,0:27:30.70,0:27:32.88,Default,,0000,0000,0000,,Linux on ARM, so you'd think, "wow, Dialogue: 0,0:27:32.88,0:27:34.88,Default,,0000,0000,0000,,there are some really nice boards coming out!" Dialogue: 0,0:27:34.88,0:27:37.34,Default,,0000,0000,0000,,and they differentiated Dialogue: 0,0:27:37.34,0:27:39.94,Default,,0000,0000,0000,,between the consumer edition and the enterprise edition Dialogue: 0,0:27:39.94,0:27:42.88,Default,,0000,0000,0000,,beside, I bought some consumer-edition boards, Dialogue: 0,0:27:42.88,0:27:45.54,Default,,0000,0000,0000,,and it's really horrible. Dialogue: 0,0:27:45.54,0:27:48.22,Default,,0000,0000,0000,,So first of all, I had to spend like half a day Dialogue: 0,0:27:48.22,0:27:50.22,Default,,0000,0000,0000,,just putting the components Dialogue: 0,0:27:50.66,0:27:53.10,Default,,0000,0000,0000,,because it uses, like, a nonstandard power supply, Dialogue: 0,0:27:53.10,0:27:55.10,Default,,0000,0000,0000,,a nonstandard serial console, Dialogue: 0,0:27:55.10,0:27:57.82,Default,,0000,0000,0000,,so finally I found Dialogue: 0,0:27:57.82,0:28:00.28,Default,,0000,0000,0000,,all the pieces I needed, and then Dialogue: 0,0:28:00.28,0:28:02.82,Default,,0000,0000,0000,,I was expecting, well, it's from Linaro! Dialogue: 0,0:28:02.82,0:28:05.14,Default,,0000,0000,0000,,Surely everything just works upstream! Dialogue: 0,0:28:05.14,0:28:07.60,Default,,0000,0000,0000,,But it doesn't. It's like Dialogue: 0,0:28:07.60,0:28:09.60,Default,,0000,0000,0000,,yes, I can boot the Linux kernel, Dialogue: 0,0:28:09.60,0:28:11.60,Default,,0000,0000,0000,,but there's no USB, there's no Dialogue: 0,0:28:11.60,0:28:13.60,Default,,0000,0000,0000,,Wifi, no nothing... Dialogue: 0,0:28:15.08,0:28:17.08,Default,,0000,0000,0000,,So, yes, that's a little bit frustrating. Dialogue: 0,0:28:17.08,0:28:19.14,Default,,0000,0000,0000,,On the enterprise edition, Dialogue: 0,0:28:19.14,0:28:21.14,Default,,0000,0000,0000,,I think that looks more interesting. Dialogue: 0,0:28:21.14,0:28:23.14,Default,,0000,0000,0000,,You know, that's more standardized. Dialogue: 0,0:28:23.14,0:28:26.62,Default,,0000,0000,0000,,But again, there have been some delays. Dialogue: 0,0:28:28.62,0:28:32.62,Default,,0000,0000,0000,,[audience; unintellegible] Dialogue: 0,0:28:32.62,0:28:34.62,Default,,0000,0000,0000,,Yes, OK. Dialogue: 0,0:28:34.62,0:28:36.62,Default,,0000,0000,0000,,So that would be interesting to see. Dialogue: 0,0:28:36.62,0:28:39.42,Default,,0000,0000,0000,,So, the questions that I actually have nowadays Dialogue: 0,0:28:39.42,0:28:41.42,Default,,0000,0000,0000,,is, so... Dialogue: 0,0:28:41.42,0:28:43.42,Default,,0000,0000,0000,,Because of those changes, Dialogue: 0,0:28:43.42,0:28:45.42,Default,,0000,0000,0000,,because of having, you know, Dialogue: 0,0:28:45.42,0:28:47.42,Default,,0000,0000,0000,,a mode of U-boot, most of those Dialogue: 0,0:28:47.42,0:28:49.42,Default,,0000,0000,0000,,new devices having a U-boot Dialogue: 0,0:28:49.42,0:28:50.88,Default,,0000,0000,0000,,with distro-support, Dialogue: 0,0:28:50.88,0:28:53.04,Default,,0000,0000,0000,,having a kernel which, you know, Dialogue: 0,0:28:53.04,0:28:55.04,Default,,0000,0000,0000,,one kernel image that works on all of those Dialogue: 0,0:28:55.04,0:28:57.04,Default,,0000,0000,0000,,devices which are supported, Dialogue: 0,0:28:57.04,0:28:59.56,Default,,0000,0000,0000,,it's really easy to support Dialogue: 0,0:28:59.56,0:29:01.56,Default,,0000,0000,0000,,a new device? Dialogue: 0,0:29:01.56,0:29:04.10,Default,,0000,0000,0000,,As long as it's supported by the kernel. Dialogue: 0,0:29:04.10,0:29:06.36,Default,,0000,0000,0000,,But, at the same time, I think it's a big Dialogue: 0,0:29:06.36,0:29:07.74,Default,,0000,0000,0000,,challenge for Debian. Dialogue: 0,0:29:07.74,0:29:10.28,Default,,0000,0000,0000,,Because right now, if you look at armhf, Dialogue: 0,0:29:10.28,0:29:12.22,Default,,0000,0000,0000,,we basically say, well, Dialogue: 0,0:29:12.22,0:29:14.22,Default,,0000,0000,0000,,hint the installer, Dialogue: 0,0:29:14.22,0:29:16.22,Default,,0000,0000,0000,,and if there's a device tree, Dialogue: 0,0:29:16.22,0:29:18.22,Default,,0000,0000,0000,,it's probably going to work. Dialogue: 0,0:29:18.22,0:29:21.18,Default,,0000,0000,0000,,But, what does that mean, right? Dialogue: 0,0:29:23.18,0:29:25.18,Default,,0000,0000,0000,,And... Dialogue: 0,0:29:25.18,0:29:28.14,Default,,0000,0000,0000,,which really work, which means, Dialogue: 0,0:29:28.14,0:29:29.88,Default,,0000,0000,0000,,so, we have Vagrant Dialogue: 0,0:29:29.88,0:29:31.88,Default,,0000,0000,0000,,having U-boot support Dialogue: 0,0:29:31.88,0:29:33.88,Default,,0000,0000,0000,,in Debian, we have Dialogue: 0,0:29:33.88,0:29:36.24,Default,,0000,0000,0000,,people testing debian-installer, Dialogue: 0,0:29:36.24,0:29:38.24,Default,,0000,0000,0000,,testing the Debian kernel, so we have Dialogue: 0,0:29:38.24,0:29:40.82,Default,,0000,0000,0000,,devices which really work, well supported, Dialogue: 0,0:29:40.82,0:29:43.28,Default,,0000,0000,0000,,and then we have some devices Dialogue: 0,0:29:43.28,0:29:45.58,Default,,0000,0000,0000,,on the other hand where, well, yes, Dialogue: 0,0:29:45.58,0:29:47.58,Default,,0000,0000,0000,,there is a device tree, but no one Dialogue: 0,0:29:47.58,0:29:49.58,Default,,0000,0000,0000,,has ever tried it. And Dialogue: 0,0:29:49.58,0:29:51.58,Default,,0000,0000,0000,,at the moment, we have no way Dialogue: 0,0:29:51.58,0:29:54.14,Default,,0000,0000,0000,,for users to differentiate Dialogue: 0,0:29:54.14,0:29:56.54,Default,,0000,0000,0000,,those use case... Those Dialogue: 0,0:29:56.54,0:29:58.54,Default,,0000,0000,0000,,support levels. Dialogue: 0,0:29:58.54,0:30:00.54,Default,,0000,0000,0000,,So I'm wondering if we need Dialogue: 0,0:30:00.54,0:30:02.54,Default,,0000,0000,0000,,like a table, Dialogue: 0,0:30:02.54,0:30:04.54,Default,,0000,0000,0000,,somewhere where maybe Dialogue: 0,0:30:04.54,0:30:06.54,Default,,0000,0000,0000,,some support levels, like green, yellow... Dialogue: 0,0:30:06.54,0:30:08.12,Default,,0000,0000,0000,,red? Dialogue: 0,0:30:08.12,0:30:10.12,Default,,0000,0000,0000,,Where green is, "yes, we have Debian Dialogue: 0,0:30:10.12,0:30:12.12,Default,,0000,0000,0000,,people who have Dialogue: 0,0:30:12.12,0:30:14.12,Default,,0000,0000,0000,,testing that stuff", Dialogue: 0,0:30:14.12,0:30:16.12,Default,,0000,0000,0000,,yellow would be, "well, we have heard some report Dialogue: 0,0:30:16.12,0:30:18.12,Default,,0000,0000,0000,,that it might work", and Dialogue: 0,0:30:18.12,0:30:20.12,Default,,0000,0000,0000,,green is, you know, doesn't work, Dialogue: 0,0:30:20.12,0:30:22.12,Default,,0000,0000,0000,,or we haven't tried that it works. Dialogue: 0,0:30:22.12,0:30:24.12,Default,,0000,0000,0000,,Maybe we need something like that. Dialogue: 0,0:30:24.12,0:30:26.36,Default,,0000,0000,0000,,But right now, Dialogue: 0,0:30:26.36,0:30:28.36,Default,,0000,0000,0000,,I see from users Dialogue: 0,0:30:30.36,0:30:32.36,Default,,0000,0000,0000,,"I want to run Debian on my ARM device", and Dialogue: 0,0:30:32.36,0:30:35.38,Default,,0000,0000,0000,,they don't know if it's going to work. Dialogue: 0,0:30:35.38,0:30:37.38,Default,,0000,0000,0000,,Yes, then... Dialogue: 0,0:30:37.38,0:30:43.40,Default,,0000,0000,0000,,[audience; unintellegible] Dialogue: 0,0:30:43.40,0:30:45.40,Default,,0000,0000,0000,,Yes, so Ben is saying we also need Dialogue: 0,0:30:45.40,0:30:47.40,Default,,0000,0000,0000,,to track what the earliest and the latest Dialogue: 0,0:30:47.40,0:30:49.62,Default,,0000,0000,0000,,kernel versions that there have been tested. Dialogue: 0,0:30:49.62,0:30:51.80,Default,,0000,0000,0000,,So I think we really need to Dialogue: 0,0:30:51.80,0:30:53.80,Default,,0000,0000,0000,,come up with some criteria Dialogue: 0,0:30:53.80,0:30:58.92,Default,,0000,0000,0000,,to have, you know, define those kernel support levels that indicate that Dialogue: 0,0:30:58.92,0:31:01.92,Default,,0000,0000,0000,,And yes, the other question is related Dialogue: 0,0:31:01.92,0:31:03.26,Default,,0000,0000,0000,,to, with all those boards, Dialogue: 0,0:31:03.26,0:31:05.26,Default,,0000,0000,0000,,how do we actually test them? Dialogue: 0,0:31:05.26,0:31:07.00,Default,,0000,0000,0000,,So, I keep -- Dialogue: 0,0:31:07.00,0:31:10.10,Default,,0000,0000,0000,,it's really... remember [?] Dialogue: 0,0:31:10.10,0:31:12.10,Default,,0000,0000,0000,,which is great, but also acknowledge Dialogue: 0,0:31:12.10,0:31:14.10,Default,,0000,0000,0000,,those boards, they are so cheap! Dialogue: 0,0:31:14.10,0:31:16.10,Default,,0000,0000,0000,,so it's like, "oh, there's a new board! Dialogue: 0,0:31:16.10,0:31:18.10,Default,,0000,0000,0000,,It's £30! I'll just get it!" Dialogue: 0,0:31:18.10,0:31:21.02,Default,,0000,0000,0000,,And then we have, like, those piles of boards Dialogue: 0,0:31:21.02,0:31:23.02,Default,,0000,0000,0000,,and realize, well, I don't have time Dialogue: 0,0:31:23.02,0:31:25.02,Default,,0000,0000,0000,,for testing all of that stuff! Dialogue: 0,0:31:25.02,0:31:27.20,Default,,0000,0000,0000,,I think that's going to be a real challenge. Dialogue: 0,0:31:27.20,0:31:29.32,Default,,0000,0000,0000,,hundreds -- I don't know, Dialogue: 0,0:31:29.32,0:31:31.32,Default,,0000,0000,0000,,it's really hundreds of boards coming out. Dialogue: 0,0:31:31.32,0:31:33.90,Default,,0000,0000,0000,,How do we support all of that? Dialogue: 0,0:31:35.46,0:31:38.42,Default,,0000,0000,0000,,So, I think that's the question I wanted to raise, Dialogue: 0,0:31:38.42,0:31:41.16,Default,,0000,0000,0000,,and maybe something we can talk about in the BoF Dialogue: 0,0:31:41.16,0:31:43.38,Default,,0000,0000,0000,,But yes, I'm obviously Dialogue: 0,0:31:43.38,0:31:45.38,Default,,0000,0000,0000,,open for questions now. Dialogue: 0,0:31:55.52,0:31:57.52,Default,,0000,0000,0000,,[James / purpleidea:] Hello. Dialogue: 0,0:31:57.52,0:32:00.20,Default,,0000,0000,0000,,So, don't quote me exactly, Dialogue: 0,0:32:00.20,0:32:02.20,Default,,0000,0000,0000,,so, I believe Dialogue: 0,0:32:02.20,0:32:04.20,Default,,0000,0000,0000,,RedHat has this problem as well, obviously, Dialogue: 0,0:32:04.20,0:32:06.20,Default,,0000,0000,0000,,I mean, they are obviously more interested in the Dialogue: 0,0:32:06.20,0:32:08.58,Default,,0000,0000,0000,,ARM64-only server stuff, Dialogue: 0,0:32:08.58,0:32:10.58,Default,,0000,0000,0000,,but I believe the way they are going about it Dialogue: 0,0:32:10.58,0:32:12.88,Default,,0000,0000,0000,,maybe it's something could collaborate on Dialogue: 0,0:32:12.88,0:32:15.08,Default,,0000,0000,0000,,is, they are trying to make sure and push Dialogue: 0,0:32:15.08,0:32:17.08,Default,,0000,0000,0000,,all the vendors to be standardized Dialogue: 0,0:32:17.08,0:32:19.26,Default,,0000,0000,0000,,because, as you pointed out, Dialogue: 0,0:32:19.26,0:32:21.54,Default,,0000,0000,0000,,it's just not, it's crazy Dialogue: 0,0:32:21.54,0:32:24.54,Default,,0000,0000,0000,,with all the different device tree differences and so on, Dialogue: 0,0:32:24.54,0:32:26.54,Default,,0000,0000,0000,,so I believe their strategy is to Dialogue: 0,0:32:26.54,0:32:28.84,Default,,0000,0000,0000,,work with the vendors, and Dialogue: 0,0:32:28.84,0:32:30.84,Default,,0000,0000,0000,,require everything to be upstreamed, and Dialogue: 0,0:32:30.84,0:32:32.84,Default,,0000,0000,0000,,no device tree Dialogue: 0,0:32:32.84,0:32:34.84,Default,,0000,0000,0000,,specifically, to push everything to just boot Dialogue: 0,0:32:34.84,0:32:36.84,Default,,0000,0000,0000,,with one kernel, and so on. Dialogue: 0,0:32:36.84,0:32:38.84,Default,,0000,0000,0000,,So maybe that could be Dialogue: 0,0:32:38.84,0:32:40.84,Default,,0000,0000,0000,,sacrifice a few of the Dialogue: 0,0:32:40.84,0:32:42.84,Default,,0000,0000,0000,,shitty boards, but work with the vendors Dialogue: 0,0:32:42.84,0:32:45.82,Default,,0000,0000,0000,,that make the ones that are upstreamed. Dialogue: 0,0:32:45.82,0:32:47.82,Default,,0000,0000,0000,,[Martin:] Yes, so I may be mistaken, but Dialogue: 0,0:32:47.82,0:32:49.82,Default,,0000,0000,0000,,as far as I know, RedHat Dialogue: 0,0:32:49.82,0:32:51.62,Default,,0000,0000,0000,,basically says, "we only support Dialogue: 0,0:32:51.62,0:32:53.62,Default,,0000,0000,0000,,UEFI and ACPI" Dialogue: 0,0:32:53.62,0:32:55.62,Default,,0000,0000,0000,,and that's fair enough, Dialogue: 0,0:32:55.62,0:32:57.62,Default,,0000,0000,0000,,and I think that works for them, because Dialogue: 0,0:32:57.62,0:32:59.90,Default,,0000,0000,0000,,it's just the server world they care about, Dialogue: 0,0:32:59.90,0:33:01.90,Default,,0000,0000,0000,,but I think in the case of Debian Dialogue: 0,0:33:01.90,0:33:03.90,Default,,0000,0000,0000,,there are so many boards out there which Dialogue: 0,0:33:03.90,0:33:05.90,Default,,0000,0000,0000,,don't need those specs, Dialogue: 0,0:33:05.90,0:33:08.60,Default,,0000,0000,0000,,and we sort of live, like, in the "real world" Dialogue: 0,0:33:08.60,0:33:10.98,Default,,0000,0000,0000,,so I don't think we can Dialogue: 0,0:33:10.98,0:33:12.98,Default,,0000,0000,0000,,Well -- I know it's different. I mean, Dialogue: 0,0:33:12.98,0:33:14.98,Default,,0000,0000,0000,,if RedHat wants to target Dialogue: 0,0:33:14.98,0:33:16.98,Default,,0000,0000,0000,,the server people, like, the people Dialogue: 0,0:33:16.98,0:33:18.98,Default,,0000,0000,0000,,which give money Dialogue: 0,0:33:18.98,0:33:20.98,Default,,0000,0000,0000,,that's fair enough, that makes sense for them Dialogue: 0,0:33:20.98,0:33:22.98,Default,,0000,0000,0000,,but Debian, we run everywhere Dialogue: 0,0:33:22.98,0:33:24.98,Default,,0000,0000,0000,,so I think we need to support Dialogue: 0,0:33:24.98,0:33:26.98,Default,,0000,0000,0000,,all those weird Dialogue: 0,0:33:26.98,0:33:28.98,Default,,0000,0000,0000,,cases as well. Dialogue: 0,0:33:28.98,0:33:30.98,Default,,0000,0000,0000,,And maybe if it gets too weird, Dialogue: 0,0:33:30.98,0:33:32.98,Default,,0000,0000,0000,,I mean, Dialogue: 0,0:33:32.98,0:33:35.36,Default,,0000,0000,0000,,I put in some work in the Dragonboard, Dialogue: 0,0:33:35.36,0:33:37.36,Default,,0000,0000,0000,,and then I realized, Dialogue: 0,0:33:37.36,0:33:39.36,Default,,0000,0000,0000,,am I actually spending the time because Dialogue: 0,0:33:39.36,0:33:41.36,Default,,0000,0000,0000,,no one, like, I have heard Dialogue: 0,0:33:41.36,0:33:43.36,Default,,0000,0000,0000,,from no one that they have Dialogue: 0,0:33:43.36,0:33:45.36,Default,,0000,0000,0000,,that board, I mean, like [?] Dialogue: 0,0:33:45.36,0:33:47.36,Default,,0000,0000,0000,,for the Raspberry Pi, but I have heard Dialogue: 0,0:33:47.36,0:33:49.36,Default,,0000,0000,0000,,like, pretty much no one has the Dialogue: 0,0:33:49.36,0:33:51.36,Default,,0000,0000,0000,,Dragonboard, so maybe, Dialogue: 0,0:33:51.36,0:33:53.92,Default,,0000,0000,0000,,...it's not worth my while, Dialogue: 0,0:33:53.92,0:33:55.92,Default,,0000,0000,0000,,but if there's a board Dialogue: 0,0:33:55.92,0:33:57.92,Default,,0000,0000,0000,,that people want to use it, Dialogue: 0,0:33:57.92,0:34:00.34,Default,,0000,0000,0000,,I think we should support it in Debian. Dialogue: 0,0:34:00.34,0:34:02.34,Default,,0000,0000,0000,,And we do have the infrastructure Dialogue: 0,0:34:02.34,0:34:04.34,Default,,0000,0000,0000,,so we, you know, it doesn't have to be Dialogue: 0,0:34:04.34,0:34:06.34,Default,,0000,0000,0000,,UEFI and ACPI, Dialogue: 0,0:34:06.34,0:34:08.34,Default,,0000,0000,0000,,we can support other devices, because Dialogue: 0,0:34:08.34,0:34:10.34,Default,,0000,0000,0000,,we have done it before. Dialogue: 0,0:34:10.34,0:34:12.34,Default,,0000,0000,0000,,But I definitively agree with Dialogue: 0,0:34:12.34,0:34:14.96,Default,,0000,0000,0000,,the point about getting more standardization Dialogue: 0,0:34:14.96,0:34:16.96,Default,,0000,0000,0000,,and that stuff, so Dialogue: 0,0:34:16.96,0:34:18.96,Default,,0000,0000,0000,,I agree, yes. Dialogue: 0,0:34:20.36,0:34:22.92,Default,,0000,0000,0000,,And the whole distro-support Dialogue: 0,0:34:22.92,0:34:25.60,Default,,0000,0000,0000,,in U-boot, that has really made things easier for us. Dialogue: 0,0:34:33.22,0:34:35.88,Default,,0000,0000,0000,,[Phil:] I may begin to say some of the same things Steve has, anyway. Dialogue: 0,0:34:35.88,0:34:38.50,Default,,0000,0000,0000,,Steve]: So, yes, on the Dialogue: 0,0:34:38.50,0:34:41.22,Default,,0000,0000,0000,,ACPI versus DT thing, Dialogue: 0,0:34:41.22,0:34:43.22,Default,,0000,0000,0000,,it's more a question Dialogue: 0,0:34:43.22,0:34:45.98,Default,,0000,0000,0000,,of the quality of the implementation of the Dialogue: 0,0:34:45.98,0:34:48.80,Default,,0000,0000,0000,,of the firmware, Dialogue: 0,0:34:48.80,0:34:50.80,Default,,0000,0000,0000,,and the upstream support that is... Dialogue: 0,0:34:50.80,0:34:52.80,Default,,0000,0000,0000,,DT isn't fundamentally Dialogue: 0,0:34:52.80,0:34:55.26,Default,,0000,0000,0000,,worse for upstream support Dialogue: 0,0:34:55.26,0:34:57.78,Default,,0000,0000,0000,,than ACPI is, Dialogue: 0,0:34:57.78,0:35:00.98,Default,,0000,0000,0000,,RedHat are Dialogue: 0,0:35:00.98,0:35:02.98,Default,,0000,0000,0000,,have some reasons Dialogue: 0,0:35:02.98,0:35:04.98,Default,,0000,0000,0000,,[?] of sensibility, Dialogue: 0,0:35:04.98,0:35:06.98,Default,,0000,0000,0000,,but then, it's not Dialogue: 0,0:35:06.98,0:35:09.38,Default,,0000,0000,0000,,fundamentally, it doesn't fundamentally stop it Dialogue: 0,0:35:09.38,0:35:11.38,Default,,0000,0000,0000,,people supporting it, specially Dialogue: 0,0:35:11.38,0:35:13.38,Default,,0000,0000,0000,,a community distro like Debian. Dialogue: 0,0:35:13.38,0:35:16.34,Default,,0000,0000,0000,,I was also going to ask Martin, Dialogue: 0,0:35:16.34,0:35:18.34,Default,,0000,0000,0000,,have you talked to Dialogue: 0,0:35:18.34,0:35:20.56,Default,,0000,0000,0000,,people like kernel CI Dialogue: 0,0:35:20.56,0:35:24.66,Default,,0000,0000,0000,,about testing and coverage stuff? Dialogue: 0,0:35:24.66,0:35:26.66,Default,,0000,0000,0000,,[Martin:] Yes, not really, but Dialogue: 0,0:35:26.66,0:35:29.74,Default,,0000,0000,0000,,I think there are some things we should look into. Dialogue: 0,0:35:29.74,0:35:31.74,Default,,0000,0000,0000,,[Steve:] Yes, because the whole -- Dialogue: 0,0:35:31.74,0:35:33.74,Default,,0000,0000,0000,,Obviously, making sure the kernel boots Dialogue: 0,0:35:33.74,0:35:35.74,Default,,0000,0000,0000,,on random hardware Dialogue: 0,0:35:35.74,0:35:38.08,Default,,0000,0000,0000,,stuff, is exactly what that's doing Dialogue: 0,0:35:39.74,0:35:42.36,Default,,0000,0000,0000,,and there's at least infrastructure there that might be Dialogue: 0,0:35:42.36,0:35:44.74,Default,,0000,0000,0000,,nice to play with. Dialogue: 0,0:35:46.48,0:35:48.48,Default,,0000,0000,0000,,[Martin:] Yes. I think that's a good idea. Dialogue: 0,0:35:50.48,0:35:52.48,Default,,0000,0000,0000,,[sledge:] So, on the whole 96Boards thing, Dialogue: 0,0:35:52.48,0:35:54.48,Default,,0000,0000,0000,,sorry! Dialogue: 0,0:35:54.48,0:35:56.48,Default,,0000,0000,0000,,Most of the engineers involved Dialogue: 0,0:35:56.48,0:35:58.48,Default,,0000,0000,0000,,are totally aware of Dialogue: 0,0:35:58.48,0:36:00.48,Default,,0000,0000,0000,,how [?] it really is. Dialogue: 0,0:36:00.48,0:36:02.48,Default,,0000,0000,0000,,We tried to tell management Dialogue: 0,0:36:02.48,0:36:04.48,Default,,0000,0000,0000,,they would -- Dialogue: 0,0:36:04.48,0:36:06.48,Default,,0000,0000,0000,,They don't want to listen. Dialogue: 0,0:36:06.48,0:36:08.48,Default,,0000,0000,0000,,Umm.. So, Dialogue: 0,0:36:08.48,0:36:10.48,Default,,0000,0000,0000,,there has been a huge amount of pushback Dialogue: 0,0:36:10.48,0:36:13.00,Default,,0000,0000,0000,,saying, you know, "we're Linaro Dialogue: 0,0:36:13.00,0:36:15.38,Default,,0000,0000,0000,,we should make sure this is all upstreamed". Dialogue: 0,0:36:17.38,0:36:19.38,Default,,0000,0000,0000,,[Martin:] Well, I am aware Dialogue: 0,0:36:19.38,0:36:21.38,Default,,0000,0000,0000,,it's just, Linaro Dialogue: 0,0:36:21.38,0:36:23.38,Default,,0000,0000,0000,,has a really good brand, Dialogue: 0,0:36:23.38,0:36:25.38,Default,,0000,0000,0000,,so people expect, you know, when I saw Dialogue: 0,0:36:25.38,0:36:27.38,Default,,0000,0000,0000,,96Boards it's Linaro, Dialogue: 0,0:36:27.38,0:36:29.80,Default,,0000,0000,0000,,obviously that stuff it's going to work! Dialogue: 0,0:36:29.80,0:36:31.80,Default,,0000,0000,0000,,and that's why I was really disappointed. Dialogue: 0,0:36:31.80,0:36:33.80,Default,,0000,0000,0000,,[Steve:] One positive thing there Dialogue: 0,0:36:33.80,0:36:35.80,Default,,0000,0000,0000,,is that the first DE board Dialogue: 0,0:36:35.80,0:36:38.30,Default,,0000,0000,0000,,the SoC does basically work upstream Dialogue: 0,0:36:38.30,0:36:40.44,Default,,0000,0000,0000,,already with current upstream kernel Dialogue: 0,0:36:40.44,0:36:42.44,Default,,0000,0000,0000,,it's not like there's some patches still Dialogue: 0,0:36:42.44,0:36:44.44,Default,,0000,0000,0000,,to go in. Apart from the PCI, it should basically Dialogue: 0,0:36:44.44,0:36:47.40,Default,,0000,0000,0000,,work... So, hopefully, Dialogue: 0,0:36:47.40,0:36:49.82,Default,,0000,0000,0000,,hopefully, that's going to be a much Dialogue: 0,0:36:49.82,0:36:51.82,Default,,0000,0000,0000,,less spectacular Dialogue: 0,0:36:51.82,0:36:53.82,Default,,0000,0000,0000,,story than the Dialogue: 0,0:36:53.82,0:36:55.82,Default,,0000,0000,0000,,consumer-edition boards have been. Dialogue: 0,0:36:55.82,0:36:57.82,Default,,0000,0000,0000,,As they are unfortunate. Dialogue: 0,0:37:01.86,0:37:03.86,Default,,0000,0000,0000,,[Sledge:] The first EE board Dialogue: 0,0:37:03.86,0:37:05.86,Default,,0000,0000,0000,,the [?]board, is due to start shipping Dialogue: 0,0:37:05.86,0:37:07.86,Default,,0000,0000,0000,,really soon now. Dialogue: 0,0:37:07.86,0:37:09.86,Default,,0000,0000,0000,,There are examples already out there Dialogue: 0,0:37:09.86,0:37:11.86,Default,,0000,0000,0000,,with engineers for validation. Dialogue: 0,0:37:11.86,0:37:14.30,Default,,0000,0000,0000,,Literally, we are talking the next couple of weeks Dialogue: 0,0:37:14.30,0:37:16.30,Default,,0000,0000,0000,,is what I have been told. Dialogue: 0,0:37:16.30,0:37:18.70,Default,,0000,0000,0000,,That's the first 96Boards I would Dialogue: 0,0:37:18.70,0:37:20.70,Default,,0000,0000,0000,,actually spend any time on at all personally, Dialogue: 0,0:37:20.70,0:37:23.24,Default,,0000,0000,0000,,the CE boards are a joke. Dialogue: 0,0:37:29.02,0:37:31.02,Default,,0000,0000,0000,,I forgot what else I was going to say. Oh! Dialogue: 0,0:37:31.02,0:37:33.02,Default,,0000,0000,0000,,Yes! Then... Dialogue: 0,0:37:33.02,0:37:35.38,Default,,0000,0000,0000,,I guess we will go through a lot of this again Dialogue: 0,0:37:35.38,0:37:37.38,Default,,0000,0000,0000,,in the ARM BoF later on Dialogue: 0,0:37:37.38,0:37:39.48,Default,,0000,0000,0000,,in terms of Dialogue: 0,0:37:39.48,0:37:41.48,Default,,0000,0000,0000,,which things we support. Dialogue: 0,0:37:44.66,0:37:46.66,Default,,0000,0000,0000,,We will carry on with the discussion. Dialogue: 0,0:37:54.72,0:37:57.56,Default,,0000,0000,0000,,[Vagrant:] Um... Is this working? Dialogue: 0,0:37:57.56,0:37:59.56,Default,,0000,0000,0000,,Yes, so... Dialogue: 0,0:37:59.56,0:38:01.56,Default,,0000,0000,0000,,We have got all this great support for Dialogue: 0,0:38:01.56,0:38:03.56,Default,,0000,0000,0000,,distro-boot command and U-boot, and Dialogue: 0,0:38:03.56,0:38:05.56,Default,,0000,0000,0000,,now we are starting to get Dialogue: 0,0:38:05.56,0:38:07.56,Default,,0000,0000,0000,,to UEFI emulation Dialogue: 0,0:38:07.56,0:38:09.56,Default,,0000,0000,0000,,in U-boot, so even for boards Dialogue: 0,0:38:09.56,0:38:11.56,Default,,0000,0000,0000,,that don't have UEFI emulation-- Dialogue: 0,0:38:11.56,0:38:13.56,Default,,0000,0000,0000,,UEFI support, if they support Dialogue: 0,0:38:13.56,0:38:15.56,Default,,0000,0000,0000,,U-boot, it might work Dialogue: 0,0:38:15.56,0:38:17.56,Default,,0000,0000,0000,,although that means all the standarization Dialogue: 0,0:38:17.56,0:38:19.56,Default,,0000,0000,0000,,we worked towards, we throw it away., Dialogue: 0,0:38:19.56,0:38:21.56,Default,,0000,0000,0000,,Meh! Dialogue: 0,0:38:23.56,0:38:26.30,Default,,0000,0000,0000,,[Martin:] Yes, I think that's something we need to figure out, Dialogue: 0,0:38:26.30,0:38:29.24,Default,,0000,0000,0000,,which one do we want to standardize on, Dialogue: 0,0:38:29.24,0:38:31.24,Default,,0000,0000,0000,,or is that something we want to Dialogue: 0,0:38:31.24,0:38:33.24,Default,,0000,0000,0000,,leave up to the user. Dialogue: 0,0:38:33.24,0:38:35.48,Default,,0000,0000,0000,,but yes, Dialogue: 0,0:38:35.48,0:38:37.56,Default,,0000,0000,0000,,I mean, I think one Dialogue: 0,0:38:37.56,0:38:39.56,Default,,0000,0000,0000,,I mean, I guess it was Dialogue: 0,0:38:39.56,0:38:41.56,Default,,0000,0000,0000,,so confusing, because there are like Dialogue: 0,0:38:41.56,0:38:43.56,Default,,0000,0000,0000,,all those different ways, but Dialogue: 0,0:38:44.92,0:38:46.92,Default,,0000,0000,0000,,what I really wanted to show is that Dialogue: 0,0:38:46.92,0:38:48.92,Default,,0000,0000,0000,,things are getting much more Dialogue: 0,0:38:48.92,0:38:51.10,Default,,0000,0000,0000,,standardized and much better. Dialogue: 0,0:38:51.10,0:38:53.56,Default,,0000,0000,0000,,So, it used to be really Dialogue: 0,0:38:53.56,0:38:55.56,Default,,0000,0000,0000,,pretty horrible, and nowadays, Dialogue: 0,0:38:55.56,0:38:57.56,Default,,0000,0000,0000,,you know, if a platform Dialogue: 0,0:38:57.56,0:38:59.56,Default,,0000,0000,0000,,uses a modern Dialogue: 0,0:38:59.56,0:39:01.56,Default,,0000,0000,0000,,U-boot, if it has Dialogue: 0,0:39:01.56,0:39:03.56,Default,,0000,0000,0000,,upstream support, then it is Dialogue: 0,0:39:03.56,0:39:05.56,Default,,0000,0000,0000,,actually pretty trivial to add Dialogue: 0,0:39:05.56,0:39:07.56,Default,,0000,0000,0000,,Debian support, and Dialogue: 0,0:39:07.56,0:39:09.56,Default,,0000,0000,0000,,I think that wasn't the case Dialogue: 0,0:39:09.56,0:39:10.66,Default,,0000,0000,0000,,in the past. Dialogue: 0,0:39:10.66,0:39:12.66,Default,,0000,0000,0000,,I think Ben had another one? Dialogue: 0,0:39:20.80,0:39:23.58,Default,,0000,0000,0000,,[Ben:] So, I'm Dialogue: 0,0:39:26.54,0:39:29.96,Default,,0000,0000,0000,,[laughs] Dialogue: 0,0:39:29.96,0:39:33.28,Default,,0000,0000,0000,,I'm interested to know how much Dialogue: 0,0:39:33.28,0:39:36.08,Default,,0000,0000,0000,,how much interest there is among the ARM porters Dialogue: 0,0:39:36.08,0:39:38.50,Default,,0000,0000,0000,,in graphics support. Dialogue: 0,0:39:38.50,0:39:40.38,Default,,0000,0000,0000,,GPU support, rather Dialogue: 0,0:39:40.38,0:39:42.38,Default,,0000,0000,0000,,than settling for dumb framebuffers. Dialogue: 0,0:39:42.38,0:39:44.38,Default,,0000,0000,0000,,How many... Dialogue: 0,0:39:44.38,0:39:46.38,Default,,0000,0000,0000,,How many of these boards... Dialogue: 0,0:39:46.38,0:39:48.38,Default,,0000,0000,0000,,Quite a lot of these boards do have HDMI Dialogue: 0,0:39:48.38,0:39:50.38,Default,,0000,0000,0000,,and I don't know Dialogue: 0,0:39:50.38,0:39:52.78,Default,,0000,0000,0000,,to what degree they are actually supported. Dialogue: 0,0:39:52.78,0:39:56.38,Default,,0000,0000,0000,,Are any current projected work Dialogue: 0,0:39:56.38,0:40:00.28,Default,,0000,0000,0000,,which definitively is using the Dialogue: 0,0:40:00.28,0:40:04.70,Default,,0000,0000,0000,,GPU on ARM system, and Dialogue: 0,0:40:04.70,0:40:07.32,Default,,0000,0000,0000,,what's in Debian, Dialogue: 0,0:40:07.32,0:40:09.52,Default,,0000,0000,0000,,is the Debian base system Dialogue: 0,0:40:09.78,0:40:12.48,Default,,0000,0000,0000,,does Debian... What's in Debian does not Dialogue: 0,0:40:12.48,0:40:14.48,Default,,0000,0000,0000,,support GPU. Dialogue: 0,0:40:14.48,0:40:17.98,Default,,0000,0000,0000,,[Martin:] So, I can't speak for Vagrant... Dialogue: 0,0:40:17.98,0:40:19.98,Default,,0000,0000,0000,,I have personally done some work Dialogue: 0,0:40:19.98,0:40:21.98,Default,,0000,0000,0000,,on the Tegra recently, Dialogue: 0,0:40:21.98,0:40:23.98,Default,,0000,0000,0000,,and nVidia is actually Dialogue: 0,0:40:23.98,0:40:27.12,Default,,0000,0000,0000,,working upstream on [?] Dialogue: 0,0:40:27.12,0:40:29.64,Default,,0000,0000,0000,,so I'm really interested in it Dialogue: 0,0:40:29.64,0:40:31.64,Default,,0000,0000,0000,,but I think that a lot of Dialogue: 0,0:40:31.64,0:40:33.64,Default,,0000,0000,0000,,the board used, there's money Dialogue: 0,0:40:33.64,0:40:37.16,Default,,0000,0000,0000,,GPUs I'm not sure would be Dialogue: 0,0:40:37.16,0:40:40.38,Default,,0000,0000,0000,,...you can get a [laughs] Dialogue: 0,0:40:40.38,0:40:43.76,Default,,0000,0000,0000,,can we get a microphone for Steve? Dialogue: 0,0:40:51.78,0:40:53.78,Default,,0000,0000,0000,,[Sledge:] So, on the Mali front, Dialogue: 0,0:40:53.78,0:40:55.24,Default,,0000,0000,0000,,there has been a lot of haste where we Dialogue: 0,0:40:55.24,0:40:57.24,Default,,0000,0000,0000,,have been scared of releasing any of this Dialogue: 0,0:40:57.24,0:40:59.88,Default,,0000,0000,0000,,in any way, shape or form, Dialogue: 0,0:40:59.88,0:41:01.88,Default,,0000,0000,0000,,without huge Dialogue: 0,0:41:01.88,0:41:04.58,Default,,0000,0000,0000,,[?]-relays and all that kind of stuff. Dialogue: 0,0:41:04.58,0:41:06.88,Default,,0000,0000,0000,,So it's not really distributable. Dialogue: 0,0:41:06.88,0:41:08.88,Default,,0000,0000,0000,,Even, at all. Dialogue: 0,0:41:08.88,0:41:12.30,Default,,0000,0000,0000,,We are a long way of it being releasable free, Dialogue: 0,0:41:12.30,0:41:15.64,Default,,0000,0000,0000,,There are packages coming that we Dialogue: 0,0:41:15.64,0:41:17.64,Default,,0000,0000,0000,,should be getting shippable in non-free Dialogue: 0,0:41:17.64,0:41:19.64,Default,,0000,0000,0000,,at least if you want to get full acceleration Dialogue: 0,0:41:19.64,0:41:21.64,Default,,0000,0000,0000,,on your Mali stuff. Dialogue: 0,0:41:23.64,0:41:25.64,Default,,0000,0000,0000,,Hopefully, that will solve some of the problems Dialogue: 0,0:41:25.64,0:41:27.64,Default,,0000,0000,0000,,There is a lot, there are a lot of people Dialogue: 0,0:41:27.64,0:41:29.64,Default,,0000,0000,0000,,in [?] who are very very keen on Dialogue: 0,0:41:29.64,0:41:32.18,Default,,0000,0000,0000,,supporting it properly, free and upstreamed. Dialogue: 0,0:41:32.18,0:41:34.62,Default,,0000,0000,0000,,It's a long fight. Dialogue: 0,0:41:34.62,0:41:35.94,Default,,0000,0000,0000,,It will take a while. Dialogue: 0,0:41:35.94,0:41:39.04,Default,,0000,0000,0000,,I mean, most of the Mali driver developers Dialogue: 0,0:41:39.04,0:41:41.04,Default,,0000,0000,0000,,themselves I have spoken to, would love to Dialogue: 0,0:41:41.04,0:41:43.04,Default,,0000,0000,0000,,make it free. It just comes down Dialogue: 0,0:41:43.04,0:41:45.04,Default,,0000,0000,0000,,to legal people Dialogue: 0,0:41:45.04,0:41:47.04,Default,,0000,0000,0000,,being scared. Dialogue: 0,0:41:53.04,0:41:55.04,Default,,0000,0000,0000,,[Tobi:] Are there some questions left? Dialogue: 0,0:41:58.78,0:42:00.08,Default,,0000,0000,0000,,[Martin:] Well, thanks for coming! Dialogue: 0,0:42:00.08,0:42:02.08,Default,,0000,0000,0000,,And there is going to be the ARM BoF Dialogue: 0,0:42:02.08,0:42:04.08,Default,,0000,0000,0000,,later today, and Dialogue: 0,0:42:04.08,0:42:06.08,Default,,0000,0000,0000,,Vagrant is also going to talk about his experience Dialogue: 0,0:42:06.08,0:42:09.76,Default,,0000,0000,0000,,about running a build network Dialogue: 0,0:42:09.76,0:42:11.76,Default,,0000,0000,0000,,on armhf boards.. Dialogue: 0,0:42:11.76,0:42:13.16,Default,,0000,0000,0000,,Thanks! Dialogue: 0,0:42:18.06,0:42:20.06,Default,,0000,0000,0000,,[audience clapping]