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卡最近的一个按钮。

KAL1 LINUX 官方文档之kali开发---自定义 Beaglebone Black 镜像

上一篇:KAL1 LINUX 官方文档之kali开发---ARM交叉编译


下一篇:KAL1 LINUX 官方文档之工具---kali工具