Find a file
Marc Herbert 67f7b43136 soc: xtensa: remote-fw-service.py: fix usage without sudo
It's best practice to run as little code as possible as root (especially
when listening to network ports). When not itself running as root
already, remote-fw-service.py has always tried to invoke cavstool.py
with "sudo". Unfortunately this looks like it never worked; at least not
on Ubuntu 22 where this commit was tested. Moreover it did not fail
immediately but mysteriously timed out without any useful error message.

- The first, most obvious bug was that "sudo" does not propagate
SIGKILL (and a few other signals), see "man sudo". Compare:

```
$ sudo sleep 30 &
$ kill  $! # sudo propagates the TERM signal and sleep is terminated

$ sudo sleep 30 & sudoPID=$!
$ kill -KILL $sudoPID
$  ps  xfao pid,ppid,pgid,sid,comm | grep -C 5 -e PID -e sleep -e sudo
```

Fix this by invoking proc.terminate() first before proc.kill().
proc.terminate() is more "polite" with cavstool even when not using
sudo.

- Second issue: when signals are sent to sudo, strace shows that its
signal handler invokes `getpgid()` and then ignores signals coming from
its own process group. `man sudo` states: "sudo will not relay signals
that were sent by the command it is running...", which seems related.

`start_new_session=True` option moves sudo to a different PGID which
stops sudo from ignoring signals from its remote-fw-service.py parent.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-03-28 16:42:29 -04:00
.github ci: backport_issue_check: Use ubuntu-22.04 virtual environment 2023-03-22 02:49:03 +09:00
arch arch: x86: zefi: Remove unneeded include 2023-03-22 20:32:35 +09:00
boards boards: arm: stm32h573 disco kit has runner 2023-03-28 15:07:51 +02:00
cmake cmake: modules: Make modules.cmake check more precise 2023-03-27 22:15:59 +00:00
doc doc: add snippets documentation 2023-03-26 16:12:41 +02:00
drivers drivers: dmic: clear MIC_MUTE bit for ACE 2023-03-28 16:34:40 -04:00
dts drivers: flash: Add support for defining custom RDP1 byte value 2023-03-28 15:43:16 +00:00
include/zephyr drivers: flash: Add ex ops for STM32 option/control register block 2023-03-28 15:43:16 +00:00
kernel sched: minor time slicing cleanup 2023-03-16 09:16:59 +01:00
lib libc: share time() between minimal libc and armclang libc 2023-03-27 09:49:40 +02:00
misc misc: generated: update configs.c template with <zephyr/...> prefix 2022-05-09 12:45:29 -04:00
modules modules: hal_infineon: Added support of BT controller fw blobs 2023-03-22 16:40:55 +01:00
samples samples: minimal: define an empty project configuration 2023-03-28 15:05:01 +02:00
scripts snippets: Fix cmake path output on Windows 2023-03-27 14:44:39 +00:00
share cmake: sysbuild PRE_CMAKE, POST_CMAKE, PRE_DOMAINS, POST_DOMAINS hooks 2023-03-11 19:53:40 +01:00
snippets snippets: add cdc-acm-console 2023-03-26 16:12:41 +02:00
soc soc: xtensa: remote-fw-service.py: fix usage without sudo 2023-03-28 16:42:29 -04:00
submanifests
subsys bluetooth: host: Add common helper for checking LTK presence 2023-03-28 16:15:58 +00:00
tests tests/bsim: Disable some broken EDTT GATT tests 2023-03-28 16:15:58 +00:00
.checkpatch.conf checkpatch: Remove ext/ from excludes 2022-11-30 12:06:55 -05:00
.clang-format clang-format: Add CHECKIF to IfMacros 2023-02-27 10:47:11 -08:00
.codecov.yml yamllint: fix all yamllint comments errors 2023-01-04 01:16:45 +09:00
.editorconfig editorconfig: Improve verbosity 2022-04-28 08:55:39 -04:00
.gitattributes
.gitignore gitignore: Ignore new bsim tests build folders 2023-03-07 08:33:38 +01:00
.gitlint gitlint: Stop ignoring merge, revert, fixup and squash commits 2022-01-10 08:13:36 -05:00
.mailmap mailmap: add two fixes for bad commits 2023-03-17 08:08:16 -04:00
.yamllint scripts: compliance: add support for YAMLLint 2023-01-04 17:29:23 +01:00
CMakeLists.txt toolchain: Add ARMClang to gcc related toolchain flags check 2023-03-20 10:42:46 +01:00
CODE_OF_CONDUCT.md
CODEOWNERS smbus: Update CODEOWNERS and MAINTAINERS files 2023-03-22 08:16:23 -04:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr cmake: mcuboot: Add Kconfig for passing west sign arguments 2023-03-24 09:04:49 +01:00
LICENSE
MAINTAINERS.yml MAINTAINERS: Fix case of Bluetooth Host section 2023-03-28 09:40:43 -05:00
README.rst readme: Add support for light/dark modes in the logo 2022-11-18 08:58:59 +01:00
VERSION VERSION: Bump to 3.3.99 2023-02-19 20:34:26 +09:00
version.h.in cmake: version.h generation performed at build time 2022-02-08 07:50:24 -05:00
west.yml manifest: Update nRF HW models to latest 2023-03-28 15:44:21 +00:00
zephyr-env.cmd
zephyr-env.sh everywhere: fix typos 2022-03-18 13:24:08 -04:00

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
  this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Discord Invite: https://chat.zephyrproject.org
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help