Для работы с usb-устройствами можно использовать утилиты usbconfig (для версий FreeBSD 8 и выше) и usbdevs (для старых версий). Вот примеры использования:
# usbdevs
addr 1: UHCI root hub, Intel
addr 1: UHCI root hub, Intel
addr 1: UHCI root hub, Intel
addr 1: UHCI root hub, Intel
addr 1: EHCI root hub, Intel
#usbconfig
ugen0.1: at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen1.1: at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen2.1: at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen3.1: at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen4.1: at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
ugen1.2: at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
Хочу заметить, что большинство опций в мане не описано, но зато описаны в хелпе самой утилиты:
# usbconfig -h
usbconfig - configure the USB subsystem
usage: usbconfig -u <busnum> -a <devaddr> -i <ifaceindex> [cmds...]
usage: usbconfig -d [ugen]<busnum>.<devaddr> -i <ifaceindex> [cmds...]
commands:
set_config <cfg_index>
set_alt <alt_index>
set_template <template>
get_template
add_dev_quirk_vplh <vid> <pid> <lo_rev> <hi_rev> <quirk>
remove_dev_quirk_vplh <vid> <pid> <lo_rev> <hi_rev> <quirk>
add_quirk <quirk>
remove_quirk <quirk>
dump_quirk_names
dump_device_quirks
dump_device_desc
dump_curr_config_desc
dump_all_config_desc
dump_string <index>
dump_info
show_ifdrv
suspend
resume
power_off
power_save
power_on
reset
list
do_request <bmReqTyp> <bReq> <wVal> <wIdx> <wLen> <data...>
А вот как можно посмотреть информацию о самом модеме
#usbconfig -u 1 -a 2 dump_device_desc
ugen1.2: at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x12d1
idProduct = 0x1001
bcdDevice = 0x0000
iManufacturer = 0x0003
iProduct = 0x0002
iSerialNumber = 0x0000
bNumConfigurations = 0x0001
Один коментар до “Работаем с usb”
если бы еще коментариев ко всему этому…