emmc-log: Enable/Disable network based logging

Before http://go/gbmc-logs-end-to-end (internal) is finished, we need to
enable/disable logging based on network access to syslog collector. Currently
those logs are getting dropped, so it will not be logged anywhere. Allow
it to be logged on eMMC instead.

The flags will be enabled via runtime packages assigned to each
machines.

Tested:
Network logging...
```
root@jkejp2-nfd01:~# systemctl status emmc-log
● emmc-log.service - Configure journald to log to eMMC
     Loaded: loaded (/lib/systemd/system/emmc-log.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-05-12 15:29:47 PDT; 5s ago
   Main PID: 15604 (emmc_logging.sh)
        CPU: 390ms
     CGroup: /system.slice/emmc-log.service
             ├─15604 /bin/bash /usr/bin/emmc_logging.sh
             └─15656 sleep 60

May 12 15:29:47 jkejp2-nfd01.prod.google.com systemd[1]: Started Configure journald to log to eMMC.
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15604]: Detected eMMC log enable flag. Starting persistent eMMC log.
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15605]: Trimming to 221M
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Vacuuming done, freed 0B of archived journals from /mnt/luks-mmcblk0_fs/logs.
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Deleted archived journal /mnt/luks-mmcblk0_fs/logs/21bdb34d641944f49612be6afaddb6a7/system@3789309b251d4ebf9a046b049b65f7bc-0000000000004852-0005f3264f2d6ed1.journal (3.9M).
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Deleted archived journal /mnt/luks-mmcblk0_fs/logs/21bdb34d641944f49612be6afaddb6a7/system@0005f32656448dd1-0ec6c9159ba5947c.journal~ (16.0M).
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Vacuuming done, freed 19.9M of archived journals from /mnt/luks-mmcblk0_fs/logs/21bdb34d641944f49612be6afaddb6a7.
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15605]: Flushing journal logs to eMMC
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15605]: Journald is now logging to eMMC
```

Enable always logging...
```
root@jkejp2-nfd01:~# systemctl status emmc-log
● emmc-log.service - Configure journald to log to eMMC
     Loaded: loaded (/lib/systemd/system/emmc-log.service; enabled; preset: enabled)
     Active: active (exited) since Fri 2023-05-12 15:32:06 PDT; 1s ago
    Process: 15781 ExecStart=/usr/bin/emmc_logging.sh (code=exited, status=0/SUCCESS)
   Main PID: 15781 (code=exited, status=0/SUCCESS)
        CPU: 140ms

May 12 15:32:06 jkejp2-nfd01.prod.google.com systemd[1]: Started Configure journald to log to eMMC.
May 12 15:32:06 jkejp2-nfd01.prod.google.com emmc_logging.sh[15781]: Detected eMMC log network disable flag. Starting persistent eMMC log and then exit.
May 12 15:32:07 jkejp2-nfd01.prod.google.com emmc_logging.sh[15782]: Flushing journal logs to eMMC
May 12 15:32:07 jkejp2-nfd01.prod.google.com emmc_logging.sh[15782]: Journald is now logging to eMMC
```

Google-Bug-Id: 281760543
Change-Id: Ibd0ee217dfa9f8c1b48154cb458eaa181ed2db3b
Signed-off-by: Willy Tu <wltu@google.com>
(cherry picked from commit 8348aef349eaea8203e7f8489f589784552821c7)
3 files changed
tree: 8ee4d1b6d6cda97792af18818bd583ca0d2baa1f
  1. conf/
  2. dynamic-layers/
  3. meta-nuvoton-npcm8xx/
  4. recipes-connectivity/
  5. recipes-core/
  6. recipes-devtools/
  7. recipes-extended/
  8. recipes-google/
  9. recipes-kernel/
  10. recipes-phosphor/
  11. LICENSE
  12. README.md
README.md

meta-gbmc-staging

This repository contains additions to the openbmc/meta-google layer that are not yet ready for OpenBMC inclusion.

How to use this layer

  1. Clone openbmc/openbmc from GitHub.
  2. Clone this layer from GitHub into a subdirectory of openbmc.