История изменений
Исправление Hemulo, (текущая версия) :
Показывай написанное тобой правило.
В общем, я решил сделать все действия сначала (И кажется заработало):
1) я создал один файл рулесов с немного изменёнными параметрами:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0694", ATTRS{idProduct}=="0002", SYMLINK+="nxt", MODE="0666"
Тут, насколько я понимаю, проверяются 4 первых параметра на соответствие, потом создаётся символьная ссылка с именем «nxt» и задаются (для этой ссылки?) права доступа «666».
2) После этого я выполнил команду: udevadm control --reload
3) Потом выключил NXT-устройство и снова его включил.
4) Набрал lsusb для просмотра устройств и получил:
Bus 002 Device 009: ID 0694:0002 Lego Group Mindstorms NXT
...
5) Потом я набрал команду: ls -l /dev/bus/usb/002/
...
crw-rw---- 1 root plugdev 189, 136 авг 11 14:42 009
Вроде тут видно, что устройство 009 было подключено, но права доступа к нему «crw-rw----»
6) Потом я набрал: ls -l /dev/nxt
lrwxrwxrwx 1 root root 15 авг 11 14:42 /dev/nxt -> bus/usb/002/009
Во! Вот это мне понравилось!
Как я понял, при подключении NXT была создана символьная ссылка на устройство /dev/nxt и права на эту ссылку были определены уже по максимуму: «lrwxrwxrwx».
При отключенном устройстве, эта символьная ссылка недоступна.
7) Вывод udevadm monitor (отключил девайс, запустил монитор, включил девайс):
KERNEL[13403.579950] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
KERNEL[13403.580758] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
UDEV [13403.604433] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
UDEV [13404.612498] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
Тут всего 4 строчки, но они мне как-то ничего не говорят.
В итоге, после проведения всех этих телодвижений, оказалось, что я могу уже загружать программы с помощью компилятора nbc:
nbc -d -S=usb hello.nxc
Но загрузка данных с помощью питоновского скрипта nxt_push пока не работает.
Также, всё ещё не видит подключенного по usb устройства и запущенная под Wine система BricXX.
Честно говоря, я пока не понял до конца, в чём проблема.
Может быть нужно как-то менять права доступа к самому устройству, а не только к символьной ссылке?
Может нужно что-то городить с группами и групповыми правами?
Исходная версия Hemulo, :
Показывай написанное тобой правило.
В общем, я решил сделать все действия сначала (И кажется заработало):
1) я создал один файл рулесов с немного изменёнными параметрами:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0694", ATTRS{idProduct}=="0002", SYMLINK+="nxt", MODE="0666"
Тут, насколько я понимаю проверяются 4 первых параметра на соответствие, потом создаётся символьная ссылка с именем «nxt» и задаются (для этой ссылки?) права доступа «666».
2) После этого я выполнил команду: udevadm control --reload
3) Потом выключил NXT-устройство и снова его включил.
4) Набрал lsusb для просмотра устройств и получил:
Bus 002 Device 009: ID 0694:0002 Lego Group Mindstorms NXT
...
5) Потом я набрал команду: ls -l /dev/bus/usb/002/
...
crw-rw---- 1 root plugdev 189, 136 авг 11 14:42 009
Вроде тут видно, что устройство 009 было подключено, но права доступа к нему «crw-rw----»
6) Потом я набрал: ls -l /dev/nxt
lrwxrwxrwx 1 root root 15 авг 11 14:42 /dev/nxt -> bus/usb/002/009
Во! Вот это мне понравилось!
Как я понял, при подключении NXT была создана символьная ссылка на устройство /dev/nxt и права на эту ссылку были определены уже по максимуму: «lrwxrwxrwx».
7) Вывод udevadm monitor (отключил девайс, запустил монитор, включил девайс):
KERNEL[13403.579950] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
KERNEL[13403.580758] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
UDEV [13403.604433] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
UDEV [13404.612498] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
Тут всего 4 строчки, но они мне как-то ничего не говорят.
В итоге, после проведения всех этих телодвижений, оказалось, что я могу уже загружать программы с помощью компилятора nbc:
nbc -d -S=usb hello.nxc
Но загрузка данных с помощью питоновского скрипта nxt_push пока не работает.
Также, всё ещё не видит подключенного по usb устройства и запущенная под Wine система BricXX.
Честно говоря, я пока не понял до конца, в чём проблема.
Может быть нужно как-то менять права доступа к самому устройству, а не только к символьной ссылке?
Может нужно что-то городить с группами и групповыми правами?
И вообще, как-то не до конца верится, что NXT у меня действительно стал нормально монтироваться, т.к. загрузка осуществляется только компилятором nbc.