Беру телефон. Под Ubuntu 12.04 в Blueman подключаюсь к нему, к сервису Serial port. Ок. Всё выглядит правильно: появился файл /dev/rfcomm0 (права нужные есть), в Blueman семафоры показывают позитивное.
Но вот, для соединялки с интернетом wvdial, доступ к /dev/rfcomm0 чем-то заблокирован для пользователя. Чем? Как получить RW доступ к порту?
Пытаюсь использовать этот порт как модем.
Самое важное, что на команду АТ телефон ответил ОК. Т.е. в принципе оно работает, причём синезубая связь установлена штатно, без root. Т.к. от имени рута программа НЕзависящая от синезуба успешно подключается, то мои конфиги, я надеюсь, без ошибок. А вот
Я в группе dialout. Смотрел права на файл порта - для этой группы чтение запись есть:
$ strace cat /dev/rfcomm0
execve("/bin/cat", ["cat", "/dev/rfcomm0"], [/* 40 vars */]) = 0
brk(0) = 0x9a01000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d6000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=105229, ...}) = 0
mmap2(NULL, 105229, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77bc000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/libc.so.6", 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\0000\226\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1713640, ...}) = 0
mmap2(NULL, 1723100, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x110000
mmap2(0x2af000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19f) = 0x2af000
mmap2(0x2b2000, 10972, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2b2000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77bb000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb77bb900, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x2af000, 8192, PROT_READ) = 0
mprotect(0x8053000, 4096, PROT_READ) = 0
mprotect(0x8a8000, 4096, PROT_READ) = 0
munmap(0xb77bc000, 105229) = 0
brk(0) = 0x9a01000
brk(0x9a22000) = 0x9a22000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=29689904, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75bb000
mmap2(NULL, 1253376, PROT_READ, MAP_PRIVATE, 3, 0x931) = 0xb7489000
close(3) = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=29689904, ...}) = 0
mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x1714) = 0xb7488000
close(3) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
open("/dev/rfcomm0", O_RDONLY|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
write(2, "cat: ", 5cat: ) = 5
write(2, "/dev/rfcomm0", 12/dev/rfcomm0) = 12
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7487000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7487000, 4096) = 0
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_GB/LC_MESSAGES/libc.mo", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3045, ...}) = 0
mmap2(NULL, 3045, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7487000
close(3) = 0
write(2, ": Device or resource busy", 25: Device or resource busy) = 25
write(2, "\n", 1
) = 1
close(1) = 0
close(2) = 0
exit_group(1) = ?
И где доступ перекрыт. Network Manager + AppArmor ???