Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-07-18 13:58:21

  jacekz - Użytkownik

jacekz
Użytkownik
Skąd: Lubuskie
Zarejestrowany: 2013-01-20

Uaktualnienie jądra i sterowniki grafiki nie działają

Ostatnia aktualizacja sida przyniosła jądro 3.10-1-amd64, po restarcie ogólne spowolnienie i klatkowanie.

Kod:

00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon HD 6310] [1002:9802]

Próby instalacji/reinstalacji sterowników z repo kończą się komunikatem (legacy też):

Kod:

Building initial module for 3.10-1-amd64
Error! Bad return status for module build on kernel: 3.10-1-amd64 (x86_64)

Przy poprzednich uaktualnieniach jądra nic takiego nie występowało.
Z czego to wynika? Jak temu zaradzić?

Offline

 

#2  2013-07-18 14:18:25

  kiko80 - Użytkownik

kiko80
Użytkownik
Skąd: /mnt/podlasie
Zarejestrowany: 2007-04-03

Re: Uaktualnienie jądra i sterowniki grafiki nie działają

Zainstaluj starszą wersję jajka lub sam zbuduj. Mi nowe jajka spowalniało ff oraz trochę system więc sam zbudowałem i obecnie używam 3.11-rc1 pod 64bitowym aptosidem

Ostatnio edytowany przez kiko80 (2013-07-18 14:19:12)


Wirusy w Linuxie to jak krasnoludki,
podobno są ale nikt ich nie widział :D
http://filefox.pl/poleca/kiko80
Linux register users: #445562

Offline

 

#3  2013-07-18 15:06:48

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Uaktualnienie jądra i sterowniki grafiki nie działają

To pewnie to samo co z nvidia. Na jajku od 3.10 nie idzie sterów (niewolnych) zainstalować.

Offline

 

#4  2013-07-18 15:57:26

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: Uaktualnienie jądra i sterowniki grafiki nie działają

[quote=morfik]To pewnie to samo co z nvidia. Na jajku od 3.10 nie idzie sterów (niewolnych) zainstalować.[/quote]
Ale naprawią to, czy tak ma być? :/

Offline

 

#5  2013-07-18 16:04:34

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Uaktualnienie jądra i sterowniki grafiki nie działają

Wina leży po stronie sterów, także trzeba czekać na nowe wersje sterowników, nic innego się raczej nie da zrobić, chyba, że próbować ręcznego patchowania.

Offline

 

#6  2013-07-20 18:33:27

  alilakri - Użytkownik

alilakri
Użytkownik
Zarejestrowany: 2013-07-09

Re: Uaktualnienie jądra i sterowniki grafiki nie działają

Co do nvidii to można ten problem rozwiązać tak:
ze strony nvidii pobrać NVIDIA-Linux-x86_64-319.32.run, wypakować go poleceniem:

Kod:

sh NVIDIA-Linux-x86_64-319.32.run --extract-only

W pliku tekstowym o nazwie np. patch-nv319.32-k310.diff zapiać następujący kod:

Kod:

diff -ur -X - NVIDIA-Linux-x86_64-319.32-no-compat32.orig/kernel/nv-i2c.c NVIDIA-Linux-x86_64-319.32-no-compat32/kernel/nv-i2c.c
--- NVIDIA-Linux-x86_64-319.32-no-compat32.orig/kernel/nv-i2c.c    2013-04-26 00:22:30.000000000 -0400
+++ NVIDIA-Linux-x86_64-319.32-no-compat32/kernel/nv-i2c.c    2013-05-13 05:20:55.571981365 -0400
@@ -311,8 +311,6 @@
 BOOL NV_API_CALL nv_i2c_del_adapter(nv_state_t *nv, void *data)
 {
     struct i2c_adapter *pI2cAdapter = (struct i2c_adapter *)data;
-    int osstatus = 0;
-    BOOL wasReleased = FALSE;
 
 #if defined(KERNEL_2_4)
     if (!NV_WEAK_SYMBOL_PRESENT(i2c_add_adapter))
@@ -324,15 +322,10 @@
     if (!pI2cAdapter) return FALSE;
 
     // attempt release with the OS
-    osstatus = i2c_del_adapter(pI2cAdapter);
+    i2c_del_adapter(pI2cAdapter);
+    os_free_mem(pI2cAdapter);
 
-    if (!osstatus)
-    {
-        os_free_mem(pI2cAdapter);
-        wasReleased = TRUE;
-    }
-
-    return wasReleased;
+    return TRUE;
 }
 
 #else // (defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE))
