This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Michael Decker: Driver Development ====== ==== Week C ==== ---- === 13 August === This morning I installed an **iSCSI** server on my laptop. It turned out much simpler than anticipated. I am running Ubuntu 8.04 (Hardy Heron), and it turns out the iSCSI target kernel module is present by default? So, a point & click install via Synaptic Package Manager, and modification of ''/etc/ietd.conf'' was all that was needed. Once working, I tested the **3c59x** driver I've been hacking on recently. Of course there were network errors present, which I didn't see when using AoE. A ''scandisk'' run over DOS froze up the system. I spent a while going through the code and checking suspect areas. I eventually discovered that the Linux code was freeing the tx buffers, which is a no-no in gPXE. This code was fixed to issue ''netdev_tx_complete()'' notifications. Subsequent testing continued showing errors. This baffled me for some time until I decided to reboot the laptop. The next test showed no errors! Interesting. Further testing suddenly showed errors again. I then discovered simply restarting Wireshark would prevent the TCP errors from appearing. Further experimentation resulted in Wireshark crashing unexpectedly!? So, while the universe seems broken, my driver is not :) * [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=5002142c055dbe3ab9cf9771dfb2cf83740cc988|[Drivers-3c59x] Fixed tx completion & more. Runs well]] To be more clear: If the PC is restarted or turned off & on during a single Wireshark capture, subsequent TCP packets will be flagged as retransmissions. However, if the Wireshark capture is restarted, no retransmissions will be flagged. I suppose this has something to do with Wireshark's retransmission-identification heuristic, iSCSI's protocol format, and gPXE's TCP implementation. I submit this driver for testing by anyone else before I trim out the old Linux driver code. === 15 August === Early start this morning: * [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=84a4676a41cc68607c56e3ad9731561b0d72b6b0|[Drivers-skge] Removed tx freeing, added tx completion notification]] I tested the **skge** driver with iSCSI and found it freezing at a surface scan through ''scandisk'' in DOS. I found in this driver I left in the tx iob freeing, and neglected tx completion notification - just as I did in 3c59x. I also updated some comments. Testing now reveals excellent operation via iSCSI. * [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=510bb9f5266d7d3faf68f2ea9b85bfa6d075f459|[Drivers-3c59x] Minor memory allocation corrections]] * [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=d2bb96476733a911f512ae2f6f34cc2bceeba781|[Drivers-3c59x] Code cleanup]] Pushed a few minor **3c59x** memory allocation fixes. Removed all the old Linux code from 3c59x. I feel the driver is ready for prime-time, so I pruned out that code. It's nice and shiny now. ;)


QR Code
QR Code soc:2008:mdeck:journal:weekc (generated for current page)