Friday, December 05, 2008

Why did my install of Haiku network driver fail?

I'm referring to my problem on Wednesday when I received from the developer the new Atheros driver for networking in Haiku on the EeePC 901. I tried various times in both Senryu and Haiku but I couldn't get it to work, This is despite the fact that A brand new image of Senryu was produced that included the new driver and this worked perfectly for me.
So, I investigated why I couldn't get the driver to install and found the following points:

1. The link from /boot/beos/systems/add-ons/kernel//drivers/dev/net/ to /boot/beos/systems/add-ons/kernel//drivers/bin/ar81xx was indeed broken. The different colour of this link (when viewed in Ubuntu -- orange with black background while all the other links were shown in a cyan colour) indicates that the link is broken.

2. I also used a script I found for looking for broken links and applied it to the .../beos/systems/add-ons/kernel//drivers directory and it picked out the ar81xx link as being broken (did this from Ubuntu).
Note that I found that this script must be run as root (not sudo). So, the command is:

for i in `find /`; do if (test -h $i); then file $i|grep broken; fi; done

where the 'find /' part can be changed to search in any directory you want.
Very nice and worked very well for me in Ubuntu.
3. In Haiku, in the /boot/beos/systems/add-ons/kernel//drivers/dev/net/ directory I issued the command "more ar81xx" and it output "Too many levels of symbolic links" while every other link with the same command gave a huge output of mostly blank space. (See here for a detailed look at symlink use and problems) Note, however, that in Haiku the broken link had the same colour as all the rest when viewed in a terminal (unlike in Ubuntu).

4. I googled for this error message and one reference pointed to the create symlink command not being very tolerant of shortcuts in the directory definition.

Now I had used this to create the link
ln -s /boot/beos/systems/add-ons/kernel//drivers/bin/ar81xx ../dev/net/

which, although it did put the link in the correct folder, the link was broken.
So, now I did
ln -s /boot/beos/systems/add-ons/kernel//drivers/bin/ar81xx /boot/beos/system/add-ons/kernel/drivers/dev/net/

and success!
Now I easily got networking un Haiku.

No comments:

Post a Comment