Extras for Puppy 4.3 with 2.6.30.5 kernel

For drivers and kernel modules.
Message
Author
User avatar
Whitesnow
Posts: 118
Joined: Tue 20 Nov 2007, 19:18
Location: Italy

#31 Post 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?
[b][i][color=darkred][size=134]*.* Snow *.*[/size][/color][/i][/b] :wink:

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#32 Post 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

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#33 Post 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
Attachments
atl1e-1.0.0.11-test.pet
(34.81 KiB) Downloaded 1357 times
atl1e-1.0.0.10.pet
(34.63 KiB) Downloaded 1347 times
Last edited by jemimah on Tue 29 Dec 2009, 15:41, edited 3 times in total.

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#34 Post 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)
Last edited by tempestuous on Wed 17 Nov 2010, 00:58, edited 2 times in total.

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#35 Post 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.

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#36 Post 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.

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#37 Post 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.

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#38 Post 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.

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#39 Post by jemimah »

Interestingly, it works fine in Puppeee 4.31 (the only relevant difference being the lightweight kernel build) .

User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

#40 Post 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

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#41 Post 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.
Attachments
MODULESCONFIG.gz
(1.39 KiB) Downloaded 1206 times
modprobe.conf.gz
(1.34 KiB) Downloaded 1238 times
udevtrace.log.gz
(2.21 KiB) Downloaded 1178 times

User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

#42 Post 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

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#43 Post 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.

davesurrey
Posts: 1198
Joined: Tue 05 Aug 2008, 18:12
Location: UK

#44 Post 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

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#45 Post by jemimah »

I've fixed the typo tempestuous found and uploaded new versions. Sorry about that!

User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

#46 Post 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

davesurrey
Posts: 1198
Joined: Tue 05 Aug 2008, 18:12
Location: UK

#47 Post 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

tempestuous
Posts: 5464
Joined: Fri 10 Jun 2005, 05:12
Location: Australia

#48 Post 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?

User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

#49 Post 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

User avatar
rerwin
Posts: 2017
Joined: Wed 24 Aug 2005, 22:50
Location: Maine, USA

Debug versions of module-preferences fix

#50 Post 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
Last edited by rerwin on Mon 14 Dec 2009, 03:27, edited 3 times in total.

Post Reply