Gus Wirth wrote:

Ralph Shumaker wrote:

Ralph Shumaker wrote:

I have just installed fc4 on a clean new system.

On my old system, rh9 saw the modem as /dev/ttyS4 (note the "S4") and automatically setup the link /dev/modem to point to it (or come to think of it, I /may/ have had to set up the link manually). Anyway, this link survived reboots.

On my new system, fc4 sees the same modem as /dev/ttyS14 (note the "S14") and does not set up the /dev/modem link. What's more, each and every time I reboot, the link disappears. The link survives logouts, but not reboots.

It wouldn't be so bad if the PPP program interfaces would offer /dev/ttyS14, but they don't go beyond /dev/ttyS4. But since they offer /dev/modem, I can just link /dev/modem to /dev/ttyS14, except that I have to do it after every boot to keep them working.

Anyone know what's going on with the evaporating link?


MAKEDEV(8) Linux Programmer’s Manual MAKEDEV(8)

NAME
MAKEDEV - create devices

[snip]

BUGS
Let’s hope not. If we’re lucky, any problems we’ll find will be confined to the configuration files, which were written by examining the devices.txt file. If your system uses udev, conflicts between devices.txt and the in-kernel data
which udev uses for naming devices may crop up.

Gus suggested making a link with MAKEDEV (and reading its man) while Vinodh suggested using udev (nice pdf on that subject BTW). "man 8 MAKEDEV" mentions possible conflicts between MAKEDEV and udev. Does it matter which one I use?

(My thanks to Gus and Vinodh for info I didn't know.)

(My thanks to Carl for reminding me of something I'd forgotten, namely "/etc/rc.local".)


After doing some more research into this, the solution I mentioned won't work with Fedora Core 3 running udev because the MAKEDEV script doesn't get called the normal way.

The corrrect way to do this for systems with udev is to create a little script under /etc/dev.d/$DEVNAME/ where $DEVNAME represents the real device name. Here is the step-by-step method that I just tested:

Create directory /etc/dev.d/ttyS14 like so (note that this needs to be done as root or preferably use sudo):

# mkdir /etc/dev.d/ttyS14

Create a shell script in the new directory called modem.dev
Note that the .dev suffix is required. I used vi but you can use any text processor of your choice. The contents of the modem.dev file are:

<------ snip here ------->
#!/bin/sh

cd /dev
ln -s $DEVNAME modem

<------ snip here ------->

The $DEVNAME environment variable is passed in by the udev system when the device is created. Using this allows you to quickly change the modem link by merely renaming the directory.

Make the script executable with chmod:

# chmod u+x /etc/dev.d/ttyS14/modem.dev

Reboot the system. When the system starts up, udev will execute your script after it creates the ttyS14 device node, thus creating a link from modem to ttyS14.

If all this seems like too much work, carl's method of putting the link command in rc.local is your best solution.


Carl's way *does* have the appeal of fewer steps. But simplicity aside, what are the pros and cons of one way over the other?

Although I *still* don't understand why the system (fc4) erases the link I set up. I don't even know if it's the shutdown or the bootup that obliterates it. I can't even boot up with Knoppix and check the directory since Knoppix does not default to being able to see into LVMs and I don't know how to get it to do so, not that it really matters, so shutdown, startup, who knows? Or maybe in rh9 I had done the rc.local bit. But that drive is lost.


--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to