From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: udev rules and system configuration (was: Microscheme failed) Date: Mon, 04 Jul 2016 16:55:56 +0200 Message-ID: <87shvpe9kz.fsf@elephly.net> References: <448fd23bfc5b716dadbaf46aac1b85ce@d4n1.org> <87vb0mdj4w.fsf@elephly.net> <87inwlhlgv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60855) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bK5II-0003Y6-MT for help-guix@gnu.org; Mon, 04 Jul 2016 10:56:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bK5ID-0005lD-MF for help-guix@gnu.org; Mon, 04 Jul 2016 10:56:17 -0400 In-reply-to: <87inwlhlgv.fsf@gnu.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Daniel Pimentel , help-guix@gnu.org Ludovic Courtès writes: > Hello! > > Ricardo Wurmus skribis: > >> For my AVR programmers I have this in my system configuration: >> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> (define avrispmkii-udev-rule >> (udev-rule "90-avrispmkii.rules" >> "\ >> SUBSYSTEM!=\"usb\", ACTION!=\"add\", GOTO=\"avrisp_end\" >> >> # Atmel Corp. JTAG ICE mkII >> ATTR{idVendor}==\"03eb\", ATTR{idProduct}==\"2103\", MODE=\"660\", GROUP=\"dialout\" >> # Atmel Corp. AVRISP mkII >> ATTR{idVendor}==\"03eb\", ATTR{idProduct}==\"2104\", MODE=\"660\", GROUP=\"dialout\" >> # Atmel Corp. Dragon >> ATTR{idVendor}==\"03eb\", ATTR{idProduct}==\"2107\", MODE=\"660\", GROUP=\"dialout\" >> >> LABEL=\"avrisp_end\"\n")) >> >> (operating-system >> … >> (services (cons* (modify-services %desktop-services >> (udev-service-type config => >> (udev-configuration >> (inherit config) >> (rules (append (udev-configuration-rules config) >> (list avrispmkii-udev-rule)))))))) >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Should we add this as an optional service or to the default set of udev > rules? I don’t think this should be the default. This rule is only useful for those who own one of Atmel’s USB programmer devices. There is a multitude of programmers for AVRs and users may want to use different rules for different devices. However, I’ve been wondering if we shouldn’t introduce nicer abstractions for udev rules and make loading them a little less verbose. It’s a bit unfortunate that while on other systems users are often told to just dump a file somewhere in “/etc” to make device access work without root on GuixSD it’s quite a bit more involved to achieve the same. Our documentation is also a little lacking in this respect. The manual has very little to say about the “udev-service” and how to extend it (or any of the other services, really), making it hard for users coming from other systems to find where they need to change something to make the udev rules work that they were told to add somewhere. Here’s an idea, which might be bad: how about adding a feature to load and merge a directory tree of configuration files as they are? For example, if I had a directory “/etc/guix/system/udev/rules.d” then all files therein would automatically be considered part of the system configuration, maybe after adding “/etc/guix/system” as a prefix path to some new field in the “operating-system” declaration. I have a feeling that this will be considered a bad idea, but it also seems to me that it would make the configuration of some parts of the system easier than embedding file contents as strings in variables in “/etc/config.scm” and modifying services manually. ~~ Ricardo