# BPI-tools

\[bpi-tools]: v1.0.3: bpi-tools bpi-get cmd support update tools & download images

**bpi-tools can install to X86 ubuntu and Banana Pi:**

on x86 pc:

for ubuntu 14.04 (x86):

`dpkg --add-architecture armhf`

or for ubuntu 12.04 (x86):

`echo "foreign-architecture armhf" >> /etc/dpkg/dpkg.cfg.d/multiarch`

`dpkg -i bananapi-bpi-tools*.deb`

if you don't have pv cmd: `apt-get install pv (for bpi-copy use)`

**download bpi-tools & install:**

on ubuntu / raspbian / debian :

download file: bananapi-bpi-tools\_1.0.3\_armhf.deb

github:

<https://github.com/BPI-SINOVOIP/BPI-files/raw/master/debs/bananapi-bpi-tools_1.0.3_armhf.deb>

google drive:

<https://drive.google.com/file/d/0B_YnvHgh2rwjc29jNVdoaDNXRUU/view?usp=sharing>

MD5: 0408a434003651001f0131e61cadc2fd

`# sudo dpkg -i bananapi-bpi-tools_1.0.3_armhf.deb`

on other system :

download file: bpi-tools.tgz

google drive: <https://drive.google.com/file/d/0B_YnvHgh2rwjMGZOZC1Gd3dwQkE/view?usp=sharing>

MD5: 82e35dba52bc3edb48e96c8a544ac216

`# sudo tar xvf bpi-tools.tgz -C /`

**HOW TO USE:**

```
root@bananapi:~# bpi-tools 
       bpi-tools v1.0.6
usage: bpi-tools
       bpi-tools FILE
       bpi-tools --all | --update | --download | --version


bpi files:
bpi-tools       v1.0.6
bpi-bootsel     v1.0.4
bpi-copy        v1.0.10a
bpi-get         v1.0.3
root@bananapi:~# bpi-tools --update
       bpi-tools v1.0.6
usage: bpi-tools
       bpi-tools FILE
       bpi-tools --all | --update | --download | --version

BPIFILE=/root/.bpi-tools.lst
Wait for download index file ...
OK!!\n

bpi files:
bpi-tools       v1.0.6
bpi-bootsel     v1.0.4
bpi-copy        v1.0.10a
bpi-get         v1.0.3
root@bananapi:~# bpi-tools --version

bpi files:
/usr/bin/bpi-tools    v1.0.6
/usr/bin/bpi-bootsel    v1.0.4
/usr/bin/bpi-copy    v1.0.10a
/usr/bin/bpi-get    v1.0.3
root@bananapi:~# bpi-tools --download

download bpi files:
bpi-tools
bpi-tools: OK
bpi-tools: v1.0.6
bpi-bootsel
bpi-bootsel: OK
bpi-bootsel: v1.0.4
bpi-copy
bpi-copy: OK
bpi-copy: v1.0.10a
bpi-get
bpi-get: OK
bpi-get: v1.0.3
root@bananapi:~# ls -l
total 20
-rwxr-xr-x 1 root root 1493  5月  6 10:06 bpi-bootsel
-rwxr-xr-x 1 root root 6170  5月  6 10:06 bpi-copy
-rwxr-xr-x 1 root root 1391  5月  6 10:06 bpi-get
-rwxr-xr-x 1 root root 2898  5月  6 10:06 bpi-tools
root@bananapi:~# bpi-get
       bpi-get v1.0.3
usage: bpi-get
       bpi-get FILE

BPIFILE=/root/.bpi-files.lst
```

Wait for download index file ...

bpi files: 2016-05-05-u1510\_gpu\_vpu\_camera\_bt\_bpi-m2p\_beta.img.zip 2016-05-05-debian-8-jessie-lite-bpi-m2p\_beta-sd-emmc.img.zip 2016-04-27-debian-8-jessie-mate\_gpu\_mpv\_1080p-bpi-m3\_beta-sd-emmc.img.zip 2016-04-25-ubuntu-mate-16.04\_Xenial\_gpu\_mpv\_1080p\_bt-bpi-m3\_beta-sd-emmc.img.zip u1510\_gpu\_vpu\_camera\_bpi-m2p-20160413\_preview\.img.zip 2016-04-11-Armbian\_5.07\_Bananapim2plus\_Debian\_jessie\_3.4.111\_desktop\_preview\.img.zip 2016-04-08-raspbian-jessie-bpi-m2.img.zip 2016-04-08-raspbian-jessie-bpi-m2p.img.zip 2016-04-08-raspbian-jessie-bpi-m3.img.zip

