Настраиваем виртуальный компорт в Ubuntu
Удобно работать с виртуальной машиной XPSP3 в VirtualBox’е: когда надо включаешь её, когда не надо – выключаешь, всё очень быстро, и вирусы прочно экранируются. Но вот понадобилось внести изменения в отлаживаемую «виндовую» программу, работающую со старыми добрыми компортами. И тут обнаруживается: не работает компорт виртуальной машины. В ЛОРе нет хорошего ответа. Всё сводится к рекомендации создания новой машины, а это время. Западные пользователи на форумах тоже дают немало пустых советов. А на самом деле всё не так уж и сложно.
Сначала надо установить утилиту настройки аппаратного компорта хост-машины. Называется она setserial, в дистрибутивах Ubuntu её нет, но зато она есть в репозиториях, поэтому воспользуемся командой терминала:
sudo apt-get install setserial
И, конечно, запустим эту утилиту, чтобы посмотреть, присутствует ли на материнской плате, что собой представляет и как настроен аппаратный порт хозяйки (далее в примере исследуем COM1):
sudo setserial -g /dev/ttyS0
Учтите, что ttyS0 соответствует COM1, ttyS1 соответствует COM2 и т.д. согласно терминологии Линукса. Подставьте нужное. После ввода пароля суперпользователя в норме должен быть получен ответ:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
Иначе компорт отсутствует или отключен на уровне BIOS’а хост-машины. Выключенный порт включаем. В случае отсутствия на материнской плате аппаратного компорта придётся поставить «костыль» из дополнительной PCI-платы расширения и добавить модуль его драйвера из прилагаемого к ней диска. Проверено: для Линукса драйверы раюотоспособны, но уточните номер появившегося компорта командой терминала
При необходимости параметры настройки коммуникационного порта можно откорректировать ( как именно – см. терминальной командой man setserial).
Настраиваем проключение виртуального COMn в аппаратный COMn, то бишь в файл ttySn+1. Для этого запускаем VirtualBox, НЕ ЗАПУСКАЯ ВИРТУАЛЬНУЮ МАШИНУ, и настраиваем параметры её компорта, как показано на этом скриншоте:
Здесь важно, чтобы номер порта, номер прерывания и адрес ввода-вывода совпадали бы с теми, которые проиндицировала утилита setserial. Если не совпадают, то утилита setserial поможет перенастроить параметры аппаратного компорта.
Но если вы сейчас попытаетесь запустить виртуальную машину, то с очень большой вероятностью получите ошибку. А всего-то надо сделать ещё две вещи.
Во-первых, вы, хотя и являетесь «главным администратором», не обязательно автоматически являетесь членом группы пользователей виртуальной машины. Удивительно? Но бывает нередко. Впрочем, эта нелепость устраняется легко. Чтобы не заморачиваться с CLI, установите с помощью эмулятора терминала великолепную утилиту gnome-system-tools (она есть в репозиториях) командой
sudo apt-get install gnome-system-tools
Данную утилиту рекомендую для многократного употребления, поэтому скопируйте из папки /usr/share/applications значок «Пользователи и группы» на рабочий стол и запустите эту утилиту из рабочего стола. Откроется окно «Параметры пользователей». Жмите кнопку «Управление группами», в открывшемся окне «Параметры групп» скроллингом отыщите группу vboxusers, выберите её и дважды щёлкните по ней. Откроется окно «Свойства группы vboxusers». Внутри панели «Члены группы» пометьте чекбокс напротив своего имени, отражающего вас, как пользователя системы.
Во вторых, реальному порту следует присвоить права «666», что означает разрешение дуплексного обмена через компорт на уровнях владельца, членов его группы и остальных пользователей. Делается это командой
sudo chmod 666 /dev/ttyS0
Вместо ttyS0 подставьте обозначение нужного аппаратного компорта хост-машины. Вcё, теперь можно смело запускать виртуальную машину, включать привычный «виндовый» гипертерминал и с помощью виртуальной Windows настраивать модемы, управлять программаторами и т.д. Словом, делать всё то, как будто бы вы работали с реальной Windows XP или «семёркой». Успехов!
unixforum.org
Здравствуйте. такая проблема. есть контроллер с USB- он может работать как полноценное USB устройство .и как виртуальный ком-порт.
у него сейчас залита прошивка которая выдае в usb какие то цифры( скорость небольшая)-моя задача принять это. хотя бы просто увидеть что это работает. но я не знаю как сделать чтобы это железка виделась как виртуальный ком порт- чтобы с ним работать.
так по себе железка видна
lsusb
Bus 003 Device 004: ID 03eb:6124 Atmel Corp. at91sam SAMBA bootloader
.
sash-kan Администратор Сообщения: 13939 Статус: oel ngati kameie ОС: GNU Контактная информация:
Re: Виртуальный com порт
Сообщение sash-kan » 17.05.2009 15:03
Писать безграмотно — значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Re: Виртуальный com порт
Сообщение troll80 » 17.05.2009 16:07
root@siduxbox:/home/shuric# dmesg -c Initializing cgroup subsys cpuset Initializing cgroup subsys cpu Linux version 2.6.29-3.slh.1-sidux-686 (Debian 2.6.29-21) (s.l-h@gmx.de) (gcc version 4.3.3 (Debian 4.3.3-8) ) #1 SMP PREEMPT Sat May 9 00:39:53 UTC 2009 KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD NSC Geode by NSC Cyrix CyrixInstead Centaur CentaurHauls Transmeta GenuineTMx86 Transmeta TransmetaCPU UMC UMC UMC UMC BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009b800 (usable) BIOS-e820: 000000000009b800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000001fea0000 (usable) BIOS-e820: 000000001fea0000 - 000000001feae000 (ACPI data) BIOS-e820: 000000001feae000 - 000000001ff00000 (ACPI NVS) BIOS-e820: 000000001ff00000 - 0000000020000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved) DMI 2.3 present. last_pfn = 0x1fea0 max_arch_pfn = 0x100000 x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 kernel direct mapping tables up to 1fea0000 @ 7000-c000 RAMDISK: 1f4f9000 - 1fe8f5b7 ACPI: RSDP 000F6DB0, 0014 (r0 PTLTD ) ACPI: RSDT 1FEA81AD, 0034 (r1 PTLTD RSDT 6040000 LTP 0) ACPI: FACP 1FEADE20, 0074 (r1 ATI Piranha 6040000 ATI F4240) FADT: X_PM1a_EVT_BLK.bit_width (16) does not match PM1_EVT_LEN (4) FADT: X_PM1b_EVT_BLK.bit_width (16) does not match PM1_EVT_LEN (4) ACPI: DSDT 1FEA81E1, 5C3F (r1 ATI SB400 6040000 MSFT 100000E) ACPI: FACS 1FEAEFC0, 0040 ACPI: SSDT 1FEADE94, 00D6 (r1 PTLTD POWERNOW 6040000 LTP 1) ACPI: APIC 1FEADF6A, 005A (r1 PTLTD APIC 6040000 LTP 0) ACPI: MCFG 1FEADFC4, 003C (r1 PTLTD MCFG 6040000 LTP 0) ACPI: Local APIC address 0xfee00000 0MB HIGHMEM available. 510MB LOWMEM available. mapped low ram: 0 - 1fea0000 low ram: 00000000 - 1fea0000 bootmap 00002000 - 00005fd4 (9 early reservations) ==> bootmem [0000000000 - 001fea0000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000] #1 [0000001000 - 0000002000] EX TRAMPOLINE ==> [0000001000 - 0000002000] #2 [0000006000 - 0000007000] TRAMPOLINE ==> [0000006000 - 0000007000] #3 [0000100000 - 000055b448] TEXT DATA BSS ==> [0000100000 - 000055b448] #4 [001f4f9000 - 001fe8f5b7] RAMDISK ==> [001f4f9000 - 001fe8f5b7] #5 [000055c000 - 000055f000] INIT_PG_TABLE ==> [000055c000 - 000055f000] #6 [000009b800 - 0000100000] BIOS reserved ==> [000009b800 - 0000100000] #7 [0000007000 - 0000008000] PGTABLE ==> [0000007000 - 0000008000] #8 [0000002000 - 0000006000] BOOTMAP ==> [0000002000 - 0000006000] found SMP MP-table at [c00f6df0] 000f6df0 Zone PFN ranges: DMA 0x00000000 -> 0x00001000 Normal 0x00001000 -> 0x0001fea0 HighMem 0x0001fea0 -> 0x0001fea0 Movable zone start PFN for each node early_node_map[2] active PFN ranges 0: 0x00000000 -> 0x0000009b 0: 0x00000100 -> 0x0001fea0 On node 0 totalpages: 130619 free_area_init_node: node 0, pgdat c047ba80, node_mem_map c1000000 DMA zone: 32 pages used for memmap DMA zone: 0 pages reserved DMA zone: 3963 pages, LIFO batch:0 Normal zone: 990 pages used for memmap Normal zone: 125634 pages, LIFO batch:31 SB4X0 revision 0x11 Ignoring ACPI timer override. If you got timer trouble try acpi_use_timer_override ACPI: PM-Timer IO Port: 0x8008 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1]) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 1, version 33, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge) ACPI: BIOS IRQ0 pin2 override ignored. ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level) Enabling APIC mode: Flat. Using 1 I/O APICs Using ACPI (MADT) for SMP configuration information SMP: Allowing 1 CPUs, 0 hotplug CPUs nr_irqs_gsi: 24 PM: Registered nosave memory: 000000000009b000 - 000000000009c000 PM: Registered nosave memory: 000000000009c000 - 00000000000a0000 PM: Registered nosave memory: 00000000000a0000 - 00000000000d0000 PM: Registered nosave memory: 00000000000d0000 - 0000000000100000 Allocating PCI resources starting at 30000000 (gap: 20000000:dec00000) NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:1 nr_node_ids:1 PERCPU: Allocating 36864 bytes of per cpu data Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129597 Kernel command line: root=UUID=34f5f0d2-eb20-49fb-9e5e-b8fecae680d3 ro quiet vga=791 Enabling fast FPU save and restore. done. Enabling unmasked SIMD FPU exception support. done. Initializing CPU#0 Preemptible RCU implementation. PID hash table entries: 2048 (order: 11, 8192 bytes) Fast TSC calibration using PIT Detected 1799.920 MHz processor. Console: colour dummy device 80x25
Re: Виртуальный com порт
Сообщение troll80 » 17.05.2009 16:14
shuric@siduxbox:~$ dmesg usb 3-1: USB disconnect, address 3 usb 2-2: new full speed USB device using ohci_hcd and address 3 usb 2-2: New USB device found, idVendor=03eb, idProduct=6124 usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 2-2: configuration #1 chosen from 1 choice
Thread: Virtual COM Port
Just Give Me the Beans!
Virtual COM Port
Hi, I’m new at Ubuntu and I need something like when I connect an USB the computer recognizes as a serial device, how I can do that?
I Googled a lot but I need that for a Wine program so any ideas, feel free to tell.
Ubuntu Member
Re: Virtual COM Port
There are USB-to-serial adapters that allow you to connect to a serial device even if your machine does not have a serial port. Is that what you are asking about?
Just Give Me the Beans!
Re: Virtual COM Port
Originally Posted by Lars Nood�n
There are USB-to-serial adapters that allow you to connect to a serial device even if your machine does not have a serial port. Is that what you are asking about?
Thanks for your fast reply, but I have a printer that connects in USB port, but I need that the port can be recognized as a serial (ttys0) port, because I need it in a Windows wine program.
By the way, the USB-Serial adapter couldn’t be a bad idea, thanks.
Ubuntu Member
Re: Virtual COM Port
Ok. Have you looked for some /dev/ttyUSB0 or something like that when you’ve plugged in your USB printer?
Just Give Me the Beans!
Re: Virtual COM Port
Originally Posted by Lars Nood�n
Ok. Have you looked for some /dev/ttyUSB0 or something like that when you’ve plugged in your USB printer?
Ubuntu Member
Re: Virtual COM Port
It’s not a matter of configuring it, it’s there if the device already appears to Ubuntu to be a serial device. If that is the case then you should be able to connect to it like any other serial device.
Does /dev/ttyUSB0 or similar appear when you plug in that device?
Just Give Me the Beans!
Re: Virtual COM Port
Originally Posted by Lars Nood�n
Caveat: I’m not into hardware.
It’s not a matter of configuring it, it’s there if the device already appears to Ubuntu to be a serial device. If that is the case then you should be able to connect to it like any other serial device.
Does /dev/ttyUSB0 or similar appear when you plug in that device?
It’s USB.
But the printer has an option that let you print in a Virtual COM port, so I’ll try if I connect the printer in that state the ttyUSB0 appears, but, wait a minute. How I can know if the printer is recognized? Is there a devmgmt.msc in ubuntu?