You are not logged in.

#1 2006-02-16 14:48:19

swiergot
Member
From: Kraków, Poland
Registered: 2005-01-08
Posts: 145

modprobe.conf not processed?

After today's upgrade (initscripts and udev, but I think it's fault of the new initscripts) it seems like modprobe.conf isn't processed anymore. I have there:

install lirc-serial setserial /dev/ttyS0 uart none ; modprobe -i lirc-serial ; true
install em8300 modprobe adv717x ; modprobe -i em8300 ; true

and in the MODULES array I have lirc-serial and em8300 (both not detected bu udev). lirc-serial fails to load because setserial isn't executed. em8300 doesn't create all necessary device files because adv717x isn't loaded before em8300. Any ideas?

Offline

#2 2006-02-16 18:04:40

swiergot
Member
From: Kraków, Poland
Registered: 2005-01-08
Posts: 145

Re: modprobe.conf not processed?

I've been thinking, maybe modprobe.conf is processed well and it's all because modules are loaded and create device files when the /dev directory still isn't set up (after all udev manages files in this directory, doesn't it?). If that's true, today's change should be reverted - no module can be loaded before udev is started.

Offline

#3 2006-02-16 18:43:35

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,835

Re: modprobe.conf not processed?

Put these modules on udev's blacklist, and then load them from rc.conf MODULES. According to the new udev wiki page, the best way to do this is

MODULES=(!lirc-serial !em8300 lirc-serial em8300)

Offline

#4 2006-02-16 19:25:20

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: modprobe.conf not processed?

tomk wrote:

Put these modules on udev's blacklist, and then load them from rc.conf MODULES. According to the new udev wiki page, the best way to do this is

MODULES=(!lirc-serial !em8300 lirc-serial em8300)

With the new udev in testing, MODULES are loaded before udev.  And yes, udev can happily manage modules loaded before it has started - that's the point of the 'uevents' subsystem. So, you can get away with just:

MODULES=(lirc-serial em8300)

However, let me suggest two things.... first off, I think you're dead on with the 'setserial' part - the node probably doesn't exist yet.
Let me point out something about how modprobe 'install' rules work:

install lirc-serial setserial /dev/ttyS0 uart none ; modprobe -i lirc-serial ; true

This line says "when lirc-serial is loaded, do this first" - lirc-serial is not actually loaded at that point - that's the reason it's modprobed right after the setserial command.  If you really need this rule, you can simply add the proper serial module before lirc-serial in the MODULES array.

I'd say stick that line in rc.local, or, even better, make a rc.d+conf.d pair for setserial, which can be added to the package.
Secondly, I'd suggest using

MODULES=(.... adv717x em8300 ....)

and getting rid of that modprobe.conf rule altogether.

Offline

#5 2006-02-16 21:19:40

swiergot
Member
From: Kraków, Poland
Registered: 2005-01-08
Posts: 145

Re: modprobe.conf not processed?

phrakture wrote:

However, let me suggest two things.... first off, I think you're dead on with the 'setserial' part - the node probably doesn't exist yet.
Let me point out something about how modprobe 'install' rules work:

install lirc-serial setserial /dev/ttyS0 uart none ; modprobe -i lirc-serial ; true

This line says "when lirc-serial is loaded, do this first" - lirc-serial is not actually loaded at that point

That's exactly what I want. The serial port needs to be configured before lirc-serial is loaded.

phrakture wrote:

If you really need this rule, you can simply add the proper serial module before lirc-serial in the MODULES array.

The question is - which module is responsible for serial port? I do lsmod and can't see any suspects. Isn't the serial port support built into the kernel?

phrakture wrote:

I'd say stick that line in rc.local, or, even better, make a rc.d+conf.d pair for setserial, which can be added to the package.
Secondly, I'd suggest using

MODULES=(.... adv717x em8300 ....)

and getting rid of that modprobe.conf rule altogether.

That's some option. But why not just use modprobe.conf the way it was meant to be used? The fact is that before today's upgrade it worked properly and the upgrade broke it.

Offline

#6 2006-02-17 06:13:40

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: modprobe.conf not processed?

As far as the serial port... no idea.

swiergot wrote:

That's some option. But why not just use modprobe.conf the way it was meant to be used? The fact is that before today's upgrade it worked properly and the upgrade broke it.

It should work fine.  Everything does use modprobe... the reason I suggested udev is that, well, udev is nutty.  Udev tries to control much more than it should be controlling... so I'd rather have all rules on one place.

Offline

#7 2006-02-17 09:25:18

swiergot
Member
From: Kraków, Poland
Registered: 2005-01-08
Posts: 145

Re: modprobe.conf not processed?

I've found that the real problem with lirc-serial is that when setserial is executed /dev/ttyS0 does not exist although serial port support is present in the kernel (at least the config looks like this). I'm pretty sure that the device file (and other supported by kernel at this time) should be there.

As for the em8300 module, the problem is that it creates device files by calling udev but udev is not running. And the device files will not be created when udev is started.

For me it's clear that udev must be executed first.

Offline

#8 2006-02-19 18:32:54

swiergot
Member
From: Kraków, Poland
Registered: 2005-01-08
Posts: 145

Re: modprobe.conf not processed?

FYI, tpowa has fixed this and now my modprobe.conf works well again. The new initscripts and udev packages should show up soon.

Offline

Board footer

Powered by FluxBB