```
root@bananapi:~# bpi-get 2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip
INFO: Try to get 2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip ...
BPIFILE=/root/.bpi-files.lst
IMGFILE=2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip
MD5TMP=/tmp/.md5.tmp.8322
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   280    0   280    0     0    430      0 --:--:-- --:--:-- --:--:--   430
  0     0    0  671M    0     0  3317k      0 --:--:--  0:03:27 --:--:-- 3533k
2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip: OK
root@bananapi:~# bpi-copy .
SRC=.
DST=
COPYMODE=usage
default
       bpi-copy v1.0.10a
usage: bpi-copy
       bpi-copy IMGFILE
       bpi-copy IMGDIR
       bpi-copy IMGFILE DEVICE
       bpi-copy DEVICE IMGFILE

bpi images: (*.img.zip)
./2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip
bpi images: (*.img)
bpi images: (*.img.gz)
/usr/lib/u-boot/bananapi/bpi-m2/BPI_M2_720P.img.gz
/usr/lib/u-boot/bananapi/bpi-m2p/BPI_M2P_720P.img.gz
/usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m1.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m1p.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m2.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m2p.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m3.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-r1.img.gz
xz images: (*.xz)
zip images: (*.zip)
./2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip
raw images: (*.raw)

Disks: (lsblk | grep disk)
sda      8:0    0 931.5G  0 disk 
sdb      8:16   0   2.7T  0 disk 
sdc      8:32   1  14.9G  0 disk 

Disks: (fdisk -l | grep Disk | grep bytes)
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
Disk /dev/sdb: 3000.6 GB, 3000558944256 bytes
Disk /dev/sdc: 15.9 GB, 15931539456 bytes
root@bananapi:~# bpi-copy ./2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip /dev/sdc
SRC=./2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip
DST=/dev/sdc
COPYMODE=imagetodisk
imagetodisk
       bpi-copy v1.0.10a
usage: bpi-copy
       bpi-copy IMGFILE
       bpi-copy IMGDIR
       bpi-copy IMGFILE DEVICE
       bpi-copy DEVICE IMGFILE

Warning: Try to write ./2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip to BOOTDISK /dev/sdc
==============================================================
五  5月  6 10:21:13 CST 2016
*** start COPY (blue led on ) .....
umount device: /dev/sdc
umount /dev/sdc2
umount /dev/sdc1
==============================================================
IMGFILE=./2016-05-05-debian-8-jessie-lite-bpi-m2p_beta-sd-emmc.img.zip
==============================================================
zip
1.91GB 0:01:59 [16.3MB/s] [                   <=>                              ]
0+20666 records in
0+20666 records out
***  end  COPY (blue led off) .....
五  5月  6 10:23:40 CST 2016
==============================================================
RUNTIME 2:27
OK!! You can remove the BOOTDISK /dev/sdc now!!
root@bananapi:~# 
```

**if you want to use bpi-m2p image for bpi-m3, you can re-insert SD card:**

```
root@bananapi:~# bpi-bootsel 
       bpi-bootsel v1.0.4
usage: bpi-bootsel
       bpi-bootsel IMGFILE
       bpi-bootsel IMGFILE DEVICE

bpi images:
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m1.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m2.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m1p.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m2p.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-r1.img.gz
/usr/lib/u-boot/bananapi/u-boot-2016.05-rc1/u-boot-2016.05-rc1-bpi-m3.img.gz
/usr/lib/u-boot/bananapi/bpi-m2/BPI_M2_720P.img.gz
/usr/lib/u-boot/bananapi/bpi-m2p/BPI_M2P_720P.img.gz
/usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz

Disks: (lsblk | grep disk)
sda      8:0    0 931.5G  0 disk 
sdb      8:16   0   2.7T  0 disk 
sdc      8:32   1  14.9G  0 disk 

Disks: (fdisk -l | grep Disk | grep bytes)
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
Disk /dev/sdb: 3000.6 GB, 3000558944256 bytes
Disk /dev/sdc: 15.9 GB, 15931539456 bytes
root@bananapi:~# bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz /dev/sdc
Warning: Try to write /usr/lib/u-boot/bananapi/bpi-m3/BPI_M3_720P.img.gz to BOOTDISK /dev/sdc
umount device: /dev/sdc
umount /dev/sdc2
umount /dev/sdc1
OK!! You can remove the BOOTDISK /dev/sdc now!!
root@bananapi:~#
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bananapi.gitbook.io/bpi-m3/zh/bpitools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
