dvdhrm / kmscon

Linux KMS/DRM based virtual Console Emulator
http://www.freedesktop.org/wiki/Software/kmscon
Other
432 stars 79 forks source link

Can't start kmscon with --hwaccel #89

Closed medivhok closed 11 years ago

medivhok commented 11 years ago

Hello there

I'm trying to start kmscon with the --hwaccel but I get this assertion :

   /usr/bin/kmscon --listen --hwaccel --cdev-session --seats=seat1 &

   [0000.000000] NOTICE: kmscon Revision kmscon-7-39-gddf4126 Apr 16 2013 18:56:57
   kmscon: /build/src/llvm-16ca877f58007eb0d72ac145d96b98e9df6adfd9/include/llvm/Support/CommandLine.h:646: void   llvm::cl::parser<DataType>::addLiteralOption(const char*, const DT&, const char*) [with DT = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level); DataType = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)]: Assertion `findOption(Name) == Values.size() && "Option already exists!"' failed.

I have 2 nvidia cards using the nouveau driver. everything works fine without the hwaccel. here's the debug output :

   [0000.000000] NOTICE: kmscon Revision kmscon-7-39-gddf4126 Apr 16 2013 18:56:57
   [0000.000048] INFO: conf: reading config file /etc/kmscon/kmscon.conf
   [0000.000140] DEBUG: module: loading global modules from /usr/lib/kmscon (kmscon_load_modules() in src/kmscon_module.c:188)
   [0000.000202] DEBUG: module: opening module /usr/lib/kmscon/mod-unifont.so (kmscon_module_open() in src/kmscon_module.c:53)
   [0000.000358] DEBUG: module: Initializing module: /usr/lib/kmscon/mod-unifont.so (kmscon_module_open() in src/kmscon_module.c:83)
   [0000.000376] DEBUG: module:   Date: Apr 16 2013 18:57:10 (kmscon_module_open() in src/kmscon_module.c:95)
   [0000.000387] DEBUG: module:   GIT: kmscon-7-39-gddf4126 (kmscon_module_open() in src/kmscon_module.c:96)
   [0000.000397] DEBUG: module:   Hooks: (nil) 0x7f6e66baf6f0 0x7f6e66baf6e0 (nil) (kmscon_module_open() in src/kmscon_module.c:101)
   [0000.000408] DEBUG: module: loading module /usr/lib/kmscon/mod-unifont.so (kmscon_module_load() in src/kmscon_module.c:154)
   [0000.000423] DEBUG: font: register font backend unifont (kmscon_font_register() in src/font.c:168)
   [0000.000446] DEBUG: module: opening module /usr/lib/kmscon/mod-pango.so (kmscon_module_open() in src/kmscon_module.c:53)
   [0000.010138] DEBUG: module: Initializing module: /usr/lib/kmscon/mod-pango.so (kmscon_module_open() in src/kmscon_module.c:83)
   [0000.010190] DEBUG: module:   Date: Apr 16 2013 18:57:12 (kmscon_module_open() in src/kmscon_module.c:95)
   [0000.010221] DEBUG: module:   GIT: kmscon-7-39-gddf4126 (kmscon_module_open() in src/kmscon_module.c:96)
   [0000.010268] DEBUG: module:   Hooks: (nil) 0x7f6e669aaa00 0x7f6e669aa9f0 (nil) (kmscon_module_open() in src/kmscon_module.c:101)
   [0000.010301] DEBUG: module: loading module /usr/lib/kmscon/mod-pango.so (kmscon_module_load() in src/kmscon_module.c:154)
   [0000.010343] DEBUG: font: register font backend pango (kmscon_font_register() in src/font.c:168)
   [0000.010386] DEBUG: module: opening module /usr/lib/kmscon/mod-bbulk.so (kmscon_module_open() in src/kmscon_module.c:53)
   [0000.010549] DEBUG: module: Initializing module: /usr/lib/kmscon/mod-bbulk.so (kmscon_module_open() in src/kmscon_module.c:83)
   [0000.010592] DEBUG: module:   Date: Apr 16 2013 18:57:13 (kmscon_module_open() in src/kmscon_module.c:95)
   [0000.010629] DEBUG: module:   GIT: kmscon-7-39-gddf4126 (kmscon_module_open() in src/kmscon_module.c:96)
   [0000.010663] DEBUG: module:   Hooks: (nil) 0x7f6e625973d0 0x7f6e625973c0 (nil) (kmscon_module_open() in src/kmscon_module.c:101)
   [0000.010695] DEBUG: module: loading module /usr/lib/kmscon/mod-bbulk.so (kmscon_module_load() in src/kmscon_module.c:154)
   [0000.010727] DEBUG: text: register text backend bbulk (kmscon_text_register() in src/text.c:78)
   [0000.010788] DEBUG: module: opening module /usr/lib/kmscon/mod-gltex.so (kmscon_module_open() in src/kmscon_module.c:53)
   [0000.010921] DEBUG: module: Initializing module: /usr/lib/kmscon/mod-gltex.so (kmscon_module_open() in src/kmscon_module.c:83)
   [0000.010940] DEBUG: module:   Date: Apr 16 2013 18:57:14 (kmscon_module_open() in src/kmscon_module.c:95)
   [0000.010953] DEBUG: module:   GIT: kmscon-7-39-gddf4126 (kmscon_module_open() in src/kmscon_module.c:96)
   [0000.010965] DEBUG: module:   Hooks: (nil) 0x7f6e6238fee0 0x7f6e6238fed0 (nil) (kmscon_module_open() in src/kmscon_module.c:101)
   [0000.010978] DEBUG: module: loading module /usr/lib/kmscon/mod-gltex.so (kmscon_module_load() in src/kmscon_module.c:154)
   [0000.010997] DEBUG: text: register text backend gltex (kmscon_text_register() in src/text.c:78)
   [0000.011024] DEBUG: font: register font backend 8x16 (kmscon_font_register() in src/font.c:168)
   [0000.011041] DEBUG: text: register text backend bblit (kmscon_text_register() in src/text.c:78)
   [0000.011067] DEBUG: eloop: new eloop object 0x231aea0 (ev_eloop_new() in src/eloop.c:673)
   [0000.011167] DEBUG: scanning for devices... (setup_app() in src/kmscon_main.c:576)
   [0000.011206] DEBUG: new seat seat1 (app_seat_new() in src/kmscon_main.c:191)
   [0000.011229] DEBUG: parsing seat configuration for seat seat1 (kmscon_conf_load_seat() in src/kmscon_conf.c:678)
   [0000.015181] DEBUG: seat: register session 0x230f390 (kmscon_seat_register_session() in src/kmscon_seat.c:929)
   [0000.015202] DEBUG: dummy: new dummy object 0x23380f0 (kmscon_dummy_register() in src/kmscon_dummy.c:143)
   [0000.015215] DEBUG: seat: enable session 0x230f390 (kmscon_session_enable() in src/kmscon_seat.c:1087)
   [0000.015267] DEBUG: tsm_screen: new screen (tsm_screen_new() in src/tsm_screen.c:471)
   [0000.015302] DEBUG: tsm_vte: new vte object (tsm_vte_new() in src/tsm_vte.c:399)
   [0000.015328] DEBUG: font: searching for: be: pango nm: monospace ppi: 96 pt: 12 b: 0 i: 0 he: 0 wt: 0 (kmscon_font_find() in src/font.c:320)
   [0000.015351] DEBUG: font_pango: loading pango font monospace (kmscon_font_pango_init() in src/font_pango.c:380)
   [0000.023717] DEBUG: font: using: be: pango nm: monospace ppi: 96 pt: 14 b: 0 i: 0 he: 19 wt: 10 (kmscon_font_find() in src/font.c:339)
   [0000.023745] DEBUG: font: searching for: be: pango nm: monospace ppi: 96 pt: 12 b: 1 i: 0 he: 0 wt: 0 (kmscon_font_find() in src/font.c:320)
   [0000.023759] DEBUG: font_pango: loading pango font monospace (kmscon_font_pango_init() in src/font_pango.c:380)
   [0000.027019] DEBUG: font: using: be: pango nm: monospace ppi: 96 pt: 14 b: 1 i: 0 he: 19 wt: 10 (kmscon_font_find() in src/font.c:339)
   [0000.027057] DEBUG: eloop: new eloop object 0x23bc040 (ev_eloop_new() in src/eloop.c:673)
   [0000.027071] DEBUG: pty: new pty object (kmscon_pty_new() in src/pty.c:96)
   [0000.027089] DEBUG: seat: register session 0x23bfce0 (kmscon_seat_register_session() in src/kmscon_seat.c:929)
   [0000.027103] DEBUG: terminal: new terminal object 0x2320280 (kmscon_terminal_register() in src/kmscon_terminal.c:669)
   [0000.027115] DEBUG: seat: enable session 0x23bfce0 (kmscon_session_enable() in src/kmscon_seat.c:1087)
   [0000.027139] INFO: cdev: initializing fake VT TTY device /dev/ttyFseat1
   [0000.027196] DEBUG: seat: register session 0x23b8830 (kmscon_seat_register_session() in src/kmscon_seat.c:929)
   [0000.027214] DEBUG: seat: activate session 0x23bfce0 (session_call_activate() in src/kmscon_seat.c:120)
   [0000.027606] DEBUG: pty: forking child 1130 (pty_spawn() in src/pty.c:382)
   [0000.027654] INFO: ignoring new seat seat0 as not specified in seat-list
   [0000.029560] DEBUG: new input device /dev/input/event10 on seat seat1 (app_monitor_event() in src/kmscon_main.c:458)
   [0000.031051] DEBUG: new input device /dev/input/event11 on seat seat1 (app_monitor_event() in src/kmscon_main.c:458)
   [0000.044548] DEBUG: new input device /dev/input/event12 on seat seat1 (app_monitor_event() in src/kmscon_main.c:458)
   [0000.048551] DEBUG: new input device /dev/input/event8 on seat seat1 (app_monitor_event() in src/kmscon_main.c:458)
   [0000.061216] DEBUG: new input device /dev/input/event9 on seat seat1 (app_monitor_event() in src/kmscon_main.c:458)
   [0000.064480] DEBUG: new video device /dev/dri/card1 on seat seat1 (app_seat_add_video() in src/kmscon_main.c:336)
   kmscon: /build/src/llvm-16ca877f58007eb0d72ac145d96b98e9df6adfd9/include/llvm/Support/CommandLine.h:646: void llvm::cl::parser<DataType>::addLiteralOption(const char*, const DT&, const char*) [with DT = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level); DataType = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)]: Assertion `findOption(Name) == Values.size() && "Option already exists!"' failed.
   [1]+  Abandon                 (core dumped)/usr/bin/kmscon --listen --hwaccel --cdev-session --seats=seat1 --debug --verbose
