* [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement
@ 2023-09-06 19:46 Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value Reza Arbab
` (4 more replies)
0 siblings, 5 replies; 14+ messages in thread
From: Reza Arbab @ 2023-09-06 19:46 UTC (permalink / raw)
To: buildroot; +Cc: Reza Arbab, Laurent Vivier, Joel Stanley
The br2-external tree used to build OpenPOWER firmware has long carried
petitboot as a custom package[1]. Now that petitboot has been added to
buildroot proper, it would be nice to leverage the base package instead.
To make that transition easier, here is a set of patches which port over
some of the enhancements made to that external package.
Beyond these, there are a couple of more involved things left:
* User separation (i.e. the petitboot shell runs as 'petituser')
* Support for MTD devices
[1] https://github.com/open-power/op-build/tree/master/openpower/package/petitboot
Reza Arbab (5):
package/petitboot: fix HOST_PROG_SHUTDOWN value
package/petitboot: run pb-console at boot
package/petitboot: poll removable devices
package/petitboot: enable discovery of software RAID devices
package/petitboot: enable discovery of SCSI devices
package/petitboot/63-md-raid-arrays.rules | 41 ++++++++++++
package/petitboot/65-md-incremental.rules | 69 ++++++++++++++++++++
package/petitboot/66-add-sg-module.rules | 2 +
package/petitboot/petitboot-console-ui.rules | 4 ++
package/petitboot/petitboot.mk | 20 +++++-
package/petitboot/removable-event-poll.rules | 3 +
package/petitboot/sysctl.conf | 1 +
7 files changed, 139 insertions(+), 1 deletion(-)
create mode 100644 package/petitboot/63-md-raid-arrays.rules
create mode 100644 package/petitboot/65-md-incremental.rules
create mode 100644 package/petitboot/66-add-sg-module.rules
create mode 100644 package/petitboot/petitboot-console-ui.rules
create mode 100644 package/petitboot/removable-event-poll.rules
create mode 100644 package/petitboot/sysctl.conf
--
2.39.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value
2023-09-06 19:46 [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement Reza Arbab
@ 2023-09-06 19:46 ` Reza Arbab
2023-09-07 8:48 ` Laurent Vivier
2023-09-25 5:30 ` Peter Korsgaard
2023-09-06 19:46 ` [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot Reza Arbab
` (3 subsequent siblings)
4 siblings, 2 replies; 14+ messages in thread
From: Reza Arbab @ 2023-09-06 19:46 UTC (permalink / raw)
To: buildroot; +Cc: Reza Arbab, Laurent Vivier, Joel Stanley
HOST_PROG_SHUTDOWN currently references a file that doesn't exist. Fix
by setting it to /usr/libexec/petitboot/bb-kexec-reboot, which this
package already installs but doesn't use.
Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
---
package/petitboot/petitboot.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
index 8b4c14207ec4..8d220f88f45a 100644
--- a/package/petitboot/petitboot.mk
+++ b/package/petitboot/petitboot.mk
@@ -21,7 +21,7 @@ PETITBOOT_CONF_OPTS = \
--without-twin-x11 \
$(if $(BR2_PACKAGE_BUSYBOX),--enable-busybox,--disable-busybox) \
HOST_PROG_KEXEC=/usr/sbin/kexec \
- HOST_PROG_SHUTDOWN=/usr/sbin/kexec-restart
+ HOST_PROG_SHUTDOWN=/usr/libexec/petitboot/bb-kexec-reboot
# HPA and Busybox tftp are supported. HPA tftp is part of Buildroot's tftpd
# package.
--
2.39.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot
2023-09-06 19:46 [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value Reza Arbab
@ 2023-09-06 19:46 ` Reza Arbab
2023-09-07 8:51 ` Laurent Vivier
2023-09-06 19:46 ` [Buildroot] [PATCH 3/5] package/petitboot: poll removable devices Reza Arbab
` (2 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Reza Arbab @ 2023-09-06 19:46 UTC (permalink / raw)
To: buildroot; +Cc: Reza Arbab, Laurent Vivier, Joel Stanley
Install a udev rule to run the petitboot UI on commonly-known consoles.
To prevent the kernel's console output from trampling the UI, also add
a sysctl file to reduce the kernel log levels to KERN_ALERT.
Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
---
package/petitboot/petitboot-console-ui.rules | 4 ++++
package/petitboot/petitboot.mk | 4 ++++
package/petitboot/sysctl.conf | 1 +
3 files changed, 9 insertions(+)
create mode 100644 package/petitboot/petitboot-console-ui.rules
create mode 100644 package/petitboot/sysctl.conf
diff --git a/package/petitboot/petitboot-console-ui.rules b/package/petitboot/petitboot-console-ui.rules
new file mode 100644
index 000000000000..de3b4b1c035f
--- /dev/null
+++ b/package/petitboot/petitboot-console-ui.rules
@@ -0,0 +1,4 @@
+# spawn a petitboot UI on common user-visible interface devices
+SUBSYSTEM=="tty", KERNEL=="hvc*", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
+SUBSYSTEM=="tty", KERNEL=="tty0", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
+SUBSYSTEM=="tty", KERNEL=="ttyS*", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
index 8d220f88f45a..556d41230237 100644
--- a/package/petitboot/petitboot.mk
+++ b/package/petitboot/petitboot.mk
@@ -55,6 +55,10 @@ define PETITBOOT_POST_INSTALL
$(TARGET_DIR)/etc/petitboot/boot.d/90-sort-dtb
$(INSTALL) -m 0755 -D $(PETITBOOT_PKGDIR)/S15pb-discover \
$(TARGET_DIR)/etc/init.d/S15pb-discover
+ $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/petitboot-console-ui.rules \
+ $(TARGET_DIR)/etc/udev/rules.d/petitboot-console-ui.rules
+ $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/sysctl.conf \
+ $(TARGET_DIR)/etc/sysctl.d/petitboot.conf
mkdir -p $(TARGET_DIR)/usr/share/udhcpc/default.script.d/
ln -sf /usr/sbin/pb-udhcpc \
$(TARGET_DIR)/usr/share/udhcpc/default.script.d/
diff --git a/package/petitboot/sysctl.conf b/package/petitboot/sysctl.conf
new file mode 100644
index 000000000000..02ab8e3275b5
--- /dev/null
+++ b/package/petitboot/sysctl.conf
@@ -0,0 +1 @@
+kernel.printk = 1 1 1 1
--
2.39.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 3/5] package/petitboot: poll removable devices
2023-09-06 19:46 [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot Reza Arbab
@ 2023-09-06 19:46 ` Reza Arbab
2023-09-07 8:53 ` Laurent Vivier
2023-09-06 19:46 ` [Buildroot] [PATCH 4/5] package/petitboot: enable discovery of software RAID devices Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 5/5] package/petitboot: enable discovery of SCSI devices Reza Arbab
4 siblings, 1 reply; 14+ messages in thread
From: Reza Arbab @ 2023-09-06 19:46 UTC (permalink / raw)
To: buildroot; +Cc: Reza Arbab, Laurent Vivier, Joel Stanley
Add a udev rule to enable notification of media change events on
removable devices, so petitboot can dynamically adapt to them.
Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
---
package/petitboot/petitboot.mk | 2 ++
package/petitboot/removable-event-poll.rules | 3 +++
2 files changed, 5 insertions(+)
create mode 100644 package/petitboot/removable-event-poll.rules
diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
index 556d41230237..9326738aa038 100644
--- a/package/petitboot/petitboot.mk
+++ b/package/petitboot/petitboot.mk
@@ -57,6 +57,8 @@ define PETITBOOT_POST_INSTALL
$(TARGET_DIR)/etc/init.d/S15pb-discover
$(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/petitboot-console-ui.rules \
$(TARGET_DIR)/etc/udev/rules.d/petitboot-console-ui.rules
+ $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/removable-event-poll.rules \
+ $(TARGET_DIR)/etc/udev/rules.d/removable-event-poll.rules
$(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/sysctl.conf \
$(TARGET_DIR)/etc/sysctl.d/petitboot.conf
mkdir -p $(TARGET_DIR)/usr/share/udhcpc/default.script.d/
diff --git a/package/petitboot/removable-event-poll.rules b/package/petitboot/removable-event-poll.rules
new file mode 100644
index 000000000000..57bb74d3c00c
--- /dev/null
+++ b/package/petitboot/removable-event-poll.rules
@@ -0,0 +1,3 @@
+# petitboot needs notification for media change events on removable devices,
+# which we only get if we've set the poll_msecs sysfs attribute.
+ACTION!="remove", ATTR{removable}=="1", ATTR{events_poll_msecs}="2000"
--
2.39.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 4/5] package/petitboot: enable discovery of software RAID devices
2023-09-06 19:46 [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement Reza Arbab
` (2 preceding siblings ...)
2023-09-06 19:46 ` [Buildroot] [PATCH 3/5] package/petitboot: poll removable devices Reza Arbab
@ 2023-09-06 19:46 ` Reza Arbab
2023-09-07 8:54 ` Laurent Vivier
2023-09-06 19:46 ` [Buildroot] [PATCH 5/5] package/petitboot: enable discovery of SCSI devices Reza Arbab
4 siblings, 1 reply; 14+ messages in thread
From: Reza Arbab @ 2023-09-06 19:46 UTC (permalink / raw)
To: buildroot; +Cc: Reza Arbab, Laurent Vivier, Joel Stanley
Petitboot can support filesystems on software RAID arrays. If mdadm is
selected, install the associated udev rules to assemble the device.
Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
---
package/petitboot/63-md-raid-arrays.rules | 41 ++++++++++++++
package/petitboot/65-md-incremental.rules | 69 +++++++++++++++++++++++
package/petitboot/petitboot.mk | 10 ++++
3 files changed, 120 insertions(+)
create mode 100644 package/petitboot/63-md-raid-arrays.rules
create mode 100644 package/petitboot/65-md-incremental.rules
diff --git a/package/petitboot/63-md-raid-arrays.rules b/package/petitboot/63-md-raid-arrays.rules
new file mode 100644
index 000000000000..92aec36e69d4
--- /dev/null
+++ b/package/petitboot/63-md-raid-arrays.rules
@@ -0,0 +1,41 @@
+# do not edit this file, it will be overwritten on update
+
+SUBSYSTEM!="block", GOTO="md_end"
+
+# handle md arrays
+ACTION!="add|change", GOTO="md_end"
+KERNEL!="md*", GOTO="md_end"
+
+# partitions have no md/{array_state,metadata_version}, but should not
+# for that reason be ignored.
+ENV{DEVTYPE}=="partition", GOTO="md_ignore_state"
+
+# container devices have a metadata version of e.g. 'external:ddf' and
+# never leave state 'inactive'
+ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
+TEST!="md/array_state", ENV{SYSTEMD_READY}="0", GOTO="md_end"
+ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0", GOTO="md_end"
+LABEL="md_ignore_state"
+
+IMPORT{program}="/sbin/mdadm --detail --export $devnode"
+ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace"
+ENV{DEVTYPE}=="disk", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
+ENV{DEVTYPE}=="disk", ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}"
+ENV{DEVTYPE}=="partition", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n", OPTIONS+="string_escape=replace"
+ENV{DEVTYPE}=="partition", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}-part%n"
+ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[^0-9]", SYMLINK+="md/$env{MD_DEVNAME}%n"
+ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[0-9]", SYMLINK+="md/$env{MD_DEVNAME}p%n"
+
+IMPORT{builtin}="blkid"
+OPTIONS+="link_priority=100"
+OPTIONS+="watch"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
+
+ENV{MD_LEVEL}=="raid[1-9]*", ENV{SYSTEMD_WANTS}+="mdmonitor.service"
+
+# Tell systemd to run mdmon for our container, if we need it.
+ENV{MD_LEVEL}=="raid[1-9]*", ENV{MD_CONTAINER}=="?*", PROGRAM="/usr/bin/readlink $env{MD_CONTAINER}", ENV{MD_MON_THIS}="%c"
+ENV{MD_MON_THIS}=="?*", PROGRAM="/usr/bin/basename $env{MD_MON_THIS}", ENV{SYSTEMD_WANTS}+="mdmon@%c.service"
+
+LABEL="md_end"
diff --git a/package/petitboot/65-md-incremental.rules b/package/petitboot/65-md-incremental.rules
new file mode 100644
index 000000000000..153d12fe6f7e
--- /dev/null
+++ b/package/petitboot/65-md-incremental.rules
@@ -0,0 +1,69 @@
+# This file causes block devices with Linux RAID (mdadm) signatures to
+# automatically cause mdadm to be run.
+# See udev(8) for syntax
+
+# Don't process any events if anaconda is running as anaconda brings up
+# raid devices manually
+ENV{ANACONDA}=="?*", GOTO="md_end"
+
+# Also don't process disks that are slated to be a multipath device
+ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end"
+
+# We process add events on block devices (since they are ready as soon as
+# they are added to the system), but we must process change events as well
+# on any dm devices (like LUKS partitions or LVM logical volumes) and on
+# md devices because both of these first get added, then get brought live
+# and trigger a change event. The reason we don't process change events
+# on bare hard disks is because if you stop all arrays on a disk, then
+# run fdisk on the disk to change the partitions, when fdisk exits it
+# triggers a change event, and we want to wait until all the fdisks on
+# all member disks are done before we do anything. Unfortunately, we have
+# no way of knowing that, so we just have to let those arrays be brought
+# up manually after fdisk has been run on all of the disks.
+
+# First, process all add events (md and dm devices will not really do
+# anything here, just regular disks, and this also won't get any imsm
+# array members either)
+SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid_member", \
+ RUN+="/sbin/mdadm -I --export $env{DEVNAME}"
+
+# Next, check to make sure the BIOS raid stuff wasn't turned off via cmdline
+IMPORT{cmdline}="noiswmd"
+IMPORT{cmdline}="nodmraid"
+ENV{noiswmd}=="?*", GOTO="md_imsm_inc_end"
+ENV{nodmraid}=="?*", GOTO="md_imsm_inc_end"
+SUBSYSTEM=="block", ACTION=="add", ENV{ID_FS_TYPE}=="isw_raid_member", \
+ RUN+="/sbin/mdadm -I $env{DEVNAME}"
+LABEL="md_imsm_inc_end"
+
+SUBSYSTEM=="block", ACTION=="remove", ENV{ID_PATH}=="?*", \
+ RUN+="/sbin/mdadm -If $name --path $env{ID_PATH}"
+SUBSYSTEM=="block", ACTION=="remove", ENV{ID_PATH}!="?*", \
+ RUN+="/sbin/mdadm -If $name"
+
+# Next make sure that this isn't a dm device we should skip for some reason
+ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_change_end"
+ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="dm_change_end"
+ENV{DM_SUSPENDED}=="1", GOTO="dm_change_end"
+KERNEL=="dm-*", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="linux_raid_member", \
+ ACTION=="change", RUN+="/sbin/mdadm -I $env{DEVNAME}"
+LABEL="dm_change_end"
+
+# Finally catch any nested md raid arrays. If we brought up an md raid
+# array that's part of another md raid array, it won't be ready to be used
+# until the change event that occurs when it becomes live
+KERNEL=="md*", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="linux_raid_member", \
+ ACTION=="change", RUN+="/sbin/mdadm -I $env{DEVNAME}"
+
+# In case the initramfs only started some of the arrays in our container,
+# run incremental assembly on the container itself. Note: we ran mdadm
+# on the container in 64-md-raid.rules, and that's how the MD_LEVEL
+# environment variable is already set. If that disappears from the other
+# file, we will need to add this line into the middle of the next rule:
+# IMPORT{program}="/sbin/mdadm -D --export $tempnode", \
+
+SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="md*", \
+ ENV{MD_LEVEL}=="container", RUN+="/sbin/mdadm -I $env{DEVNAME}"
+
+
+LABEL="md_end"
diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
index 9326738aa038..596e801b781c 100644
--- a/package/petitboot/petitboot.mk
+++ b/package/petitboot/petitboot.mk
@@ -46,6 +46,16 @@ else
PETITBOOT_CONF_OPTS += --without-fdt
endif
+ifeq ($(BR2_PACKAGE_MDADM),y)
+define PETITBOOT_POST_INSTALL_MDADM
+ $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/63-md-raid-arrays.rules \
+ $(TARGET_DIR)/etc/udev/rules.d/63-md-raid-arrays.rules
+ $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/65-md-incremental.rules \
+ $(TARGET_DIR)/etc/udev/rules.d/65-md-incremental.rules
+endef
+PETITBOOT_POST_INSTALL_TARGET_HOOKS += PETITBOOT_POST_INSTALL_MDADM
+endif
+
define PETITBOOT_POST_INSTALL
$(INSTALL) -D -m 0755 $(@D)/utils/bb-kexec-reboot \
$(TARGET_DIR)/usr/libexec/petitboot/bb-kexec-reboot
--
2.39.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Buildroot] [PATCH 5/5] package/petitboot: enable discovery of SCSI devices
2023-09-06 19:46 [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement Reza Arbab
` (3 preceding siblings ...)
2023-09-06 19:46 ` [Buildroot] [PATCH 4/5] package/petitboot: enable discovery of software RAID devices Reza Arbab
@ 2023-09-06 19:46 ` Reza Arbab
2023-09-07 8:55 ` Laurent Vivier
4 siblings, 1 reply; 14+ messages in thread
From: Reza Arbab @ 2023-09-06 19:46 UTC (permalink / raw)
To: buildroot; +Cc: Reza Arbab, Laurent Vivier, Joel Stanley
It's likely that the "sg" kernel driver needed to scan SCSI devices is a
module. Install a udev rule to load it automatically when devices are
present.
Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
---
package/petitboot/66-add-sg-module.rules | 2 ++
package/petitboot/petitboot.mk | 2 ++
2 files changed, 4 insertions(+)
create mode 100644 package/petitboot/66-add-sg-module.rules
diff --git a/package/petitboot/66-add-sg-module.rules b/package/petitboot/66-add-sg-module.rules
new file mode 100644
index 000000000000..ae18d28c570e
--- /dev/null
+++ b/package/petitboot/66-add-sg-module.rules
@@ -0,0 +1,2 @@
+# load modules to scsi disks, if they aren't in kernel
+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
index 596e801b781c..590b58e9c71a 100644
--- a/package/petitboot/petitboot.mk
+++ b/package/petitboot/petitboot.mk
@@ -63,6 +63,8 @@ define PETITBOOT_POST_INSTALL
$(TARGET_DIR)/etc/petitboot/boot.d/01-create-default-dtb
$(INSTALL) -D -m 0755 $(@D)/utils/hooks/90-sort-dtb \
$(TARGET_DIR)/etc/petitboot/boot.d/90-sort-dtb
+ $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/66-add-sg-module.rules \
+ $(TARGET_DIR)/etc/udev/rules.d/66-add-sg-module.rules
$(INSTALL) -m 0755 -D $(PETITBOOT_PKGDIR)/S15pb-discover \
$(TARGET_DIR)/etc/init.d/S15pb-discover
$(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/petitboot-console-ui.rules \
--
2.39.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value
2023-09-06 19:46 ` [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value Reza Arbab
@ 2023-09-07 8:48 ` Laurent Vivier
2023-09-25 5:30 ` Peter Korsgaard
1 sibling, 0 replies; 14+ messages in thread
From: Laurent Vivier @ 2023-09-07 8:48 UTC (permalink / raw)
To: Reza Arbab, buildroot; +Cc: Joel Stanley
Le 06/09/2023 à 21:46, Reza Arbab a écrit :
> HOST_PROG_SHUTDOWN currently references a file that doesn't exist. Fix
> by setting it to /usr/libexec/petitboot/bb-kexec-reboot, which this
> package already installs but doesn't use.
>
> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
> ---
> package/petitboot/petitboot.mk | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
> index 8b4c14207ec4..8d220f88f45a 100644
> --- a/package/petitboot/petitboot.mk
> +++ b/package/petitboot/petitboot.mk
> @@ -21,7 +21,7 @@ PETITBOOT_CONF_OPTS = \
> --without-twin-x11 \
> $(if $(BR2_PACKAGE_BUSYBOX),--enable-busybox,--disable-busybox) \
> HOST_PROG_KEXEC=/usr/sbin/kexec \
> - HOST_PROG_SHUTDOWN=/usr/sbin/kexec-restart
> + HOST_PROG_SHUTDOWN=/usr/libexec/petitboot/bb-kexec-reboot
>
> # HPA and Busybox tftp are supported. HPA tftp is part of Buildroot's tftpd
> # package.
Reviewed-by: Laurent Vivier <lauret@vivier.eu>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot
2023-09-06 19:46 ` [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot Reza Arbab
@ 2023-09-07 8:51 ` Laurent Vivier
2023-09-07 19:41 ` Reza Arbab
0 siblings, 1 reply; 14+ messages in thread
From: Laurent Vivier @ 2023-09-07 8:51 UTC (permalink / raw)
To: Reza Arbab, buildroot; +Cc: Joel Stanley
Le 06/09/2023 à 21:46, Reza Arbab a écrit :
> Install a udev rule to run the petitboot UI on commonly-known consoles.
> To prevent the kernel's console output from trampling the UI, also add
> a sysctl file to reduce the kernel log levels to KERN_ALERT.
>
> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
> ---
> package/petitboot/petitboot-console-ui.rules | 4 ++++
> package/petitboot/petitboot.mk | 4 ++++
> package/petitboot/sysctl.conf | 1 +
> 3 files changed, 9 insertions(+)
> create mode 100644 package/petitboot/petitboot-console-ui.rules
> create mode 100644 package/petitboot/sysctl.conf
>
> diff --git a/package/petitboot/petitboot-console-ui.rules b/package/petitboot/petitboot-console-ui.rules
> new file mode 100644
> index 000000000000..de3b4b1c035f
> --- /dev/null
> +++ b/package/petitboot/petitboot-console-ui.rules
> @@ -0,0 +1,4 @@
> +# spawn a petitboot UI on common user-visible interface devices
> +SUBSYSTEM=="tty", KERNEL=="hvc*", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
> +SUBSYSTEM=="tty", KERNEL=="tty0", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
> +SUBSYSTEM=="tty", KERNEL=="ttyS*", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
> diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
Could you add:
SUBSYSTEM=="tty", KERNEL=="ttyGF*", RUN+="/usr/libexec/petitboot/pb-console --getty=/sbin/getty
--detach -- -n -i $name 0 linux"
It's needed for my work on virt-m68k petitboot.
> index 8d220f88f45a..556d41230237 100644
> --- a/package/petitboot/petitboot.mk
> +++ b/package/petitboot/petitboot.mk
> @@ -55,6 +55,10 @@ define PETITBOOT_POST_INSTALL
> $(TARGET_DIR)/etc/petitboot/boot.d/90-sort-dtb
> $(INSTALL) -m 0755 -D $(PETITBOOT_PKGDIR)/S15pb-discover \
> $(TARGET_DIR)/etc/init.d/S15pb-discover
> + $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/petitboot-console-ui.rules \
> + $(TARGET_DIR)/etc/udev/rules.d/petitboot-console-ui.rules
> + $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/sysctl.conf \
> + $(TARGET_DIR)/etc/sysctl.d/petitboot.conf
> mkdir -p $(TARGET_DIR)/usr/share/udhcpc/default.script.d/
> ln -sf /usr/sbin/pb-udhcpc \
> $(TARGET_DIR)/usr/share/udhcpc/default.script.d/
> diff --git a/package/petitboot/sysctl.conf b/package/petitboot/sysctl.conf
> new file mode 100644
> index 000000000000..02ab8e3275b5
> --- /dev/null
> +++ b/package/petitboot/sysctl.conf
> @@ -0,0 +1 @@
> +kernel.printk = 1 1 1 1
I think you also need:
diff --git a/system/Config.in b/system/Config.in
index 1ca7690ea3ba..786ec9a1c6b3 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -375,7 +375,7 @@ config BR2_SYSTEM_BIN_SH
menuconfig BR2_TARGET_GENERIC_GETTY
bool "Run a getty (login prompt) after boot"
- default y
+ default y if !BR2_PACKAGE_PETITBOOT
if BR2_TARGET_GENERIC_GETTY
config BR2_TARGET_GENERIC_GETTY_PORT
Otherwise the petitboot prompt will be mixed with getty prompt.
Thanks,
Laurent
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 3/5] package/petitboot: poll removable devices
2023-09-06 19:46 ` [Buildroot] [PATCH 3/5] package/petitboot: poll removable devices Reza Arbab
@ 2023-09-07 8:53 ` Laurent Vivier
0 siblings, 0 replies; 14+ messages in thread
From: Laurent Vivier @ 2023-09-07 8:53 UTC (permalink / raw)
To: Reza Arbab, buildroot; +Cc: Joel Stanley
Le 06/09/2023 à 21:46, Reza Arbab a écrit :
> Add a udev rule to enable notification of media change events on
> removable devices, so petitboot can dynamically adapt to them.
>
> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
> ---
> package/petitboot/petitboot.mk | 2 ++
> package/petitboot/removable-event-poll.rules | 3 +++
> 2 files changed, 5 insertions(+)
> create mode 100644 package/petitboot/removable-event-poll.rules
>
> diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
> index 556d41230237..9326738aa038 100644
> --- a/package/petitboot/petitboot.mk
> +++ b/package/petitboot/petitboot.mk
> @@ -57,6 +57,8 @@ define PETITBOOT_POST_INSTALL
> $(TARGET_DIR)/etc/init.d/S15pb-discover
> $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/petitboot-console-ui.rules \
> $(TARGET_DIR)/etc/udev/rules.d/petitboot-console-ui.rules
> + $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/removable-event-poll.rules \
> + $(TARGET_DIR)/etc/udev/rules.d/removable-event-poll.rules
> $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/sysctl.conf \
> $(TARGET_DIR)/etc/sysctl.d/petitboot.conf
> mkdir -p $(TARGET_DIR)/usr/share/udhcpc/default.script.d/
> diff --git a/package/petitboot/removable-event-poll.rules b/package/petitboot/removable-event-poll.rules
> new file mode 100644
> index 000000000000..57bb74d3c00c
> --- /dev/null
> +++ b/package/petitboot/removable-event-poll.rules
> @@ -0,0 +1,3 @@
> +# petitboot needs notification for media change events on removable devices,
> +# which we only get if we've set the poll_msecs sysfs attribute.
> +ACTION!="remove", ATTR{removable}=="1", ATTR{events_poll_msecs}="2000"
Reviewed-by: Laurent Vivier <lauret@vivier.eu>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 4/5] package/petitboot: enable discovery of software RAID devices
2023-09-06 19:46 ` [Buildroot] [PATCH 4/5] package/petitboot: enable discovery of software RAID devices Reza Arbab
@ 2023-09-07 8:54 ` Laurent Vivier
0 siblings, 0 replies; 14+ messages in thread
From: Laurent Vivier @ 2023-09-07 8:54 UTC (permalink / raw)
To: Reza Arbab, buildroot; +Cc: Joel Stanley
Le 06/09/2023 à 21:46, Reza Arbab a écrit :
> Petitboot can support filesystems on software RAID arrays. If mdadm is
> selected, install the associated udev rules to assemble the device.
>
> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
> ---
> package/petitboot/63-md-raid-arrays.rules | 41 ++++++++++++++
> package/petitboot/65-md-incremental.rules | 69 +++++++++++++++++++++++
> package/petitboot/petitboot.mk | 10 ++++
> 3 files changed, 120 insertions(+)
> create mode 100644 package/petitboot/63-md-raid-arrays.rules
> create mode 100644 package/petitboot/65-md-incremental.rules
>
> diff --git a/package/petitboot/63-md-raid-arrays.rules b/package/petitboot/63-md-raid-arrays.rules
> new file mode 100644
> index 000000000000..92aec36e69d4
> --- /dev/null
> +++ b/package/petitboot/63-md-raid-arrays.rules
> @@ -0,0 +1,41 @@
> +# do not edit this file, it will be overwritten on update
> +
> +SUBSYSTEM!="block", GOTO="md_end"
> +
> +# handle md arrays
> +ACTION!="add|change", GOTO="md_end"
> +KERNEL!="md*", GOTO="md_end"
> +
> +# partitions have no md/{array_state,metadata_version}, but should not
> +# for that reason be ignored.
> +ENV{DEVTYPE}=="partition", GOTO="md_ignore_state"
> +
> +# container devices have a metadata version of e.g. 'external:ddf' and
> +# never leave state 'inactive'
> +ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
> +TEST!="md/array_state", ENV{SYSTEMD_READY}="0", GOTO="md_end"
> +ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0", GOTO="md_end"
> +LABEL="md_ignore_state"
> +
> +IMPORT{program}="/sbin/mdadm --detail --export $devnode"
> +ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace"
> +ENV{DEVTYPE}=="disk", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
> +ENV{DEVTYPE}=="disk", ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}"
> +ENV{DEVTYPE}=="partition", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n", OPTIONS+="string_escape=replace"
> +ENV{DEVTYPE}=="partition", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}-part%n"
> +ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[^0-9]", SYMLINK+="md/$env{MD_DEVNAME}%n"
> +ENV{DEVTYPE}=="partition", ENV{MD_DEVNAME}=="*[0-9]", SYMLINK+="md/$env{MD_DEVNAME}p%n"
> +
> +IMPORT{builtin}="blkid"
> +OPTIONS+="link_priority=100"
> +OPTIONS+="watch"
> +ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
> +ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
> +
> +ENV{MD_LEVEL}=="raid[1-9]*", ENV{SYSTEMD_WANTS}+="mdmonitor.service"
> +
> +# Tell systemd to run mdmon for our container, if we need it.
> +ENV{MD_LEVEL}=="raid[1-9]*", ENV{MD_CONTAINER}=="?*", PROGRAM="/usr/bin/readlink $env{MD_CONTAINER}", ENV{MD_MON_THIS}="%c"
> +ENV{MD_MON_THIS}=="?*", PROGRAM="/usr/bin/basename $env{MD_MON_THIS}", ENV{SYSTEMD_WANTS}+="mdmon@%c.service"
> +
> +LABEL="md_end"
> diff --git a/package/petitboot/65-md-incremental.rules b/package/petitboot/65-md-incremental.rules
> new file mode 100644
> index 000000000000..153d12fe6f7e
> --- /dev/null
> +++ b/package/petitboot/65-md-incremental.rules
> @@ -0,0 +1,69 @@
> +# This file causes block devices with Linux RAID (mdadm) signatures to
> +# automatically cause mdadm to be run.
> +# See udev(8) for syntax
> +
> +# Don't process any events if anaconda is running as anaconda brings up
> +# raid devices manually
> +ENV{ANACONDA}=="?*", GOTO="md_end"
> +
> +# Also don't process disks that are slated to be a multipath device
> +ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end"
> +
> +# We process add events on block devices (since they are ready as soon as
> +# they are added to the system), but we must process change events as well
> +# on any dm devices (like LUKS partitions or LVM logical volumes) and on
> +# md devices because both of these first get added, then get brought live
> +# and trigger a change event. The reason we don't process change events
> +# on bare hard disks is because if you stop all arrays on a disk, then
> +# run fdisk on the disk to change the partitions, when fdisk exits it
> +# triggers a change event, and we want to wait until all the fdisks on
> +# all member disks are done before we do anything. Unfortunately, we have
> +# no way of knowing that, so we just have to let those arrays be brought
> +# up manually after fdisk has been run on all of the disks.
> +
> +# First, process all add events (md and dm devices will not really do
> +# anything here, just regular disks, and this also won't get any imsm
> +# array members either)
> +SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid_member", \
> + RUN+="/sbin/mdadm -I --export $env{DEVNAME}"
> +
> +# Next, check to make sure the BIOS raid stuff wasn't turned off via cmdline
> +IMPORT{cmdline}="noiswmd"
> +IMPORT{cmdline}="nodmraid"
> +ENV{noiswmd}=="?*", GOTO="md_imsm_inc_end"
> +ENV{nodmraid}=="?*", GOTO="md_imsm_inc_end"
> +SUBSYSTEM=="block", ACTION=="add", ENV{ID_FS_TYPE}=="isw_raid_member", \
> + RUN+="/sbin/mdadm -I $env{DEVNAME}"
> +LABEL="md_imsm_inc_end"
> +
> +SUBSYSTEM=="block", ACTION=="remove", ENV{ID_PATH}=="?*", \
> + RUN+="/sbin/mdadm -If $name --path $env{ID_PATH}"
> +SUBSYSTEM=="block", ACTION=="remove", ENV{ID_PATH}!="?*", \
> + RUN+="/sbin/mdadm -If $name"
> +
> +# Next make sure that this isn't a dm device we should skip for some reason
> +ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_change_end"
> +ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="dm_change_end"
> +ENV{DM_SUSPENDED}=="1", GOTO="dm_change_end"
> +KERNEL=="dm-*", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="linux_raid_member", \
> + ACTION=="change", RUN+="/sbin/mdadm -I $env{DEVNAME}"
> +LABEL="dm_change_end"
> +
> +# Finally catch any nested md raid arrays. If we brought up an md raid
> +# array that's part of another md raid array, it won't be ready to be used
> +# until the change event that occurs when it becomes live
> +KERNEL=="md*", SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="linux_raid_member", \
> + ACTION=="change", RUN+="/sbin/mdadm -I $env{DEVNAME}"
> +
> +# In case the initramfs only started some of the arrays in our container,
> +# run incremental assembly on the container itself. Note: we ran mdadm
> +# on the container in 64-md-raid.rules, and that's how the MD_LEVEL
> +# environment variable is already set. If that disappears from the other
> +# file, we will need to add this line into the middle of the next rule:
> +# IMPORT{program}="/sbin/mdadm -D --export $tempnode", \
> +
> +SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="md*", \
> + ENV{MD_LEVEL}=="container", RUN+="/sbin/mdadm -I $env{DEVNAME}"
> +
> +
> +LABEL="md_end"
> diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
> index 9326738aa038..596e801b781c 100644
> --- a/package/petitboot/petitboot.mk
> +++ b/package/petitboot/petitboot.mk
> @@ -46,6 +46,16 @@ else
> PETITBOOT_CONF_OPTS += --without-fdt
> endif
>
> +ifeq ($(BR2_PACKAGE_MDADM),y)
> +define PETITBOOT_POST_INSTALL_MDADM
> + $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/63-md-raid-arrays.rules \
> + $(TARGET_DIR)/etc/udev/rules.d/63-md-raid-arrays.rules
> + $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/65-md-incremental.rules \
> + $(TARGET_DIR)/etc/udev/rules.d/65-md-incremental.rules
> +endef
> +PETITBOOT_POST_INSTALL_TARGET_HOOKS += PETITBOOT_POST_INSTALL_MDADM
> +endif
> +
> define PETITBOOT_POST_INSTALL
> $(INSTALL) -D -m 0755 $(@D)/utils/bb-kexec-reboot \
> $(TARGET_DIR)/usr/libexec/petitboot/bb-kexec-reboot
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 5/5] package/petitboot: enable discovery of SCSI devices
2023-09-06 19:46 ` [Buildroot] [PATCH 5/5] package/petitboot: enable discovery of SCSI devices Reza Arbab
@ 2023-09-07 8:55 ` Laurent Vivier
0 siblings, 0 replies; 14+ messages in thread
From: Laurent Vivier @ 2023-09-07 8:55 UTC (permalink / raw)
To: Reza Arbab, buildroot; +Cc: Joel Stanley
Le 06/09/2023 à 21:46, Reza Arbab a écrit :
> It's likely that the "sg" kernel driver needed to scan SCSI devices is a
> module. Install a udev rule to load it automatically when devices are
> present.
>
> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
> ---
> package/petitboot/66-add-sg-module.rules | 2 ++
> package/petitboot/petitboot.mk | 2 ++
> 2 files changed, 4 insertions(+)
> create mode 100644 package/petitboot/66-add-sg-module.rules
>
> diff --git a/package/petitboot/66-add-sg-module.rules b/package/petitboot/66-add-sg-module.rules
> new file mode 100644
> index 000000000000..ae18d28c570e
> --- /dev/null
> +++ b/package/petitboot/66-add-sg-module.rules
> @@ -0,0 +1,2 @@
> +# load modules to scsi disks, if they aren't in kernel
> +SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
> diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
> index 596e801b781c..590b58e9c71a 100644
> --- a/package/petitboot/petitboot.mk
> +++ b/package/petitboot/petitboot.mk
> @@ -63,6 +63,8 @@ define PETITBOOT_POST_INSTALL
> $(TARGET_DIR)/etc/petitboot/boot.d/01-create-default-dtb
> $(INSTALL) -D -m 0755 $(@D)/utils/hooks/90-sort-dtb \
> $(TARGET_DIR)/etc/petitboot/boot.d/90-sort-dtb
> + $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/66-add-sg-module.rules \
> + $(TARGET_DIR)/etc/udev/rules.d/66-add-sg-module.rules
> $(INSTALL) -m 0755 -D $(PETITBOOT_PKGDIR)/S15pb-discover \
> $(TARGET_DIR)/etc/init.d/S15pb-discover
> $(INSTALL) -D -m 0755 $(PETITBOOT_PKGDIR)/petitboot-console-ui.rules \
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot
2023-09-07 8:51 ` Laurent Vivier
@ 2023-09-07 19:41 ` Reza Arbab
2023-09-13 15:54 ` Reza Arbab
0 siblings, 1 reply; 14+ messages in thread
From: Reza Arbab @ 2023-09-07 19:41 UTC (permalink / raw)
To: Laurent Vivier; +Cc: Joel Stanley, buildroot
On Thu, Sep 07, 2023 at 10:51:32AM +0200, Laurent Vivier wrote:
>Le 06/09/2023 à 21:46, Reza Arbab a écrit :
>>--- /dev/null
>>+++ b/package/petitboot/petitboot-console-ui.rules
>>@@ -0,0 +1,4 @@
>>+# spawn a petitboot UI on common user-visible interface devices
>>+SUBSYSTEM=="tty", KERNEL=="hvc*", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
>>+SUBSYSTEM=="tty", KERNEL=="tty0", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
>>+SUBSYSTEM=="tty", KERNEL=="ttyS*", RUN+="/usr/libexec/petitboot/pb-console --getty --detach -- -n -i 0 $name linux"
>>diff --git a/package/petitboot/petitboot.mk b/package/petitboot/petitboot.mk
>
>Could you add:
>
>SUBSYSTEM=="tty", KERNEL=="ttyGF*", RUN+="/usr/libexec/petitboot/pb-console --getty=/sbin/getty --detach -- -n -i $name 0 linux"
>
>It's needed for my work on virt-m68k petitboot.
Sure, no problem.
>I think you also need:
>
>diff --git a/system/Config.in b/system/Config.in
>index 1ca7690ea3ba..786ec9a1c6b3 100644
>--- a/system/Config.in
>+++ b/system/Config.in
>@@ -375,7 +375,7 @@ config BR2_SYSTEM_BIN_SH
>
> menuconfig BR2_TARGET_GENERIC_GETTY
> bool "Run a getty (login prompt) after boot"
>- default y
>+ default y if !BR2_PACKAGE_PETITBOOT
>
> if BR2_TARGET_GENERIC_GETTY
> config BR2_TARGET_GENERIC_GETTY_PORT
>
>Otherwise the petitboot prompt will be mixed with getty prompt.
This makes sense, but oddly, all our configs have
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
Let me try to figure out why it's never caused problems.
--
Reza Arbab
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot
2023-09-07 19:41 ` Reza Arbab
@ 2023-09-13 15:54 ` Reza Arbab
0 siblings, 0 replies; 14+ messages in thread
From: Reza Arbab @ 2023-09-13 15:54 UTC (permalink / raw)
To: Laurent Vivier; +Cc: Joel Stanley, buildroot
On Thu, Sep 07, 2023 at 02:41:22PM -0500, Reza Arbab wrote:
>On Thu, Sep 07, 2023 at 10:51:32AM +0200, Laurent Vivier wrote:
>>I think you also need:
>>
>>diff --git a/system/Config.in b/system/Config.in
>>index 1ca7690ea3ba..786ec9a1c6b3 100644
>>--- a/system/Config.in
>>+++ b/system/Config.in
>>@@ -375,7 +375,7 @@ config BR2_SYSTEM_BIN_SH
>>
>>menuconfig BR2_TARGET_GENERIC_GETTY
>> bool "Run a getty (login prompt) after boot"
>>- default y
>>+ default y if !BR2_PACKAGE_PETITBOOT
>>
>>if BR2_TARGET_GENERIC_GETTY
>>config BR2_TARGET_GENERIC_GETTY_PORT
>>
>>Otherwise the petitboot prompt will be mixed with getty prompt.
>
>This makes sense, but oddly, all our configs have
>
> BR2_TARGET_GENERIC_GETTY=y
> BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
>
>Let me try to figure out why it's never caused problems.
I found that the reason we've never had problems with this is because
BR2_TARGET_GENERIC_GETTY operates on the default /etc/inittab, but we
overwrite that file in our overlay.
So your suggestion seems good to me! I'll add it to v2.
--
Reza Arbab
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value
2023-09-06 19:46 ` [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value Reza Arbab
2023-09-07 8:48 ` Laurent Vivier
@ 2023-09-25 5:30 ` Peter Korsgaard
1 sibling, 0 replies; 14+ messages in thread
From: Peter Korsgaard @ 2023-09-25 5:30 UTC (permalink / raw)
To: Reza Arbab; +Cc: Joel Stanley, Laurent Vivier, buildroot
>>>>> "Reza" == Reza Arbab <arbab@linux.ibm.com> writes:
> HOST_PROG_SHUTDOWN currently references a file that doesn't exist. Fix
> by setting it to /usr/libexec/petitboot/bb-kexec-reboot, which this
> package already installs but doesn't use.
> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
Committed to 2023.05.x and 2023.08.x, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-09-25 5:30 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-06 19:46 [Buildroot] [PATCH 0/5] package/petitboot: misc enhancement Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 1/5] package/petitboot: fix HOST_PROG_SHUTDOWN value Reza Arbab
2023-09-07 8:48 ` Laurent Vivier
2023-09-25 5:30 ` Peter Korsgaard
2023-09-06 19:46 ` [Buildroot] [PATCH 2/5] package/petitboot: run pb-console at boot Reza Arbab
2023-09-07 8:51 ` Laurent Vivier
2023-09-07 19:41 ` Reza Arbab
2023-09-13 15:54 ` Reza Arbab
2023-09-06 19:46 ` [Buildroot] [PATCH 3/5] package/petitboot: poll removable devices Reza Arbab
2023-09-07 8:53 ` Laurent Vivier
2023-09-06 19:46 ` [Buildroot] [PATCH 4/5] package/petitboot: enable discovery of software RAID devices Reza Arbab
2023-09-07 8:54 ` Laurent Vivier
2023-09-06 19:46 ` [Buildroot] [PATCH 5/5] package/petitboot: enable discovery of SCSI devices Reza Arbab
2023-09-07 8:55 ` Laurent Vivier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox