How can I replace the system driver?

Hi,I would like to try to fix problems on a system driver (idualwifi7260).
So,I got the source codes,added debug codes and build it.
Then,I would like to replace the driver to my driver for debug.
But I have no idea to do that.
Someone please tell me the way to that.
Thanks in advance.

1 Like

Blacklist the driver and create a test hpkg and then install to test.

https://besly.de/index.php/de/28-systemeinstellungen-1/275-blacklist-ignore-problematic-hardware

https://besly.de/index.php/en/package-system/hpkg-creator

1 Like

Instead of making a hpkg you coul put the driver into the system/non-packaged folderstructure. Maybe you will have to create the required subfolders.

2 Likes

Welcome isaomuse!

As extrowerk said. The system hierarchy mirroring folder for your driver would be:
/boot/system/non-packaged/add-ons/kernel/drivers/bin/idualwifi7260

There’s also a link to the driver in the system hierarchy that I’m never sure is actually needed when replacing with a test driver. Maybe someone in the know can shed some wisdom here. In any case, you may want to link your test driver in:
/boot/system/non-packaged/add-ons/kernel/drivers/dev/net/idualwifi7260

Blacklisting the original driver shouldn’t be needed. You can check which driver is used (after rebooting) with listimage in Terminal. For my wlan chipset that would be:

~/Desktop> listimage | grep iprowifi
 2564 0xffffffff81247000 0xffffffff812d8000     0          0 /boot/system/add-ons/kernel/drivers/dev/net/iprowifi4965

If all went well, you’ll see the “non-packaged” path there.
Good hunting on your bug chase!

2 Likes

Afaik symlinking not needed, but wont harm.

All guys,Thank you for quick response and answers.
I will try!

Hi,I’d like to try to fix problems on system driver(idualwifi7260).
So,I got source codes,added debug codes, and built it.
Then, I tested my test-driver but it’s not loaded.
Syslog said,just only “General system error”.

KERN: Could not loadKERN: kernel add-on “/boot/system/non-packaged/add-ons/kernel/drivers/dev/net/idualwifi7260”: General system error

I have no idea to investigate what’s wrong with me.
Anybody knows how to investigate the cause?
Or how to solve this problem?
Thanks in advance.

[I’ll merge this thread with your first one, if you don’t mind.]

Are you sure you used the right folders for driver and symlink, as posted above?

The driver binary belongs in
/boot/system/non-packaged/add-ons/kernel/drivers/bin/idualwifi7260

The symlink to it in
/boot/system/non-packaged/add-ons/kernel/drivers/dev/net/idualwifi7260

Thank you for merging thread.
And,YES! I’m sure that the module and symlink are correctly placed.
I doubt the source codes,so I got other(r1beta2) source codes.
And built it,tried again.
It seemed that the driver was loaded,but system was halted!
(No response by any mouse/keyboard operations)
I will keep trying.
If you know any hint/solutions,please tell me.
Thanks a lot.

Sorry, I can’t be of more specific help. It works for me when I just tried it, though I did have to blacklist the original driver. I did:

  • build my iprowifi4965 driver from current source
  • copied the built binary to /boot/system/non-packaged/add-ons/kernel/drivers/bin
  • put a symlink to it in /boot/system/non-packaged/add-ons/kernel/drivers/dev/net
  • rebooted holding SHIFT to enter the bootoptions and blacklisted the system driver (and its symlink for good measure). I tried without blacklisting before but ended in the kernel debugger…
  • voilà: listimage | grep iprowifi shows the non-packaged path and I’m using the driver now while writing this post.

idualwifi7260 is NEVER blacklisted!!
I tried 2 methods.
1./boot/system/settings/packages method.
(/boot/home/config/settings/global/packages also)
I checked the description in the packages file many times.

2.Safe mode boot option.
specified /boot/system/add-ons/kernel/drivers/bin/idualwifi7260,
/boot/system/add-ons/kernel/drivers/dev/net/idualwifi7260

I’m using Haiku R1Beta2,via UEFI booting.
Many things are wrong around the idualwifi7260!

OMG,I can’t start the debug.
Somebody please, deactivate the original driver(idualwifi7260).

Can you please post your settings/packages file?

When you use the “safe mode boot option”, do you mean to say the files are still present?

Thank you for replying.
The contents of my settings/packages file are below.
Are there any wrong point?

Package haiku {
EntryBlacklist {
add-ons/kernel/drivers/bin/idualwifi7260
add-ons/kernel/drivers/dev/net/idualwifi7260
}
}

And…Yes!
Even though I specified idualwifi7260 as a blacklist,
it is still present and loaded(I checked on the syslog).

Will test it morning if nobody finds the culprit.

After that,I tried and tried again.
Basically, I did not change anything.
Now, It seems that blacklist take effect.
idualwifi7260 does not present at add-ons/kernel/drivers/bin.
But,package daemon may still find it.
Syslog sais

KERN: package_daemon [3561662: 628] pci_reserve_device(4, 0, 0, idualwifi7260)
KERN: [idualwifi7260] (iwm) bus_alloc_resource(3, [16], 0x0, 0xffffffffffffffff, 0x1,0x2)
KERN: [idualwifi7260] (iwm) bus_alloc_resource(1, [1], 0x0, 0xffffffffffffffff, 0x1,0x2)

I can’t understand the reason.
Are there any cache or something?

listimage

screenshot371
screenshot372

Ist that the one you built and placed into the non-packaged tree? Check the listimage output.

Thank you for replying.
The original idualwifi7260 driver has problems,so it’s not loaded successfully.
Even though I blacklist it,some output present in the sysylog.
error

The original idualwifi7260 driver is not loaded successfully.
Then,It does not present in listimage. I think so.
listimage

Syslog doesnt get emptyed at reboot, it can contain logs from more boots. Trust listimage.
Or delete the syslog manually, reboot and grep it again.

2 Likes