medivhok commented 11 years ago
   sudo ./test_output --test

   [0000.000000] NOTICE: /home/medivhok/AUR/kmscon-git/src/kmscon/.libs/lt-test_output Revision kmscon-7-39-gddf4126 Apr 16 2013 18:56:57
   [0000.000065] NOTICE: Creating video object using /dev/dri/card0...
   lt-test_output: /build/src/llvm-16ca877f58007eb0d72ac145d96b98e9df6adfd9/include/llvm/Support/CommandLine.h:646: void llvm::cl::parser<DataType>::addLiteralOption(const char*, const DT&, const char*) [with DT = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level); DataType = llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)]: Assertion `findOption(Name) == Values.size() && "Option already exists!"' failed.
dvdhrm commented 11 years ago

That's a mesa bug. kmscon doesn't use C++ or llvm directly ;) It's known and it is fixed in mesa-master. I don't know which versions are affected, sorry, but the next mesa release should include a fix.

vkravets commented 11 years ago

Great news! Thus I will wait the release of mesa to moving fully to kmskon...

Thanks a lot!

2013/4/18 David Herrmann notifications@github.com

That's a mesa bug. kmscon doesn't use C++ or llvm directly ;) It's known and it is fixed in mesa-master. I don't know which versions are affected, sorry, but the next mesa release should include a fix.

— Reply to this email directly or view it on GitHubhttps://github.com/dvdhrm/kmscon/issues/89#issuecomment-16592205 .

medivhok commented 11 years ago

Ah ok, thx. I will try to compile a git version then

Thank you :+1:

EDIT: The bug has been corrected here.

The problem was caused by the llvm libs being static. Even with recent install of Mesa (with archlinux anyway) the package is still compiled with the static version of the lib. But I have rebuild the package with :

   --with-llvm-shared-libs

Using --enable-opencl was asking for too much dependencies in the AUR packages. But now everything is working just fine (well kinda) with --hwaccel

Now that this trouble is out of the way, I can continue with the config of my setup :+1: