#devd โ Public Fediverse posts
Live and recent posts from across the Fediverse tagged #devd, aggregated by home.social.
-
So, after I met problems with iwlwifi driver and my attempts to aggregate both em0 and wlan0 interfaces to the one lagg0 interface (https://mastodon.bsd.cafe/@evgandr/115985853500057386) โ looks like I found a much (MUCH!) simpler solution :drgn_happy:
I wanted to automatically switch between wired and wireless networks when I plug-in (or disconnect) my Ethernet cable. First, because I was a newbie in the FreeBSD world, I tried to search for some kind of NetworkManager. Thankfully, I didn't find any NetworkManager clone ported to the FreeBSD. I found some tries to port NetworkManager from Linux to FreeBSD but all of them are failed (not surprised, lol).
Then, I finally started to read documentation :drgn_think_science: . In the section about advanced networking I read about aggregation interfaces. And somehow I managed to aggregate both of em0 and wlan0 to the one lagg0 interface and it works well.
But, looks like (see https://mstdn.social/@erikarn/115986265106931691) it is not the way how the lagg interfaces should work. It is not intended to use wireless interfaces in the aggregate interfaces โ so my tricky setup stopped working in the FreeBSD 15.0.
BUT, since we have a beautiful devd daemon, which listens for various system events and able to execute actions when event is happened โ I just wrote 23 lines of shell script to learn my laptop how to switch between interfaces when the Ethernet cable (dis)connects, lol. Solution is very simple:
First, we already have /etc/devd/dhclient.conf, which starts dhclient when some interface appeared in the system. I modified it, so it calls the sPeCiAL script, each time when em0, or wlan0, or ue0 interface appeared in the system, or when em0 is disappeared:
notify 0 {
match "system" "IFNET";
match "type" "LINK_UP";
media-type "ethernet";
action "/root/bin/unfuck_network.tcsh $subsystem ifup";
};notify 0 {
match "system" "IFNET";
match "type" "LINK_DOWN";
media-type "ethernet";
action "/root/bin/unfuck_network.tcsh $subsystem ifdown";
};notify 0 {
match "system" "IFNET";
match "type" "LINK_UP";
media-type "802.11";
action "/root/bin/unfuck_network.tcsh $subsystem";
};notify 0 {
match "system" "ETHERNET";
match "type" "IFATTACH";
match "subsystem" "ue0";
action "/root/bin/unfuck_network.tcsh ue0";
};Then, the main magic happens in the /root/bin/unfuck_network.tcsh:
โ When Ethernet cable is connected โ it destroys the wlan0 interface and starts dhclient for em0 to talk with DHCP server.
โ When Ethernet cable is disconnected โ it makes all to remove route using em0 from routing table (removes em0 interface completely, flush routing table, etc โ somehow em0 still stays in the routing table if interface is not destroyed; btw system will create it anyway later, in some point) and recreates the wlan0 interface.
โ When wlan0 device is created โ it starts dhclient for it.Script contents (for tcsh):
#!/bin/tcshswitch ( $1 )
case "em0":
if ( $2 == "ifup" ) then
service netif quietstop wlan0
service dhclient quietstart em0
else if ( $2 == "ifdown" ) then
service dhclient quietstop em0
ifconfig em0 delete
route flush
service routing restart
service netif quietstart wlan0
endif
breaksw;
case "wlan0":
service dhclient quietstart wlan0
breaksw;
case "ue0":
service dhclient quietstart ue0
breaksw;
endsw -
I finally managed to migrate over to #SDDM in #FreeBSD.
It turns out I was missing pam_xdg package. LightDM would not allow me to switch tty after logging in. SDDM is fine with it though :)
I also learned about devd and configured it for laptop lid close event. It was easier than I thought.
I need to setup auto switching to headphones. Manually changing it via pavucontrol is terrible.
btw I am looking for wifi & BT GUI to setup stuff when needed.
-
New ๐๐๐ฑ๐ถ๐ผ ๐๐บ๐ฝ๐ฟ๐ผ๐๐ฒ๐บ๐ฒ๐ป๐๐ (Audio Improvements) article on the https://vermaden.wordpress.com/ blog.
https://vermaden.wordpress.com/2024/01/13/freebsd-desktop-part-29-configuration-audio-improvements/
#verblog #freebsd #desktop #laptop #audio #sound #devd #openbox #oss #pulseaudio
-
Added ๐จ๐ฃ๐๐๐ง๐ ๐ญ - ๐๐ฒ๐๐๐ฒ๐ฟ ๐ฑ๐ฒ๐๐ฑ ๐ฆ๐ป๐ถ๐ณ๐ณ๐ถ๐ป๐ด - ๐๐ฒ๐๐๐ฒ๐ฟ ๐จ๐ป๐น๐ผ๐ฐ๐ธ ๐ ๐ฒ๐๐ต๐ผ๐ฑ to the ๐๐ฟ๐ฒ๐ฒ๐๐ฆ๐ ๐๐ฒ๐๐ธ๐๐ผ๐ฝ - ๐ฃ๐ฎ๐ฟ๐ ๐ฎ๐ฌ - ๐๐ผ๐ป๐ณ๐ถ๐ด๐๐ฟ๐ฎ๐๐ถ๐ผ๐ป - ๐จ๐ป๐น๐ผ๐ฐ๐ธ ๐ฌ๐ผ๐๐ฟ ๐๐ฎ๐ฝ๐๐ผ๐ฝ ๐๐ถ๐๐ต ๐ฃ๐ต๐ผ๐ป๐ฒ article.
-
The latest ๐๐๐๐๐๐ถ๐น๐/๐ฎ๐๐๐ผ๐บ๐ผ๐๐ป๐ version 1.7.1 just landed in #FreeBSD Ports:
https://svnweb.freebsd.org/ports?view=revision&revision=519071Complete guide if needed:
https://vermaden.wordpress.com/2018/10/11/freebsd-desktop-part-17-automount-removable-media/