diff options
Diffstat (limited to 'move')
-rw-r--r-- | move/Makefile | 1 | ||||
-rw-r--r-- | move/data/nvidia.list | 3 | ||||
-rwxr-xr-x | move/make_live_tree_boot | 3 | ||||
-rw-r--r-- | move/move.pm | 6 |
4 files changed, 12 insertions, 1 deletions
diff --git a/move/Makefile b/move/Makefile index 5113a7adc..2ea4781e7 100644 --- a/move/Makefile +++ b/move/Makefile @@ -87,6 +87,7 @@ live_tree_boot: $(MAKE) /tmp/live_tree_always.clp $(MAKE) /tmp/live_tree_boot.clp $(MAKE) /tmp/live_tree_totem.clp + $(MAKE) /tmp/live_tree_nvidia.clp $(MAKE) $(patsubst %, /tmp/live_tree_always_i18n_%.clp, $(LANG_FILES)) un_live_tree_boot: diff --git a/move/data/nvidia.list b/move/data/nvidia.list new file mode 100644 index 000000000..a8c3560f9 --- /dev/null +++ b/move/data/nvidia.list @@ -0,0 +1,3 @@ +/tmp/live_tree/usr/lib/libGLcore.so.1 +/tmp/live_tree/usr/lib/libGLcore.so.1.0.4496 +/tmp/live_tree/usr/X11R6/lib/modules/extensions/libglx.so.1.0.4496 diff --git a/move/make_live_tree_boot b/move/make_live_tree_boot index b31cecfa2..9f1fb7eb2 100755 --- a/move/make_live_tree_boot +++ b/move/make_live_tree_boot @@ -110,6 +110,7 @@ sub remove_light_tree { my @always_list = chomp_(cat_('data/always.list')); my @boot_list_orig = chomp_(cat_('data/boot.list')); my @totem_list_orig = chomp_(cat_('data/totem.list')); +my @nvidia_list = chomp_(cat_('data/nvidia.list')); my @always_i18n_list = chomp_(cat_('data/always_i18n.list')); @always_list = uniq(@always_list, intersection(\@boot_list_orig, \@totem_list_orig)); @@ -120,6 +121,7 @@ my @totem_list = difference2(\@totem_list_orig, \@always_list); remove_light_tree('always', \@always_list); remove_light_tree('boot', \@boot_list); remove_light_tree('totem', \@totem_list); +remove_light_tree('nvidia', \@nvidia_list); foreach my $lang (@ALLOWED_LANGS) { remove_light_tree("always_i18n_$lang", []); } @@ -128,6 +130,7 @@ if (!@ARGV) { create_light_tree('always', \@always_list); create_light_tree('boot', \@boot_list); create_light_tree('totem', \@totem_list); + create_light_tree('nvidia', \@nvidia_list); foreach my $lang (@ALLOWED_LANGS) { my $full_lang = lang::l2locale($lang); my ($short_lang) = $full_lang =~ /(..)/; diff --git a/move/move.pm b/move/move.pm index 1516d8798..f60fed41e 100644 --- a/move/move.pm +++ b/move/move.pm @@ -530,9 +530,13 @@ sub automatic_xconf { my $card = Xconfig::card::from_raw_X($o->{raw_X}); } - if (cat_('/etc/X11/XF86Config-4') =~ /Driver\s*"nvidia"/) { + my ($Driver) = cat_('/etc/X11/XF86Config-4') =~ /Section "Device".*Driver\s*"(.*?)"/s; + if ($Driver eq 'nvidia') { modules::load('nvidia'); + lomount_clp('nvidia', '/usr/lib/libGLcore.so.1'); } + my $lib = 'libGL.so.1'; + symlinkf("/usr/lib/$lib.$Driver", "/etc/X11/$lib") if -e "/usr/lib/$lib.$Driver"; } |