Page 2 of 6

Posted: Wed 28 Oct 2009, 21:45
by Whitesnow
tempestuous wrote:you could install the MADWiFi (ath_pci) driver from earlier in this thread. The ath_pci driver supports AP mode, regardless of kernel version.
I didn't know. Thank you, I'll try. :)
tempestuous wrote:Be aware that ad-hoc mode is completely different to AP mode. I will post an ad-hoc HOWTO soon.
For ad-hoc net I mean two PC linked by wifi without a DHCP server. IPs set manually. If I don't set one of these computers as AP, I can't link. :?:
Formally, I know you right. :)

OT: I have download 4.3.1, but I have seen that bootmanager, like 4.3.0., can still boot not more than 6 sfs and cannot find kernel src mirrored (virtualbox refuses to run without).
Someone can indicate me where I can find information about these topics?

Posted: Thu 29 Oct 2009, 10:06
by tempestuous
Whitesnow wrote:For ad-hoc net I mean two PC linked by wifi without a DHCP server. IPs set manually. If I don't set one of these computers as AP, I can't link.
That's not ad-hoc. It's a situation where one of your computers is an access point (wifi master mode) and the other computer is a conventional client (wifi station mode).

In ad-hoc mode, both computers are equal peers. I just posted an ad-hoc HOWTO here -
http://www.murga-linux.com/puppy/viewto ... 929#159929

Posted: Mon 02 Nov 2009, 02:32
by jemimah
The 2.6.30.5 kernel has Atheros drivers atl1c and atl1e, but some atheros cards will not work with the default driver, notably the EEE 1005HA, and possibly others. I've attached a pet file of the manufacturer's driver, downloaded from the Atheros site. http://partner.atheros.com/Drivers.aspx

Edit: I've uploaded a new version of 1.0.0.10 and added 1.0.0.11-test. It's been mentioned to me that the test version is required for some newer cards; it seems more stable on my machine as well.

Edit: updated both pets for bug tempestuous found
Edit: 12/29/09 updated both pets to include preflist hotfix

Posted: Mon 30 Nov 2009, 02:13
by tempestuous
EDIT November 17 2010
Latest Atheros/Attansic atl1e ethernet driver now available later in this thread -
http://www.murga-linux.com/puppy/viewto ... 846#467846

EDIT Dec 30 2009
jemimah's atl1e dotpets in the previous post compete with the standard atl1c driver in Puppy 4.3.x
so you must also install the modules-preference fix from here -
http://www.murga-linux.com/puppy/viewto ... 659#371659
(as mentioned in the first post in this thread)

Posted: Mon 30 Nov 2009, 04:09
by jemimah
Thanks, I had been meaning to update that pet as some people had troubles with it. There's also a newer 1.0.0.11-test version should probably be packaged. I'll post a new pet when I get a chance.

Although, the atl1c driver will try to load on my ethernet card, so adding it to the preflist will probably prevent the correct atl1e driver from loading.