diff -ur -X - NVIDIA-Linux-x86_64-319.32-no-compat32.orig/kernel/nv-procfs.c NVIDIA-Linux-x86_64-319.32-no-compat32/kernel/nv-procfs.c
--- NVIDIA-Linux-x86_64-319.32-no-compat32.orig/kernel/nv-procfs.c    2013-04-26 00:22:30.000000000 -0400
+++ NVIDIA-Linux-x86_64-319.32-no-compat32/kernel/nv-procfs.c    2013-05-22 04:52:45.229495748 -0400
@@ -60,60 +60,41 @@
         __entry;                                          \
     })
 
-#define NV_CREATE_PROC_FILE(name,parent,__read_proc,           \
-    __write_proc,__fops,__data)                                \
-   ({                                                          \
-        struct proc_dir_entry *__entry;                        \
-        int __mode = (S_IFREG | S_IRUGO);                      \
-        if ((NvUPtr)(__write_proc) != 0)                       \
-            __mode |= S_IWUSR;                                 \
-        __entry = NV_CREATE_PROC_ENTRY(name, __mode, parent);  \
-        if (__entry != NULL)                                   \
-        {                                                      \
-            if ((NvUPtr)(__read_proc) != 0)                    \
-                __entry->read_proc = (__read_proc);            \
-            if ((NvUPtr)(__write_proc) != 0)                   \
-            {                                                  \
-                __entry->write_proc = (__write_proc);          \
-                __entry->proc_fops = (__fops);                 \
-            }                                                  \
-            __entry->data = (__data);                          \
-        }                                                      \
-        __entry;                                               \
-    })
+#define NV_PROC_RW (S_IFREG|S_IRUGO|S_IWUSR)
+#define NV_PROC_RO (S_IFREG|S_IRUGO)
 
 #define NV_CREATE_PROC_DIR(name,parent)                        \
    ({                                                          \
         struct proc_dir_entry *__entry;                        \
         int __mode = (S_IFDIR | S_IRUGO | S_IXUGO);            \
-        __entry = NV_CREATE_PROC_ENTRY(name, __mode, parent);  \
+        __entry = proc_mkdir_mode(name, __mode, parent);       \
         __entry;                                               \
     })
 
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,9,255)
+static inline void *PDE_DATA(const struct inode *inode) {
+    return PDE(inode)->data;
+}
+#endif
+
 #define NV_PROC_WRITE_BUFFER_SIZE   (64 * RM_PAGE_SIZE)
 
 static int
