LINUX.ORG.RU

Wi-fi через wpa_supplicant + dhclient на GuixSD

 , , ,


0

1

Доброго времени, уважаемые пользователи Линукс!

Имеется домашний ноутбук со свежеустановленной GuixSD и Wi-Fi адаптером Atheros AR9485 Wireless Network Adapter.

В системе по умолчанию сеть работает через NetworkManager, и после первой установки я настроил Wi-Fi утилитой nmtui.

Но теперь меня интересует другая конфигурация.

Я предпочитаю wpa_supplicant + dhclient без NetworkManager, который хранит пароль Wi-Fi открытым в конфигурационном файле. Я настраивал сервис wpa_supplicant в systemd Wifi с wpa_supplicant в systemd? , в shepherd много непонятного.

В настоящее время в GuixSD я подключаюсь к Wi-Fi с таким конфигурационным файлом и такими командами:

# cat /etc/wpa_supplicant.conf 
#ctrl_interface=/var/run/wpa_supplicant
#ctrl_interface_group=sudo
update_config=1

network={
	ssid="internet"
	scan_ssid=1
	psk=hash-my-hash
	proto=RSN
	key_mgmt=WPA-PSK
}

# herd stop wpa-supplicant
# wpa_supplicant -B -i wlp1s0 -c /etc/wpa_supplicant.conf
# dhclient -v wlp1s0

Нужно оформить это в виде сервисов.

Сервис wpa-supplicant есть, и как написано тут https://www.gnu.org/software/guix/manual/en/html_node/Networking-Services.htm... , он слушает запросы D-Bus.

Как настроить сервис wpa-supplicant для работы с моим конфигурационным файлом? И как понять, подхватывает он мой файл или нет? В папке /etc/ нет папки wpa_supplicant.

Как настроить dhclient для старта после wpa-supplicant и обслуживания интерфейса wlp1s0?

Интересует вопрос понятного рабочего мануала по конфигурации системы GuixSD. Переписывание /etc/config.scm не даёт результатов По-простому добавить сервис tor в shepherd . Мануал не помог https://www.gnu.org/software/guix/manual/en/html_node/Networking-Services.htm... .

Написал конфиг так, по примеру dhcpd, не помогло:

# cat /etc/config.scm
;; This is an operating system configuration template
;; for a "desktop" setup with GNOME and Xfce where the
;; root partition is encrypted with LUKS.

;;was like this:
;;(use-modules (gnu) (gnu system nss))
;;my changes are these:
(use-modules (gnu) (gnu system nss services networking))

(use-service-modules desktop)
(use-package-modules certs gnome)

(operating-system
  (host-name "antelope")
  (timezone "Europe/Moscow")
  (locale "en_US.utf8")

  ;; Use the UEFI variant of GRUB with the EFI System
  ;; Partition mounted on /boot/efi.
  (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
                (target "/dev/sda")))

  ;; Specify a mapped device for the encrypted root partition.
  ;; The UUID is that returned by 'cryptsetup luksUUID'.
  ;(mapped-devices
  ; (list (mapped-device
  ;        (source (uuid "12345678-1234-1234-1234-hash888abc"))
  ;        (target "my-root")
  ;        (type luks-device-mapping))))

  (file-systems (cons (file-system
                        (device "/dev/sda1")
                        (mount-point "/")
                        (type "ext4")
                        )
                      %base-file-systems))

  (swap-devices '("/dev/sda2"))

  (users (cons* (user-account
                (name "alice")
                (comment "alice user")
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video"))
                (home-directory "/home/alice"))
	       
	  (user-account
                (name "bob")
                (comment "bobs place")
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video"))
                (home-directory "/home/bob"))
                
      (user-account
                (name "mom")
                (comment "mom hello")
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video"))
                (home-directory "/home/mom"))

               %base-user-accounts))
 


  ;; This is where we specify system-wide packages.
  (packages (cons* nss-certs         ;for HTTPS access
                   gvfs              ;for user mounts
                   %base-packages))

  ;; Add GNOME and/or Xfce---we can choose at the log-in
  ;; screen with F1.  Use the "desktop" services, which
  ;; include the X11 log-in service, networking with
  ;; NetworkManager, and more.
  (services (cons* (xfce-desktop-service)
                   %desktop-services))

  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss) ;;)

