Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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