Maybe this helps (I cannot test it, because my PB machine is 1200 km away)
The culprit seems to be the default route, which cannot be overwritten; it has to be deleted first, using
route delete default
Probably, you should do that before adsl-start
Also, you might have to unconfig the interface,
using
ifconfig en0 inet 0.0.0.0
(where en0 is the appropriate network interface; it should not show under /dev)
and only then do the adsl-start
Please, please take this with a lot of salt, because adsl uses a kernel module which seems to have been ported from Linux, and I have no idea how does it hook into FreeBSD based Darwin IP stack (I would hazard a guess: in an ugly way, since it does not seem to register correctly). A much better idea would be to use the FreeBSD netgraph PPPoE module, if netgraph made it to Darwin (and, obviously, add netgraph to Darwin if it is not there already).
Another cause could be the fact that adsl module does not register itself, and repeated adsl-start may try to load it again, in which case all bets are off.
The culprit seems to be the default route, which cannot be overwritten; it has to be deleted first, using
route delete default
Probably, you should do that before adsl-start
Also, you might have to unconfig the interface,
using
ifconfig en0 inet 0.0.0.0
(where en0 is the appropriate network interface; it should not show under /dev)
and only then do the adsl-start
Please, please take this with a lot of salt, because adsl uses a kernel module which seems to have been ported from Linux, and I have no idea how does it hook into FreeBSD based Darwin IP stack (I would hazard a guess: in an ugly way, since it does not seem to register correctly). A much better idea would be to use the FreeBSD netgraph PPPoE module, if netgraph made it to Darwin (and, obviously, add netgraph to Darwin if it is not there already).
Another cause could be the fact that adsl module does not register itself, and repeated adsl-start may try to load it again, in which case all bets are off.