view main.yml @ 10:3d1d5f6304c9 default tip

fix gdb script flag
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 28 Jul 2022 16:25:46 +0900
parents 42be4c53efc5
children
line wrap: on
line source

#  build Feora Linux kernel from sourcr
#      kono@ie.u-ryukyu.ac.jp
#
# old.config generates non address randomize kernel for gdb
#
# prepare at least 30GB of file space
#    ( Fedora default is 15GB, no matter how HDD big size )
#
#   rsync -av -e 'ssh -p 2222' ~/.ssh/id_rsa.pub xxx@localhost:.ssh/authorized_keys
#   screen -L  ansible-playbook -i hosts main.yml --ask-become-pass
#   ssh localhost -p 2222  -l root 'cd /usr/src/kernels ; tar czf - fedora' | dd of=fedora26-kernel.tgz

- hosts: all
  remote_user: ie-user 
  become: yes
  become_method: sudo
  tasks:

  - name: install kernel dev packages
    dnf: 
      state: present
      name: 
        - fedpkg
        - fedora-packager
        - rpmdevtools
        - ncurses-devel
        - pesign
        - libselinux-python3

  - name: fedpkg clone
    command: fedpkg clone -a --depth 1 kernel
    args:
      chdir: /usr/src/
      creates: /usr/src/kernel

#     we need not to this as root
#
#     this should be   cd /usr/src/kernel ; git checkout     
  - name: git clone kernel
    git: >
      repo=git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/fedora.git
      dest=/usr/src/kernels/fedora

#   this does not work and unnecessary
#  - name: authorize user script
#    shell: /usr/libexec/pesign/pesign-authorize-users

#
#  this does not work, we have to chdir to /usr/src/kernel
#  - name: install kernel dev packages
#    dnf: name={{ item }} state=present
#    with_items:
#    - builddep
#    - kernel.spec
#
#    args:
#      chdir: /usr/src/kernels/fedora
#   use shell command instead
#
  - name: dnf builddep kernel.spec 
    command:  dnf -y builddep kernel.spec 
    args:
      chdir: /usr/src/kernel
      creates: /bin/gcc

  # olddefconfig requires old config file
  - name: copy old  .config
    copy:  
      src: old.config
      dest: /usr/src/kernels/fedora/.config

  - name: make olddefconfig
    become: yes
    make:
      target: olddefconfig
      chdir: /usr/src/kernels/fedora
      params:
        NUM_THREADS: 8

  - name: make kernel
    become: yes
    make:
      chdir: /usr/src/kernels/fedora
      params:
        NUM_THREADS: 8

  - name: make bzImage 
    become: yes
    make:
      target: bzImage
      chdir: /usr/src/kernels/fedora
      params:
        NUM_THREADS: 8

  - name: make modules
    become: yes
    make:
      target: modules
      chdir: /usr/src/kernels/fedora
      params:
        NUM_THREADS: 8

  - name: make modules_install
    become: yes
    make:
      target: modules_install
      chdir: /usr/src/kernels/fedora
      params:
        NUM_THREADS: 8


  - name: install kernel
    become: yes
    make:
      target: install
      chdir: /usr/src/kernels/fedora
      params:
        NUM_THREADS: 8