Jump to content

    

Gnu Toolchain for BF

Добрый день, заранее извиняюсь, если не в тему спросил.

Есть необходимость поднять гнутый тулчейн для BF548.

Начал с приобретения отладочной платы. Нашел по сходной цене у австрийцев Tiniboard.

Поставил на рабочий комп OpenSuse, загрузил из svn исходники jtag и gdbproxy. После того как загрузил и скомпилировал libftdi, обе программы скомпилировались, установились и заработали но только из под рута.

В качестве интерфейсов к target использовал wiggler и самодельный usbjtag на основе FT2232.

Но из под рута как то не очень хорошо работать, поэтому прописал себя в группу lp, чтобы появились права на /dev/parport0. Обе программы заработали из под моей учетной записи через wiggler.

Но наткнулся на проблему - никак не могу найти, что надо подправить чтобы появилась возможность работать через usbjtag из под учетной записи обычного пользователя?

Share this post


Link to post
Share on other sites

Каким устройством становится usbJtag?

Можно посмотреть dmesg.

Edited by Mihail Gluhowchenko

Share this post


Link to post
Share on other sites
Каким устройством становится usbJtag?

Можно посмотреть dmesg.

 

Вот кусок из того что выдает dmesg при подключении ft2232

 

usb 1-1: new full speed USB device using uhci_hcd and address 8

usb 1-1: configuration #1 chosen from 1 choice

ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected

drivers/usb/serial/ftdi_sio.c: Detected FT2232C

usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0

ftdi_sio 1-1:1.1: FTDI USB Serial Device converter detected

drivers/usb/serial/ftdi_sio.c: Detected FT2232C

usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB1

usb 1-1: New USB device found, idVendor=0403, idProduct=6001

usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

usb 1-1: Product: ABOJTAG

usb 1-1: Manufacturer: Abo

usb 1-1: SerialNumber: 00000002

usb 1-2: new full speed USB device using uhci_hcd and address 9

usb 1-2: configuration #1 chosen from 1 choice

hub 1-2:1.0: USB hub found

Share this post


Link to post
Share on other sites

ttyUSB1 - теоретически у вас должен быть юзверь который может писать и читать TTY

Share this post


Link to post
Share on other sites

Все правильно, /dev/ttyUSB0 и /dev/ttyUSB1 имеют группу "uucp" с правами на запись и чтение, только незадача, программы jtag и gdbproxy работают через библиотеку libftdi, которая в свою очередь работает через libusb, которая хочет открывать не виртуальные компорты /dev/tty*. а хочет открыть непосредственно файл устройства /dev/bus/usb/001/007, в полном имени файла последние числа это номер контролера USB и номеp устройства на шине этого контроллера.

Права доступа к этому файлу и хочется поменять, а они:

crw-r--r-- 1 root root 189, 6 Июл 29 14:49 007

.

Насколько я понял из интернета - за создание и назначение прав отвечает пакет udev. Вот с ним и разбираюсь сейчас.

Share this post


Link to post
Share on other sites

Ну в общем получилось настроить.

в /etc/udev/rules.d есть набор файлов с правилами, по которым демон udevd создает в каталоге /dev файлы устройств во время их подключения и убирает их в время отключения. в этом каталоге в файле

50-udev-default.rules есть такие строки:

 

# libusb device nodes
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"

 

именно в ней и говорится, что при создании файла устройства подходящего под SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device" необходимо файлу устанавливать права доступа MODE="0644".

 

В простейшем случае, изменив MODE="0644" на MODE="0666" можно позволить всем использовать все подключаемые usb устройства.

Но я решил поступить в соответствии с рекомендациями

http://citkit.ru/articles/245/

http://citkit.ru/articles/245/

 

и создал в этом каталоге /etc/udev/rules.d файл 10-local.rules в который вписал одну строку:

 

SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTR{product}=="ABOJTAG", NAME="/bus/usb/$env{BUSNUM}/$env{DEVNUM}",  GROUP="usb", MODE="0664"

 

где ABOJTAG = содержание строкового дескриптора ProductId из дескриптора устройства моей FT2232.

Теперь при подключении устройства в каталоге /dev/bus/usb/001 создается файл с правами для группы usb на чтение и запись. Группу usb я создал и включил себя в нее.

Теперь программа jtag и прочие примеры из поставки libftdi не ругаются если я из запускаю из под своей учетной записи, чего я собственно и добивался.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this