mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-12 02:40:31 +08:00
nixos-generate-config: Set linuxPackages_latest when ISO boots latest kernel
This commit is contained in:
@@ -2,4 +2,8 @@
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.supportedFilesystems.zfs = false;
|
||||
environment.etc."nixos-generate-config.conf".text = ''
|
||||
[Defaults]
|
||||
Kernel=latest
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
.Op Fl -root Ar root
|
||||
.Op Fl -dir Ar dir
|
||||
.Op Fl -flake
|
||||
.Op Fl -kernel Ar <lts|latest>
|
||||
.
|
||||
.
|
||||
.
|
||||
@@ -66,6 +67,9 @@ instead of
|
||||
.Pa /etc/nixos Ns
|
||||
\&.
|
||||
.
|
||||
.It Fl -kernel Ar <lts|latest>
|
||||
Set the kernel in the generated configuration file.
|
||||
.
|
||||
.It Fl -force
|
||||
Overwrite
|
||||
.Pa /etc/nixos/configuration.nix
|
||||
|
||||
@@ -38,11 +38,13 @@ my $force = 0;
|
||||
my $noFilesystems = 0;
|
||||
my $flake = 0;
|
||||
my $showHardwareConfig = 0;
|
||||
my $kernel = "lts";
|
||||
|
||||
if (-e "/etc/nixos-generate-config.conf") {
|
||||
my $cfg = new Config::IniFiles -file => "/etc/nixos-generate-config.conf";
|
||||
$outDir = $cfg->val("Defaults", "Directory") // $outDir;
|
||||
$rootDir = $cfg->val("Defaults", "RootDirectory") // $rootDir;
|
||||
$kernel = $cfg->val("Defaults", "Kernel") // $kernel;
|
||||
}
|
||||
|
||||
for (my $n = 0; $n < scalar @ARGV; $n++) {
|
||||
@@ -73,6 +75,11 @@ for (my $n = 0; $n < scalar @ARGV; $n++) {
|
||||
elsif ($arg eq "--flake") {
|
||||
$flake = 1;
|
||||
}
|
||||
elsif ($arg eq "--kernel") {
|
||||
$n++;
|
||||
$kernel = $ARGV[$n];
|
||||
die "$0: ‘--kernel’ requires an argument\n" unless defined $kernel;
|
||||
}
|
||||
else {
|
||||
die "$0: unrecognized argument ‘$arg’\n";
|
||||
}
|
||||
@@ -80,6 +87,7 @@ for (my $n = 0; $n < scalar @ARGV; $n++) {
|
||||
|
||||
$rootDir =~ s/\/*$//; # remove trailing slashes
|
||||
$rootDir = File::Spec->rel2abs($rootDir); # resolve absolute path
|
||||
die "$0: invalid kernel: '$kernel'" unless $kernel eq "lts" || $kernel eq "latest";
|
||||
|
||||
my @attrs = ();
|
||||
my @kernelModules = ();
|
||||
@@ -716,6 +724,14 @@ EOF
|
||||
EOF
|
||||
}
|
||||
|
||||
if ($kernel eq "latest") {
|
||||
$bootLoaderConfig .= <<EOF;
|
||||
|
||||
# Use latest kernel.
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
EOF
|
||||
}
|
||||
|
||||
my $networkingDhcpConfig = generateNetworkingDhcpConfig();
|
||||
|
||||
my $xserverConfig = generateXserverConfig();
|
||||
|
||||
@@ -30,7 +30,12 @@ let
|
||||
name = "nixos-generate-config";
|
||||
src = ./nixos-generate-config.pl;
|
||||
replacements = {
|
||||
perl = "${pkgs.perl.withPackages (p: [ p.FileSlurp ])}/bin/perl";
|
||||
perl = "${
|
||||
pkgs.perl.withPackages (p: [
|
||||
p.FileSlurp
|
||||
p.ConfigIniFiles
|
||||
])
|
||||
}/bin/perl";
|
||||
hostPlatformSystem = pkgs.stdenv.hostPlatform.system;
|
||||
detectvirt = "${config.systemd.package}/bin/systemd-detect-virt";
|
||||
btrfs = "${pkgs.btrfs-progs}/bin/btrfs";
|
||||
|
||||
Reference in New Issue
Block a user