Zelfbouw ADSL modem

[Q] Waarom zou ik een ADSL modem zelf bouwen als je in de winkel voor weinig geld een compact ding dat minder stroom verbruikt kunt kopen?
[A] Deze ADSL modem heeft een Linux kernel, draait web-, name-, mail-, news-, ssh-, wwwproxy-, nfs- en wat_je_maar_wilt-server, en speelt tegelijkertijd mp3's en/of een DVD'tje!

Dit heb je nodig om een ADSL modem zelf te bouwen:

ITeX kernel patches

Ik heb een patch voor kernel 2.4.31 zodat ie werkt met de ITeX module. Het bleek dat in de loop van de tijd enige structures in de kernel (atm_dev, atm_vcc, sk_buf en mm) waren gewijzigd. Nadat ik ze compatible met 2.4.18 had gemaakt (door verwijderde structure-items weer toe te voegen, en de nieuwe items naar het eind te verplaatsen) werkte het echter nog niet. De ITeX driver gebruikt blijkbaar een niet standaard interface naar de atm layer in de kernel die toevallig werkte in pre 2.4.21 kernels. Daarom moest in net/atm/common.c nog 1 van die verwijderde items (dev->vccs) ge-initializeerd worden, en toen werkte alles! Zie ook de ITeX PPPoATM instrukties. Mail even als je mijn patch(es) gebruikt: itex at jp.dhs.org. De 2.4.31 patch werkt ook voor kernel 2.4.32.

Er is nu ook een ITeX patch voor kernel source 2.4.27 van Debian. Deze is misschien beter dan vanilla 2.4.31 vanwege de Debian securety fixes en 2.6 backports. Gebruik gcc 2.95. Ik heb ook de 'rmem leakage bug' opgelost: het bleek dat de ITeX driver onterecht na elke read rmem een aantal bytes terug zet (atm_return() in atmdev.h). Maar dat doet pppoatm.c al. Ik heb dus een quirk in pppoatm.c ingebouwd: als pppoatm ziet dat ie met de ITeX driver te doen heeft, dan slaat ie atm_return() over.

Hier staan de ITeX drivers. En hier: The making of the ITeX patches.

Ik heb de itex driver werkend met 2.6 kernels! Kijk hier!


Copyright Jan Pieter. Deze tekst wordt uitsluitend aangeboden voor persoonlijk gebruik.

Valid HTML 4.0!