From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brad Rodriguez Subject: Re: Can't access I/O ports with dosemu 1.0.2 Date: Fri, 27 Dec 2002 16:08:06 -0500 Sender: linux-msdos-owner@vger.kernel.org Message-ID: <3E0CC136.3090908@zetetics.com> References: <3E0C7DE5.6060902@yahoo.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <3E0C7DE5.6060902@yahoo.com> List-Id: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: linux-msdos@vger.kernel.org Thanks for your reply. Stas Sergeev wrote: > Brad Rodriguez wrote: > >> I tried changing the ownership of the executable, and giving it setuid >> status, but that didn't work. I tried running it as the root user; >> but that wasn't allowed (I got a message saying I have to run as >> normal user). > > Upgrade your dosemu. Upgrade it to what? I'm using the current "stable release" from the dosemu.org site. >> $_ports = "range 0x2f8,0x2ff range 0x320,0x327 range 0x378,0x37f range >> 0x3f8,0x3ff" > > If any of that range is listed in > /proc/ioports, then dosemu will not > allow its usage to avoid the conflicts. > So you have to disable the in-kernel > support for that devices. I see that COM1, COM2, and LPT1 are all listed in /proc/ioports, so I'll have to learn how to disable the kernel support. But 0x320-0x327 (the EPROM emulator) is not listed in /proc/ioports and I don't seem able to access those ports either. >> The software I'm using requires direct hardware access to the LPT1 > > Yes, LPT is a weak part of dosemu unless > you do a simple printing. Unfortunately, I'm not using it to print. One software package uses it to read a security dongle. I also have a second EPROM emulator that attaches to the parallel port and whose driver does a lot of bit-banging on that port. > Why would the one require a direct > access to the COM ports? The support > for those is fairly complete under > dosemu. Perhaps I don't understand how these are supported under DOSEMU. The programs I am using are not using BIOS calls to access the serial port. As far as I know, they include their own serial I/O drivers that talk directly to the bare metal. (Come to think of it, they probably also speak to the interrupt controller chip, and I don't know *how* I can allow that without completely corrupting the system.) >> Are there some simple diagnostics that I can perform to tell me if >> DOSEMU is configured properly? > > -D9+Tci log would do. Thanks. At the risk of posting an overlong message, here's the output. To my newbie eyes it looks like it's getting its config files from my private $HOME directory rather than /etc. And I see a message about "not enough privilege to define config variable c_user" which makes me wonder. CONF: config variable parser_version_3 set CONF: config variable c_system set CONF: Parsing /home/brad/dosemu/conf/global.conf file. CONF: config variable version_3_style_used set CONF: config variable version_3_style_used unset CONF: config variable version_3_style_used set CONF: opened include file /home/brad/dosemu/conf/dosemu.conf CONF: closed include file /home/brad/dosemu/conf/dosemu.conf CONF: entered user scope, includelevel 0 CONF: opened include file /home/brad/dosemu/conf/dosemurc CONF: closed include file /home/brad/dosemu/conf/dosemurc CONF: left user scope, includelevel 0 CONF: config variable skip_dosrc set CONF: variable _X_keycode replaced by user debug flags: -a+c debug flags: -dARWDCvXkiTsm#pQgcwhIExMnPrSgZ CONF: Disabling use of pentium timer CONF: dosbanner on CONF: timint on CONF: CPU set to 386 CONF: 1024k bytes XMS memory CONF: 2048k bytes EMS memory CONF: EMS-frame = 0xe000 CONF: dosemu running on remote_xterm CONF: Keyboard-layout keyb-user CONF: Keyboard-layout auto device: /dev/fd0 type 2 h: 0 s: 0 t: 0 floppy A: CONF: DPMI-Server on CONF: IRQ 3 for irqpassing uses SIGIO CONF: IRQ 4 for irqpassing uses SIGIO CONF: not allowing speaker port access CONF: IPX support off CONF(LPT0) f: (null) c: lpr o: -Plp %s t: 20 port: 378 CONF: range of I/O ports 0x02f8-0x02ff CONF: range of I/O ports 0x0320-0x0327 CONF: range of I/O ports 0x0378-0x037f CONF: range of I/O ports 0x03f8-0x03ff device: /home/brad/dosemu/freedos type 4 h: -1 s: -1 t: -1 drive C: CONF: config variable c_system unset CONF: not enough privilege to define config variable c_user debug flags: 9+Tci CONF: Keyboard-layout auto CONF: Forceing neutral Keyboard-layout, X-server will translate CONF: mostly running as USER: uid=500 (cached 500) gid=500 (cached 500) CONF: reserving 640Kb at 0x00000 for 'd' (Base DOS memory (first 640K)) CONF: reserving 64Kb at 0xF0000 for 'r' (Dosemu reserved area) PORT: registered "VGAEmu VGA Controller" handle 0x06 [0x03c0-0x03cf] fd=-1 PORT: registered "VGAEmu CRT Controller" handle 0x07 [0x03d4-0x03d5] fd=-1 PORT: registered "VGAEmu Input Status #1/Feature Control" handle 0x08 [0x03da-0x03da] fd=-1 PORT: registered "VGAEmu Mono/Hercules Card" handle 0x09 [0x03b0-0x03bf] fd=-1 CONF: reserving 128Kb at 0xA0000 for 'v' (Video memory) PORT: registered "8254 Timer0" handle 0x0a [0x0040-0x0040] fd=-1 PORT: registered "8254 Timer1" handle 0x0b [0x0041-0x0041] fd=-1 PORT: registered "8254 Timer2" handle 0x0c [0x0042-0x0042] fd=-1 PORT: registered "8254 Ctrl02" handle 0x0d [0x0043-0x0043] fd=-1 PORT: registered "CMOS RAM" handle 0x0e [0x0070-0x0071] fd=-1 PORT: registered "8259 PIC0" handle 0x0f [0x0020-0x0021] fd=-1 PORT: registered "8259 PIC1" handle 0x10 [0x00a0-0x00a1] fd=-1 PORT: registered "8042 Keyboard data" handle 0x11 [0x0060-0x0060] fd=-1 PORT: registered "8042 Keyboard command" handle 0x12 [0x0064-0x0064] fd=-1 PORT: registered "Speaker port" handle 0x13 [0x0061-0x0061] fd=-1 PORT: registered "DMA - XT Controller" handle 0x14 [0x0000-0x000f] fd=-1 PORT: registered "DMA - XT Pages" handle 0x15 [0x0081-0x0087] fd=-1 PORT: registered "DMA - AT Controller" handle 0x16 [0x00c0-0x00de] fd=-1 PORT: registered "DMA - AT Pages" handle 0x17 [0x0089-0x008a] fd=-1 PORT: registered "Adlib (+ Advanced) Emulation" handle 0x18 [0x0388-0x038b] fd=-1 PORT: registered "Midi Emulation" handle 0x19 [0x0330-0x0331] fd=-1 PORT: 0x3b8 can't be mapped to handle 0x5(0x9) PORT: 0x3bf can't be mapped to handle 0x5(0x9) PORT: 0x3ce can't be mapped to handle 0x1(0x6) PORT: 0x3cf can't be mapped to handle 0x1(0x6) PORT: 0x3d4 can't be mapped to handle 0x1(0x7) PORT: 0x3d5 can't be mapped to handle 0x1(0x7) PORT: 0x3da can't be mapped to handle 0x1(0x8) PORT: 0x3ba can't be mapped to handle 0x5(0x9) PORT: 0x3da can't be mapped to handle 0x5(0x8) PORT: 0x3d4 can't be mapped to handle 0x5(0x7) PORT: 0x3d5 can't be mapped to handle 0x5(0x7) CONF: reserving 64Kb at 0xE0000 for 'E' (EMS page frame) TIME: using 9154 usec for updating ALRM timer DOS termination requested SPEAKER: sound OFF! Thanks again, Brad