• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Fake PL2303

holm

Well-Known Member
Themenstarter #1
Moin,

ich habe aus China arigendann mal gefakte USB-TTL Adapter abgefaßt, der Chip da drauf behauptet ein PL2303HX zu sein, allerdings geben sich die Dinger als Vendor 0x0424 und Device 0x2514 aus..irgend ein SMC USB Hub..

Der PL2303 hat wohl einen OTP Prom in dem diese Variablen einmalig mit Hilfe eines Programmiergeräts gesetzt werden können, das ist also hier überhaupt nicht hilfreich.

Es gibt nun die 2 Möglichkeiten das da entweder absichtlich Mist programmiert wurde um der "Spezialbehandlung" des Windows Treibers zu umgehen, möglicherweise ist da irgendwo ein gepatchter Treibr downloadbar, die 2. Möglichkeit ist das es sich wirklich um einen USB HUB handelt der umgelabelt wurde..halte ich aber nicht für wahrscheinlich.

'Da ich die Dinger nur unter FreeBSD 11.2 für meine eigenen Basteleien benörige, würde ich mal den Treiber patchen wollen damit die Dinger von upltcom eingeklinkt werden.. ist mir beim 1. Anlauf nicht gelungen.

Ich habe nun in /usr/src/sys/dev/usb/usbdevs die SMC Geschichte für Vendor ID 0x0424 auskommentiert und statt dessen einen PROLIFIC 3 mit dieser ID eingesetzt. Des Weiteren den Device ID 0x2514 auf PL2303 gesetzt. Ist das richtig so?

Gruß,

Holm
 

holm

Well-Known Member
Themenstarter #2
Ich habe jetzt uplcom.ko neu gebastelt (andere Module auch) und neu geladen, das Ding wird immernoch als HUB eingeklinkt:

Ein funktionierender PL2303:

# usbconfig -d ugen7.3 dump_device_desc
ugen7.3: <vendor 0x067b product 0x2303> at usbus7, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x067b
idProduct = 0x2303
bcdDevice = 0x0300
iManufacturer = 0x0001 <Prolific Technology Inc.>
iProduct = 0x0002 <USB-Serial Controller>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001

..und hier der Fake.

# usbconfig -d ugen7.2 dump_device_desc
ugen7.2: <vendor 0x0424 product 0x2514> at usbus7, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (2mA)

bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0009 <HUB>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0002
bMaxPacketSize0 = 0x0040
idVendor = 0x0424
idProduct = 0x2514
bcdDevice = 0x0bb3
iManufacturer = 0x0000 <no string>
iProduct = 0x0000 <no string>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001

kann ich das patchen? Ich habe von USB eigentlich keine Ahnung..

Gruß,

Holm
 

serie300

Well-Known Member
#3
Alternativ wenn's was zum Selberlöten sein kann Microchip mcp2221 (DIL, 2,14EUR) , mcp2200 (SO), die haben CDC Protokoll (jedenfalls lt. Datenblatt) und das sollte immer gehen.
 

holm

Well-Known Member
Themenstarter #5
Hmm..ich schaue mir das mal an, momentan lade ich länglich eine openwrt Firmware über einen CH340 Adapter in eine Easybox ..kann das nicht abbrechen..

@serie300: ..nein, selber Löten war erst mal nicht der Plan. Die China-Dinger sind so konkurrenzlos billig..aber halten halt manchmal Überraschungen bereit.

Ich kämpfe hier nun mit 3 Teilen, einem mit PL2303 der funktioniert, aber bei der Übertragung unzuverlässig ist,
einem it PL2303 der Unfug von sich behauptet, und einem CH340 bei dem sich seyon beklagt das irgendwelche IOCTLs
nicht richtig funktionieren (kermit geht , minicom geht auch nicht richtig), dessen serielle Übertragung aber bei 115200 zuverlässig ist.
Astrein scheint der PL2303 Treiber also auch nicht zu sein.

Gruß,

Holm