Letters to the Editor
I thoroughly enjoy Linux Journal, but (better yet) I thoroughly like Linux! I have come across a problem, however, that I am having difficulty correcting.
My system at home is a Packard Bell Legend 1170. Yes, I'm aware of all the jokes/stories/ etc.,...we'll skip that part! I like my computer and it serves my purposes fine for now.
I have upgraded it to 8mb of RAM, added a PowerGraph video card and most recently installed a new Zoom modem to replace the built-in 2400 that PB uses. During the installation, I discovered that the original built-in modem could not be physically removed, but COM PORT 1 could be disabled. Therefore I disabled COM PORT 1 and set my new modem up for COM PORT 3. The comm program in the DOS partition of my computer works fine with the modem (14.4k beats 2400bd all to pieces!).
The question I have been struggling with is how do I tell my Linux partition to go to COM PORT 3? I've checked with other Linux users and the Linux manual and the common response (other than “replace the computer” or “sue PB”) is that I should create a cua3 in dev. But the problem is there is already a cua0, 1, 2, and 3; so, obviously, the problem is not creating it, but making the connection somehow.
I am sure this is a relatively easy problem that someone more familiar with Linux and more technically proficient than I, can solve easily. I certainly would appreciate any information you may be able to provide me, even if it's a page number and a note to RTM! Great—I'll find it and read it!
Thank you and keep up the good work with the magazine. It is one of the very few that seems to consider those of us who are not computer wizards by publishing articles that are easily read and understood even by a novice such as myself. The series on Andrew was great and I find it does indeed live up to all the claims!
Thanks again.Donald R. Barnhart (barney) email@example.com
COM1=cua0, COM2=cua1, COM3=cua2, COM4=cua3, unless Linux is told otherwise. There is a Serial HOWTO at sunsite.unc.edu in /pub/Linux/docs/HOWTO/ that will tell you what you need to know.
I'm not sure what you mean by “tell my Linux partition to go to COM PORT 3”. What software are you using the modem with under Linux? Kermit? Seyon? Something else? You probably need to configure the program you are using to connect to the correct port. You may have a file /dev/modem which is linked to the previously correct port, and you may need to remake the link:
rm /dev/modem ln -s /dev/cua2 /dev/modem
assuming your modem is correctly installed on cua2.
The other very important thing to consider is the IRQ setting. The modem should not share an IRQ with any other serial line on the computer. The setserial program, which comes with most Linux distributions and can also be retrieved with ftp from tsx-11.mit.edu, is the program to use to make sure that Linux knows what IRQ your modem is on. Again, the Serial HOWTO can help you with this.
I want to thank Matt Welsh for writing the article “X Window System Programming with Tcl and TK” (LJ #8). I see a way now to add an X windows interface to my slow port of a DOS style BBS to Linux. I have started the task of moving the simplex BBS software to Linux. Simplex is interesting because it is a complete fidonet BBS package. I mean it can import fido echomail and netmail. I don't know of a BBS for Linux that can do this.
I think that the article was very well written and I enjoyed reading it and fooling around with Tcl/Tk. I can hardly wait for the one explaining how to do this from C.
P.S. A list of Linux user groups would be a nice addition. Thank you for all you have done for Linux and the Linux community!Geoffrey Robert Deasey Geoffrey.Deasey@lambada.oit.unc.edu
Having another BBS for Linux will be nice. We have begun publishing a BBS list in this issue (see page 44); BBS sysops are encouraged to send us information about their Linux-specific (or even better, Linux-hosted) BBSs.
As far as Linux User Groups, see page 39 of the November issue and page 46 of the December issue. Our biggest problem in creating a list of Linux User Groups has been that most of the groups have not contacted us to volunteer information.
See page 26 for Matt's latest article: Using Tcl and Tk from your C programs.
Hi! First off, thanks for Linux Journal. I have a comment about a particular command in the article “Linux Tips: How to move /home to a new hard drive on your Linux system” in December's issue.
cp -r /home/* /mnt
as suggested to copy the home directory does not copy symbolic or hard links correctly. (I am not sure about the other command suggested for I don't have cpio on my system.) If the user has many links, she will find that the “copy” in /mnt takes up more disk space. The following command will copy links correctly:
(cd /home ; tar cf - .) | (cd /mnt ; tar xvf -)
Cheers,Delman Lee firstname.lastname@example.org
We had the same problem in an earlier article, and the same (correct) response. I never use cp -r myself, and for some reason or other did not catch this mistake. Thanks for the note.
The control port which corresponds with printer data port 0x378 is 0x37a, and not 0x380, as described in Kernel Korner, December issue (#8). Why is it required that the example user space printer driver be compiled with optimization turned on? And what level opt?David Morris email@example.com
You are absolutely right; I must have been writing too late at night. Fortunately, this mistake was not propagated into the userlp.c code that was included in the article; there, I let the computer do the arithmetic, so that I couldn't accidentally replace hex arithmetic with decimal arithmetic. The reason I was working in decimal was that I had just been working on the shell script version which I mentioned but didn't include in the article, where I had to do all the arithmetic in decimal. Perhaps that is another good reason not to try to write device drivers as shell scripts.
The reason that the userlp.c program included has to be compiled with optimization (of any level at all) turned on is that all the port I/O functions are defined in the header files as “static inline” functions, a GCC extension is enabled only by turning on optimization. I'm sorry that was not adequately addressed in the article.