91 Commits

Author SHA1 Message Date
Dmitri Dolguikh
cb79b8eaa4 Added bootipv6 command 2018-02-05 12:33:17 -08:00
Dmitri Dolguikh
3a5808cb30 first stab at dhcpv6 support 2018-02-05 12:33:17 -08:00
David Anderson
0fe0d3e719 Delete the api-example binary I accidentally committed a while ago. 2018-02-04 19:22:58 -08:00
David Anderson
ff3b2f6fd6 Refactor firmware identification to be a bit easier to follow. #63 2018-02-04 17:56:00 -08:00
David Anderson
b7411f3ed3 Only boot with ipxe.pxe if we're chainloading from another iPXE. #63
undionly.kpxe doesn't work if you chainload from a native iPXE, but it's
required for physical machines with NICs that iPXE doesn't natively
support.

In my previous attempt to handle Virtualbox's crippled iPXE, I switched
all BIOS-based boots to use ipxe.pxe. This was a bad idea, so now instead
we specifically recognize third-party iPXE builds, and only chainload
*those* with ipxe.pxe, and stick with undionly.kpxe for the rest.
2018-02-04 14:41:09 -08:00
David Anderson
a44cef6d7b Add an advanced option to pass in a raw iPXE script.
The feature is heavily laced with warnings and a complete lack of
promises around future compatibility. But within those parameters,
it might allow some people to do cool things.

Fixes #60.
2018-02-03 21:25:55 -08:00
David Anderson
bc300c7140 Rename README.testing to README.testing.md so that github formats it. 2018-01-15 19:17:56 -08:00
David Anderson
029be8d339 Force machines to chainload through Pixiecore's embedded iPXE.
This guarantees that we load the real OS from an iPXE with a known
featureset, rather than rely on the firmware iPXEs to be correct.

Also switch to ipxe.pxe for BIOS boots instead of undionly.kpxe.

ipxe.pxe works when you chainload from one iPXE to another, whereas
undionly.kpxe encounters some kind of poorly explained bug where
it loses the ability to configure networking.

Tested against the following configurations:
 - VirtualBox + BIOS w/ iPXE
 - VirtualBox + BIOS w/ Intel UNDI
 - VirtualBox + EFI
 - KVM + SeaBIOS w/ iPXE
 - KVM + OVMF (EFI)
 - Dell R610 + Dell BIOS/PXE

