index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | Anton Hvornum <anton.feeds@gmail.com> | 2021-01-25 10:31:02 +0100 |
---|---|---|
committer | Anton Hvornum <anton.feeds@gmail.com> | 2021-01-25 10:31:02 +0100 |
commit | 68adb3108f8111b1be434bf63c03562d72bbbe6f (patch) | |
tree | c0d0f7c3f86bbb560184f7565982b68387797aed /archinstall | |
parent | 5c696c4bc1f0d0e3abae105616fe783b85d6771a (diff) |
-rw-r--r-- | archinstall/__init__.py | 1 | ||||
-rw-r--r-- | archinstall/lib/hardware.py | 10 | ||||
-rw-r--r-- | archinstall/lib/networking.py | 19 |
diff --git a/archinstall/__init__.py b/archinstall/__init__.py index 174c6885..ee2d0361 100644 --- a/archinstall/__init__.py +++ b/archinstall/__init__.py @@ -12,3 +12,4 @@ from .lib.services import * from .lib.packages import * from .lib.output import * from .lib.storage import * +from .lib.hardware import *
\ No newline at end of file diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py new file mode 100644 index 00000000..c9483919 --- /dev/null +++ b/archinstall/lib/hardware.py @@ -0,0 +1,10 @@ +import os +from .networking import list_interfaces, enrichIfaceTypes + +def hasWifi(): + if 'WIRELESS' in enrichIfaceTypes(list_interfaces().values()).values(): + return True + return False + +def hasUEFI(): + return os.path.isdir('/sys/firmware/efi')
\ No newline at end of file diff --git a/archinstall/lib/networking.py b/archinstall/lib/networking.py index 4829a58b..b69a43db 100644 --- a/archinstall/lib/networking.py +++ b/archinstall/lib/networking.py @@ -1,9 +1,9 @@ +import os import fcntl import socket import struct from collections import OrderedDict - def getHwAddr(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', bytes(ifname, 'utf-8')[:15])) @@ -19,5 +19,22 @@ def list_interfaces(skip_loopback=True): interfaces[mac] = iface return interfaces +def enrichIfaceTypes(interfaces :dict): + result = {} + for iface in interfaces: + if os.path.isdir(f"/sys/class/net/{iface}/bridge/"): + result[iface] = 'BRIDGE' + elif os.path.isfile(f"/sys/class/net/{iface}/tun_flags"): + # ethtool -i {iface} + result[iface] = 'TUN/TAP' + elif os.path.isdir(f"/sys/class/net/{iface}/device"): + if os.path.isdir(f"/sys/class/net/{iface}/wireless/"): + result[iface] = 'WIRELESS' + else: + result[iface] = 'PHYSICAL' + else: + result[iface] = 'UNKNOWN' + return result + def get_interface_from_mac(mac): return list_interfaces().get(mac.lower(), None)
\ No newline at end of file |