zoukankan      html  css  js  c++  java
  • KAL1 LINUX 官方文档之kali开发---自定义 Beaglebone Black 镜像

     

    以下文档描述了我们自己的创建自定义Kali Linux Beaglebone Black ARM映像的方法,并且针对开发人员。如果您想安装预制的Kali映像,请查看我们在Beaglebone Black上安装Kali的文章。

    您需要具有root用户特权才能执行此过程,或者需要具有使用命令“ sudo su”升级特权的功能。

    01.创建一个Kali rootfs

    使用armhf架构,按照我们的Kali文档中的描述构建Kali rootfs在此过程结束时,你应该在 ~/arm-stuff/rootfs/kali-armhf 中有一个填充的 rootfs 目录。

    02.创建图像文件

    接下来,我们创建物理映像文件,该文件将保存我们的Beaglebone Black rootfs和启动映像。

    apt install -y kpartx xz-utils sharutils
    cd ~/
    mkdir -p arm-stuff/images/
    cd arm-stuff/images/
    dd if=/dev/zero of=kali-custom-bbb.img bs=4M count=7000
    

    03.分区并挂载映像文件

    parted --script kali-custom-bbb.img mklabel msdos
    fdisk kali-custom-bbb.img << __EOF__
    n
    p
    1
    
    +64M
    t
    e
    p
    w
    __EOF__
    parted --script kali-custom-bbb.img set 1 boot on
    fdisk kali-custom-bbb.img << __EOF__
    n
    p
    2
    
    w
    __EOF__
    
    loopdevice=`losetup -f --show kali-custom-bbb.img`
    device=`kpartx -va $loopdevice| sed -E 's/.*(loop[0-9])p.*/1/g' | head -1`
    device="/dev/mapper/${device}"
    bootp=${device}p1
    rootp=${device}p2
    
    mkfs.vfat -F 16 $bootp -n boot
    mkfs.ext4 $rootp -L kaliroot
    mkdir -p boot
    mkdir -p root
    mount $bootp boot
    mount $rootp root
    

    04.复制和修改Kali rootfs

    rsync -HPavz /root/arm-stuff/rootfs/kali-armhf/ root
    echo nameserver 8.8.8.8 > root/etc/resolv.conf
    

    05.编译Beaglebone Black内核和模块

    如果您不使用ARM硬件作为开发环境,则需要设置一个ARM交叉编译环境来构建ARM内核和模块。完成后,请按照以下说明进行操作。

    cd ~/arm-stuff/
    wget https://launchpad.net/linaro-toolchain-binaries/trunk/2013.03/+download/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
    tar -xjf gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
    export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
    
    git clone git://git.denx.de/u-boot.git
    cd u-boot/
    git checkout v2013.04 -b beaglebone-black
    wget https://raw.github.com/eewiki/u-boot-patches/master/v2013.04/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    make ARCH=arm CROSS_COMPILE=${CC} distclean
    make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_config
    make ARCH=arm CROSS_COMPILE=${CC}
    cd ../
    
    mkdir -p kernel/
    cd kernel/
    git clone git://github.com/RobertCNelson/linux-dev.git
    cd linux-dev/
    git checkout origin/am33x-v3.8 -b tmp
    ./build_kernel.sh
    mkdir -p ../patches/
    wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch -O ../patches/mac80211.patch
    cd KERNEL/
    patch -p1 --no-backup-if-mismatch < ../../patches/mac80211.patch
    cd ../
    ./tools/rebuild.sh
    cd ../
    
    cat <<EOF > boot/uEnv.txt
    mmcroot=/dev/mmcblk0p2 ro
    mmcrootfstype=ext4 rootwait fixrtc
    uenvcmd=run loaduimage; run loadfdt; run mmcargs; bootz 0x80200000 - 0x80F80000
    EOF
    
    cp -v kernel/linux-dev/deploy/3.8.13-bone20.zImage boot/zImage
    mkdir -p boot/dtbs
    tar -xovf kernel/linux-dev/deploy/3.8.13-bone20-dtbs.tar.gz -C boot/dtbs/
    
    tar -xovf kernel/linux-dev/deploy/3.8.13-bone20-modules.tar.gz -C root/
    tar -xovf kernel/linux-dev/deploy/3.8.13-bone20-firmware.tar.gz -C root/lib/firmware/
    
    cat <<EOF > root/etc/fstab
    /dev/mmcblk0p2 / auto errors=remount-ro 0 1
    /dev/mmcblk0p1 /boot/uboot auto defaults 0 0
    EOF
    
    umount $rootp
    kpartx -dv $loopdevice
    losetup -d $loopdevice
    

    使用dd命令将此文件镜像到SD卡。在我们的示例中,我们假设存储设备位于/dev/sdb根据需要更改它。

    dd if=kali-custom-bbb.img of=/dev/sdb bs=4M
    

    dd操作完成后,卸载并弹出SD卡,然后将Beaglebone Black引导到Kali Linux中。引导时,您需要按住“ BOOT”按钮,它是离microSD卡最近的一个按钮。

  • 相关阅读:
    suse12安装详解
    Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)
    菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]
    openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
    Multiple network matches found for name 'selfservice', use an ID to be more specific.报错
    查看 SELinux状态及关闭SELinux
    SELinux深入理解
    IP地址、子网掩码、网络号、主机号、网络地址、主机地址
    Oracle job procedure 存储过程定时任务
    POI文件导出至EXCEL,并弹出下载框
  • 原文地址:https://www.cnblogs.com/GKLBB/p/13587834.html
Copyright © 2011-2022 走看看