Posted: Mon 30 Nov 2009, 04:39
by tempestuous
jemimah wrote:the atl1c driver will try to load on my ethernet card, so adding it to the preflist will probably prevent the correct atl1e driver from loading.
When configured properly, the PREFLIST (which is referenced by Puppy's version of udev) sets the preference/priority of one module over another.

Posted: Mon 30 Nov 2009, 05:22
by jemimah
Ok, I just did a test with the standard kernel. On my hardware, the old atl1c driver loads, but it's the wrong driver and will not work; dhcp fails to obtain an IP. When I install the new atl1e driver pet, the old atl1c driver continues to load. If I add atl1c:atl1e to the preflist, atl1c still loads. If I blacklist atl1c, then neither driver loads. So the only way it works is if if I add atl1e to the whitelist and add atl1c to the blacklist. Hope that clarifies things. YMMV on different hardware.

Posted: Mon 30 Nov 2009, 06:09
by tempestuous
jemimah wrote:If I add atl1c:atl1e to the preflist, atl1c still loads.
Then PREFLIST (or udev/pup_event) is not working as designed. This, then, is a bug and should probably be reported to Barry.

This situation might explain a few other problems reported on the forum involving conflicting modules.

EDIT:
I just reported this in the "Puppy 4.3.1 -- bug reports and suggestions" thread.

Posted: Mon 30 Nov 2009, 14:38
by jemimah
Interestingly, it works fine in Puppeee 4.31 (the only relevant difference being the lightweight kernel build) .

Posted: Thu 03 Dec 2009, 16:16
by rerwin
tempestuous, jemimah,
Then PREFLIST (or udev/pup_event) is not working as designed. This, then, is a bug and should probably be reported to Barry.
Since I am already modifying pup_event_backend_modprobe, I would like to include a fix for this problem in my updated version.

Could you re-run your original attempt to set the preference (with no atl1? added or blacklist entries)? But please do not edit any files for this -- use the BootManager to set the preference and be sure the two names are separated only by a colon and no spaces. Once rebooted, please tell me which atl1? lsmod shows as loaded, what the /etc/rc.d/MODULESCONFIG file has for the PREFLIST= data, and whether the /etc/modprobe.conf file contains an entry: "blacklist atl1c" near the end. Also, please save and then attach file /tmp/udevtrace.log to your posting. Then reboot again to see if the preference is fulfilled. (The idea is that maybe the blacklist entry is only added on the first reboot, so is not effective the first time; when present, there might be different behavior.) The udevtrace file might be interesting at that point, too.

To address your concern that by setting the preference you would be unable to use another NIC that takes the old atl!c module, there is a way to specify the preference for only certain hardware IDs. That fix would be to edit-add two items to the "PCI_OVERRIDES=" variable in /etc/rc.d/MODULESCONFIG, as:
atl1e 0x00001969 0x00001062
atl1e 0x00001969 0x00001063

This assumes that the NIC is not USB and that the override will always be valid for those NICs -- at least until the drivers change further.

But I am really concerned about the appearance that the preference listing in not effective. If the information I requested above is indeed present/correct, I will need to provide a "wired" version of the pup_event script to see where things go wrong. But first we need to verify that the preference was entered correctly when it failed.
Richard

Posted: Thu 03 Dec 2009, 19:47
by jemimah
I retested with the same result. Rebooted twice. Still atl1c loads. I think the blacklist entry is not being added to modprobe.conf.

Posted: Sat 05 Dec 2009, 03:22
by rerwin
jemimah,
Thanks for the files. I have a confession to make: I jumped to the wrong conclusion about where the "blacklist atl1c" goes. It goes to /tmp/pup_event_prefhit_blacklist and is used immediately in attempting to load the alternative module. Now I have looked deeper into how the preference function works.

The main requirement for a preference to "take" is that multiple modules must claim to support the same device. You can't just tell puppy to use just any module. The /lib/modules/2.6.30.5/modules.alias file contains that information. The released 4.3.1 file contains this:

Code: Select all

alias pci:v00001969d00001048sv*sd*bc*sc*i* atl1
alias pci:v00001969d00001026sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001066sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001063sv*sd*bc*sc*i* atl1c
alias pci:v00001969d00001062sv*sd*bc*sc*i* atl1c
There is no duplication of coverage between -c and -e. Since you are using your own version of atl1e, after you install it -- it should overwrite puppy's (or also delete puppy's) -- you must then enter the command:
depmod
to update that file. If you see similar entries for both modules, the preference setting should be effective; if no duplicates for your modem, the preference won't work.

Please try the "depmod" and then check the modules.alias file, by entering the command:
grep ' atl1' /lib/modules/2.6.30.5/modules.alias

If you find you have the duplication of coverage and the preference still doesn't work, I will need you to try a "wired" modprober, to see what is happening internally. If there is no duplicate, you will need to use your workaround or edit the MODULESCONFIG file PCI_OVERRIDES variable.
Richard

Posted: Sat 05 Dec 2009, 05:20
by tempestuous
To start with, there are some problems with jemimah's atl1e-1.0.0.11-test.pet:
The post-install script contains this -

Code: Select all

mv /lib/modules/2.6.30.5/kernel/drivers/net/atl1e/atl1e.ko /lib/modules/save
which will actually rename the old module as "save". I suspect the intention was to keep its original name, but relocate it to /lib/modules/save

Also there's a significant typo -

Code: Select all

depmod-Full -a
this command is unrecognised ... so the new module fails to be registered.

Once I run the correct command -

Code: Select all

depmod-FULL -a
my updated modules.alias file then contains this -

Code: Select all

alias pci:v00001969d00002060sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001062sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001063sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001066sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001067sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001026sv*sd*bc*sc*i* atl1e
alias pci:v00001969d00001062sv*sd*bc*sc*i* atl1c
alias pci:v00001969d00001063sv*sd*bc*sc*i* atl1c
As you can see, there's a direct overlap for devices 1969:1062 and 1969:1063.

Posted: Sat 05 Dec 2009, 11:11
by davesurrey
@rerwin,

Richard, sorry for butting into a puppy 431 thread but tempestuous has kindly pointed me here as I have wifi problems in both puppy 412 and 421 which he believes are due to faulty PREFLIST mechanism in these distros. Similar to what is happening here.
see http://www.murga-linux.com/puppy/viewto ... 542#368542

My question, will your modifications to pup_event_backend_modprobe be applicable to kernel 2.6.25.16 also ?

Thanks for all your efforts.

Dave

Posted: Sat 05 Dec 2009, 17:19
by jemimah
I've fixed the typo tempestuous found and uploaded new versions. Sorry about that!

