LINUX.ORG.RU

FT232BL и кривой EEPROM?

 , usb-serial


0

1

Купил на алике переходник usb-serial, вроде, номальная платка. Кварц, два чипа (FTDI FT232BL и AT 93C46). Работает, но udevadm не показывает ATTRS{serial}. Не написать нормальное udev-правило.

Погуглил, вроде в стандартном формате EEPROM отведено место под серийный номер. Попробовал прочитать программами ftdi_eeprom, ft232r_prog, ftx_prog, ftdi_prog. В общем-то, везде одно:

# ftdi_eeprom --read-eeprom  test.conf 

FTDI eeprom generator v0.17
(c) Intra2net AG and the libftdi developers <opensource@intra2net.com>
FTDI read eeprom: 0
EEPROM size: -1
Checksum Error: aaaa 0000
Malloc failed, aborting
FTDI close: 0
неправильное содержимое. Стоит ли пробовать генерить и прошивать «правильное» содержимое, или у китайских клонов какой-то свой формат и с «правильным» EEPROM устройство перестанет работать? Выпаивать и считывать флешку пока лень.

И появится ли ATTRS{serial} после прошивки, или драйвер ядра не даёт данный атрибут?

★★★★★
Ответ на: комментарий от sehellion

И вообще давай сначала, как устройство определяется, а потом уже в его eeprom лезть. А то с оп-поста поток мыслей несколько ускользает

sehellion ★★★★★
()

Попробовал прочитать программами ftdi_eeprom, ft232r_prog, ftx_prog, ftdi_prog

Тут не подскажу ничего, только mprog пользовал под офтопикоом для этих целей, там должны были правильные идентификаторы быть, которые спецсофт брасывал то ли на заводские для ft, то ли еще на какие-то в случаях когда считал, что оборудование неоригинальное. В случае простого usb serial лезть в это не надо точно.

sehellion ★★★★★
()
Ответ на: комментарий от izzholtik

И? оба ж будут usb serial converter. 10c4:ea60 Silicon Labs CP210x UART Bridge (нет 232 под рукой). Или одному мы дадим права 0660 (или 0666), а другому нет? Да, это может быть куча как отдельных конвертеров, так и в составе устройств, которым не удосужались присвоить отдельные идентификаторы, ну и что? Под ATTRS{serial} тоже немало устройств можно подогнать.

sehellion ★★★★★
()
Ответ на: комментарий от sehellion

Пока одно определяется как /dev/ttyUSB0. Стандартные usbid, VID (0x0403) и PID (0x6001).

По поводу udev правила уже ответили. Мне нужно правило для однозначного именования устройства, чтобы потом не было проблем с двумя/тремя одинаковыми. Поэтому без разных серийных номеров никак.

Купил USB-serial на разных чипах, сейчас изучаю. Как понял, у PL-2303 вобще нет места под серийник в EEPROM (во всяком случает так в даташите на первые чипы написано). У CP2102 серийник прошился, сечас дошёл до FT232, впереди ещё CH340.

Собственно из всего потока мыслей было два вопроса, первый про наличие особенностей у китайских клонов FT232, а второй про поддержку в линусе. Показывает ли в принципе udevadm атрибут ATTRS{serial} для FT232?

mky ★★★★★
() автор топика
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от sehellion

При чём тут права? Мне нужно разные программы запускать, для разных usb-serial. Я хочу на одном компе записать серийный номер, проверит udev правило (VID+PID+serial), а в другой комп просто копировать udev правило и втыкать usb-serial, подключая к нему что хочется.

Чтобы не было плясок с определием в какой usb порт я воткнул устройство и т.д.

mky ★★★★★
() автор топика
Ответ на: комментарий от mky

Ну из оп-поста не было очевидно, что задача именно в назначении конкретных адресов в зависимости от серийника, например.
В общем, нашел FT232RL, вот ответ на твой вопрос:

udevadm info -a /dev/ttyUSB0 | grep {serial}
ATTRS{serial}=="A9OBRD51"
ATTRS{serial}=="0000:00:12.2"

По сути то же самое, только у BL eeprom внешний. Я бы попробовал через mprog в виртуалке прочитать и прописать.

sehellion ★★★★★
()
Ответ на: комментарий от sehellion

Спасибо. Поковыряю EEPROM, скорее всего китайцы криво записали.

mky ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.