-
Notifications
You must be signed in to change notification settings - Fork 0
iamroot17/kernel_dev
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
=============== 0. Introduction =============== This build system is to analysis aarch64 linux-kernel for iamroot 17th. For usage, Please see the usage printout by "make help" on TOPDIR. To use this enviroment we require at least...: 1. Host OS should be ubuntu or debian series. 2. Require more than 70GB free space. 3. At least have 2 CPU or more. 4. At least have 2GB free memory. 5. Do not use WSL; compilation could be failed with trimming character errors. Use other VMs instead. ================================ 1. CROSS_COMPILE toolchain setup ================================ 1. wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/sysroot-glibc-linaro-2.25-2019.12-aarch64-linux-gnu.tar.xz 2. Untar above two files (tar xvf ...). 3. cd TOPDIR 4. edit Config.mk's CROSS_COMPILE_GLIBCDIR and CROSS_COMPILE_DIR with above untared directory. ==================== 2. Required Packages ==================== sudo apt-get build-dep -y qemu sudo apt-get install -y libfdt-dev flex bison git apt-utils sudo apt-get install -y python3-yaml wget qemu-efi-aarch64 qemu-utils genisoimage qemu-user-static sudo apt-get install -y libpixman-1-dev ==================== 3. LISA-QEMU INSTALL ==================== To install lisa-qemu please follow orders in TOPDIR. 1. git clone https://github.com/rf972/lisa-qemu.git 2. copy conf/config_default.yml to lisa-qemu/conf 3. cd lisq-qemu 4. git submodule update --init --recursive 5. cd scripts 6. python3 build_image.py (this build qemu in lisa-qemu. take long time...) 7. cd TOPDIR/scripts 8. run init_flash_lisa_qemu.sh for generating bootloader. 9. edit env_lisa_qemu.sh's env variables properly. 10. sudo mount_lisa_qemu.sh 11. cd TOPDIR/lisa-qemu/build/VM-ubuntu.aarch64/mnt/etc/default 12. edit below line of grub file. GRUB_CMDLINE_LINUX_DEFAULT TO GRUB_CMDLINE_LINUX_DEFAULT="root=/dev/vda1 nokaslr console=ttyAMA0" This modification disable KASLR to debug linux kernel. 13. cd TOPDIR/scripts 14. sudo umount_lisa_qemu.sh -g ========================= 4. KERNEL BUILD & INSTALL ========================= 1. cd TOPDIR 2. mkdir linux && cd linux 3. git clone https://github.com/torvalds/linux.git && mv linux src 4. cd TOPDIR 5. make config-kernel Or, do 'pushd $TOPDIR/linux/src && ARCH=arm64 make menuconfig'. This will create default configuration for kernel. 6. make build-kernel 7. make install-kernel-headers 8. make package-kernel (this makes debian package) 9. make install-kernel KERNEL_PACKAGE={pkg} You could get {pkg} by "ls -al TOPDIR/linux" 10. cd TOPDIR/scripts 11. edit env_lisa_qemu.sh's env variables properly. ========================= 5. RUN LISA-QEMU ========================= 1. cd TOPDIR/scripts 2. ./run_lisa_qemu.sh ======> normal running 3. ./run_lisa_qemu.sh -d ======> debug running (should be attached with gdb) 4. For more detail about debugging kernel, see section 7. Using GDB ========================= 6. KILL LISA-QEMU ========================= 1. cd TOPDIR/scripts 2. ./kill_lisa_qemu.sh ========================= 7. Using GDB ========================= 1. Install gef (https://github.com/hugsy/gef). If you use gdb in tool-chains you've downloaded, install gef-legacy (https://github.com/hugsy/gef-legacy). 2. ./run_lisa_qemu.sh -d 3. Run aarch64-linux-gnu-gdb (if you use Ubuntu as host O/S, use gdb-multiarch instead) 4. file $TOPDIR/linux/src/vmlinux 5. target remote :1234 6. b start_kernel 7. continue ========================= 8. REFERENCES ========================= lisa-qemu: https://github.com/rf972/lisa-qemu
About
Kernel analysis environment using lisa-qemu
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published