summaryrefslogtreecommitdiffstats
path: root/perl-install/harddrake/autoconf.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/harddrake/autoconf.pm')
-rw-r--r--perl-install/harddrake/autoconf.pm46
1 files changed, 41 insertions, 5 deletions
diff --git a/perl-install/harddrake/autoconf.pm b/perl-install/harddrake/autoconf.pm
index ce22cd5ee..fba5078cd 100644
--- a/perl-install/harddrake/autoconf.pm
+++ b/perl-install/harddrake/autoconf.pm
@@ -24,10 +24,43 @@ sub xconf {
modules::load_category($modules_conf, 'various/agpgart');
}
+sub setup_ethernet_device {
+ my ($in, $device) = @_;
+
+ require network::connection;
+ require network::connection::ethernet;
+ require network::connection::wireless;
+ my @connection_types = qw(network::connection::ethernet network::connection::wireless);
+ my @all_connections = map { $_->get_connections(automatic_only => 1) } @connection_types;
+ my $interface = network::connection::ethernet::device_to_interface($device)
+ or return;
+ my $connection = find { $_->get_interface eq $interface } @all_connections
+ or return;
+
+ require network::connection_manager;
+ my $net = {};
+ network::network::read_net_conf($net);
+ my $cmanager = network::connection_manager->new($in, $net);
+ $cmanager->set_connection($connection);
+
+ # this will installed required packages
+ $cmanager->setup_connection;
+}
+
sub network_conf {
- my ($obj) = @_;
- require network::network;
- network::network::easy_dhcp($obj->{net}, $obj->{modules_conf});
+ my ($modules_conf, $in, $added) = @_;
+ $modules_conf->remove_alias_regexp('^(wlan|eth)[0-9]*$');
+ modules::load_category($modules_conf, 'network/main|gigabit|usb|wireless|firewire|pcmcia');
+
+ setup_ethernet_device($in, $_) foreach @{$added || {}};
+
+ require network::connection::ethernet;
+ network::connection::ethernet::configure_eth_aliases($modules_conf);
+ require network::rfswitch;
+ network::rfswitch::configure();
+ require network::shorewall;
+ network::shorewall::update_interfaces_list();
+ $modules_conf->write;
}
sub mouse_conf {
@@ -46,6 +79,11 @@ sub pcmcia {
sub bluetooth {
my ($enable) = @_;
+ # do not disable bluetooth service if adapter disappears
+ # (for example if disabled by Fn keys)
+ # systemd will automatically disable the service if needed
+ return if !$enable;
+
#- FIXME: make sure these packages are installed when needed
# if ($enable) {
# require do_pkgs;
@@ -75,8 +113,6 @@ sub laptop {
# }
require services;
services::set_status("apmd", -e "/proc/apm");
- services::set_status("cpufreq", $on_laptop);
- services::set_status("apmd", $on_laptop);
services::set_status("laptop-mode", $on_laptop);
services::set_status("numlock", !$on_laptop);
}