Posted: Sun 06 Dec 2009, 02:00
by rerwin
jemimah, davesurrey, tempestuous,
So far, I have not made any fix for the preference issue. But if the problem is still present now that the corrections have been made, please insert three debug lines into /sbin/pup_event_backend_modprobe after line 144 (which begins with "xMODULE=":

Code: Select all

 echo "MODULE: $MODULE  PREFHIT: $PREFHIT  PREFMOD: $PREFMOD  xMODULE: $xMODULE" >> /tmp/rerwin-pref.log #rerwin
 echo "MODULES: $MODULES" >> /tmp/rerwin-pref.log #rerwin
 echo "Blacklist: `cat /tmp/pup_event_prefhit_blacklist`" >> /tmp/rerwin-pref.log #rerwin
I tested them using a ltmodem driver dotpet, which detected my Agere modem. I set a preference for martian_dev, and it all seemed to work. The debug data in /tmp/rerwin-pref.log is:
MODULE: ltmodem PREFHIT: ltmodem:martian_dev PREFMOD: martian_dev xMODULE: martian_dev
MODULES: martian_dev
ungrab_serial
v8250
ltmodem
Blacklist: blacklist ltmodem
Dave, the same version of the modprobe script is used in both kernel-versions of 4.3.1. However, the kernel support of the modprobe command might differ between kernels. Once we understand the problem in both kernels of 4.3.1 and fix it, I can probably retrofit the fix into 412 & 421.

Interestingly, I actually mistyped the preferred module name and it did not impact the result! Looking at the "MODULES" values, since ltmodem is blacklisted, puppy finds whatever is left, excluding the ltmodem dependencies (ungrab... & v8...). Puppy normally chooses the last name in the MODULES list. Part of my fix to that script will be to verify it finds the desired module, in case there are more than one alternative.
Richard

Posted: Sun 06 Dec 2009, 20:29
by davesurrey
rerwin,

I added your 3 lines of code to /sbin/pup_event_backend_modprobe after the xModule section (prior to fi) in my 431 install and /tmp/rerwin-pref.log gave me an output very similar to yours except it blacklisted rtl8187 in favour of r8187.
But of course everything is working well in 413.

Then I looked at 412 and found that the file /sbin/pup_event_backend_modprobe is different to that in 431. But I added your 3 lines into the section xModules. But after a reboot there wasn't any /tmp/rerwin-pref.log to be seen.

I did get an output very different to rerwin's log if I put the 3 lines of code afer "fi" .

rerwin I appreciate that you want to fix 431 first but may I also ask that you look to 420/412 as I am sure I am not alone in feeling some frustration that I can't sometimes use these distros due to non working wifi or other drivers which may well be due to this bug.

Many thanks
Dave

Posted: Mon 07 Dec 2009, 05:15
by tempestuous
rerwin,
Even though jemimah has corrected the post-install script for atl1e-1.0.0.11-test.pet
the failure of PREFLIST settings has been reported in several other instances.
So where does that leave us? When I provide an updated kernel module which competes with a standard module, should I

i) create a PREFLIST entry ...
plus a BLACKLIST (SKIPLIST) entry
plus a WHITELIST (ADDLIST) entry?

ii) delete or remove the competing standard module?

Posted: Mon 07 Dec 2009, 15:22
by rerwin
tempestuous,
Can you wait a bit? I am working on a comprehensive fix to try, that may correct some of the preflist problems, if not all. But I am waiting for feedback from jemimah or anyone else seeing a problem in 4.3.1. Please insert the debug lines I posted above, so I can see what the situation is with the atl1c/e modules. I can guess all I want about how to improve this, but I need some diagnostic evidence to be sure I am fixing the right problem.

My fixes so far include looking for the specific substitute module no matter how many possibilities there are. Currently, only the "next in line" module is chosen, no matter what is specified as the preference. In addition, I am adding some special HSF/ALSA modem-conflict resolution.

My concern is that my fixes may not address the atl1c/e issue. Once I see the information I need to understand that situation, I plan to post here a corrected backend_modprobe that should work in 431. 412 & 421, kernels 2.6.30.5 & 2.6.25.16. I don't know yet whether it would also apply to 2.6.21, but won't wait to find out.

BTW: Where should I put all the fixes I am producing, as additions for 4.4 as well as for retrofitting to 4.3.1 by the users?
Richard

Debug versions of module-preferences fix

Posted: Tue 08 Dec 2009, 00:07
by rerwin
Everyone with issues about the option to specify module preference when multiple drivers are available for a device:

Here are the debug versions of my preference function fix based on what I know at this point. There are two versions: one for 4.3.1 and the other for both 4.1.2 and 4.2.1. Please install the appropriate version, reboot, and PM the content of:
/tmp/rerwin-prefs.log

Also verify that /tmp/rerwin-error.log is blank/empty.

Eagerly awaiting some results. You can send the info by PM to me, to minimize further hijacking of this thread.

UPDATE: I have added my candidate for release to tempestuous, but with debug additions. I will remove them when I submit it to tempestuous for general use. I found the probable cause of the "atl1c/e" problem, which is due to multiple instances of the modprober running concurrently but using the same temporary blacklist file, so sometimes the old module was not being blacklisted correctly.

Now, I need someone with a wireless modem to try this out, because it re-implements a fix to ensure the correct module gets loaded. Please send me the contents of the /tmp/rerwin-pref.log file. TIA.
Richard

UPDATE 12/13/09: I have posted links to my completed fix packages for pup_event_backend_modprobe, in my second-next posting below. http://www.murga-linux.com/puppy/viewto ... 669#371669
The debug versions are no longer relevant, so I have removed them. Please use the new version and report any problems to me by PM, since it would be off-topic for this driver thread.
Richard