From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 0GT3MtGjZmMHPAAAbAwnHQ (envelope-from ) for ; Sat, 05 Nov 2022 18:56:33 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id OGocMtGjZmMabAAAG6o9tA (envelope-from ) for ; Sat, 05 Nov 2022 18:56:33 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 5857A2D753 for ; Sat, 5 Nov 2022 18:56:33 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1orNOp-0006ih-LS; Sat, 05 Nov 2022 13:56:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1orNOk-0006gC-PJ for guix-patches@gnu.org; Sat, 05 Nov 2022 13:56:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1orNOk-0004WT-G9 for guix-patches@gnu.org; Sat, 05 Nov 2022 13:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1orNOj-0001Sb-Vz for guix-patches@gnu.org; Sat, 05 Nov 2022 13:56:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#59003] [PATCH 6/7] installer: Report known-unsupported PCI devices. Resent-From: "pelzflorian (Florian Pelz)" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 05 Nov 2022 17:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59003 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 59003@debbugs.gnu.org Received: via spool by 59003-submit@debbugs.gnu.org id=B59003.16676709325576 (code B ref 59003); Sat, 05 Nov 2022 17:56:01 +0000 Received: (at 59003) by debbugs.gnu.org; 5 Nov 2022 17:55:32 +0000 Received: from localhost ([127.0.0.1]:57990 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1orNOG-0001Rr-Ay for submit@debbugs.gnu.org; Sat, 05 Nov 2022 13:55:32 -0400 Received: from relay.yourmailgateway.de ([194.59.206.189]:49283) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1orNOC-0001Rf-AU for 59003@debbugs.gnu.org; Sat, 05 Nov 2022 13:55:31 -0400 Received: from relay02-mors.netcup.net (localhost [127.0.0.1]) by relay02-mors.netcup.net (Postfix) with ESMTPS id 4N4QBk4Gwyz3xFJ; Sat, 5 Nov 2022 18:55:26 +0100 (CET) Received: from policy02-mors.netcup.net (unknown [46.38.225.35]) by relay02-mors.netcup.net (Postfix) with ESMTPS id 4N4QBk3qZsz848g; Sat, 5 Nov 2022 18:55:26 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at policy02-mors.netcup.net Received: from mxe217.netcup.net (unknown [10.243.12.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by policy02-mors.netcup.net (Postfix) with ESMTPS id 4N4QBh5rbZz8sZy; Sat, 5 Nov 2022 18:55:23 +0100 (CET) Received: from florianrock64 (ip5b40a50f.dynamic.kabel-deutschland.de [91.64.165.15]) by mxe217.netcup.net (Postfix) with ESMTPSA id 3AD169EAF0; Sat, 5 Nov 2022 18:55:22 +0100 (CET) From: "pelzflorian (Florian Pelz)" References: <20221103191935.16336-1-ludo@gnu.org> <20221103191935.16336-6-ludo@gnu.org> Date: Sat, 05 Nov 2022 18:55:21 +0100 In-Reply-To: <20221103191935.16336-6-ludo@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Thu, 3 Nov 2022 20:19:34 +0100") Message-ID: <87v8ntmgl2.fsf@pelzflorian.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 3AD169EAF0 X-Spamd-Result: default: False [-5.60 / 15.00]; BAYES_HAM(-5.50)[100.00%]; MIME_GOOD(-0.10)[text/plain]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_ZERO(0.00)[0]; ASN(0.00)[asn:3209, ipnet:91.64.0.0/14, country:DE]; RCPT_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[] X-Rspamd-Server: rspamd-worker-8404 X-NC-CID: jB+VMW4yBfRehyI/dsJP3bTN7TnQFqgfTnfTzPuRN7buUNClUN7KPqdy X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Guix-patches" Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1667670993; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=w0eDrOBR6NOyup+olMm5YozTYB3xGnP2dIJnqvNyWOw=; b=DA/zKuQye3Sd8KNtqVsrcFdNxlEL4GxRCAO3VhoWCLvVS46p5La4Tz8GnDr5OudOixYjzL g1AmjUVTzL+t07rbluPJ52uY3Y/EGuaanbKc6IrtqeSQ/OQKZ6YwcvHekYNH6bJJx89qnD fbqRNZkAOnYeAhoIFPMWtpBdEiyTXuQNmyL3AhJ5S5HzcbMcfqG+hvn50qItxcf39kKetp oBCoFQQ6Lymd8xd7zuyK/28dceueAV1My0kvWk+c5m8h9Z0nVGlnRog9AhxnhTZnAl8diq Va7iVG/vrQp087ig/HD4WuWOzHsKVHsfT2A/+8wFhXbHn6qWI9HiQ8jrhTbe6w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1667670993; a=rsa-sha256; cv=none; b=cgC7hCk8DDDzEFua86zuKWCXAf6szAw1Cr1muWsKLT7DLy/fULyx+7dZMBEKPzjT8DUKyi pzQnOGNSCbUvGl+E9f09wOdUr8qQLZJQvBT9qRjWRrEAVkUcTFBmXVsVFa5GrWK2zhPpGp KzuDEaxqZSTHcs2YWZh7UNJcXqn0QSb+85HrwESo607mLcfYDwH2t79RIIl5TdzbiHymC8 mZLxxB3xGaWw9PtX1qBmII/FcwsoiDd3ClolO6k/HH+kAFjkYbTF4FMzPNpRJqOrfdWtj9 LfcaJ58es/7L1KXRpSSSi34eFAKn3iP696NYx9nUMpI2nYE+IqcT5lWdLHqPLg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -4.11 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 5857A2D753 X-Spam-Score: -4.11 X-Migadu-Scanner: scn0.migadu.com X-TUID: luXlAV11Dvx+ This is great work. To test, I reverted the (current-guix) patch and instead pointed the guix package source to (url "/home/florian/src/guix") and doing GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT=3Dy make update-guix-package so I could test the patch. I also had to guix pull from a channel with this local checkout, because ./pre-inst-env guix system image -t iso9660 gnu/system/install.scm still insists on authenticating florian@floriandesktop ~/src/guix [env]$ ./pre-inst-env guix system image -= t iso9660 gnu/system/install.scm=20 ;;; compiling /home/florian/src/guix/gnu/system/examples/bare-bones.tmpl ;;; compiled /home/florian/.cache/guile/ccache/3.0-LE-8-4.6/home/florian/sr= c/guix/gnu/system/examples/bare-bones.tmpl.go ;;; compiling /home/florian/src/guix/gnu/system/examples/bare-bones.tmpl ;;; compiled /home/florian/.cache/guile/ccache/3.0-LE-8-4.6/home/florian/sr= c/guix/gnu/system/examples/bare-bones.tmpl.go ;;; compiling /home/florian/src/guix/gnu/system/examples/bare-bones.tmpl ;;; compiled /home/florian/.cache/guile/ccache/3.0-LE-8-4.6/home/florian/sr= c/guix/gnu/system/examples/bare-bones.tmpl.go Updating channel 'guix' from Git repository at '/home/florian/src/guix/'... Authenticating channel 'guix', commits 9edb3f6 to 8d31a8c (977 new commits)= ... [ = ]guix system: error: commit 8d31a8c042bcedf34d911047c628ee4290f0b3cd la= cks a signature Why does it authenticate? This is a strange antifeature, but I can=E2=80= =99t tell where in the code the authentication is called. Anyway, after `guix pull`ing a guix channel with the local checkout, `guix system image -t iso9660 gnu/system/install.scm` went fine. I digress. About the patch: Ludovic Court=C3=A8s writes: > Newer laptops are known to require > non-free firmware a range of devices=C2=B9 and it would be nice to > cover the important ones. >=20 > Thoughts? >=20 > Ludo=E2=80=99. >=20 > =C2=B9 https://blog.einval.com/2022/04/19#firmware-what-do-we-do In my limited experience, much hardware was always broken. I don=E2=80=99t have modern hardware with iwlwifi, but my ancient laptop has broken hardware, namely a SiS 191 Gigabit Ethernet Adapter. While the adapter can download things with wget, when I use this Ethernet controller to guix system init, Guix gets stuck immediately, even though makes the dubitable claim that this Ethernet controller works fine. Note that I have no issues with USB Ethernet adapters. Therefore, > +(define %unsupported-linux-modules > + ;; List of Linux modules that are useless without non-free firmware. > + '("iwlwifi")) I added "sis190". The patch works! The install image prints: Devices not supported by free software were found on your computer: - Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter (networking device) Yay! Maybe you could add "sis190", maybe it doesn=E2=80=99t matter because= it is so old, maybe it is even just my laptop=E2=80=99s SiS that is broken. By the way, looking for modern, working consumer wi-fi hardware (I believe it does not exist), I find Realtek devices on h-node that it claims are working with aircrack-ng, but recently there was a commit commit b8f2eb286ec52c97048e23d326d94ae5772797e8 Author: Tobias Geerinckx-Rice Date: Sun Aug 14 02:00:00 2022 +0200 gnu: Remove Realtek WiFi drivers with firmware blobs. =20=20=20=20 rtl8821ce-linux-module contains, e.g., halhwimg8821c_fw.c and hal8821c_fw.c. rtl8812au-aircrack-ng-linux-module has, e.g., hal8814a_fw.c, hal8812a_fw.c, and hal8821a_fw.c. Each of these examples contains non-free firmware blobs disguised as C arrays. =20=20=20=20 * gnu/packages/linux.scm (rtl8821ce-linux-module) (rtl8812au-aircrack-ng-linux-module): Remove variables. =20=20=20=20 Reported by Jacob K But a warning for these Realtek devices can be added later when someone actually has such hardware. That would have been an external module though. Anyway, without realtek hardware I cannot judge. Now, back to the patch: > +(define unsupported-pci-device? > + ;; Arrange to load the module alias database only once. > + (let ((aliases (delay (known-module-aliases)))) > + (lambda (device) > + "Return true if DEVICE is known to not be supported by free softwa= re." > [=E2=80=A6] > +(define (check-hardware-support pci-database) > [=E2=80=A6] > + (let ((devices (pci-devices))) > + (match (filter unsupported-pci-device? devices) > + (() ;no unsupported device > + #t) > + (unsupported > + (run-error-page (format #f (G_ "\ > +Devices not supported by free software were found on your computer: In my view it would be better to lay the blame on the hardware manufacturers, because they are the ones who should distribute free drivers. That is to turn it around and maybe say: Devices with no support for free software were found on your computer: or maybe at least =E2=80=9Cwith=E2=80=9D instead of =E2=80=9Cby=E2=80=9D: "Return true if DEVICE is known to not be supported with free software. Either way, thank you! Regards, Florian