Merge ~vanvugt/ubuntu/+source/initramfs-tools:smaller-earlier-framebuffer into ubuntu/+source/initramfs-tools:ubuntu/devel

Proposed by Daniel van Vugt
Status: Superseded
Proposed branch: ~vanvugt/ubuntu/+source/initramfs-tools:smaller-earlier-framebuffer
Merge into: ubuntu/+source/initramfs-tools:ubuntu/devel
Diff against target: 59 lines (+26/-0) (has conflicts)
4 files modified
.gitignore (+2/-0)
conf/initramfs.conf (+12/-0)
debian/.gitignore (+7/-0)
hooks/framebuffer (+5/-0)
Conflict in conf/initramfs.conf
Conflict in hooks/framebuffer
Reviewer Review Type Date Requested Status
git-ubuntu import Pending
Review via email: mp+462481@code.launchpad.net

This proposal has been superseded by a proposal from 2024-03-15.

Description of the change

Make framebuffer dependencies much smaller, and then enable FRAMEBUFFER by default (LP: #1970069, LP: #1869655).

To post a comment you must log in.

Unmerged commits

2935806... by Daniel van Vugt

conf/initramfs.conf: Enable FRAMEBUFFER by default

This is affordable since hooks/framebuffer is now limited to simple
drivers.

We need it enabled by default in order to get Plymouth active as early
as possible (LP: #1970069, LP: #1869655).

3500808... by Daniel van Vugt

hooks/framebuffer: Only add simple/tiny framebuffer drivers

This should be enough for early boot purposes and if it's later found
not to be then consider replacing everything after fbcon with
"=drivers/video/fbdev".

bc091d3... by Benjamin Drung

Release initramfs-tools 0.142ubuntu22

Signed-off-by: Benjamin Drung <email address hidden>

e3dd2c8... by Benjamin Drung

autopkgtest: update systemd-udevd path from /lib to /usr/lib

03f6b0c... by Benjamin Drung

Release initramfs-tools 0.142ubuntu21

Signed-off-by: Benjamin Drung <email address hidden>

65085fe... by Benjamin Drung

Replace obsolete pkg-config build-dependency by pkgconf

22b0b82... by Benjamin Drung

Copy /etc/passwd into the initramfs to allow dhcpcd running as dhcpcd user

`ps_init` from `dhcpcd` will spit out this warning in case there is no
busybox included it the initramfs:

```
getpwnam: No such file or directory
```

If busybox is included in the initramfs, the error message from `ps_init` changes to:

```
no such user dhcpcd
```

See https://github.com/NetworkConfiguration/dhcpcd/issues/305

b2996c0... by Benjamin Drung

configure_networking: log sleep durations before retries

Signed-off-by: Benjamin Drung <email address hidden>

8e96203... by Benjamin Drung

configure_networking: Set interface MTU if provided by the DHCP server

When a DHCP server provides MTU settings to dhcpcd, it configures the
routes with the appropriate MTU value (due to "option interface_mtu" in
the configuration), but it does not configure the MTU setting in the
interface. So, we end up having a mismatch between interface and route
MTU setting, as observed below:

```
root@(none):/# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 02:00:17:05:ee:5a brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.0.0.21/24 brd 10.0.0.255 scope global dynamic noprefixroute ens3
       valid_lft 86048sec preferred_lft 75248sec
    inet6 fe80::17ff:fe05:ee5a/64 scope link
       valid_lft forever preferred_lft forever
root@(none):/# ip route show
default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.21 metric 1002 mtu 9000
10.0.0.0/24 dev ens3 proto dhcp scope link src 10.0.0.21 metric 1002 mtu 9000
169.254.0.0/16 dev ens3 proto dhcp scope link src 10.0.0.21 metric 1002 mtu 9000
```

If we go back to initramfs-tools 0.142ubuntu8 (which uses dhclient
instead of dhcpcd), the MTU settings will match:

```
root@(none):/# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
    link/ether 02:00:17:05:ee:5a brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.0.0.21/24 brd 10.0.0.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::17ff:fe05:ee5a/64 scope link
       valid_lft forever preferred_lft forever
root@(none):/# ip route show
default via 10.0.0.1 dev ens3
10.0.0.0/24 dev ens3 proto kernel scope link src 10.0.0.21
169.254.0.0/16 dev ens3 scope link
```

Due to this mismatch when using dhcpcd, certain network activities might
fail. For example, in Oracle instances, a curl to the DataSource will
just hang:

```
curl --connect-timeout 10 --max-time 15 -H "Authorization: Bearer Oracle" -L http://169.254.169.254/opc/v2/instance/
```

So add a dhcpcd hook to the initramfs to set the interface MTU if
specified by the DHCP server.

LP: #2056194
Signed-off-by: Benjamin Drung <email address hidden>

3b67789... by Benjamin Drung

Fix configuring BOOTIF when using iSCSI

When the iSCSI has a static address, the script `local-top/iscsi` from
open-iscsi creates a `/run/net-$DEVICE.conf` file for the iSCSI
interface. The existence of this file makes `configure_networking()`
skip configuring the BOOTIF later.

In case a network device is specific (e. g. by setting BOOTIF), wait for
exactly this device to be configured.

LP: #2056187
Signed-off-by: Benjamin Drung <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.gitignore b/.gitignore
2new file mode 100644
3index 0000000..42eda44
4--- /dev/null
5+++ b/.gitignore
6@@ -0,0 +1,2 @@
7+*~
8+.#*
9diff --git a/conf/initramfs.conf b/conf/initramfs.conf
10index 6453d4d..d462dbd 100644
11--- a/conf/initramfs.conf
12+++ b/conf/initramfs.conf
13@@ -80,3 +80,15 @@ RUNSIZE=10%
14 #
15
16 FSTYPE=auto
17+<<<<<<< conf/initramfs.conf
18+=======
19+
20+#
21+# FRAMEBUFFER: [ y | n ]
22+#
23+# Whether to include simple framebuffer support, such as that required for
24+# early splash screens.
25+#
26+
27+FRAMEBUFFER=y
28+>>>>>>> conf/initramfs.conf
29diff --git a/debian/.gitignore b/debian/.gitignore
30new file mode 100644
31index 0000000..bc79963
32--- /dev/null
33+++ b/debian/.gitignore
34@@ -0,0 +1,7 @@
35+/*.debhelper
36+/*.debhelper.log
37+/*.substvars
38+/.debhelper
39+/files
40+/initramfs-tools/
41+/initramfs-tools-core/
42diff --git a/hooks/framebuffer b/hooks/framebuffer
43index 7820fd6..45a47aa 100755
44--- a/hooks/framebuffer
45+++ b/hooks/framebuffer
46@@ -19,8 +19,13 @@ esac
47
48 . /usr/share/initramfs-tools/hook-functions
49
50+<<<<<<< hooks/framebuffer
51 manual_add_modules "=drivers/char/agp" "=drivers/gpu" "=ubuntu/i915" \
52 fbcon vesafb vga16fb vboxvideo
53+=======
54+manual_add_modules "=drivers/gpu/drm/tiny" \
55+ fbcon vesafb vga16fb vboxvideo simplefb efifb
56+>>>>>>> hooks/framebuffer
57
58 # if there is a privacy screen then its driver must be loaded before the
59 # kms driver will bind, otherwise its probe() will return -EPROBE_DEFER

Subscribers

People subscribed via source and target branches