-nv_procfs_read_gpu_info(
-    char  *page,
-    char **start,
-    off_t  off,
-    int    count,
-    int   *eof,
-    void  *data
+nv_procfs_show_gpu_info(
+    struct seq_file *m,
+    void *v
 )
 {
-    nv_state_t *nv = data;
+    nv_state_t *nv = m->private;
     nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
     struct pci_dev *dev = nvl->dev;
     char *type, *fmt, tmpstr[NV_DEVICE_NAME_LENGTH];
-    int len = 0, status;
+    int status;
     NvU8 *uuid;
     NvU32 vbios_rev1, vbios_rev2, vbios_rev3, vbios_rev4, vbios_rev5;
     NvU32 fpga_rev1, fpga_rev2, fpga_rev3;
     nv_stack_t *sp = NULL;
 
-    *eof = 1;
-
     NV_KMEM_CACHE_ALLOC_STACK(sp);
     if (sp == NULL)
     {
@@ -134,31 +115,31 @@
         if (rm_get_device_name(sp, nv, dev->device, dev->subsystem_vendor,
                     dev->subsystem_device, NV_DEVICE_NAME_LENGTH,
                     tmpstr) != RM_OK)
-        {
+                {
             strcpy (tmpstr, "Unknown");
         }
     }
 
-    len += sprintf(page+len, "Model: \t\t %s\n", tmpstr);
-    len += sprintf(page+len, "IRQ:   \t\t %d\n", nv->interrupt_line);
+    seq_printf(m, "Model: \t\t %s\n", tmpstr);
+    seq_printf(m, "IRQ:   \t\t %d\n", nv->interrupt_line);
 
     if (NV_IS_GVI_DEVICE(nv))
     {
         status = rm_gvi_get_firmware_version(sp, nv, &fpga_rev1, &fpga_rev2,
                                              &fpga_rev3);
         if (status != RM_OK)
-            len += sprintf(page+len, "Firmware: \t ????.??.??\n");
+            seq_printf(m, "Firmware: \t ????.??.??\n");
         else
         {
             fmt = "Firmware: \t %x.%x.%x\n";
-            len += sprintf(page+len, fmt, fpga_rev1, fpga_rev2, fpga_rev3);
+            seq_printf(m, fmt, fpga_rev1, fpga_rev2, fpga_rev3);
         }
     }
     else
     {
         if (rm_get_gpu_uuid(sp, nv, &uuid, NULL) == RM_OK)
         {
-            len += sprintf(page+len, "GPU UUID: \t %s\n", (char *)uuid);
+            seq_printf(m, "GPU UUID: \t %s\n", (char *)uuid);
             os_free_mem(uuid);
         }
 
@@ -166,12 +147,12 @@
                     &vbios_rev3, &vbios_rev4,
                     &vbios_rev5) != RM_OK)
         {
-            len += sprintf(page+len, "Video BIOS: \t ??.??.??.??.??\n");
+            seq_printf(m, "Video BIOS: \t ??.??.??.??.??\n");
         }
         else
         {
             fmt = "Video BIOS: \t %02x.%02x.%02x.%02x.%02x\n";
-            len += sprintf(page+len, fmt, vbios_rev1, vbios_rev2, vbios_rev3,
+            seq_printf(m, fmt, vbios_rev1, vbios_rev2, vbios_rev3,
                            vbios_rev4, vbios_rev5);
         }
     }
@@ -180,12 +161,12 @@
         type = "PCI-E";
     else
         type = "PCI";
-    len += sprintf(page+len, "Bus Type: \t %s\n", type);
+    seq_printf(m, "Bus Type: \t %s\n", type);
 
-    len += sprintf(page+len, "DMA Size: \t %d bits\n",
+    seq_printf(m, "DMA Size: \t %d bits\n",
      nv_count_bits(dev->dma_mask));
-    len += sprintf(page+len, "DMA Mask: \t 0x%llx\n", dev->dma_mask);
-    len += sprintf(page+len, "Bus Location: \t %04x:%02x.%02x.%x\n",
+    seq_printf(m, "DMA Mask: \t 0x%llx\n", dev->dma_mask);
+    seq_printf(m, "Bus Location: \t %04x:%02x.%02x.%x\n",
                    nv->domain, nv->bus, nv->slot, PCI_FUNC(dev->devfn));
 #if defined(DEBUG)
     do
@@ -193,7 +174,7 @@
         int j;
         for (j = 0; j < NV_GPU_NUM_BARS; j++)
         {
-            len += sprintf(page+len, "BAR%u: \t\t 0x%llx (%lluMB)\n",
+            seq_printf(m, "BAR%u: \t\t 0x%llx (%lluMB)\n",
                            j, nv->bars[j].address, (nv->bars[j].size >> 20));
         }
     } while (0);
@@ -201,26 +182,120 @@
 
     NV_KMEM_CACHE_FREE_STACK(sp);
 
-    return len;
+    return 0;
 }
 
 static int
-nv_procfs_read_version(
-    char  *page,
-    char **start,
-    off_t  off,
-    int    count,
-    int   *eof,
-    void  *data
+nv_procfs_open_gpu_info(
+    struct inode *inode,
+    struct file *file
+)
+{
+    return single_open(file, nv_procfs_show_gpu_info, PDE_DATA(inode));
+}
+
+static const struct file_operations nv_procfs_gpu_info_fops = {
+    .owner   = THIS_MODULE,
+    .open    = nv_procfs_open_gpu_info,
+    .read    = seq_read,
+    .llseek  = seq_lseek,
+    .release = single_release,
+};
+
+static int
+nv_procfs_show_version(
+    struct seq_file *m,
+    void *v
+)
+{
+    seq_printf(m, "NVRM version: %s\n", pNVRM_ID);
+    seq_printf(m, "GCC version:  %s\n", NV_COMPILER);
+
+    return 0;
+}
+
+static int
+nv_procfs_open_version(
+    struct inode *inode,
+    struct file *file
+)
+{
+    return single_open(file, nv_procfs_show_version, NULL);
+}
+
+static const struct file_operations nv_procfs_version_fops = {
+    .owner   = THIS_MODULE,
+    .open    = nv_procfs_open_version,
+    .read    = seq_read,
+    .llseek  = seq_lseek,
+    .release = single_release,
+};
+
+static int
+nv_procfs_show_registry(
+    struct seq_file *m,
+    void *v
+)
+{
+    nv_state_t *nv = m->private;
+    nv_linux_state_t *nvl = NULL;
+    char *registry_keys;
+
+    if (nv != NULL)
+        nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+    registry_keys = ((nvl != NULL) ?
+            nvl->registry_keys : nv_registry_keys);
+
+    seq_printf(m, "Binary: \"%s\"\n", registry_keys);
+
+    return 0;
+}
+
+static ssize_t
+nv_procfs_write_registry(
+    struct file       *file,
+    const char __user *buffer,
+    size_t             count,
+    loff_t            *pos
 )
 {
-    int len = 0;
-    *eof = 1;
+    int status = 0;
+    nv_file_private_t *nvfp = NV_GET_FILE_PRIVATE(file);
+    char *proc_buffer;
+    unsigned long bytes_left;
+
+    down(&nvfp->fops_sp_lock[NV_FOPS_STACK_INDEX_PROCFS]);
+
+    bytes_left = (NV_PROC_WRITE_BUFFER_SIZE - nvfp->off - 1);
+
+    if (count == 0)
+    {
+        status = -EINVAL;
+        goto done;
+    }
+    else if ((bytes_left == 0) || (count > bytes_left))
+    {
+        status = -ENOSPC;
+        goto done;
+    }
+
+    proc_buffer = &((char *)nvfp->data)[nvfp->off];
+
+    if (copy_from_user(proc_buffer, buffer, count))
+    {
+        nv_printf(NV_DBG_ERRORS, "NVRM: failed to copy in proc data!\n");
+        status = -EFAULT;
+    }
+    else
+    {
+        nvfp->proc_data = PDE_DATA(file->f_inode);
+        nvfp->off += count;
+    }
 
-    len += sprintf(page+len, "NVRM version: %s\n", pNVRM_ID);
-    len += sprintf(page+len, "GCC version:  %s\n", NV_COMPILER);
+done:
+    up(&nvfp->fops_sp_lock[NV_FOPS_STACK_INDEX_PROCFS]);
 
-    return len;
+    return ((status < 0) ? status : count);
 }
 
 static int
@@ -233,7 +308,7 @@
     nv_stack_t *sp = NULL;
 
     if (0 == (file->f_mode & FMODE_WRITE))
-        return 0;
+        return single_open(file, nv_procfs_show_registry, PDE_DATA(inode));
 
     nvfp = nv_alloc_file_private();
     if (nvfp == NULL)
@@ -282,6 +357,9 @@
     RM_STATUS rm_status;
     int rc = 0;
 
+    if (0 == (file->f_mode & FMODE_WRITE))
+        return single_release(inode, file);
+
     nvfp = NV_GET_FILE_PRIVATE(file);
     if (nvfp == NULL)
         return 0;
@@ -346,122 +424,81 @@
     return rc;
 }
 
-static struct file_operations nv_procfs_registry_fops = {
+static const struct file_operations nv_procfs_registry_fops = {
     .open    = nv_procfs_open_registry,
+    .read    = seq_read,
+    .llseek  = seq_lseek,
+    .write   = nv_procfs_write_registry,
     .release = nv_procfs_close_registry,
 };
 
 static int
-nv_procfs_read_params(
-    char  *page,
-    char **start,
-    off_t  off,
-    int    count,
-    int   *eof,
-    void  *data
+nv_procfs_show_params(
+    struct seq_file *m,
+    void *v
 )
 {
     unsigned int i;
-    int len = 0;
     nv_parm_t *entry;
 
-    *eof = 1;
 
     for (i = 0; (entry = &nv_parms[i])->name != NULL; i++)
-        len += sprintf(page+len, "%s: %u\n", entry->name, *entry->data);
+        seq_printf(m, "%s: %u\n", entry->name, *entry->data);
 
-    len += sprintf(page+len, "RegistryDwords: \"%s\"\n",
+    seq_printf(m, "RegistryDwords: \"%s\"\n",
                 (NVreg_RegistryDwords != NULL) ? NVreg_RegistryDwords : "");
-    len += sprintf(page+len, "RmMsg: \"%s\"\n",
+    seq_printf(m, "RmMsg: \"%s\"\n",
                 (NVreg_RmMsg != NULL) ? NVreg_RmMsg : "");
 
-    return len;
+    return 0;
 }
 
 static int
-nv_procfs_read_registry(
-    char  *page,
-    char **start,
-    off_t  off,
-    int    count,
-    int   *eof,
-    void  *data
-)
+nv_procfs_open_params(
+    struct inode *inode,
+    struct file *file
+)    
 {
-    nv_state_t *nv = data;
-    nv_linux_state_t *nvl = NULL;
-    char *registry_keys;
+    return single_open(file, nv_procfs_show_params, NULL);
+}
 
-    if (nv != NULL)
-        nvl = NV_GET_NVL_FROM_NV_STATE(nv);
-    registry_keys = ((nvl != NULL) ?
-            nvl->registry_keys : nv_registry_keys);
+static const struct file_operations nv_procfs_params_fops = {
+    .owner   = THIS_MODULE,
+    .open    = nv_procfs_open_params,
+    .read    = seq_read,
+    .llseek  = seq_lseek,
+    .release = single_release,
+};
 
-    *eof = 1;
-    return sprintf(page, "Binary: \"%s\"\n", registry_keys);
-}
 
 static int
-nv_procfs_write_registry(
-    struct file   *file,
-    const char    *buffer,
-    unsigned long  count,
-    void          *data
+nv_procfs_show_text_file(
+    struct seq_file *m,
+    void *v
 )
 {
-    int status = 0;
-    nv_file_private_t *nvfp = NV_GET_FILE_PRIVATE(file);
-    char *proc_buffer;
-    unsigned long bytes_left;
-
-    down(&nvfp->fops_sp_lock[NV_FOPS_STACK_INDEX_PROCFS]);
-
-    bytes_left = (NV_PROC_WRITE_BUFFER_SIZE - nvfp->off - 1);
+    seq_printf(m, "%s", (char *)m->private);
 
-    if (count == 0)
-    {
-        status = -EINVAL;
-        goto done;
-    }
-    else if ((bytes_left == 0) || (count > bytes_left))
-    {
-        status = -ENOSPC;
-        goto done;
-    }
-
-    proc_buffer = &((char *)nvfp->data)[nvfp->off];
-
-    if (copy_from_user(proc_buffer, buffer, count))
-    {
-        nv_printf(NV_DBG_ERRORS, "NVRM: failed to copy in proc data!\n");
-        status = -EFAULT;
-    }
-    else
-    {
-        nvfp->proc_data = data;
-        nvfp->off += count;
-    }
-
-done:
-    up(&nvfp->fops_sp_lock[NV_FOPS_STACK_INDEX_PROCFS]);
-
-    return ((status < 0) ? status : (int)count);
+    return 0;
 }
 
 static int
-nv_procfs_read_text_file(
-    char  *page,
-    char **start,
-    off_t  off,
-    int    count,
-    int   *eof,
-    void  *data
+nv_procfs_open_text_file(
+    struct inode *inode,
+    struct file *file
 )
 {
-    *eof = 1;
-    return sprintf(page, "%s", (char *)data);
+    return single_open(file, nv_procfs_show_text_file, PDE_DATA(inode));
 }
 
+static const struct file_operations nv_procfs_text_fops = {
+    .owner   = THIS_MODULE,
+    .open    = nv_procfs_open_text_file,
+    .read    = seq_read,
+    .llseek  = seq_lseek,
+    .release = single_release,
+};
+
 static void
 nv_procfs_add_text_file(
     struct proc_dir_entry *parent,
@@ -469,22 +506,7 @@
     const char *text
 )
 {
-    NV_CREATE_PROC_FILE(filename, parent,
-            nv_procfs_read_text_file, NULL, NULL, (void *)text);
-}
-
-static void nv_procfs_unregister_all(struct proc_dir_entry *entry)
-{
-    while (entry)
-    {
-        struct proc_dir_entry *next = entry->next;
-        if (entry->subdir)
-            nv_procfs_unregister_all(entry->subdir);
-        remove_proc_entry(entry->name, entry->parent);
-        if (entry == proc_nvidia)
-            break;
-        entry = next;
-    }
+    proc_create_data(filename, NV_PROC_RO, parent, &nv_procfs_text_fops, (void *)text);
 }
 #endif
 
@@ -513,26 +535,11 @@
     if (!proc_nvidia)
         goto failed;
 
-    entry = NV_CREATE_PROC_FILE("params", proc_nvidia,
-        nv_procfs_read_params, NULL, NULL, NULL);
+    entry = proc_create("params", NV_PROC_RO, proc_nvidia, &nv_procfs_params_fops);
     if (!entry)
         goto failed;
 
-    /*
-     * entry->proc_fops originally points to a constant
-     * structure, so to add more methods for the
-     * binary registry write path, we need to replace the
-     * said entry->proc_fops with a new fops structure.
-     * However, in preparation for this, we need to preserve
-     * the procfs read() and write() operations.
-     */
-    nv_procfs_registry_fops.read = entry->proc_fops->read;
-    nv_procfs_registry_fops.write = entry->proc_fops->write;
-
-    entry = NV_CREATE_PROC_FILE("registry", proc_nvidia,
-        nv_procfs_read_registry,
-        nv_procfs_write_registry,
-        &nv_procfs_registry_fops, NULL);
+    entry = proc_create("registry", NV_PROC_RW, proc_nvidia, &nv_procfs_registry_fops);
     if (!entry)
         goto failed;
 
@@ -553,8 +560,7 @@
 
     nv_procfs_add_text_file(proc_nvidia_patches, "README", __README_patches);
 
-    entry = NV_CREATE_PROC_FILE("version", proc_nvidia,
-        nv_procfs_read_version, NULL, NULL, NULL);
+    entry = proc_create("version", NV_PROC_RO, proc_nvidia, &nv_procfs_version_fops);
     if (!entry)
         goto failed;
 
@@ -571,15 +577,11 @@
         if (!proc_nvidia_gpu)
             goto failed;
 
-        entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu,
-            nv_procfs_read_gpu_info, NULL, NULL, nv);
+    entry = proc_create_data("information", NV_PROC_RO, proc_nvidia_gpu, &nv_procfs_gpu_info_fops, nv);
         if (!entry)
             goto failed;
 
-        entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu,
-            nv_procfs_read_registry,
-            nv_procfs_write_registry,
-            &nv_procfs_registry_fops, nv);
+    entry = proc_create_data("registry", NV_PROC_RW, proc_nvidia_gpu, &nv_procfs_registry_fops, nv);
         if (!entry)
             goto failed;
     }
@@ -587,7 +589,7 @@
     return 0;
 #if defined(CONFIG_PROC_FS)
 failed:
-    nv_procfs_unregister_all(proc_nvidia);
+    remove_proc_subtree("nvidia", proc_nvidia);
     return -1;
 #endif
 }
@@ -595,6 +597,6 @@
 void nv_unregister_procfs(void)
 {
 #if defined(CONFIG_PROC_FS)
-    nv_procfs_unregister_all(proc_nvidia);
+    remove_proc_subtree("nvidia", proc_nvidia);
 #endif
 }

następnie wejść do katalogu z rozpakowanym sterownikiem tj. NVIDIA-Linux-x86_64-319.32 i wykonać:

Kod:

patch -p1 < /ścieżka/do/patch-nv319.32-k310.diff

odinstalować stare sterowniki i będąc w katalogu NVIDIA-Linux-x86_64-319.32 uruchomić instalator nvidii:

Kod:

./nvidia-installer

a dalej postępować wg. wskazań instalatora ze wskazaniem na DKMS aby móc potem automatycznie aktualizować moduł grafiki dla kolejnej wersji jądra 3.10.
U mnie rozwiązało to problem z niemożnością zbudowania modułu a nowsza wersja kernela łyka moduł bez jakiejkolwiek czkawki... ;-)...

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.010 seconds, 12 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00099 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.59.134.65' WHERE u.id=1
0.00083 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.134.65', 1732600937)
0.00041 SELECT * FROM punbb_online WHERE logged<1732600637
0.00068 DELETE FROM punbb_online WHERE ident='3.145.102.18'
0.00079 SELECT topic_id FROM punbb_posts WHERE id=237293
0.00100 SELECT id FROM punbb_posts WHERE topic_id=23960 ORDER BY posted
0.00059 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=23960 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00141 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=23960 ORDER BY p.id LIMIT 0,25
0.00083 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23960
Total query time: 0.00773 s