Comments (9)
Gaaah HP machines are the bane of my existence. At least half of pixiecore's byzantine bugs are these stupid machines. I have half a mind to just document that they're unsupported because they're buggy pieces of crap.
sigh Okay, remaining calm...
Okay, I need to start keeping notes of what firmwares do what broken stuff. Currently, there are two conflicting goals:
- Some firmware contain an iPXE with insufficient functionality, and we have to chainload to a supported iPXE. Chainloading ipxe->ipxe is not reliable if you use undionly.kpxe, so we have to use ipxe.pxe.
- Some firmware (this one) requires using the UNDI stack for network configuration, so we have to use undionly.kpxe.
Network booting is pretty stateless, so we can't easily do trial and error against targets without massive changes to pixiecore (it'd pretty much need a database at that point).
But, okay, here's what we can do:
- If the requesting firmware is iPXE or gPXE, chainload to embedded ipxe.pxe. By using ipxe as its firmware, the machine is proving that the ipxe native drivers will work (and ipxe->undionly.kpxe chainload is unreliable).
- Otherwise, chainload to undionly.kpxe, for maximum compatibility with whatever weird firmware requested a boot.
This means we have to carry 5 embedded copies of ipxe instead of 3 (undionly bios32, undionly bios64, native bios32, native bios64, EFI), which sucks... But it's feasible.
from netboot.
lol, your patience is appreciated. Does the dhcpdiscover sent out by the prebaked pxe on the platform identify it in any way? So that e.g. you can distinguish an ipxe dhcpdiscover from a non-ipxe network boot firmware's dhcpdiscover?
from netboot.
Yeah, iPXE has identifying marks I can use to distinguish between all these cases. In theory it's possible for a hostile firmware developer to use ipxe but change the userclass (aka "name of the firmware") to something other than ipxe, but thankfully I haven't found anyone doing that yet.
Working on a fix for this now, it'll just take a little while longer because I have to change the ipxe embedding logic first...
from netboot.
Can you test again with the change I just pushed? It switches back to undionly.kpxe for everything except chainloading from another iPXE, so I think it should fix your issue.
from netboot.
/cc @maneamarius
@danderson I don't have physical access to the servers at the moment, will let you know as soon as we run a test.
from netboot.
No problem! I'm doing a bit of followup refactoring to try and make the logic easier to follow, so I'll have a followup commit or two shortly.
from netboot.
Hi @danderson we've tested the changes you've made and it all seems to be working well now.
Thanks a lot for the hard work, please keep it up!
We're trying to help any way we can, even though we're not Go lang devs ourselves :)
from netboot.
So in the future you need any testing done on physical servers (we run some HP DL380p G8 and IBM X3650 M7), we are more than happy to assist! Just send me or @masaeedu a message.
from netboot.
Great news, thanks for testing!
For long-term testing, I'll keep you in mind if I have more scary changes to test... Although what I really need is a bunch of diverse machines on a test bench where I can set up some automated regression testing... But surprisingly nobody seems interested in giving me a bunch of server hardware :P
Thanks for filing bugs and helping me test!
from netboot.
Related Issues (20)
- Running on macOS fails with setsockopt: invalid argument HOT 3
- Package from packagecloud.io not working. Status code 429.
- Option to disable the DHCP server HOT 1
- make update-ipxe error HOT 5
- enable docker hub autobuild and update docker image(s) HOT 2
- RPI4 netboot support HOT 2
- TFTP bug: response source IP is not client request HOT 1
- tftp test is failing: package go.universe.tf/netboot/cmd/pixiecore: cannot find package HOT 3
- quick for archlinux not working HOT 3
- docker pull pixiecore/pixiecore fails
- pixiecore quick xyz is legacy BIOS only by default? HOT 4
- unsupported client firmware type '0' (please file a bug!) HOT 7
- Cannot install pixiecore HOT 2
- how to prevent pxe boot looping HOT 1
- Is it possible to run pixiecore with cloud-init config? HOT 1
- Netboot with NixOS HOT 1
- Arch Linux quick command needs cms_verify=y HOT 1
- [Discussion] IPV6 Exploration pixiecore HOT 1
- [DHCP] Unusable packet from xx:xx:xx:xx:xx:xx: unsupported client firmware type '16' (please file a bug!) despite using AMD64 HOT 2
- [PIXIECORE] No configuration method succeeded
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from netboot.