Переглянути джерело

Merge pull request #1034 from netbootxyz/linux_binary

Generate linux userspace ipxe builds
Antony Messerli 3 роки тому
батько
коміт
e8bdffe94a

+ 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

+ 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