Open cyanate opened 6 years ago
How are you starting velox? You need to launch it with swc-launch. For example, swc-launch velox
.
mesa with wayland support should be irrelevant since swc uses wld, not mesa.
Hello everybody, I have been trying to set up velox too, but I am getting a similar error message: 'swc-launch velox' gives me: Running on /dev/tty7 Failed to activate VT: no such device or address But /dev/tty7 exists and is accessible. Can you help me?
Looks like you are getting an error from https://github.com/michaelforney/swc/blob/5b20050872f8ad29cfc97729f8af47b6b3df5393/launch/launch.c#L384
Where are you running swc-launch velox
from? Can you add a line to print out the value of vt
before that error message?
I'm running it from a non-X login terminal; there is no other line of output before VT.
I meant you should add a print statement so I can try to figure out what is going on.
In fact, an strace log might be even more helpful
strace swc-launch velox
(you will likely need to run this as root)
On Sat, 10 Nov 2018 22:40:26 -0800 Michael Forney notifications@github.com wrote:
I meant you should add a print statement so I can try to figure out what is going on.
In fact, an strace log might be even more helpful
strace swc-launch velox
Thank you Michael for your patience! I've never worked with strace, but here you are with a printout made as root. Good luck to you! Peter
Vollmar Translations Peter Vollmar CH-9000 St. Gallen www.vollmar.ch
===== The Word for Monday, 12 November 2018 ===== A thousand years in your sight are but as yesterday when it is past, or as a watch in the night. Psalm 90:4 (ESV) We are but of yesterday and know nothing, for our days on earth are a shadow. Job 8:9 [bible2.net]
execve("/usr/bin/swc-launch", ["swc-launch", "velox"], 0xbfc53d1c / 35 vars /) = 0 brk(NULL) = 0x1a41000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=197511, ...}) = 0 mmap2(NULL, 197511, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb76fc000 close(3) = 0 openat(AT_FDCWD, "/usr/lib/libdrm.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2605\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=79400, ...}) = 0 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76fa000 mmap2(NULL, 83688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76e5000 mmap2(0xb76f8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12000) = 0xb76f8000 close(3) = 0 openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\222\1\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1967580, ...}) = 0 mmap2(NULL, 1976768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7502000 mprotect(0xb76de000, 4096, PROT_NONE) = 0 mmap2(0xb76df000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1dc000) = 0xb76df000 mmap2(0xb76e2000, 10688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76e2000 close(3) = 0 openat(AT_FDCWD, "/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\225\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=820608, ...}) = 0 mmap2(NULL, 823400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7438000 mmap2(0xb7500000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc7000) = 0xb7500000 close(3) = 0 set_thread_area({entry_number=-1, base_addr=0xb76fb740, limit=0x0fffff, seg_32bit=1, contents=0, read_exec_only=0, limit_in_pages=1, seg_not_present=0, useable=1}) = 0 (entry_number=6) mprotect(0xb76df000, 8192, PROT_READ) = 0 mprotect(0xb7500000, 4096, PROT_READ) = 0 mprotect(0xb76f8000, 4096, PROT_READ) = 0 mprotect(0x440000, 4096, PROT_READ) = 0 mprotect(0xb7756000, 4096, PROT_READ) = 0 munmap(0xb76fc000, 197511) = 0 socketpair(AF_UNIX, SOCK_SEQPACKET, 0, [3, 4]) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 rt_sigaction(SIGCHLD, {sa_handler=0x43e3a1, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGUSR1, {sa_handler=0x43e407, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGUSR2, {sa_handler=0x43e43d, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x43e474, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGTERM, {sa_handler=0x43e474, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, ~[INT USR1 USR2 TERM CHLD RTMIN RT_1], NULL, 8) = 0 openat(AT_FDCWD, "/dev/tty0", O_RDWR) = 5 ioctl(5, VT_OPENQRY, 0xbfb89040) = 0 close(5) = 0 write(2, "running on /dev/tty7\n", 21) = 21 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0 fstat64(0, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 4), ...}) = 0 brk(NULL) = 0x1a41000 brk(0x1a62000) = 0x1a62000 brk(0x1a63000) = 0x1a63000 readlink("/proc/self/fd/0", "/dev/tty4", 4095) = 9 stat64("/dev/tty4", {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 4), ...}) = 0 openat(AT_FDCWD, "/dev/tty7", O_RDWR|O_NOCTTY) = 5 fstat64(5, {st_mode=S_IFCHR|0620, st_rdev=makedev(4, 7), ...}) = 0 ioctl(5, VT_GETSTATE, 0xbfb88fe6) = 0 ioctl(5, KDGKBMODE, 0x44135c) = 0 ioctl(5, KDGETMODE, 0x441360) = 0 ioctl(5, KDSKBMODE, 0x4) = 0 ioctl(5, KDSETMODE, 0x1) = 0 ioctl(5, VT_SETMODE, 0xbfb88fec) = 0 ioctl(5, VT_ACTIVATE, 0xb7756fb4) = -1 ENXIO (Kein passendes Gerät bzw. keine passende Adresse gefunden) write(2, "failed to activate VT: No such d"..., 49) = 49 ioctl(5, VT_SETMODE, 0xbfb88fec) = 0 ioctl(5, KDSETMODE, 0) = 0 ioctl(5, KDSKBMODE, 0x3) = 0 exit_group(1) = ? +++ exited with 1 +++
Thanks, that's really helpful.
ioctl(5, VT_ACTIVATE, 0xb7756fb4)
This line looks bogus to me. It should be passing the VT number to activate (in this case 7), not a pointer. I can't really explain this since vt
is set at https://github.com/michaelforney/swc/blob/c0e9489044f45440542aab10d21031a35cb20a91/launch/launch.c#L353, and is not modified until it is passed to the ioctl here: https://github.com/michaelforney/swc/blob/c0e9489044f45440542aab10d21031a35cb20a91/launch/launch.c#L385
Perhaps you could add printf("vt: %d\n", vt);
in between each of those ioctls between when vt
is set on line 353, and used on line 385?
My only thought is that somehow the structures in the linux headers used to build swc-launch don't match your running kernel, which is causing one of the ioctls to clobber the value of vt
.
Could you describe your operating system and the toolchain you used to build swc?
Whoops, I meant ioctl(5, VT_ACTIVATE, 0xb7756fb4)
looks bogus. The VT_SETMODE
looks fine.
How are you starting velox? You need to launch it with swc-launch. For example,
swc-launch velox
.mesa with wayland support should be irrelevant since swc uses wld, not mesa.
Is it bad for performance?
I've installed mesa-git with wayland support, but when starting velox I'm getting:
[swc:libswc/swc.c:123] ERROR: Could not connect to swc-launch
This seems to be a libswc problem, but you've written that, too.