hakunamatata
Supporter
Anmeldungsdatum: 30. Juni 2009
Beiträge: 5130
|
Kann ich den Ordner Updates nicht löschen?
Ja, notfalls musst du benötigte Module neu installieren. Vielleicht ist aber der Unterordner von updates, nämlich media auch ausreichend:
sudo rm -r /lib/modules/4.4.0-83-generic/updates/media
Die Module einzeln zu identifizieren, ist wahrscheinlich mühsam.
|
florian86
Anmeldungsdatum: 27. Januar 2008
Beiträge: 85
|
[ 3.236400] dvb_core: Unknown symbol media_devnode_remove (err 0)
[ 3.236493] dvb_core: Unknown symbol media_create_intf_link (err 0)
[ 3.236508] dvb_core: Unknown symbol media_create_pad_links (err 0)
[ 3.236523] dvb_core: Unknown symbol media_create_pad_link (err 0)
[ 3.236549] dvb_core: disagrees about version of symbol media_device_register_entity
[ 3.236552] dvb_core: Unknown symbol media_device_register_entity (err -22)
[ 3.236592] dvb_core: Unknown symbol media_entity_pads_init (err 0)
[ 3.236771] dvb_core: Unknown symbol media_devnode_create (err 0)
[ 3.236782] dvb_core: disagrees about version of symbol media_device_unregister_entity
[ 3.236785] dvb_core: Unknown symbol media_device_unregister_entity (err -22)
[ 293.758682] dvb_core: Unknown symbol media_devnode_remove (err 0)
[ 293.758779] dvb_core: Unknown symbol media_create_intf_link (err 0)
[ 293.758800] dvb_core: Unknown symbol media_create_pad_links (err 0)
[ 293.758821] dvb_core: Unknown symbol media_create_pad_link (err 0)
[ 293.758855] dvb_core: disagrees about version of symbol media_device_register_entity
[ 293.758858] dvb_core: Unknown symbol media_device_register_entity (err -22)
[ 293.758902] dvb_core: Unknown symbol media_entity_pads_init (err 0)
[ 293.758957] dvb_core: Unknown symbol media_devnode_create (err 0)
[ 293.758968] dvb_core: disagrees about version of symbol media_device_unregister_entity
[ 293.758971] dvb_core: Unknown symbol media_device_unregister_entity (err -22)
[ 471.812221] dvb_core: Unknown symbol media_devnode_remove (err 0)
[ 471.812378] dvb_core: Unknown symbol media_create_intf_link (err 0)
[ 471.812415] dvb_core: Unknown symbol media_create_pad_links (err 0)
[ 471.812454] dvb_core: Unknown symbol media_create_pad_link (err 0)
[ 471.812508] dvb_core: disagrees about version of symbol media_device_register_entity
[ 471.812519] dvb_core: Unknown symbol media_device_register_entity (err -22)
[ 471.812591] dvb_core: Unknown symbol media_entity_pads_init (err 0)
[ 471.812687] dvb_core: Unknown symbol media_devnode_create (err 0)
[ 471.812707] dvb_core: disagrees about version of symbol media_device_unregister_entity
[ 471.812712] dvb_core: Unknown symbol media_device_unregister_entity (err -22)
[ 982.316465] dvb_core: Unknown symbol media_devnode_remove (err 0)
[ 982.316622] dvb_core: Unknown symbol media_create_intf_link (err 0)
[ 982.316659] dvb_core: Unknown symbol media_create_pad_links (err 0)
[ 982.316698] dvb_core: Unknown symbol media_create_pad_link (err 0)
[ 982.316752] dvb_core: disagrees about version of symbol media_device_register_entity
[ 982.316757] dvb_core: Unknown symbol media_device_register_entity (err -22)
[ 982.316832] dvb_core: Unknown symbol media_entity_pads_init (err 0)
[ 982.316927] dvb_core: Unknown symbol media_devnode_create (err 0)
[ 982.316947] dvb_core: disagrees about version of symbol media_device_unregister_entity
[ 982.316952] dvb_core: Unknown symbol media_device_unregister_entity (err -22)
[ 1005.477171] dvb_core: Unknown symbol media_devnode_remove (err 0)
[ 1005.477290] dvb_core: Unknown symbol media_create_intf_link (err 0)
[ 1005.477317] dvb_core: Unknown symbol media_create_pad_links (err 0)
[ 1005.477346] dvb_core: Unknown symbol media_create_pad_link (err 0)
[ 1005.477386] dvb_core: disagrees about version of symbol media_device_register_entity
[ 1005.477390] dvb_core: Unknown symbol media_device_register_entity (err -22)
[ 1005.477446] dvb_core: Unknown symbol media_entity_pads_init (err 0)
[ 1005.477518] dvb_core: Unknown symbol media_devnode_create (err 0)
[ 1005.477532] dvb_core: disagrees about version of symbol media_device_unregister_entity
[ 1005.477536] dvb_core: Unknown symbol media_device_unregister_entity (err -22)
dkms status
bbswitch, 0.8, 4.4.0-66-generic, x86_64: installed
bbswitch, 0.8, 4.4.0-83-generic, x86_64: installed
dddvb, 0.9.19b.0yavdr0: added
nvidia-375, 375.66, 4.4.0-66-generic, x86_64: installed
nvidia-375, 375.66, 4.4.0-83-generic, x86_64: installed Das Modul von nvidia und bbswitch sind auch unter Updates vorhanden das wars dann eig. auch.
|
hakunamatata
Supporter
Anmeldungsdatum: 30. Juni 2009
Beiträge: 5130
|
Das Modul von nvidia und bbswitch sind auch unter Updates vorhanden das wars dann eig. auch.
Module für eine Grafikkarte würde ich nicht löschen, da könntest du danach auf einem schwarzen Bildschirm landen. [ 3.236400] dvb_core: Unknown symbol media_devnode_remove (err 0)
Ist bei der letzten Ausgabe /lib/modules/4.4.0-83-generic/updates/media bereits gelöscht ?
sudo depmod -a
und danach ein Neustart gemacht ?
|
florian86
Anmeldungsdatum: 27. Januar 2008
Beiträge: 85
|
Ja gelöscht hatte ich es schon. Allerdings fehlte der Neustart. Jetzt geht es. Herzlichen Dank für deine Bereitschaft mir zu Helfen
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: Zähle...
|
Hallo hakunamatata der große Wissende, seit dem gestrigen Sicherheitsupdate bei 16.04 habe ich ein Problem. Trotz neu Installation der TV-Karte funktioniert es nicht mehr, Kaffeine sagt mir kein Gerät gefunden. | andreas@andreas-To-be-filled-by-O-E-M:~$ sudo modprobe ...
modprobe: FATAL: Module ... not found in directory /lib/modules/4.4.0-96-generic
|
Hast dafür eine Lösung? Danke Andy1952
|
hakunamatata
Supporter
Anmeldungsdatum: 30. Juni 2009
Beiträge: 5130
|
Andy1952 schrieb: der große Wissende,
Viel mehr als bereits hier im Thread geschrieben wurde, kann ich leider auch nicht mehr beitragen. Kurz zusammengefasst:
Die Treiber sind Kernelmodule, die nach jedem Kernelupdate für die neue Kernelversion neu erstellt werden müssen. Bei der Neuerstellung solltest du beachten, dass die Module nur erstellt werden, wenn das Quelltextverzeichnis gesäubert wurde. Quelltextverzeichnis ist in diesem Fall media_build. Wenn du Säuberung nur mit einem einfachen make clean machst, kannst du folgende Variante versuchen: cd ~/media_build
make clean
make
sudo make install Wenn du mit make distclean auch noch die Konfigurationsdateien löscht, müsstest du noch die Konfigurationsdatei v4l/.config anpassen. Die Befehle wären dann z.B.: cd ~/media_build
make distclean
make mit
Strg +
C abbbrechen, sobald das erste Modul erstellt wird und fortsetzen mit: sed -i 's/# CONFIG_DVB_SAA716X_BUDGET is not set/CONFIG_DVB_SAA716X_BUDGET=m/' ./v4l/.config
make
sudo make install Wenn das Quelltextverzeichnis media_build gar nicht mehr existiert, kannst du die Treibererstellung natürlich auch komplett neu machen: git clone https://github.com/ljalves/media_build.git
git clone --depth=1 https://github.com/ljalves/linux_media.git -b latest ./media
cd media_build
make dir DIR=../media
make distclean
make mit
Strg +
C abbbrechen, sobald das erste Modul erstellt wird und fortsetzen mit: sed -i 's/# CONFIG_DVB_SAA716X_BUDGET is not set/CONFIG_DVB_SAA716X_BUDGET=m/' ./v4l/.config
make
sudo make install
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: 17
|
Ich bedanke mich für Deine Hilfe. Es war erfolgreich. Danke
|
gamez
Anmeldungsdatum: 21. Juni 2007
Beiträge: Zähle...
|
Moin, moin. Hier ein kleiner Update. Die Methode von hakunamatata mit den Sourcen von ljalves funktioniert bis Kernel 4.10 einschließlich (alle Ubuntu Varianten bis einschließlich 17.04). Ab Kernel 4.11 (z.B. Ubuntu 17.10 mit Kernel 4.13) braucht man zwei Patches, die auf die Sourcen im Verzeichnis media anzuwenden sind: 1) include-Referenzen "#include <linux/sched.h>" sind zu ersetzen durch "#include <linux/sched/signal.h>" 2) im Modul saa716x_pci.c ist der Aufruf von "pci_enable_msix(a, b, c)" zu ersetzen durch "pci_enable_msix_range(a, b, c, c)" Dabei gehe ich davon aus, dass über Kconfig nur die wirklich für diese Karte benötigten Treiber/-Module ausgewählt wurden. Falls erfoderlich kann ich Patch files zur Vefügung stellen, dazu bitte melden. g.
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: 17
|
Hallo hakunamatata, ich habe ein Problem mit Meiner TV-Karte.
Seit dem update auf Ubuntu Kernel 4.4.0-143-generic. Betrifft den videobuf-dma-sg.o . Hast Du dafür eine Lösung die mir Hilft. make[3]: *** [/home/andreas/media_build/v4l/videobuf-dma-sg.o] Fehler 1
Makefile:1454: recipe for target '_module_/home/andreas/media_build/v4l' failed
make[2]: *** [_module_/home/andreas/media_build/v4l] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.4.0-143-generic'
Makefile:51: die Regel für Ziel „default“ scheiterte
make[1]: *** [default] Fehler 2
make[1]: Verzeichnis „/home/andreas/media_build/v4l“ wird verlassen
Makefile:26: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2 #!/home/andreas/media_build/v4l/videobuf-dma-sg.c:187:9: warning: passing argument 7 of 'get_user_pages' from incompatible pointer type [-Wincompatible-pointer-types]
dma->pages, NULL);
^
In file included from include/linux/scatterlist.h:7:0,
from include/linux/dma-mapping.h:10,
from include/linux/skbuff.h:34,
from include/linux/if_ether.h:23,
from /home/andreas/media_build/v4l/compat.h:1636,
from <command-line>:0:
include/linux/mm.h:1222:6: note: expected 'struct vm_area_struct **' but argument is of type 'struct page **'
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
/home/andreas/media_build/v4l/videobuf-dma-sg.c:184:8: error: too many arguments to function 'get_user_pages'
err = get_user_pages(current, current->mm,
^
In file included from include/linux/scatterlist.h:7:0,
from include/linux/dma-mapping.h:10,
from include/linux/skbuff.h:34,
from include/linux/if_ether.h:23,
from /home/andreas/media_build/v4l/compat.h:1636,
from <command-line>:0:
include/linux/mm.h:1222:6: note: declared here
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
scripts/Makefile.build:291: die Regel für Ziel „/home/andreas/media_build/v4l/videobuf-dma-sg.o“ scheiterte
make[3]: *** [/home/andreas/media_build/v4l/videobuf-dma-sg.o] Fehler 1
Makefile:1454: recipe for target '_module_/home/andreas/media_build/v4l' failed
make[2]: *** [_module_/home/andreas/media_build/v4l] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.4.0-143-generic'
Makefile:51: die Regel für Ziel „default“ scheiterte
make[1]: *** [default] Fehler 2
make[1]: Verzeichnis „/home/andreas/media_build/v4l“ wird verlassen
Makefile:26: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2
Bis Kernel 4.4.0-143-generic hatte ich keine Probleme. Danke
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: 17
|
Sorry Bis Kernel 4.4.0-142-generic hatte ich keine Probleme. War mir Fehler Unterlaufen.
|
hakunamatata
Supporter
Anmeldungsdatum: 30. Juni 2009
Beiträge: 5130
|
/home/andreas/media_build/v4l/videobuf-dma-sg.c:184:8: error: too many arguments to function 'get_user_pages'
err = get_user_pages(current, current->mm,
^
Hier gab es anscheinend tatsächlich von 4.4.0-142 auf 4.4.0-143 eine sicherheitsrelevante Änderung, die innerhalb 4.4 nicht kompatibel ist. s. hier 🇬🇧 Ein Beispiel wie die Datei videobuf-dma-sg.c zu ändern ist, ist hier schon inkludiert: diff --git a/drivers/media/v4l2-core/videobuf-dma-sg.c b/drivers/media/v4l2-core/videobuf-dma-sg.c
index f300f06..1db0af6 100644
--- a/drivers/media/v4l2-core/videobuf-dma-sg.c
+++ b/drivers/media/v4l2-core/videobuf-dma-sg.c
@@ -156,6 +156,7 @@ static int videobuf_dma_init_user_locked(struct videobuf_dmabuf *dma,
{
unsigned long first, last;
int err, rw = 0;
+ unsigned int flags = FOLL_FORCE;
dma->direction = direction;
switch (dma->direction) {
@@ -178,12 +179,14 @@ static int videobuf_dma_init_user_locked(struct videobuf_dmabuf *dma,
if (NULL == dma->pages)
return -ENOMEM;
+ if (rw == READ)
+ flags |= FOLL_WRITE;
+
dprintk(1, "init user [0x%lx+0x%lx => %d pages]\n",
data, size, dma->nr_pages);
err = get_user_pages(data & PAGE_MASK, dma->nr_pages,
- rw == READ, 1, /* force */
- dma->pages, NULL);
+ flags, dma->pages, NULL);
if (err != dma->nr_pages) {
dma->nr_pages = (err >= 0) ? err : 0;
Also im Prinzip könntest du nach diesem Muster manuell die Zeilen, die mit Plus markiert sind, in die Datei v4l/videobuf-dma-sg.c einfügen und jene mit Minus markiert sind, dort entfernen. Damit sollte dieser Fehler beseitigt sein. Bei Bedarf kann ich bei einer Automatisierung noch unterstützen.
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: 17
|
Hallo hakunamatata, was Du mir offeriert hast ist ganz gut und schön, nur komme ich damit nicht zurecht. Das Aufrufen der v4l/videobuf-dma-sg.c ist kein Problem aber zu mehr reicht es halt nicht. Ergo null Punkte. Ich benötige dazu Deine geschätzte Hilfe. Danke
|
hakunamatata
Supporter
Anmeldungsdatum: 30. Juni 2009
Beiträge: 5130
|
OK. Den Patch habe ich einmal angehängt. Wenn also make mit Fehler abbricht, kannst du den Patch mit wget herunterladen...
cd ~/media_build
wget https://media-cdn.ubuntu-de.org/forum/attachments/13/11/9059379-v4.4_get_user_pages.patch -O backports/v4.4_get_user_pages.patch
...damit die Datei v4l/videobuf-dma-sg.c ändern ...
cd linux
patch -s -f -N -p1 -i ../backports/v4.4_get_user_pages.patch
cd ..
... und danach mit
make
fortsetzen. Falls gewünscht: Wenn du den Patch-Befehl nicht jedes Mal manuell eingeben möchtest, gibt es die Möglichkeit den Patch in der Datei backports/backports.txt einzutragen:
[4.5.255]
add v4.5_gpiochip_data_pointer.patch
add v4.5_get_user_pages.patch
add v4.5_uvc_super_plus.patch
[4.4.255]
add v4.4_get_user_pages.patch
add v4.4_gpio_chip_parent.patch
Das hat den Vorteil, dass nach
make dir DIR=../media
make
der Patch mit den anderen Patches automatisch ausgeführt wird. Ich habe es hier im Beispiel für Kernel 4.4 und niedriger eingetragen. Das sollte für dich funktionieren.
- v4.4_get_user_pages.patch (820 Bytes)
- Download v4.4_get_user_pages.patch
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: 17
|
Hallo hakunamatata, bin schon wieder da.
Hat nicht funktioniert. Habe alles wie Du Angegeben hast installiert, null Punkte. 😠 🤓 Anbei mal das ganze Elend von der Ausgabe. /home/andreas/media_build/v4l/videobuf-dma-sg.c: In function 'videobuf_dma_init_user_locked':
/home/andreas/media_build/v4l/videobuf-dma-sg.c:186:21: warning: passing argument 6 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
rw == READ, 1, /* force */
^
In file included from include/linux/scatterlist.h:7:0,
from include/linux/dma-mapping.h:10,
from include/linux/skbuff.h:34,
from include/linux/if_ether.h:23,
from /home/andreas/media_build/v4l/compat.h:1636,
from <command-line>:0:
include/linux/mm.h:1222:6: note: expected 'struct page **' but argument is of type 'int'
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
/home/andreas/media_build/v4l/videobuf-dma-sg.c:187:9: warning: passing argument 7 of 'get_user_pages' from incompatible pointer type [-Wincompatible-pointer-types]
dma->pages, NULL);
^
In file included from include/linux/scatterlist.h:7:0,
from include/linux/dma-mapping.h:10,
from include/linux/skbuff.h:34,
from include/linux/if_ether.h:23,
from /home/andreas/media_build/v4l/compat.h:1636,
from <command-line>:0:
include/linux/mm.h:1222:6: note: expected 'struct vm_area_struct **' but argument is of type 'struct page **'
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
/home/andreas/media_build/v4l/videobuf-dma-sg.c:184:8: error: too many arguments to function 'get_user_pages'
err = get_user_pages(current, current->mm,
^
In file included from include/linux/scatterlist.h:7:0,
from include/linux/dma-mapping.h:10,
from include/linux/skbuff.h:34,
from include/linux/if_ether.h:23,
from /home/andreas/media_build/v4l/compat.h:1636,
from <command-line>:0:
include/linux/mm.h:1222:6: note: declared here
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
scripts/Makefile.build:291: die Regel für Ziel „/home/andreas/media_build/v4l/videobuf-dma-sg.o“ scheiterte
make[3]: *** [/home/andreas/media_build/v4l/videobuf-dma-sg.o] Fehler 1
Makefile:1454: recipe for target '_module_/home/andreas/media_build/v4l' failed
make[2]: *** [_module_/home/andreas/media_build/v4l] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.4.0-143-generic'
Makefile:51: die Regel für Ziel „default“ scheiterte
make[1]: *** [default] Fehler 2
make[1]: Verzeichnis „/home/andreas/media_build/v4l“ wird verlassen
Makefile:26: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2
|
Andy1952
Anmeldungsdatum: 8. Januar 2017
Beiträge: 17
|
Noch ein kleiner Nachtrag. include/linux/mm.h:1251:5: note: declared here
int get_vaddr_frames(unsigned long start, unsigned int nr_pfns,
^
scripts/Makefile.build:291: die Regel für Ziel „/home/andreas/media_build/v4l/videobuf2-memops.o“ scheiterte
make[3]: *** [/home/andreas/media_build/v4l/videobuf2-memops.o] Fehler 1
Makefile:1454: recipe for target '_module_/home/andreas/media_build/v4l' failed
make[2]: *** [_module_/home/andreas/media_build/v4l] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.4.0-143-generic'
Makefile:51: die Regel für Ziel „default“ scheiterte
make[1]: *** [default] Fehler 2
make[1]: Verzeichnis „/home/andreas/media_build/v4l“ wird verlassen
Makefile:26: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2
|