Sfoglia il codice sorgente

Add ipxe builds for linux userspace

Antony Messerli 3 anni fa
parent
commit
807cd83674

+ 1 - 0
roles/netbootxyz/defaults/main.yml

@@ -82,6 +82,7 @@ generate_checksums: true
 generate_disks: true
 generate_disks_arm: false
 generate_disks_efi: true
+generate_disks_linux: false
 generate_disks_hybrid: false
 generate_disks_legacy: true
 generate_disks_rpi: false

+ 4 - 0
roles/netbootxyz/tasks/generate_disks.yml

@@ -6,6 +6,10 @@
     when:
     - generate_disks_legacy | default(true) | bool
 
+  - include: generate_disks_linux.yml
+    when:
+    - generate_disks_linux | default(false) | bool
+
   - include: generate_disks_efi.yml
     when:
     - generate_disks_efi | default(true) | bool

+ 1 - 2
roles/netbootxyz/tasks/generate_disks_legacy.yml

@@ -28,8 +28,7 @@
            bin/ipxe.dsk \
            bin/ipxe.lkrn \
            bin/ipxe.kpxe \
-           bin/undionly.kpxe \
-           bin-x86_64-linux/slirp.linux
+           bin/undionly.kpxe
     args:
       chdir: "{{ ipxe_source_dir }}/src"
     tags:

+ 53 - 0
roles/netbootxyz/tasks/generate_disks_linux.yml

@@ -0,0 +1,53 @@
+---
+
+  - name: Copy netboot.xyz local legacy iPXE configs
+    copy:
+      src: "ipxe/local/{{ item }}"
+      dest: "{{ ipxe_source_dir }}/src/config/local/{{ item }}"
+    with_items:
+      - colour.h
+      - console.h
+      - crypto.h
+      - general.h
+
+  - name: Set trust file to ipxe ca
+    set_fact:
+      trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }}"
+    when: not generate_signatures
+
+  - name: Combine trust args if set
+    set_fact:
+      trust_files: "{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}"
+    when: generate_signatures | bool
+
+  - name: Compile iPXE Linux bootloader for Legacy BIOS
+    shell: |
+      make clean
+      make EMBED={{ bootloader_filename }} \
+           TRUST={{ trust_files }} \
+           bin-x86_64-linux/slirp.linux
+    args:
+      chdir: "{{ ipxe_source_dir }}/src"
+    tags:
+    - skip_ansible_lint
+    when: ipxe_debug_enabled | bool == false
+
+  - name: Compile iPXE Linux bootloader for Legacy BIOS with debug flags
+    shell: |
+      make clean
+      make EMBED={{ bootloader_filename }} \
+           DEBUG={{ ipxe_debug_options }} \
+           TRUST={{ trust_files }} \
+           bin-x86_64-linux/slirp.linux
+    args:
+      chdir: "{{ ipxe_source_dir }}/src"
+    tags:
+    - skip_ansible_lint
+    when: ipxe_debug_enabled | bool
+
+  - name: Copy iPXE linux binary for Legacy BIOS to http directory
+    copy:
+      src: "{{ ipxe_source_dir }}/src/bin-x86_64-linux/slirp.linux"
+      dest: "{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-linux.bin"
+      remote_src: True
+    when: bootloader_filename != "netboot.xyz-packet"

+ 1 - 0
script/netbootxyz-overrides.yml

@@ -3,6 +3,7 @@ sigs_menu: true
 sigs_enabled: true
 generate_disks_arm: true
 generate_disks_hybrid: true
+generate_disks_linux: true
 generate_disks_rpi: true
 generate_version_file: true
 generate_local_vars: false