Home Technique Reading Works Thoughts e-Education
Shortcut: Chinese Character in Java Web OpenGL Step By Step MacRhine CHMReaderWM5 Instruction Theory Introuction PDFBox CJK
My Own Ad. :-)
Hunting for funny software project. Currently, I'minteresting in:
Mac OS X Driver      Works: Via Rhine Driver for OSX X86
OpenGL ES Application
J2EE Application with EJB
JSF Based WEB Application
FileSystem Driver (Windows & Linux)
Compiler and Code Analyst Tool
Campus information system consulting
Self-adapting Test system
Interactive e-Learning system

pinxue (at) hotmail.com
Via Rhine Network Interface Card driver for Mac OS X

This driver is under developing. The file published here is for your tasting, you should be aware that this driver is buggy and maybe crash your system, it is on your own risk!

The via rhine chip information is analyzed from linux driver (2.6.14). I have tried to request a datasheet from via but none responsed.

pinxue.net

Files:
release build
debug build
src (xcode 2.2.1 project).


coded and tested under 10.4.3.

1. Install:
I suggest you install this driver by hand.
Usually, you may use the shell script named loadvia inside the tar ball to load this driver. The script assume you has sudo privilege.
If you have logged in as root or su to root, I think you know what to do.

Install the driver by this way is safe, if the driver crashed or stalled, just reset, system will reboot without loading this driver.

But if you are tired to setup network after every reboot, you may insert the driver into system, by this way:
mv or cp the ViaRhine.kext to /System/Library/Extensions
adjust file attributes as:

sudo chown -R root:wheel ViaRhine.kext
sudo find ViaRhine.kext -type d -exec chmod 0755 {} \;
sudo find ViaRhine.kext -type f -exec chmod 0644 {} \;
After reboot, the driver will be loaded.

Thanks mechdrew, you make me understand, you guys trust the driver so much to crash the whole system.

2. Config network:
"sudo ifconfig en0 up" to enable the NIC. You need wait for some seconds to let the driver finish link media auto negotiation.
You may use sudo ifconfig en0 inet 192.168.2.1 netmask 255.255.255.255.0 up to assign an ip or use graphics tool at System Preference | network | built-in ethernet to fill all attributes.

I encourage you to use graphics tool at System Preferences | network | built-in ethernet | ethernet to adjust ethernet parameters to crash the driver if you have installed the driver by hand.

3.ADSL Dial-up:
If you are adsl subscriber like me, you will need take a look at the PPPoE tab of network preference. I suggest you to check "Show PPPoE status in menu bar" so that you may control the adsl connection by the icon in the menu bar. It is more easy than Finder | Application | Internet Connection.

4. NAT Gateway:
If you need share the internet connection with other computer inside the LAN, you will setup the mac as NAT gateway.
It is a easy task, System Preferences | sharing | internet, check the built-in ethernet and click start button.
After shared, the ip of the en0 will be forced to 192.168.2.1. It is not a good idea, but it is not a easy task to struggle with ipfw and natd.

update log:
2006-4-11
early debug build
2006-4-12
debug and release build, stall after working for unsure minutes
2006-4-13
increased the rx/tx ring, disabled kernel debugger support, change the way to access MII Management Data.
2006-4-14
stress tested, upload 2.2G data by sftp, keep online for whole night.
2006-4-14
fix promiscuous mode, not the driver may work with tcpdump. fix tx queue stall problem, the tx ring shrink to 16 descriptor and stressed well.
comments:
( promiscuous mode : caused by write 32 bits to RxConfig register but its is a 8 bits register. )
( tx queue stall : tx queue will stall when it feel over stressed, this queue may back to work after chip sent enough packets to free the tx descriptor ring. Privious version forget to re-start the stalled queue when the tx descriptor ring has enough space. )
2006-4-15
adjust tx/rx ring as 128 descriptor, now the transmit queue will not stall-resume often.
2006-4-16
fix reconnect bug. ifconfig down and then up, the en may work now.
2006-4-18
reconnect bug is real fixed. Last fix has 1/128 chance to work, but when I test, it just worked, LUCKY?
2006-4-21
add some model specific pci config init.
2006-6-01
adjust auto negotiation for Rhine III, but I have no this kind of card, so it maybe work, maybe not.
BLOG | Chinese | 2005 2004 2003 2002-2001 2000 1999-1998

 
Web www.pinxue.net
Sh.ICP.Reg.No.06002693