Proxmark3基于libusb驱动下的固件编译

来自RadioWar Wiki
跳转至: 导航搜索

Windows7下编译客户端与固件(基于libusb驱动)

从2012年11月4日起,Proxmark3的Google Code已经将USB CDC分支合并到了官方版本当中,因此从SVN的630开始,不再使用基于libusb的USB驱动模式,而改为了USB CDC驱动模式,但是因为相关联的代码修改以及测试等等的原因,所以USB CDC模式并不完善以及稳定,所以我们不建议各位用户自行更新相关的版本!以下为基于旧版本libusb驱动模式下的SVN下载源码以及固件编译安装方法。


1、下载官方提供的Windows编译环境Proxspace(官方下载地址


2、解压Proxspace到任意文件夹。在proxspace的目录下,找到”run.bat“文件,用文本编辑器打开该文件,并且修改以下参数:

 set MYPATH=将此路径改为proxspace现有路径
 若批处理最后一行为: msys/msys.bat,请改为 msys\msys.bat

例如:proxspace解压缩在D盘Proxmark3目录下,修改MYPATH=D:\Proxmark3\proxspace,保存,并关闭文件。


3、删除Proxspace文件夹下pm3内的所有文件(因为是老版本的源码,不需要了,后面会更新新源码)

4、双击运行”run.bat“,进入终端后执行以下命令更新&编译。

通过SVN命令更新源码到最新版本并编译:

 svn co http://proxmark3.googlecode.com/svn/trunk proxmark3-read-only
 cd proxmark3-read-only
 make all

一般编译都会顺利完成,这时候在Client目录生成的客户端,在其他目录找到以下固件文件备用:

 bootrom.elf  bootrom.s19  fpgaimage.elf  fpgaimage.s19  fullimage.elf  osimage.elf  osimage.s19

Linux环境下编译客户端与固件(基于libusb驱动)

  2013年起,SVN基于630以上版本已经更改为USB CDC驱动模式,所以SVN基于630以上的版本的方法会有所不同

以下过程以Ubuntu为例,当然也适用其他Debian系列的扩展系统,像Backtrack等。


1、安装编译所需环境:

 sudo apt-get install subversion build-essential libreadline5 libreadline-dev libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config

2、通过SVN获取最新版本的源码包:

 svn co http://proxmark3.googlecode.com/svn/trunk proxmark3-read-only

3、下载安装devkitARM,此处有两种方法:

①、是使用源码包里的自动配置的脚本

 sudo apt-get install wget
 tools/install-gnuarm4.sh ~/gnuarm `pwd`/tmp

接下来配置ARMLIB到环境变量

 export ARMLIB=/home/YOURUSERNAME/gnuarm/lib/gcc/arm-elf/4.3.3/interwork
 export PATH=${PATH}:/home/YOURUSERNAME/gnuarm/bin/

把以上两行加到~/.bashrc文件的后面,方便每次启动都能加载此环境变量。

②、是自己下载 devkitARM安装配置

 sudo apt-get install wget
 wget http://sourceforge.net/projects/devkitpro/files/devkitARM/devkitARM_r40-i686-linux.tar.bz2
 tar jxvf devkitARM_r40-i686-linux.tar.bz2
 sudo mkdir /opt/devkitpro/
 sudo mv devkitARM /opt/devkitpro/
 export PATH=${PATH}:/opt/devkitpro/devkitARM/bin/

把以上最后一行加到~/.bashrc文件的后面,方便每次启动都能加载此环境变量。

4、切换到proxmark3-read-only目录执行:

 make all

一般编译都会顺利完成,这时候在Client目录生成的客户端,在其他目录找到以下固件文件备用:

bootrom.elf  bootrom.s19  fpgaimage.elf  fpgaimage.s19  fullimage.elf  osimage.elf  osimage.s19

Windows7&Linux下升级固件(基于libusb驱动)

此步骤只针对懂得如何使用SVN下载最新固件版本下进行操作!所有Proxmark3出厂时已经拥有固件!

 2013年开始,SVN基于630以上版本全部改为USB CDC驱动,故此从SVN下载回来的固件版本高于或等于630的,都不可以使用该更新升级方法
 请切记!在你不懂得PM3操作的情况下,特别是刚刚得到PM3的童鞋千万不要尝试升级你的PM3固件!
 以下固件中bootrom不要轻易的更新,如果中途失败,很可能会导致Proxmark3无法被电脑识别(俗称变成砖头)。

CMD下进入固件解压文件夹内的win32目录并且执行(提前将Firmware目录内的文件拷入win32目录下)


手动更新bootrom (可选)

 flasher -b bootrom.elf 

手动更新fullimage

 flasher  fullimage.elf

手动更新osimage

 flasher osimage.elf

手动更新fpgaimage

 flasher -b fpgaimage.elf


更新成功以上几个就可以了.不同版本固件和软件使用会导致程序出错,压缩包内有配套相应版本的proxmark3.exe软件,请使用相应版本软件. R486以后固件配套是proxmark3.exe软件,非prox.exe,直接CMD切换到win32目录下proxmark3.exe

  Linux下更新固件过程与windows一样,固件是通用的。只需要把新的固件文件复制到flasher目录,按照以上命令更新即可!
  如果更新固件导致Proxmark3产生不可挽救的后果的话,请使用J-Link进行Jtag固件刷写,这样子就可以恢复了!