mirror of
https://github.com/Opvolger/Opvolger.git
synced 2025-04-19 03:24:58 -04:00
142 lines
No EOL
4.3 KiB
YAML
142 lines
No EOL
4.3 KiB
YAML
- name: Git checkout linux-firmware
|
|
ansible.builtin.git:
|
|
repo: 'git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git'
|
|
depth: 1
|
|
dest: "{{ kernel.target }}/source/linux-firmware"
|
|
|
|
- name: Download extra firmwares
|
|
block:
|
|
- name: Download firmware
|
|
ansible.builtin.get_url:
|
|
url: "{{ item }}"
|
|
dest: "{{ kernel.target }}/source/linux-firmware/{{ item | basename }}"
|
|
loop: "{{ kernel.extra_firmware_download }}"
|
|
when: kernel.extra_firmware_download is defined
|
|
|
|
- name: When download zip
|
|
block:
|
|
- set_fact:
|
|
download_url: "{{ kernel.download | replace('[version]',kernel.version) }}"
|
|
|
|
- name: Get Kernel source tar.gz
|
|
block:
|
|
- name: Creates directory
|
|
ansible.builtin.file:
|
|
path: "{{ kernel.target }}"
|
|
state: directory
|
|
|
|
- name: Get stats of kernel tar.gz
|
|
stat:
|
|
path: "{{ kernel.target }}/{{ download_url | basename }}"
|
|
register: kernelfile
|
|
|
|
- name: download kernel source
|
|
get_url:
|
|
url: "{{ download_url }}"
|
|
dest: "{{ kernel.target }}/{{ download_url | basename }}"
|
|
when: not kernelfile.stat.exists
|
|
|
|
- name: Creates source directory
|
|
ansible.builtin.file:
|
|
path: "{{ kernel.target }}/source"
|
|
state: directory
|
|
|
|
- name: Get set kernel directory
|
|
stat:
|
|
path: "{{ kernel.target }}/source/linux-{{ kernel.version }}"
|
|
register: kernel_dir_stat
|
|
|
|
- name: Get set kernel directory
|
|
set_fact:
|
|
kernel_dir: "{{ kernel.target }}/source/linux-{{ kernel.version }}"
|
|
|
|
- name: Unarchive the kernel
|
|
ansible.builtin.unarchive:
|
|
src: "{{ kernel.target }}/{{ download_url| basename }}"
|
|
dest: "{{ kernel.target }}/source"
|
|
remote_src: yes
|
|
when: not kernel_dir_stat.stat.exists
|
|
when: kernel.download is defined
|
|
|
|
- name: When git location
|
|
block:
|
|
- name: Git checkout kernel
|
|
ansible.builtin.git:
|
|
repo: '{{ kernel.git.repo }}'
|
|
dest: '{{ kernel.git.checkout_dir }}'
|
|
force: true
|
|
version: '{{ kernel.git.version }}'
|
|
|
|
- name: Get set kernel directory
|
|
set_fact:
|
|
kernel_dir: "{{ kernel.git.checkout_dir }}"
|
|
|
|
when: kernel.git is defined
|
|
|
|
- name: Get stats of defconfig_backup
|
|
stat:
|
|
path: "{{ kernel_dir }}/arch/riscv/configs/defconfig_backup"
|
|
register: defconfig_backup
|
|
|
|
- name: Create backup of defconfig
|
|
ansible.builtin.copy:
|
|
src: "{{ kernel_dir }}/arch/riscv/configs/defconfig"
|
|
dest: "{{ kernel_dir }}/arch/riscv/configs/defconfig_backup"
|
|
remote_src: yes
|
|
when: not defconfig_backup.stat.exists
|
|
|
|
- name: Copy back defconfig_backup to defconfig
|
|
ansible.builtin.copy:
|
|
src: "{{ kernel_dir }}/arch/riscv/configs/defconfig_backup"
|
|
dest: "{{ kernel_dir }}/arch/riscv/configs/defconfig"
|
|
remote_src: yes
|
|
when: kernel.defconfig is not defined
|
|
|
|
- name: Copy {{ kernel.defconfig }} to defconfig
|
|
ansible.builtin.copy:
|
|
src: "{{ kernel_dir }}/arch/riscv/configs/{{ kernel.defconfig }}"
|
|
dest: "{{ kernel_dir }}/arch/riscv/configs/defconfig"
|
|
remote_src: yes
|
|
when: kernel.defconfig is defined
|
|
|
|
- name: Replace text
|
|
replace:
|
|
path: "{{ kernel_dir }}/arch/riscv/configs/defconfig"
|
|
regexp: '=m'
|
|
replace: '=y'
|
|
when: kernel.replace_m_for_y
|
|
|
|
- name: Add to configfile
|
|
ansible.builtin.shell: echo "{{ item.key }}={{ item.value }}" >> {{ kernel_dir }}/arch/riscv/configs/defconfig
|
|
when: not (item.value is string and item.value != 'n' and item.value != 'y')
|
|
loop: "{{ lookup('ansible.builtin.dict', kernel.add_to_config) }}"
|
|
|
|
- name: Add to configfile string
|
|
ansible.builtin.shell: echo '{{ item.key }}="{{ item.value }}"' >> {{ kernel_dir }}/arch/riscv/configs/defconfig
|
|
when: item.value is string and item.value != 'n' and item.value != 'y'
|
|
loop: "{{ lookup('ansible.builtin.dict', kernel.add_to_config) }}"
|
|
|
|
- name: Create default RISC-V config
|
|
community.general.make:
|
|
make: make
|
|
chdir: "{{ kernel_dir }}"
|
|
jobs: '{{ build_jobs }}'
|
|
params:
|
|
CROSS_COMPILE: riscv64-linux-gnu-
|
|
ARCH: riscv
|
|
defconfig:
|
|
|
|
- name: Replace text
|
|
replace:
|
|
path: "{{ kernel_dir }}/.config"
|
|
regexp: '=m'
|
|
replace: '=y'
|
|
when: kernel.replace_m_for_y
|
|
|
|
- name: Build kernel
|
|
community.general.make:
|
|
make: make
|
|
chdir: "{{ kernel_dir }}"
|
|
jobs: '{{ build_jobs }}'
|
|
params: '{{ kernel.build_params }}'
|
|
environment: "{{ kernel.extra_environment_vars }}" |