diff options
author | Adrian Freihofer <adrian.freihofer@siemens.com> | 2025-07-12 14:50:43 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-07-14 17:49:48 +0100 |
commit | 6858e5f0c8a9f5a7bde4367edfc6b04361a52940 (patch) | |
tree | a8c3fb4983fdc206508fffba22d286df632fc112 | |
parent | 873430cecaa512bb2055c79d69733f8601523049 (diff) | |
download | poky-6858e5f0c8a9f5a7bde4367edfc6b04361a52940.tar.gz |
oeqa/utils/command: simplify tap detection
Simplify the code by removing the fallback to ifconfig if the ip command
is not available. ip commands are nowadays available on all host
machines. The transition from ifconfig to ip has taken place long time
ago e.g. for the runqemu-gen-tapdevs script.
This also fixes the detection of tap devices if the tap devices are not
named tap0, tap1, etc. but have a different name, e.g. foo0, foo1 which
is the case if the OE_TAP_NAME environment variable is set.
Some examples:
$ ip tuntap show mode tap
$ sudo ./scripts/runqemu-gen-tapdevs 1000 2
Creating 2 tap devices for GID: 1000...
Creating tap0
Creating tap1
...
$ ip tuntap show mode tap
tap0: tap persist group 1000
tap1: tap persist group 1000
$ sudo ./scripts/runqemu-gen-tapdevs 1000 0
Note: Destroying pre-existing tap interface tap0...
Note: Destroying pre-existing tap interface tap1...
$ ip tuntap show mode tap
$ sudo OE_TAP_NAME=foo ./scripts/runqemu-gen-tapdevs 1000 2
Creating 2 tap devices for GID: 1000...
Creating foo0
Creating foo1
...
$ ip tuntap show mode tap
foo0: tap persist group 1000
foo1: tap persist group 1000
$ sudo OE_TAP_NAME=foo ./scripts/runqemu-gen-tapdevs 1000 0
Note: Destroying pre-existing tap interface foo0...
Note: Destroying pre-existing tap interface foo1...
$ ip tuntap show mode tap
(From OE-Core rev: 6459ea7c019bcb7a486d286dd964eeeeab99c37d)
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oeqa/utils/commands.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py index e049e1ee68..9154220968 100644 --- a/meta/lib/oeqa/utils/commands.py +++ b/meta/lib/oeqa/utils/commands.py | |||
@@ -405,13 +405,11 @@ def runqemu_check_taps(): | |||
405 | """Check if tap devices for runqemu are available""" | 405 | """Check if tap devices for runqemu are available""" |
406 | if not os.path.exists('/etc/runqemu-nosudo'): | 406 | if not os.path.exists('/etc/runqemu-nosudo'): |
407 | return False | 407 | return False |
408 | result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ip tuntap show', ignore_status=True) | 408 | result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ip tuntap show mode tap', ignore_status=True) |
409 | if result.status != 0: | 409 | if result.status != 0: |
410 | result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ifconfig -a', ignore_status=True) | 410 | return False |
411 | if result.status != 0: | ||
412 | return False | ||
413 | for line in result.output.splitlines(): | 411 | for line in result.output.splitlines(): |
414 | if line.startswith('tap'): | 412 | if 'tap' in line: |
415 | break | 413 | break |
416 | else: | 414 | else: |
417 | return False | 415 | return False |