;;my own lines here
;;  (service wpa-supplicant-service-type
;;           (wpa-supplicant-configuration
;;            (config-file (local-file "/etc/wpa_supplicant.conf"))
;;            (interfaces '("wlp1s0"))))

)

К обоим 'my own changes' и 'my lines here' у guix претензии:

# guix system reconfigure /etc/config.scm

guix system: error: failed to load '/etc/config.scm':
ice-9/boot-9.scm:2803:6: In procedure resolve-interface:
no code for module (gnu system nss services networking)

после комментирования my own changes и раскомментирования исходной строки use-modules, guix выдает ошибку на код 'my own lines here'

# guix system reconfigure /etc/config.scm
/etc/config.scm:85:2: error: invalid field specifier

Всвязи с этим интересуют вопросы:

- Как правильно добавить сервисы wpa-supplicant и dhclient в систему?

- Как конфигурировать сервисы в herd? - как я понимаю, только через /etc/config.scm ?

- Где найти список переменных сервиса wpa-supplicant и dhclient?

- Также как удалить неиспользуемые сервисы: NetworkManager, avahi-daemon, ntpd и что входит в %desktop-services, как пользоваться этой переменной, удаляя лишние элементы?

 (services (cons* (xfce-desktop-service)
                   %desktop-services))
★★

Решено добавлением сервисов wpa-supplicant и dhcp-client

В переменной %desktop-services по умолчанию включен NetworkManager. Чтобы удалить ненужные службы и настроить другие, используется функция `(modify-services ... %desktop-services)`

Следующий конфиг настраивает сервисы shepherd: wpa-suplicant и dhpc-client - и удаляет NetworManager. Также на всякий случай добавляет пакет wpa-supplicant всем пользователям.

Также присутствие двух модулей phy0 и ideapad_laptop приводит к блокировке интерфейса wlp2s0. Networkmanager с этим как-то справлялся, а без него приходится либо добавлять службу, которая запускает `rfkill unblock wifi`, либо добавлять модуль ideapad_laptop в блеклист, сделано последнее.

;-*- mode: Scheme; -*-
;;this is znavko's cute config

(use-modules (gnu) (gnu system nss)
             (gnu system locale) ;;for locale-definition
             (gnu services desktop)
             (srfi srfi-1)             ;;for remove function
             (gnu services networking) ;;for remove ntp
             (gnu services avahi)      ;;for remove avahi
             (gnu services xorg)
             (gnu packages admin) ;;for wpa_supplicant
             )
(use-service-modules desktop)
(use-package-modules certs gnome)

(operating-system (host-name "antelope") (timezone "Europe/Moscow") (locale "en_US.utf8")
                  (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "/dev/sda")))
                  (file-systems (cons (file-system (device "/dev/sda1") (mount-point "/") (type "ext4")) %base-file-systems))
                  (swap-devices '("/dev/sda2"))

                  (users (cons* (user-account (name "bob") (group "users")
                                              (supplementary-groups '("wheel" "netdev" "audio" "video"))
                                              (home-directory "/home/bob"))
                                (user-account (name "mom") (group "users")
                                              (supplementary-groups '("wheel" "netdev" "audio" "video"))
                                              (home-directory "/home/mom"))
                                %base-user-accounts))

                  ;; This is where we specify system-wide packages.
                  (packages (cons* nss-certs ;for HTTPS access
                                   gvfs      ;for user mounts
                                   wpa-supplicant
                                   %base-packages))

                  (services (cons*
                             (service xfce-desktop-service-type)
                             (service dhcp-client-service-type)

                             (modify-services      
                              (remove (lambda (service)
                                        (member (service-kind service)
                                                (list ntp-service-type avahi-service-type
                                                      bluetooth-service network-manager-service-type)))
                                      %desktop-services) ;end of remove lambda services

                              (wpa-supplicant-service-type config =>
                                                           (wpa-supplicant-configuration
                                                            (interface "wlp2s0")
                                                            (config-file "/etc/wpa_supplicant/wpa_supplicant.conf")))

                              (gdm-service-type config =>
                                                (gdm-configuration
                                                 (xorg-configuration
                                                  (xorg-configuration
                                                   (extra-config  
                                                    '("Section \"InputClass\"
Identifier \"touchpad\"
Driver \"libinput\"
MatchIsTouchpad \"on\"
Option \"Tapping\" \"on\"
EndSection")
                                                    )))))

                              (elogind-service-type
                               c => (elogind-configuration (handle-lid-switch 'ignore)))
                              ) ;;end of modify-services
                             )) ;;end of services

                  ;; Allow resolution of '.local' host names with mDNS.
                  (name-service-switch %mdns-host-lookup-nss)

                  ;;blacklist ugly sound speaker, blacklist ideapad_laptop for prevent soft blocking wlan
                  (kernel-arguments '("modprobe.blacklist=pcspkr,snd_pcsp,bluetooth,ideapad_laptop"))

                  ) ;;end of operating-system
znavko ★★ ()
Последнее исправление: znavko (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.