Return to Video

Debian_on_ARM_devices_2.webm

  • 0:03 - 0:05
    So, I think we are ready to start
  • 0:05 - 0:09
    So, next talk is from Martin, about Debian on ARM devices.
  • 0:14 - 0:22
    So, it's Debian on ARM devices, it's not about the Debian ARM port itself, or any of the various ARM ports
  • 0:22 - 0:27
    I would say it's sort of a mix of different topics
  • 0:27 - 0:27
    it's basically ---
  • 0:27 - 0:29
    I mean, basically I often get
    it's basically ---
  • 0:29 - 0:32
    I mean, basically I often get
  • 0:32 - 0:35
    the question from users
  • 0:36 - 0:39
    "Well, Debian works on this particular ARM device,
  • 0:39 - 0:42
    I have a device which is like really really similar,
  • 0:42 - 0:45
    so surely Debian should work on it, right?"
  • 0:45 - 0:49
    And so far, the answer unfortunately was usually "no"
  • 0:49 - 0:53
    and - and it's really frustrating for users
  • 0:53 - 0:56
    because they don't see why.
  • 0:56 - 0:59
    You know, the device is very much the same, so why doesn't it just work.
  • 0:59 - 1:01
    And so, basically what I'm trying to do is
  • 1:01 - 1:04
    to show like a little bit behind the scenes
  • 1:04 - 1:07
    of how Debian on ARM works
  • 1:07 - 1:10
    And there has been a whole lot of progres
  • 1:10 - 1:13
    So I'm going to show how did it work,
  • 1:13 - 1:15
    what are the improvements, and
  • 1:15 - 1:18
    and how is it going to work in the future
  • 1:20 - 1:22
    And it's all more from a develeoper perspective
  • 1:22 - 1:26
    so, it's like, how do we support it in the Debian Installer
  • 1:26 - 1:31
    its' like a mix of stuff, and I should say,
  • 1:32 - 1:35
    I'm really looking at it from somebody who basically
  • 1:35 - 1:38
    adds support for devices in the installer
  • 1:38 - 1:40
    but I'm not like a kernel guy or anything, so
  • 1:40 - 1:45
    there are a lot of people in this room who know a bit more about the technical details
  • 1:45 - 1:49
    but I'm not going to really drill down really deep down anyway
  • 1:49 - 1:52
    But if I'm incorrect, I'm sure that
  • 1:52 - 1:54
    there are plenty of people that will correct me.
  • 1:54 - 2:01
    So, where do you find ARM? So it's pretty much everywhere these days, I mean...
  • 2:01 - 2:05
    Pretty much every phone has an ARM chip in it
  • 2:07 - 2:12
    All those "Internet of Things" gadgets are ARM-based
  • 2:13 - 2:18
    You have NAS devices, and that's really the area I used to focus on
  • 2:19 - 2:23
    those small boxes where you basically add a hard drive
  • 2:23 - 2:27
    and most people just use it for storage, but it's actually a
  • 2:27 - 2:30
    full PC where you can install Debian on it
  • 2:31 - 2:34
    so I always found that to be very interesting
  • 2:34 - 2:37
    and nowadays you have a lot of development boards
  • 2:37 - 2:41
    And I'm not sure whether "development boards" is the right word
  • 2:41 - 2:45
    Because when I hear "development boards" I think of it as really expensive,
  • 2:46 - 2:48
    Like 5K for boards or something
  • 2:48 - 2:52
    But nowadays you have those, maybe, a better board would be like bareboards
  • 2:52 - 2:56
    Like "Raspberry Pi", like basically it's just the board
  • 2:56 - 3:00
    it does not come with a case, you can buy those as well
  • 3:00 - 3:03
    and it's like 30 dollars or something, you can get
  • 3:03 - 3:07
    And that gets pretty much where most of the
  • 3:07 - 3:11
    excitement is going for Debian users at this moment
  • 3:11 - 3:14
    And that can cause a lot of frustration
  • 3:17 - 3:20
    And everybody says that ARM is going to be big on servers
  • 3:20 - 3:24
    and I think that's something we ar going to see
  • 3:24 - 3:27
    But right now, again, it's
  • 3:27 - 3:29
    a little bit frustrating
  • 3:31 - 3:34
    How does it work as a Deban Installer
  • 3:34 - 3:36
    There are basically two
  • 3:37 - 3:40
    ways of installing on those ARM Pi devices
  • 3:41 - 3:44
    So the, like, historic, that we normally
  • 3:44 - 3:48
    would be to install on, like, ascreen
  • 3:48 - 3:50
    can be a serial console,
  • 3:50 - 3:55
    and then you just download via the network
  • 3:55 - 3:59
    and then you just download via the network
  • 3:59 - 4:01
    from a CD image or wherever,
  • 4:01 - 4:05
    But the other method, which we actually use for those
  • 4:05 - 4:08
    net devices was a network console
  • 4:08 - 4:11
    where you basically ssh into the installer
  • 4:12 - 4:14
    and you perform the installation via ssh
  • 4:15 - 4:20
    and that was really the only way, because those mass devices
  • 4:20 - 4:23
    don't have any I/O, so I
  • 4:23 - 4:25
    even in there, you can
  • 4:25 - 4:28
    it's just a serial console, most of them
  • 4:28 - 4:32
    That's something we didn't want to require from the user
  • 4:33 - 4:37
    And the other thing that's coming through, I think that it's basically cool that was announce today,
  • 4:37 - 4:39
    screen support, so basically
  • 4:40 - 4:43
    so you can have multiple sessions with in vi,
  • 4:43 - 4:47
    which can be useful if you have an open shell to debug
  • 4:49 - 4:54
    And so, how -- And so, this is really looking back at
  • 4:54 - 4:56
    like running Debian on NAS devices
  • 4:56 - 4:58
    which is something that used to be really popular
  • 4:58 - 5:02
    And the way it worked was basically
  • 5:02 - 5:05
    that we provided an installer image
  • 5:05 - 5:07
    which was sort of a firmware image
  • 5:07 - 5:09
    as a lot of those NAS devices
  • 5:09 - 5:12
    have like a firmware upgrade mechanism
  • 5:12 - 5:14
    and so we would basically fake
  • 5:14 - 5:17
    we would create a firmware image
  • 5:17 - 5:20
    which the software would accept
  • 5:20 - 5:22
    but instead of a firmware update
  • 5:23 - 5:25
    it would actually contain the Debian installer
  • 5:25 - 5:28
    so you would install that upgrade
  • 5:28 - 5:30
    you would reboot, and
  • 5:30 - 5:33
    you could ssh to the installer
  • 5:33 - 5:36
    and obviously, in order to ssh to the installer
  • 5:36 - 5:38
    it needs to bring up the network
  • 5:38 - 5:41
    and there is a tool called oldsys-preseed
  • 5:41 - 5:43
    that basically reads the network configuration
  • 5:43 - 5:45
    from the device
  • 5:45 - 5:47
    and then sets up the network
  • 5:47 - 5:52
    and it can always recognize the DHCP
  • 5:52 - 5:54
    and then the user connects via ssh
  • 5:54 - 5:58
    again, there would be some indication, maybe
  • 5:58 - 6:00
    you know, there would be a "beep"
  • 6:00 - 6:01
    or maybe change the LED
  • 6:01 - 6:03
    to indicate that the installer is ready
  • 6:03 - 6:05
    and then, the user basically performs
  • 6:05 - 6:07
    a regular installation
  • 6:07 - 6:09
    with normal d-i; they don't have to
  • 6:09 - 6:11
    do anything differently.
  • 6:12 - 6:15
    And at the end, flash-kernel runs
  • 6:15 - 6:17
    to make the system bootable
  • 6:17 - 6:20
    flash-kernel is called that way
  • 6:20 - 6:21
    because it used to support
    flash-kernel is called that way
  • 6:21 - 6:23
    because it used to support
  • 6:23 - 6:25
    like the initial device it supported
  • 6:25 - 6:27
    booted from flash
  • 6:27 - 6:29
    but it also generates bootable devices
  • 6:29 - 6:31
    bootable images of disk devices
  • 6:34 - 6:37
    so it really, flash-kernel really requires
  • 6:37 - 6:39
    understanding of each device
  • 6:39 - 6:41
    and our philosophy
  • 6:41 - 6:43
    in those cases, with those NAS devices
  • 6:43 - 6:44
    was really,
  • 6:44 - 6:46
    we don't touch anything
  • 6:46 - 6:48
    in the firmware, like
  • 6:48 - 6:50
    in the configuration,
  • 6:50 - 6:52
    so sometimes
  • 6:52 - 6:55
    instead of changing the root device
  • 6:55 - 6:57
    in the u-boot config we would actually
  • 6:57 - 6:59
    hard-code that in the ramdisk
  • 6:59 - 7:03
    just because we wanted people to go back
  • 7:03 - 7:05
    to the original firmware if they had to
  • 7:05 - 7:08
    if they had to send it in for repair or something
  • 7:08 - 7:10
    and
  • 7:10 - 7:12
    and that kind of approach really worked well
  • 7:12 - 7:14
    so I think we really had a lot of
  • 7:14 - 7:16
    people, lot of users running
  • 7:16 - 7:18
    in Debian in those kind of NAS devices
  • 7:18 - 7:21
    and it was really easy to do.
  • 7:21 - 7:23
    You get a firmware image,
  • 7:23 - 7:25
    you connect to the installer via ssh,
  • 7:25 - 7:27
    and it just works, it's a normal
  • 7:27 - 7:29
    debian-installer, the way
  • 7:29 - 7:31
    everybody knows it,
  • 7:31 - 7:33
    because some of the other distros
  • 7:33 - 7:34
    they basically provide, like,
  • 7:34 - 7:35
    tarballs and instructions
  • 7:35 - 7:37
    so you need to partition a disk,
  • 7:37 - 7:39
    need to un-tar it,
  • 7:39 - 7:41
    you need to change those files,
  • 7:41 - 7:43
    and even if it sounds simple,
  • 7:43 - 7:45
    it's so many steps that
  • 7:45 - 7:48
    you always... you often get something wrong
  • 7:48 - 7:50
    and then you put the drive into the
  • 7:50 - 7:52
    NAS device, and it doesn't boot, and you don't know why
  • 7:52 - 7:55
    where did you make that mistake,
  • 7:55 - 7:56
    which step
  • 7:56 - 7:58
    and you basically have to start from scratch
  • 7:58 - 8:00
    so Debian really provided something unique
  • 8:00 - 8:02
    by adding
  • 8:02 - 8:04
    the debian-installer support
  • 8:04 - 8:06
    but anyway, that's the way
  • 8:06 - 8:08
    it sort of used to work.
  • 8:08 - 8:10
    Nowadays, with a lot of those bareboard
  • 8:10 - 8:12
    it's much easier
  • 8:12 - 8:14
    I'll get to that.
  • 8:15 - 8:18
    So at the moment there are three different ARM ports:
  • 8:18 - 8:20
    There is the old armel
  • 8:20 - 8:22
    which used to be the "newer" ARM
  • 8:22 - 8:25
    and now it's old,
  • 8:25 - 8:27
    and one of the discussions
  • 8:27 - 8:29
    that we are probably going to have later today on the BoF
  • 8:29 - 8:31
    is about, should we remove that
  • 8:31 - 8:33
    after Stretch.
  • 8:33 - 8:36
    There is armhf and the arm64
  • 8:38 - 8:41
    and we get basically the question I hope to answer.
  • 8:41 - 8:43
    If, you know, device A works,
  • 8:43 - 8:45
    I have a device which is really similar,
  • 8:45 - 8:47
    but it doesn't work. Why is that?
  • 8:49 - 8:51
    So, heh,
  • 8:51 - 8:53
    There have been a lot of changes
  • 8:53 - 8:58
    in various upstream projects, specially
  • 8:58 - 9:00
    the kernel and U-boot
  • 9:00 - 9:02
    that really make things easier.
  • 9:02 - 9:04
    So, in the past
  • 9:04 - 9:07
    we basically had
  • 9:07 - 9:09
    a kernel image
  • 9:09 - 9:11
    for each platform,
  • 9:11 - 9:13
    where a platform is basically like
  • 9:13 - 9:15
    a SSE family
  • 9:15 - 9:18
    and there would be a different image
  • 9:18 - 9:22
    because ARM takes a long time
  • 9:22 - 9:24
    to compile, there was always some debate
  • 9:24 - 9:26
    about adding a new platform
  • 9:26 - 9:28
    because there would be a new
  • 9:28 - 9:31
    image flavor, which takes some time,
  • 9:32 - 9:34
    and that was just really like,
  • 9:34 - 9:36
    we couldn't just have one ARM kernel
  • 9:36 - 9:38
    which works everywhere.
  • 9:38 - 9:40
    And a lot of people didn't understand
  • 9:40 - 9:42
    why you had a different kernel
  • 9:42 - 9:44
    because different platforms,
  • 9:44 - 9:48
    although there has been a lot of progress upstream,
  • 9:48 - 9:52
    at least nowadays, with armhf
  • 9:52 - 9:54
    and with arm64
  • 9:54 - 9:56
    we just have one kernel.
  • 9:57 - 10:00
    And upstream basically
  • 10:00 - 10:03
    Maybe some of you remember the rant
  • 10:03 - 10:05
    by Niels about
  • 10:05 - 10:07
    the ARM people doing everything
  • 10:07 - 10:08
    in different ways,
  • 10:08 - 10:10
    and there has been a lot of standarization
  • 10:10 - 10:12
    over the years.
  • 10:12 - 10:14
    Basically, the other thing is
  • 10:14 - 10:16
    there used to be for each device
  • 10:16 - 10:18
    there was a board file
  • 10:18 - 10:20
    it was like a C file
  • 10:20 - 10:23
    to initialize the different components,
  • 10:23 - 10:25
    and the boot loader would
  • 10:25 - 10:28
    pass the machine ID to the kernel,
  • 10:28 - 10:30
    and it would load that boot file.
  • 10:30 - 10:32
    And nowadays,
  • 10:32 - 10:34
    there is basically a
  • 10:34 - 10:36
    device tree in the kernel,
  • 10:36 - 10:38
    which is a description of the hardware
  • 10:40 - 10:42
    and it will basically compile it
  • 10:42 - 10:45
    to, like, a binary blob, the .dtb.
  • 10:45 - 10:47
    And, so, basically you just need
  • 10:47 - 10:49
    the kernel image, and
  • 10:49 - 10:51
    the .dtb, which is hardware-specific,
  • 10:51 - 10:53
    and then it boots.
  • 10:53 - 10:56
    And obviously, for us in Debian
  • 10:56 - 10:58
    that makes it much much easier
  • 10:58 - 11:01
    to support a lot of devices.
  • 11:02 - 11:05
    The other thing that changed in U-boot,
  • 11:06 - 11:09
    when you install the Debian kernel image,
  • 11:09 - 11:11
    it creates
  • 11:11 - 11:14
    the vmlinux file
  • 11:14 - 11:17
    and also the RAM disk
  • 11:17 - 11:19
    but with U-boot,
  • 11:19 - 11:21
    you couldn't actually load those files
  • 11:21 - 11:23
    correctly. You basically
  • 11:23 - 11:26
    had to wrap them in a U-boot image
  • 11:26 - 11:28
    and it's not really hard
  • 11:28 - 11:31
    it's just the command initram,
  • 11:31 - 11:33
    but all of the different devices had
  • 11:33 - 11:35
    different load addresses,
  • 11:35 - 11:37
    and, again, that's hardware-specific knowledge
  • 11:37 - 11:39
    that flash-kernel needed to know.
  • 11:39 - 11:41
    And nowadays,
  • 11:41 - 11:43
    there is a command which
  • 11:43 - 11:45
    directly loads the kernel,
  • 11:45 - 11:48
    so that, again, was a step to make things easier.
  • 11:48 - 11:52
    And the last thing which really made
  • 11:52 - 11:54
    things easier is distro support
  • 11:54 - 11:56
    in U-boot.
  • 11:56 - 11:58
    So, basically, in the past
  • 11:58 - 12:00
    every U-boot, every
  • 12:00 - 12:02
    devices in U-boot,
  • 12:02 - 12:04
    booted in a different way,
  • 12:05 - 12:09
    just in terms on where would it load
  • 12:09 - 12:11
    the file from, or
  • 12:11 - 12:13
    what variables would it use, and
  • 12:13 - 12:15
    nowadays there is something called distro-support
  • 12:15 - 12:17
    which is basically a standardized way
  • 12:17 - 12:19
    to boot a Linux distro
  • 12:19 - 12:22
    with U-boot.
  • 12:22 - 12:24
    There are basically
  • 12:24 - 12:26
    two ways, either can
  • 12:26 - 12:28
    read a config file,
  • 12:28 - 12:30
    or it can basically run a
  • 12:30 - 12:32
    boot script, and that's what
  • 12:32 - 12:34
    we use in Debian, so we basically have
  • 12:34 - 12:36
    a generic boot script
  • 12:36 - 12:38
    which loads the kernel,
  • 12:38 - 12:40
    loads the ramdisk, the .dtb,
  • 12:40 - 12:42
    and boots Debian.
  • 12:42 - 12:44
    It can use the generic
  • 12:44 - 12:46
    bootscript in almost all
  • 12:46 - 12:48
    of the modern devices.
  • 12:48 - 12:50
    So nowadays, because of that,
  • 12:50 - 12:52
    it's much more standard, and
  • 12:52 - 12:54
    it's much easier to support
  • 12:54 - 12:56
    those devices.
  • 12:56 - 13:00
    So here are some examples of flash-kernel
  • 13:00 - 13:03
    So, basically, flash-kernel has like a database
  • 13:03 - 13:05
    of devices which it supports
  • 13:05 - 13:08
    so it's like the machine entry
  • 13:08 - 13:10
    in /proc/cpuinfo,
  • 13:10 - 13:12
    and then the kernel flavors
  • 13:12 - 13:14
    it can run
  • 13:14 - 13:16
    and, so, this one is
  • 13:16 - 13:18
    an old device, it still uses
  • 13:18 - 13:20
    a board file, and it
  • 13:20 - 13:22
    needs the U-boot wrapper,
  • 13:22 - 13:24
    So...
  • 13:24 - 13:27
    You are basically setting the machine ID
  • 13:27 - 13:30
    those are the flash partitions
  • 13:30 - 13:32
    where the kernel and the
  • 13:32 - 13:34
    ramdisk are stored, and
  • 13:34 - 13:36
    that's the load address for the
  • 13:36 - 13:38
    U-boot wrapper
  • 13:40 - 13:43
    And, now, that's a device
  • 13:43 - 13:45
    which used to have
  • 13:45 - 13:47
    a boot file,
  • 13:47 - 13:49
    and which then migrated
  • 13:49 - 13:51
    to a .dtb,
  • 13:51 - 13:53
    so basically, heh,
  • 13:53 - 13:56
    that was really really painful for Debian
  • 13:56 - 13:59
    so, basically, the kernel people said
  • 13:59 - 14:01
    "Oh, you are going to move to device tree,
  • 14:01 - 14:02
    so don't worry,
  • 14:02 - 14:04
    we are not gonna remove those old board files,
  • 14:04 - 14:06
    you can still use them."
  • 14:06 - 14:09
    And then, a few years later they realized
  • 14:09 - 14:11
    it's really hard to keep both alive,
  • 14:11 - 14:14
    and they got rid of the board files.
  • 14:14 - 14:16
    And that was really painful to us
  • 14:16 - 14:19
    because we had to migrate
  • 14:19 - 14:21
    So you can see,
  • 14:21 - 14:24
    here, a kernel version,
  • 14:24 - 14:26
    and so, from that kernel on,
  • 14:26 - 14:28
    you needed to use the new way.
  • 14:29 - 14:33
    And one of the reasons it was painful
  • 14:33 - 14:36
    specially on the QNAP devices
  • 14:36 - 14:38
    is because with
  • 14:38 - 14:40
    they actually have two different CPUs
  • 14:40 - 14:42
    so there are different barriers
  • 14:42 - 14:44
    and whilst the board files,
  • 14:44 - 14:46
    the same board file worked
  • 14:46 - 14:48
    regardless of the CPU,
  • 14:48 - 14:51
    because of the way the device tree worked
  • 14:51 - 14:53
    it actually needed two different device trees
  • 14:53 - 14:55
    depending on the CPU
  • 14:56 - 14:59
    so now we basically, you know, something that just worked,
  • 14:59 - 15:01
    you know, it used to work fine,
  • 15:01 - 15:03
    you just had one kernel
  • 15:03 - 15:06
    with the machine ID
  • 15:06 - 15:07
    at least would work,
  • 15:07 - 15:10
    and somehow with the device tree
  • 15:10 - 15:12
    we needed to figure out which one
  • 15:12 - 15:14
    we need, and so
  • 15:14 - 15:17
    [?] fortunately did all of that work.
  • 15:17 - 15:19
    So that's actually a script that runs
  • 15:19 - 15:21
    to figure out which device tree
  • 15:21 - 15:23
    that particular device needs.
  • 15:27 - 15:29
    So now, that's actually
  • 15:29 - 15:31
    the reason I want to show this is
  • 15:31 - 15:33
    how simpler things are these days, so
  • 15:33 - 15:35
    this is an example from
  • 15:35 - 15:39
    [?] platform, which uses distro-support,
  • 15:39 - 15:41
    and the only thing you really need is
  • 15:41 - 15:43
    a machine entry with the name,
  • 15:43 - 15:45
    and then
  • 15:45 - 15:47
    like the kernel-flavor,
  • 15:47 - 15:49
    but that's the same for...
  • 15:49 - 15:51
    you know, there is only one kernel flavor.
  • 15:53 - 15:55
    And then, the device tree ID
  • 15:56 - 15:58
    and, again, all of that stuff is generic,
  • 15:58 - 16:01
    so it just uses the generic bootscript,
  • 16:02 - 16:04
    and the generic boot path,
  • 16:04 - 16:06
    so basically
  • 16:06 - 16:08
    all it pretty much needs for
  • 16:08 - 16:10
    a new device is, like,
  • 16:10 - 16:12
    you know,
  • 16:12 - 16:14
    these two entries,
  • 16:14 - 16:16
    it's really really simple.
  • 16:19 - 16:21
    So here, I just wanted to
  • 16:21 - 16:23
    tell about the different ARM ports and...
  • 16:24 - 16:27
    So, for me it was really hard to structure this, because
  • 16:27 - 16:29
    those changes in the kernel
  • 16:29 - 16:31
    and U-boot
  • 16:31 - 16:35
    you know, happen independent of our ARM ports,
  • 16:36 - 16:38
    But at the same time, because
  • 16:38 - 16:40
    because the armhf world is much newer,
  • 16:40 - 16:42
    it works in a different way.
  • 16:42 - 16:45
    So, basically, the armel
  • 16:45 - 16:49
    we still have different flavors
  • 16:49 - 16:54
    but we have already combined the orion and the kirkwood
  • 16:54 - 16:56
    into one marvell flavor,
  • 16:56 - 16:59
    and we have the versatile one.
  • 17:01 - 17:04
    So one of the problems we have in armel is that
  • 17:04 - 17:06
    a lot of those NAS devices
  • 17:06 - 17:08
    boot from flash
  • 17:08 - 17:10
    and they only have, some of them,
  • 17:10 - 17:12
    3MB for the kernel,
  • 17:12 - 17:15
    which used to be a lot of space
  • 17:15 - 17:17
    but nowadays it's not.
  • 17:17 - 17:19
    So that really puts a lot of restrictions
  • 17:19 - 17:21
    so basically we disable some stuff
  • 17:21 - 17:23
    from armel
  • 17:23 - 17:27
    but I think that armel is really really widely used
  • 17:27 - 17:29
    because of those NAS devices,
  • 17:29 - 17:31
    but I think they are slowly getting old,
  • 17:31 - 17:34
    but there are still a lot of people that use them.
  • 17:34 - 17:37
    Like I said, it requires the U-boot image
  • 17:38 - 17:40
    Originally, we used board files
  • 17:40 - 17:43
    and device tree, most of them
  • 17:43 - 17:46
    have switched over to device tree
  • 17:46 - 17:49
    even if some of them still use board files
  • 17:49 - 17:52
    and adding a new device requires
  • 17:52 - 17:54
    a number of changes in the installer.
  • 17:54 - 17:57
    So basically, you needed to map
  • 17:57 - 17:59
    the device to
  • 17:59 - 18:01
    the complete image
  • 18:01 - 18:04
    and there are just there a couple of
  • 18:04 - 18:06
    things, so basically, any one device
  • 18:06 - 18:08
    you have to change like five different
  • 18:08 - 18:10
    places in the installer.
  • 18:10 - 18:12
    And it was quite confusing for people who wanted
  • 18:12 - 18:14
    to add new devices
  • 18:14 - 18:17
    Because it isn't really documented very well
  • 18:18 - 18:21
    So some examples are a list of three people
  • 18:21 - 18:23
    who are involved in that port
  • 18:23 - 18:25
    So, Roger is someone
  • 18:25 - 18:27
    who is quite new, and who really got
  • 18:27 - 18:30
    involved into porting those old devices.
  • 18:31 - 18:35
    And so, armhf is much nicer,
  • 18:35 - 18:37
    so the majority of
  • 18:37 - 18:39
    devices support distro-support.
  • 18:40 - 18:43
    And the other thing we do
  • 18:45 - 18:47
    is, for some of the devices
  • 18:47 - 18:49
    we provide SD card images,
  • 18:49 - 18:51
    which contain
  • 18:51 - 18:55
    U-boot and the Debian installer
  • 18:55 - 18:57
    So basically Vagrant
  • 18:57 - 19:00
    maintains U-boot in Debian, and
  • 19:00 - 19:02
    a lot of those devices are supported
  • 19:02 - 19:04
    in U-boot in Debian.
  • 19:04 - 19:06
    So we just
  • 19:06 - 19:08
    provide an SD image, so you can just
  • 19:08 - 19:10
    store it in the SD card, you put it in
  • 19:10 - 19:13
    and, because of the distro-support,
  • 19:13 - 19:15
    it just loads debian-installer,
  • 19:15 - 19:18
    you do the installation, reboot,
  • 19:18 - 19:20
    and things just work.
  • 19:20 - 19:22
    So I think it really has gone
  • 19:22 - 19:25
    ...Come a long way.
  • 19:27 - 19:30
    So nowadays,
  • 19:30 - 19:32
    adding a new device
  • 19:32 - 19:34
    requires much fewer changes
  • 19:34 - 19:36
    than it used to be.
  • 19:36 - 19:41
    Because as everything uses the same, like, one kernel flavor,
  • 19:41 - 19:44
    you don't need to patch all those different places anymore,
  • 19:45 - 19:48
    and because of distro-support, it just works.
  • 19:48 - 19:52
    You can pretty much use the generic bootscript.
  • 19:54 - 19:56
    So, arm64.
  • 19:56 - 19:58
    So, the problem until recently
  • 19:58 - 20:00
    is that there simply wasn't any hardware
  • 20:00 - 20:02
    that people could buy.
  • 20:02 - 20:04
    And that's changing rapidly now
  • 20:06 - 20:08
    [?]
  • 20:08 - 20:10
    We have for example the Raspberry Pi 3
  • 20:10 - 20:14
    which uses a 64 bit CPU
  • 20:14 - 20:17
    but the software it ships is only 32 bits,
  • 20:17 - 20:19
    but most of the work
  • 20:19 - 20:21
    is now
  • 20:21 - 20:24
    upstreamed to run 64 bit on it
  • 20:25 - 20:28
    and there are a lot of
  • 20:28 - 20:32
    devices which sort of work but not quite
  • 20:32 - 20:36
    but anyway, so the idea for arm64
  • 20:36 - 20:38
    is that a lot of the
  • 20:38 - 20:40
    new hardware
  • 20:40 - 20:42
    specially on the server side
  • 20:42 - 20:44
    will use UEFI,
  • 20:44 - 20:46
    and so you basically just
  • 20:46 - 20:48
    it just works like a PC.
  • 20:48 - 20:50
    So you have Grub,
  • 20:50 - 20:53
    you can run debian-installer from Grub
  • 20:53 - 20:55
    and you get Grub afterwards.
  • 20:55 - 20:56
    And just boots like a PC,
  • 20:56 - 21:00
    and Steve has done a lot of work in that area,
  • 21:00 - 21:02
    And in theory,
  • 21:02 - 21:04
    it should just work out of the box.
  • 21:04 - 21:06
    So, if it uses
  • 21:06 - 21:08
    UEFI, we don't need to add anything.
  • 21:08 - 21:10
    It just works.
  • 21:10 - 21:12
    There's nothing to do.
  • 21:13 - 21:15
    At least, that's the theory.
  • 21:15 - 21:17
    So, what I found is
  • 21:17 - 21:19
    ...I made a disclaimer, so
  • 21:19 - 21:21
    ...Assuming the kernel
  • 21:21 - 21:23
    you know, kernel support and stuff...
  • 21:23 - 21:25
    ...To be honest,
  • 21:25 - 21:28
    right now, that's a big assumption.
  • 21:28 - 21:30
    So I've been playing with a few
  • 21:30 - 21:33
    64 bit ARM boards
  • 21:33 - 21:37
    and basically, what I found is
  • 21:37 - 21:39
    there is some support upstream,
  • 21:39 - 21:41
    so I can boot a kernel,
  • 21:41 - 21:44
    but, oh! There is no USB support!
  • 21:44 - 21:45
    there is no Wifi support!
  • 21:45 - 21:48
    So I cannot actually do anything with it.
  • 21:48 - 21:52
    But I can get to something that
  • 21:52 - 21:55
    because arm64 is still farily new.
  • 21:55 - 21:58
    And there is a lot of work going on upstream
  • 21:58 - 22:00
    to support the various platforms.
  • 22:00 - 22:03
    So, I think over time that's really going to be much better.
  • 22:05 - 22:09
    Even though that UEFI idea is there
  • 22:09 - 22:11
    in reality,
  • 22:11 - 22:13
    we are going to see different solutions
  • 22:13 - 22:15
    for arm64.
  • 22:15 - 22:18
    So we are going to see UEFI, in particular on servers,
  • 22:18 - 22:20
    but we will also see U-boot.
  • 22:20 - 22:23
    So a lot of those bare boards
  • 22:23 - 22:25
    they have U-boot.
  • 22:25 - 22:27
    And, so, right now
  • 22:27 - 22:29
    we can use the distro support
  • 22:29 - 22:32
    and I think that it works pretty well.
  • 22:32 - 22:34
    But one thing that SuSE has done
  • 22:34 - 22:36
    so, they just had the same issue,
  • 22:36 - 22:38
    they want to support all those devices
  • 22:38 - 22:41
    but they just want to use the same mechanism everywhere,
  • 22:41 - 22:43
    so they have actually implemented
  • 22:43 - 22:46
    UEFI on top of U-boot,
  • 22:46 - 22:49
    so you can basically use U-boot to load Grub
  • 22:49 - 22:52
    and then you have Grub
  • 22:52 - 22:54
    so I think that's something we need to figure out;
  • 22:54 - 22:57
    do we want to stay with distro-support?
  • 22:57 - 22:59
    do we want to use
  • 22:59 - 23:01
    UEFI on top of U-boot?
  • 23:01 - 23:03
    is that something we want to
  • 23:03 - 23:05
    give users the option?
  • 23:05 - 23:08
    And then, Fastboot
  • 23:08 - 23:10
    is something used
  • 23:10 - 23:12
    in the Android world
  • 23:12 - 23:15
    and a lot of those, like, I see a lot of
  • 23:15 - 23:18
    both bare boards, but also
  • 23:18 - 23:20
    game consoles and stuff, which
  • 23:20 - 23:22
    which are sort of Android-oriented,
  • 23:22 - 23:24
    but which can also run normal Linux,
  • 23:24 - 23:27
    and they will use like Fastboot or something.
  • 23:27 - 23:30
    And there are tons of other bootloaders out there
  • 23:30 - 23:33
    But I would definitively say, like, the good ones
  • 23:33 - 23:35
    are UEFI and U-boot
  • 23:37 - 23:40
    So, I gave a similar talk a few weeks ago
  • 23:40 - 23:43
    and turns out, a lot of non-free
  • 23:43 - 23:45
    firmware, like, "can I
  • 23:45 - 23:47
    run that stuff, you know,
  • 23:47 - 23:49
    purely with free software?"
  • 23:49 - 23:51
    ...And...
  • 23:51 - 23:53
    So, the thing with ARM is that
  • 23:53 - 23:55
    there are a lot of different platforms
  • 23:55 - 23:57
    I'm not sure about all of them,
  • 23:57 - 23:59
    but some of the platforms
  • 23:59 - 24:02
    I looked at, yes, you
  • 24:02 - 24:05
    do need some... There is always something propietary.
  • 24:06 - 24:08
    So in a lot of cases
  • 24:08 - 24:10
    I see where you have
  • 24:10 - 24:14
    you use the proprietary first-stage boot loader,
  • 24:14 - 24:16
    so the Raspberry Pi is an example,
  • 24:16 - 24:19
    so, I don't actually have a Raspberry Pi, but
  • 24:19 - 24:21
    the way I understand it is
  • 24:21 - 24:23
    you basically put some boot files
  • 24:23 - 24:25
    in an SD card,
  • 24:25 - 24:27
    and they are proprietary, and
  • 24:27 - 24:29
    then they load the kernel.
  • 24:29 - 24:32
    Or in case of [?]
  • 24:32 - 24:34
    supported in Debian,
  • 24:34 - 24:36
    the first stage boot loader would basically
  • 24:36 - 24:38
    be used to run U-boot,
  • 24:38 - 24:40
    and then we could use U-boot, and
  • 24:40 - 24:44
    the U-boot support all of it is free software,
  • 24:44 - 24:46
    but the first stage boot loader isn't.
  • 24:46 - 24:50
    I have had, there are some people
  • 24:50 - 24:52
    working on a free replacement for
  • 24:52 - 24:54
    the Raspberry Pi, though.
  • 24:54 - 24:56
    With nVidia Tegra,
  • 24:56 - 24:58
    which is
  • 24:58 - 25:00
    something I'm working on at the moment
  • 25:00 - 25:03
    you also have a tiny first stage boot loader,
  • 25:03 - 25:06
    but then again, you have U-boot, which is free,
  • 25:06 - 25:09
    and in that case, you also have some firmware
  • 25:09 - 25:11
    images for the GPU
  • 25:11 - 25:13
    and for other stuff.
  • 25:13 - 25:16
    For the Dragon board,
  • 25:16 - 25:19
    The Dragon board sounded really interesting
  • 25:19 - 25:21
    because it actually has a
  • 25:21 - 25:23
    a graphics chip
  • 25:23 - 25:25
    which can be used with free software,
  • 25:25 - 25:28
    so that sounded pretty cool,
  • 25:28 - 25:30
    but again, it has a
  • 25:30 - 25:32
    proprietary first
  • 25:32 - 25:34
    stage boot loader,
  • 25:34 - 25:36
    and then there is a second stage boot loader
  • 25:36 - 25:38
    which is actually open source
  • 25:38 - 25:42
    and then there's actually a U-boot of that,
  • 25:42 - 25:45
    and then you have some
  • 25:45 - 25:47
    binary blobs which
  • 25:47 - 25:50
    also need to be installed in flash to work properly
  • 25:50 - 25:52
    On the Marvell side, I'm
  • 25:52 - 25:54
    not really aware of anything.
  • 25:54 - 25:56
    I have never needed to flash anything
  • 25:56 - 25:58
    proprietary, but
  • 25:58 - 26:00
    I'm not sure how U-boot gets started
  • 26:00 - 26:02
    on Marvell, so maybe there is something.
  • 26:04 - 26:08
    So the future is all... So NAS devices are
  • 26:08 - 26:10
    like I said, that's something that's
  • 26:10 - 26:12
    really been popular in Debian.
  • 26:12 - 26:15
    Specially on the QNAP devices,
  • 26:15 - 26:17
    but the problem is, so, QNAP...
  • 26:17 - 26:19
    so the devices we currently support
  • 26:19 - 26:21
    are pretty old
  • 26:21 - 26:23
    nowadays,
  • 26:23 - 26:25
    and they have some newer devices,
  • 26:25 - 26:28
    but they are not properly supported
  • 26:28 - 26:30
    in the upstream kernel.
  • 26:30 - 26:32
    So, I have no plans
  • 26:32 - 26:34
    to support Debian on those.
  • 26:34 - 26:37
    I recently did some work on
  • 26:37 - 26:39
    Seagate NAS devices
  • 26:39 - 26:42
    which are actually pretty interesting
  • 26:42 - 26:44
    but again, they will go out of date
  • 26:44 - 26:46
    already,
  • 26:46 - 26:48
    and then there's the whole 64 bit ARM
  • 26:48 - 26:50
    so I think people are really waiting
  • 26:50 - 26:52
    for arm64 servers
  • 26:52 - 26:55
    I think there's going to be a whole lot of
  • 26:55 - 26:57
    work on that area.
  • 26:57 - 26:59
    And then, there are all of those development boards
  • 26:59 - 27:01
    Raspberry Pi,
  • 27:01 - 27:03
    Pine64,
  • 27:03 - 27:06
    Allwinder,
  • 27:06 - 27:09
    Basically, all of them
  • 27:09 - 27:11
    sound exciting, but if you
  • 27:11 - 27:13
    look at them, all of them
  • 27:13 - 27:15
    have some upstream issues, so it's...
  • 27:15 - 27:18
    It is really quite frustrating at the moment.
  • 27:18 - 27:20
    But I think things are really
  • 27:20 - 27:23
    moving [?]
  • 27:23 - 27:26
    And then there's this 96Board initiative,
  • 27:26 - 27:29
    which is actually done by Linaro,
  • 27:29 - 27:31
    and, so, Linaro supports
  • 27:31 - 27:33
    Linux on ARM, so you'd think, "wow,
  • 27:33 - 27:35
    there are some really nice boards coming out!"
  • 27:35 - 27:37
    and they differentiated
  • 27:37 - 27:40
    between the consumer edition and the enterprise edition
  • 27:40 - 27:43
    beside, I bought some consumer-edition boards,
  • 27:43 - 27:46
    and it's really horrible.
  • 27:46 - 27:48
    So first of all, I had to spend like half a day
  • 27:48 - 27:50
    just putting the components
  • 27:51 - 27:53
    because it uses, like, a nonstandard power supply,
  • 27:53 - 27:55
    a nonstandard serial console,
  • 27:55 - 27:58
    so finally I found
  • 27:58 - 28:00
    all the pieces I needed, and then
  • 28:00 - 28:03
    I was expecting, well, it's from Linaro!
  • 28:03 - 28:05
    Surely everything just works upstream!
  • 28:05 - 28:08
    But it doesn't. It's like
  • 28:08 - 28:10
    yes, I can boot the Linux kernel,
  • 28:10 - 28:12
    but there's no USB, there's no
  • 28:12 - 28:14
    Wifi, no nothing...
  • 28:15 - 28:17
    So, yes, that's a little bit frustrating.
  • 28:17 - 28:19
    On the enterprise edition,
  • 28:19 - 28:21
    I think that looks more interesting.
  • 28:21 - 28:23
    You know, that's more standardized.
  • 28:23 - 28:27
    But again, there have been some delays.
  • 28:29 - 28:33
    [audience; unintellegible]
  • 28:33 - 28:35
    Yes, OK.
  • 28:35 - 28:37
    So that would be interesting to see.
  • 28:37 - 28:39
    So, the questions that I actually have nowadays
  • 28:39 - 28:41
    is, so...
  • 28:41 - 28:43
    Because of those changes,
  • 28:43 - 28:45
    because of having, you know,
  • 28:45 - 28:47
    a mode of U-boot, most of those
  • 28:47 - 28:49
    new devices having a U-boot
  • 28:49 - 28:51
    with distro-support,
  • 28:51 - 28:53
    having a kernel which, you know,
  • 28:53 - 28:55
    one kernel image that works on all of those
  • 28:55 - 28:57
    devices which are supported,
  • 28:57 - 29:00
    it's really easy to support
  • 29:00 - 29:02
    a new device?
  • 29:02 - 29:04
    As long as it's supported by the kernel.
  • 29:04 - 29:06
    But, at the same time, I think it's a big
  • 29:06 - 29:08
    challenge for Debian.
  • 29:08 - 29:10
    Because right now, if you look at armhf,
  • 29:10 - 29:12
    we basically say, well,
  • 29:12 - 29:14
    hint the installer,
  • 29:14 - 29:16
    and if there's a device tree,
  • 29:16 - 29:18
    it's probably going to work.
  • 29:18 - 29:21
    But, what does that mean, right?
  • 29:23 - 29:25
    And...
  • 29:25 - 29:28
    which really work, which means,
  • 29:28 - 29:30
    so, we have Vagrant
  • 29:30 - 29:32
    having U-boot support
  • 29:32 - 29:34
    in Debian, we have
  • 29:34 - 29:36
    people testing debian-installer,
  • 29:36 - 29:38
    testing the Debian kernel, so we have
  • 29:38 - 29:41
    devices which really work, well supported,
  • 29:41 - 29:43
    and then we have some devices
  • 29:43 - 29:46
    on the other hand where, well, yes,
  • 29:46 - 29:48
    there is a device tree, but no one
  • 29:48 - 29:50
    has ever tried it. And
  • 29:50 - 29:52
    at the moment, we have no way
  • 29:52 - 29:54
    for users to differentiate
  • 29:54 - 29:57
    those use case... Those
  • 29:57 - 29:59
    support levels.
  • 29:59 - 30:01
    So I'm wondering if we need
  • 30:01 - 30:03
    like a table,
  • 30:03 - 30:05
    somewhere where maybe
  • 30:05 - 30:07
    some support levels, like green, yellow...
  • 30:07 - 30:08
    red?
  • 30:08 - 30:10
    Where green is, "yes, we have Debian
  • 30:10 - 30:12
    people who have
  • 30:12 - 30:14
    testing that stuff",
  • 30:14 - 30:16
    yellow would be, "well, we have heard some report
  • 30:16 - 30:18
    that it might work", and
  • 30:18 - 30:20
    green is, you know, doesn't work,
  • 30:20 - 30:22
    or we haven't tried that it works.
  • 30:22 - 30:24
    Maybe we need something like that.
  • 30:24 - 30:26
    But right now,
  • 30:26 - 30:28
    I see from users
  • 30:30 - 30:32
    "I want to run Debian on my ARM device", and
  • 30:32 - 30:35
    they don't know if it's going to work.
  • 30:35 - 30:37
    Yes, then...
  • 30:37 - 30:43
    [audience; unintellegible]
  • 30:43 - 30:45
    Yes, so Ben is saying we also need
  • 30:45 - 30:47
    to track what the earliest and the latest
  • 30:47 - 30:50
    kernel versions that there have been tested.
  • 30:50 - 30:52
    So I think we really need to
  • 30:52 - 30:54
    come up with some criteria
  • 30:54 - 30:59
    to have, you know, define those kernel support levels that indicate that
  • 30:59 - 31:02
    And yes, the other question is related
  • 31:02 - 31:03
    to, with all those boards,
  • 31:03 - 31:05
    how do we actually test them?
  • 31:05 - 31:07
    So, I keep --
  • 31:07 - 31:10
    it's really... remember [?]
  • 31:10 - 31:12
    which is great, but also acknowledge
  • 31:12 - 31:14
    those boards, they are so cheap!
  • 31:14 - 31:16
    so it's like, "oh, there's a new board!
  • 31:16 - 31:18
    It's £30! I'll just get it!"
  • 31:18 - 31:21
    And then we have, like, those piles of boards
  • 31:21 - 31:23
    and realize, well, I don't have time
  • 31:23 - 31:25
    for testing all of that stuff!
  • 31:25 - 31:27
    I think that's going to be a real challenge.
  • 31:27 - 31:29
    hundreds -- I don't know,
  • 31:29 - 31:31
    it's really hundreds of boards coming out.
  • 31:31 - 31:34
    How do we support all of that?
  • 31:35 - 31:38
    So, I think that's the question I wanted to raise,
  • 31:38 - 31:41
    and maybe something we can talk about in the BoF
  • 31:41 - 31:43
    But yes, I'm obviously
  • 31:43 - 31:45
    open for questions now.
  • 31:56 - 31:58
    [James / purpleidea:] Hello.
  • 31:58 - 32:00
    So, don't quote me exactly,
  • 32:00 - 32:02
    so, I believe
  • 32:02 - 32:04
    RedHat has this problem as well, obviously,
  • 32:04 - 32:06
    I mean, they are obviously more interested in the
  • 32:06 - 32:09
    ARM64-only server stuff,
  • 32:09 - 32:11
    but I believe the way they are going about it
  • 32:11 - 32:13
    maybe it's something could collaborate on
  • 32:13 - 32:15
    is, they are trying to make sure and push
  • 32:15 - 32:17
    all the vendors to be standardized
  • 32:17 - 32:19
    because, as you pointed out,
  • 32:19 - 32:22
    it's just not, it's crazy
  • 32:22 - 32:25
    with all the different device tree differences and so on,
  • 32:25 - 32:27
    so I believe their strategy is to
  • 32:27 - 32:29
    work with the vendors, and
  • 32:29 - 32:31
    require everything to be upstreamed, and
  • 32:31 - 32:33
    no device tree
  • 32:33 - 32:35
    specifically, to push everything to just boot
  • 32:35 - 32:37
    with one kernel, and so on.
  • 32:37 - 32:39
    So maybe that could be
  • 32:39 - 32:41
    sacrifice a few of the
  • 32:41 - 32:43
    shitty boards, but work with the vendors
  • 32:43 - 32:46
    that make the ones that are upstreamed.
  • 32:46 - 32:48
    [Martin:] Yes, so I may be mistaken, but
  • 32:48 - 32:50
    as far as I know, RedHat
  • 32:50 - 32:52
    basically says, "we only support
  • 32:52 - 32:54
    UEFI and ACPI"
  • 32:54 - 32:56
    and that's fair enough,
  • 32:56 - 32:58
    and I think that works for them, because
  • 32:58 - 33:00
    it's just the server world they care about,
  • 33:00 - 33:02
    but I think in the case of Debian
  • 33:02 - 33:04
    there are so many boards out there which
  • 33:04 - 33:06
    don't need those specs,
  • 33:06 - 33:09
    and we sort of live, like, in the "real world"
  • 33:09 - 33:11
    so I don't think we can
  • 33:11 - 33:13
    Well -- I know it's different. I mean,
  • 33:13 - 33:15
    if RedHat wants to target
  • 33:15 - 33:17
    the server people, like, the people
  • 33:17 - 33:19
    which give money
  • 33:19 - 33:21
    that's fair enough, that makes sense for them
  • 33:21 - 33:23
    but Debian, we run everywhere
  • 33:23 - 33:25
    so I think we need to support
  • 33:25 - 33:27
    all those weird
  • 33:27 - 33:29
    cases as well.
  • 33:29 - 33:31
    And maybe if it gets too weird,
  • 33:31 - 33:33
    I mean,
  • 33:33 - 33:35
    I put in some work in the Dragonboard,
  • 33:35 - 33:37
    and then I realized,
  • 33:37 - 33:39
    am I actually spending the time because
  • 33:39 - 33:41
    no one, like, I have heard
  • 33:41 - 33:43
    from no one that they have
  • 33:43 - 33:45
    that board, I mean, like [?]
  • 33:45 - 33:47
    for the Raspberry Pi, but I have heard
  • 33:47 - 33:49
    like, pretty much no one has the
  • 33:49 - 33:51
    Dragonboard, so maybe,
  • 33:51 - 33:54
    ...it's not worth my while,
  • 33:54 - 33:56
    but if there's a board
  • 33:56 - 33:58
    that people want to use it,
  • 33:58 - 34:00
    I think we should support it in Debian.
  • 34:00 - 34:02
    And we do have the infrastructure
  • 34:02 - 34:04
    so we, you know, it doesn't have to be
  • 34:04 - 34:06
    UEFI and ACPI,
  • 34:06 - 34:08
    we can support other devices, because
  • 34:08 - 34:10
    we have done it before.
  • 34:10 - 34:12
    But I definitively agree with
  • 34:12 - 34:15
    the point about getting more standardization
  • 34:15 - 34:17
    and that stuff, so
  • 34:17 - 34:19
    I agree, yes.
  • 34:20 - 34:23
    And the whole distro-support
  • 34:23 - 34:26
    in U-boot, that has really made things easier for us.
  • 34:33 - 34:36
    [Phil:] I may begin to say some of the same things Steve has, anyway.
  • 34:36 - 34:38
    Steve]: So, yes, on the
  • 34:38 - 34:41
    ACPI versus DT thing,
  • 34:41 - 34:43
    it's more a question
  • 34:43 - 34:46
    of the quality of the implementation of the
  • 34:46 - 34:49
    of the firmware,
  • 34:49 - 34:51
    and the upstream support that is...
  • 34:51 - 34:53
    DT isn't fundamentally
  • 34:53 - 34:55
    worse for upstream support
  • 34:55 - 34:58
    than ACPI is,
  • 34:58 - 35:01
    RedHat are
  • 35:01 - 35:03
    have some reasons
  • 35:03 - 35:05
    [?] of sensibility,
  • 35:05 - 35:07
    but then, it's not
  • 35:07 - 35:09
    fundamentally, it doesn't fundamentally stop it
  • 35:09 - 35:11
    people supporting it, specially
  • 35:11 - 35:13
    a community distro like Debian.
  • 35:13 - 35:16
    I was also going to ask Martin,
  • 35:16 - 35:18
    have you talked to
  • 35:18 - 35:21
    people like kernel CI
  • 35:21 - 35:25
    about testing and coverage stuff?
  • 35:25 - 35:27
    [Martin:] Yes, not really, but
  • 35:27 - 35:30
    I think there are some things we should look into.
  • 35:30 - 35:32
    [Steve:] Yes, because the whole --
  • 35:32 - 35:34
    Obviously, making sure the kernel boots
  • 35:34 - 35:36
    on random hardware
  • 35:36 - 35:38
    stuff, is exactly what that's doing
  • 35:40 - 35:42
    and there's at least infrastructure there that might be
  • 35:42 - 35:45
    nice to play with.
  • 35:46 - 35:48
    [Martin:] Yes. I think that's a good idea.
  • 35:50 - 35:52
    [sledge:] So, on the whole 96Boards thing,
  • 35:52 - 35:54
    sorry!
  • 35:54 - 35:56
    Most of the engineers involved
  • 35:56 - 35:58
    are totally aware of
  • 35:58 - 36:00
    how [?] it really is.
  • 36:00 - 36:02
    We tried to tell management
  • 36:02 - 36:04
    they would --
  • 36:04 - 36:06
    They don't want to listen.
  • 36:06 - 36:08
    Umm.. So,
  • 36:08 - 36:10
    there has been a huge amount of pushback
  • 36:10 - 36:13
    saying, you know, "we're Linaro
  • 36:13 - 36:15
    we should make sure this is all upstreamed".
  • 36:17 - 36:19
    [Martin:] Well, I am aware
  • 36:19 - 36:21
    it's just, Linaro
  • 36:21 - 36:23
    has a really good brand,
  • 36:23 - 36:25
    so people expect, you know, when I saw
  • 36:25 - 36:27
    96Boards it's Linaro,
  • 36:27 - 36:30
    obviously that stuff it's going to work!
  • 36:30 - 36:32
    and that's why I was really disappointed.
  • 36:32 - 36:34
    [Steve:] One positive thing there
  • 36:34 - 36:36
    is that the first DE board
  • 36:36 - 36:38
    the SoC does basically work upstream
  • 36:38 - 36:40
    already with current upstream kernel
  • 36:40 - 36:42
    it's not like there's some patches still
  • 36:42 - 36:44
    to go in. Apart from the PCI, it should basically
  • 36:44 - 36:47
    work... So, hopefully,
  • 36:47 - 36:50
    hopefully, that's going to be a much
  • 36:50 - 36:52
    less spectacular
  • 36:52 - 36:54
    story than the
  • 36:54 - 36:56
    consumer-edition boards have been.
  • 36:56 - 36:58
    As they are unfortunate.
  • 37:02 - 37:04
    [Sledge:] The first EE board
  • 37:04 - 37:06
    the [?]board, is due to start shipping
  • 37:06 - 37:08
    really soon now.
  • 37:08 - 37:10
    There are examples already out there
  • 37:10 - 37:12
    with engineers for validation.
  • 37:12 - 37:14
    Literally, we are talking the next couple of weeks
  • 37:14 - 37:16
    is what I have been told.
  • 37:16 - 37:19
    That's the first 96Boards I would
  • 37:19 - 37:21
    actually spend any time on at all personally,
  • 37:21 - 37:23
    the CE boards are a joke.
  • 37:29 - 37:31
    I forgot what else I was going to say. Oh!
  • 37:31 - 37:33
    Yes! Then...
  • 37:33 - 37:35
    I guess we will go through a lot of this again
  • 37:35 - 37:37
    in the ARM BoF later on
  • 37:37 - 37:39
    in terms of
  • 37:39 - 37:41
    which things we support.
  • 37:45 - 37:47
    We will carry on with the discussion.
  • 37:55 - 37:58
    [Vagrant:] Um... Is this working?
  • 37:58 - 38:00
    Yes, so...
  • 38:00 - 38:02
    We have got all this great support for
  • 38:02 - 38:04
    distro-boot command and U-boot, and
  • 38:04 - 38:06
    now we are starting to get
  • 38:06 - 38:08
    to UEFI emulation
  • 38:08 - 38:10
    in U-boot, so even for boards
  • 38:10 - 38:12
    that don't have UEFI emulation--
  • 38:12 - 38:14
    UEFI support, if they support
  • 38:14 - 38:16
    U-boot, it might work
  • 38:16 - 38:18
    although that means all the standarization
  • 38:18 - 38:20
    we worked towards, we throw it away.,
  • 38:20 - 38:22
    Meh!
  • 38:24 - 38:26
    [Martin:] Yes, I think that's something we need to figure out,
  • 38:26 - 38:29
    which one do we want to standardize on,
  • 38:29 - 38:31
    or is that something we want to
  • 38:31 - 38:33
    leave up to the user.
  • 38:33 - 38:35
    but yes,
  • 38:35 - 38:38
    I mean, I think one
  • 38:38 - 38:40
    I mean, I guess it was
  • 38:40 - 38:42
    so confusing, because there are like
  • 38:42 - 38:44
    all those different ways, but
  • 38:45 - 38:47
    what I really wanted to show is that
  • 38:47 - 38:49
    things are getting much more
  • 38:49 - 38:51
    standardized and much better.
  • 38:51 - 38:54
    So, it used to be really
  • 38:54 - 38:56
    pretty horrible, and nowadays,
  • 38:56 - 38:58
    you know, if a platform
  • 38:58 - 39:00
    uses a modern
  • 39:00 - 39:02
    U-boot, if it has
  • 39:02 - 39:04
    upstream support, then it is
  • 39:04 - 39:06
    actually pretty trivial to add
  • 39:06 - 39:08
    Debian support, and
  • 39:08 - 39:10
    I think that wasn't the case
  • 39:10 - 39:11
    in the past.
  • 39:11 - 39:13
    I think Ben had another one?
  • 39:21 - 39:24
    [Ben:] So, I'm
  • 39:27 - 39:30
    [laughs]
  • 39:30 - 39:33
    I'm interested to know how much
  • 39:33 - 39:36
    how much interest there is among the ARM porters
  • 39:36 - 39:38
    in graphics support.
  • 39:38 - 39:40
    GPU support, rather
  • 39:40 - 39:42
    than settling for dumb framebuffers.
  • 39:42 - 39:44
    How many...
  • 39:44 - 39:46
    How many of these boards...
  • 39:46 - 39:48
    Quite a lot of these boards do have HDMI
  • 39:48 - 39:50
    and I don't know
  • 39:50 - 39:53
    to what degree they are actually supported.
  • 39:53 - 39:56
    Are any current projected work
  • 39:56 - 40:00
    which definitively is using the
  • 40:00 - 40:05
    GPU on ARM system, and
  • 40:05 - 40:07
    what's in Debian,
  • 40:07 - 40:10
    is the Debian base system
  • 40:10 - 40:12
    does Debian... What's in Debian does not
  • 40:12 - 40:14
    support GPU.
  • 40:14 - 40:18
    [Martin:] So, I can't speak for Vagrant...
  • 40:18 - 40:20
    I have personally done some work
  • 40:20 - 40:22
    on the Tegra recently,
  • 40:22 - 40:24
    and nVidia is actually
  • 40:24 - 40:27
    working upstream on [?]
  • 40:27 - 40:30
    so I'm really interested in it
  • 40:30 - 40:32
    but I think that a lot of
  • 40:32 - 40:34
    the board used, there's money
  • 40:34 - 40:37
    GPUs I'm not sure would be
  • 40:37 - 40:40
    ...you can get a [laughs]
  • 40:40 - 40:44
    can we get a microphone for Steve?
  • 40:52 - 40:54
    [Sledge:] So, on the Mali front,
  • 40:54 - 40:55
    there has been a lot of haste where we
  • 40:55 - 40:57
    have been scared of releasing any of this
  • 40:57 - 41:00
    in any way, shape or form,
  • 41:00 - 41:02
    without huge
  • 41:02 - 41:05
    [?]-relays and all that kind of stuff.
  • 41:05 - 41:07
    So it's not really distributable.
  • 41:07 - 41:09
    Even, at all.
  • 41:09 - 41:12
    We are a long way of it being releasable free,
  • 41:12 - 41:16
    There are packages coming that we
  • 41:16 - 41:18
    should be getting shippable in non-free
  • 41:18 - 41:20
    at least if you want to get full acceleration
  • 41:20 - 41:22
    on your Mali stuff.
  • 41:24 - 41:26
    Hopefully, that will solve some of the problems
  • 41:26 - 41:28
    There is a lot, there are a lot of people
  • 41:28 - 41:30
    in [?] who are very very keen on
  • 41:30 - 41:32
    supporting it properly, free and upstreamed.
  • 41:32 - 41:35
    It's a long fight.
  • 41:35 - 41:36
    It will take a while.
  • 41:36 - 41:39
    I mean, most of the Mali driver developers
  • 41:39 - 41:41
    themselves I have spoken to, would love to
  • 41:41 - 41:43
    make it free. It just comes down
  • 41:43 - 41:45
    to legal people
  • 41:45 - 41:47
    being scared.
  • 41:53 - 41:55
    [Tobi:] Are there some questions left?
  • 41:59 - 42:00
    [Martin:] Well, thanks for coming!
  • 42:00 - 42:02
    And there is going to be the ARM BoF
  • 42:02 - 42:04
    later today, and
  • 42:04 - 42:06
    Vagrant is also going to talk about his experience
  • 42:06 - 42:10
    about running a build network
  • 42:10 - 42:12
    on armhf boards..
  • 42:12 - 42:13
    Thanks!
  • 42:18 - 42:20
    [audience clapping]
Title:
Debian_on_ARM_devices_2.webm
Video Language:
English
Team:
Debconf
Project:
2016_debconf16
Duration:
42:22

English subtitles

Revisions