summaryrefslogtreecommitdiffstats
path: root/move
diff options
context:
space:
mode:
Diffstat (limited to 'move')
-rw-r--r--move/Makefile1
-rw-r--r--move/data/nvidia.list3
-rwxr-xr-xmove/make_live_tree_boot3
-rw-r--r--move/move.pm6
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";
}