Fixes #51, fixes #52.
2018-01-15 19:17:56 -08:00
David Anderson
5f8e425f57 Add a quick command to boot CoreOS. 2018-01-12 21:05:11 -08:00
David Anderson
81fbed5acf Also check foor bzImage support in the ProxyDHCP stage. #51
Virtualbox inexplicably ships with an iPXE image that knows
how to speak HTTP, but cannot handle bzImage files. This is a
quick and dirty fix for that specific issue, while I work on
the more permanent fix of always chainloading into a known
good iPXE.
2017-12-24 19:28:41 -08:00
David Anderson
6cd17867fc Delete the UI. It's ugly, not very useful, and afaik nobody uses it. 2017-12-24 17:33:18 -08:00
Anatoli Babenia
7eee7d4832 Rename pixiecore quick netboot into pixiecore quick xyz
This places the option below OS specific installers and
makes the command explicit.
2017-12-24 16:07:16 -08:00
Anatoli Babenia
7144ad4cdc Add netboot.xyz into quick boot options
Fixes #46
2017-12-24 16:07:16 -08:00
pancho horrillo
792915a85f pixiecore: Drop spurious right paren in text. 2017-05-20 17:25:07 -07:00
ebraminio
9253ccdf97 Minor, fixing a link on README markdown 2017-03-22 11:16:51 -07:00
David Anderson
63c4bab4d1 Add a debug log entry in DHCP before fetching the bootspec.
Adding this line lets us time the bootspec retrieval by comparing
the timestamps of "Got valid request..." and "Offering to boot..."
2017-03-01 20:57:47 -08:00
David Anderson
4ffbe802e0 Log timing of /_/ipxe for #32. 2017-03-01 14:36:07 -08:00
David Anderson
4e411248b1 Improve the comment explaining why handleBooting returns an iPXE script. 2017-02-24 15:30:38 -08:00
Phenix Rizen
a9d71481f7 handleBooting should return a no-op script, not an error.
Responding with an error makes iPXE print a misleading error message (misleading because it doesn't break the boot in any way, it just makes humans uncomfortable).
2017-02-24 15:22:11 -08:00
David Anderson
735c025438 Add a section on demos and users of Pixiecore. #22 2017-02-22 15:00:38 -08:00
David Anderson
34da4bdc44 Add a "quick" command for fast booting of various installers.
The quick commands are just aliases for the `boot` command with
various pre-cooked kernel/initrds/cmdline combinations. Currently
supported are Debian, Ubuntu, Fedora and Centos. There's also code
for Arch, but it's currently disabled as I'm failing to get the
HTTP rootfs to work.
2017-02-22 04:21:07 -08:00
David Anderson
0d99a2ad1f Update README.api.md with the revised cmdline format.
Everything old is new again, we're back to a simple string for the
commandline, but this time with template goodness for URL expansion.
2017-02-22 01:05:34 -08:00
David Anderson
a762c94d61 Only try to parse the MAC address if the file has a known type.
Parsing unconditionally logs errors when serving non-kernel/initrd
files.
2017-02-20 17:43:59 -08:00
David Anderson
3df58430a4 Add a sample systemd service file for pixiecore.
The service file is added as documentation, rather than in the system
services directory, because it will almost certainly require customization
before it can be used.

So why bother including one at all? Because I've gone through the trouble of
figuring out the various systemd-exec security flags to lock down pixiecore
as much as possible with chroots, capabilties, syscall filters, etc. Having
that as a baseline will encourage people to run Pixiecore with maximum constraints,
even if they have to write their own ExecStart for it.
2017-01-31 17:53:45 -08:00
David Anderson
b1baf72ae2 Add Debian/Ubuntu packaging information for Pixiecore. 2017-01-31 16:11:37 -08:00
Mathias Kaufmann
574ee88ab1 Switch naming of FirmwareEFIBC/FirmwareEFI64
Signed-off-by: Mathias Kaufmann <me@stei.gr>
2017-01-23 00:40:58 -08:00
Mathias Kaufmann
6de5322b09 Readded removed firmware blob entries.
Signed-off-by: Mathias Kaufmann <me@stei.gr>
2017-01-23 00:40:58 -08:00
Mathias Kaufmann
bc95504ca6 Added DHCP Architecture Type 9
By supporting Type 9 ( „EFI x86-64“ ), pixiecore can boot VMware (Fusion) EFI-Type Machines.

The const for FirmwareEFI64 has been renamed to FirmwareEFIBC ( see RFC-4578, Section 2.1 ) and FirmwareEFI64 is assign to type 9 and uses the same ipxe blob as FirmwareEFIBC.

Signed-off-by: Mathias Kaufmann <me@stei.gr>
2017-01-23 00:40:58 -08:00
David Anderson
2ed87f6141 pixiecore: note the problem with using ULAs for v6 addressing. 2017-01-20 00:21:26 -08:00
David Anderson
7576c023fc Add a braindump for PXE-over-ipv6 support. 2017-01-20 00:00:14 -08:00
David Anderson
176c8f6c25 Document the ACI container image as well as the docker image.
Fixes #5.
2017-01-05 02:51:41 -08:00
pancho horrillo
b5f135b0d0 pixiecore: Provide a default value for listen-addr flag (#24)
Fixes google/netboot#20
2016-12-24 13:19:19 -08:00
pancho horrillo
5215003867 pixiecore: Fix some backslashes within shell snippets (#23) 2016-12-24 13:18:47 -08:00
pancho horrillo
57a1c9bea2 pixiecore: return file size on apibooter version of ReadBootFile (#14)
Otherwise Content-Length header cannot be properly set, and this
causes issues with iPXE.
2016-10-01 14:20:58 -07:00
pancho horrillo
d1e0ba49c4 Add missing param 'name' to log entry text (#12)
Also add a missing closing parens in the textual description.
2016-09-22 21:24:17 -07:00
pancho horrillo
25de7b4882 Fix directory reference (example-> api-example) (#11) 2016-09-22 20:26:03 -07:00
David Anderson
a4369dcb64 pixiecore: fix import mangled by goimports. 2016-09-19 03:56:42 -07:00
David Anderson
395573b8e0 pixiecore: shrink the screenshot again. 2016-09-19 03:49:56 -07:00
David Anderson
ad1a9735e6 pixiecore: reduce the size of the demo screenshot a bit. 2016-09-19 03:47:31 -07:00
David Anderson
8e5c0d0793 pixiecore: Add a basic HTTP status UI.
The UI is optional and need to be explicitly activated, since I
don't want existing users to suddenly have an information-spewing
thing show up on their network.
2016-09-19 03:43:57 -07:00
David Anderson
d2aab56b32 pixiecore: flesh out the boot graph. 2016-09-18 16:23:46 -07:00
David Anderson
5f1d91239d pixiecore: Add a warning that no Content-Length will massively slow down booting. 2016-09-14 20:58:06 -07:00
David Anderson
3aa769557c pixiecore: set Content-Length when serving the kernel/initrd.
iPXE appears to have *really* poor performance (orders of magnitude worse) if
it doesn't know the length of the kernel/initrds that it's downloading. Without
this change, booting CoreOS takes longer than I've had patience to wait. With
this change, the bottleneck becomes the network transfer speed.

Fixes #10.
2016-09-14 20:54:04 -07:00
pancho
b4809c5ed3 Update notes on Example API server
. Update dirname
. Drop explanation of features present in v1
. Describe current behaviour (v2)
2016-09-04 09:44:12 +02:00
pancho
a30021367f Drop the dash to api param
Currently, no dash is expected when specifying api param.
2016-09-04 07:55:42 +02:00
David Anderson
445f92459b pixiecore: only close a non-nil body in API mode.
Fixes #7.
2016-09-02 13:25:27 -07:00
David Anderson
f061a783a7 dhcp4: Don't use the non-binding DHCP Conn silently on linux.
pixiecore: Plumb NewSnooperConn into Server as an advanced option.
pixiecore/cli: Plumb DHCPNoBind to the CLI.

Now, by default, Pixiecore will bind() to the DHCP server port in a way
that shows up in `netstat` by default. If you want to enable the "coexist
with my existing DHCP server" mode, you need to explicitly pass
--dhcp-no-bind.
2016-08-28 16:16:47 -07:00
David Anderson
7bde0dde1b pixiecore/cli: default to a valid IPv4 listen address.
Fixes #6.
2016-08-28 03:57:39 -07:00
David Anderson
6dfafb5bcf pixiecore: link to the docs for the right package. 2016-08-24 02:16:52 -07:00
David Anderson
03b8831533 pixiecore: Add a badge linking to the godoc API reference. 2016-08-24 02:16:12 -07:00