Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It is already possible. The current test setup involves my APrinter software (firmware for 3d printers) ported to run on Linux including its web interface. It does indeed use a TAP interface and yes it reads/writes Ethernet frames (the stack does implement Ethernet/ARP).

Linux specific code is here: https://github.com/ambrop72/aprinter/tree/master/aprinter/ha...

However note that the LinuxTapEthernet is not directly for my TCP/IP stack but there is a driver abstraction in between, which is also the part that configures/instantiates the stack (aprinter/net/IpStackNetwork.h).

It is possible to try it out if you have the Nix package manager (since the configuration/build system is based on that):

  python -B config_system/generator/generate.py | nix-build - -o ~/aprinter-build
  ./aprinter-build/aprinter.elf -ttap0
That will result in trying to get an IP address using DHCP (yes DHCP client is included). Static IP can be configured using these commands:

  M926 INetworkDhcpEnabled V0
  M926 INetworkIpAddress V192.168.64.10
  M926 INetworkIpNetmask V255.255.255.0
  M926 INetworkIpGateway V192.168.64.1
  M930
The software will run a command line usable via nc on port 23, and also an HTTP server on port 80. To get the HTTP server to actually serve files, an SD card image with FAT filesystem needs to be created and the web interface files put into it (I can explain if anyone wants to try).

What is to be done is a minimal example for integrating the stack and corresponding documentation. For example how to integrate with the reactor, which is abstract from the perspective of the stack but must follow a specific interface. The stack itself only uses timers since other event sources would be used for I/O by e.g. interface drivers. Currently there are two event loops provided, one for Linux based on epoll (aprinter/system/LinuxEventLoop.h) and one that uses busy looping meant for microcontrollers (aprinter/system/BusyEventLoop.h).



Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: