> For the complete documentation index, see [llms.txt](https://bananapi.gitbook.io/bpi-m2-ultra-open-source-single-board-computer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bananapi.gitbook.io/bpi-m2-ultra-open-source-single-board-computer/bpi-m2ultrasourcecodeongithub/bpi-berrybpi-ultra-how-to-alter-ubootkernel-from-github.md).

# BPI-Berry/BPI-Ultra How to alter Uboot、Kernel from github

**Banana Pi BPI-M2 Ultra / BPI-M2 Berry How to alter Uboot、Kernel**  <br>

**1,Click** [**http://www.banana-pi.org/download.html**](http://www.banana-pi.org/download.html)**, download relatively BPI-M2 Ultra Image ；and burn images to SD card.**

**2,Install tool-chain**

`sudo apt-get install build-essential libncurses5-dev u-boot-tools qemu-user-static debootstrap git binfmt-support libusb-1.0-0-dev pkg-config gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libssl-dev`

**3,Install BPI-Tools ,to BPI-GitHub** [**https://github.com/BPI-SINOVOIP/bpi-tools**](https://github.com/BPI-SINOVOIP/bpi-tools)

`git clone https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP14nwdsx_u8usJR%2FM2U%20tools.png?generation=1584080216063695\&alt=media)

**4，Put Download done BPI-Tools copy to under /usr/bin**

`sudo cp -a bpi-* /usr/bin/`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP16sjoTRJN_ELk6%2Fpic%202.png?generation=1584080216280259\&alt=media)

Execute bpi-tools -u order，install successfully after appear belows screen

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP18-KaPLbqu4GO3%2Ftools%202.png?generation=1584080215578745\&alt=media)

Go to BPI-GitHub <https://github.com/BPI-SINOVOIP/BPI-M2U-bsp>\
，note: BPI-M2 berry and BPI-M2 Ultra use the same code.

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1AXk1FZFHIPq3B%2FM2M%20BSP.png?generation=1584080216230970\&alt=media)Grab BPI-M2Ultra-bsp Source Code; execute grabing source code order

`git clone https://github.com/BPI-SINOVOIP/BPI-M2U-bsp.git`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1Cjm7G4b8pmKL5%2Fgit%20m2m%20bsp.png?generation=1584080216562609\&alt=media)

switch to BPI-M2U-bsp category after carried out，execute ./build.sh order

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1Ek2jwz9wdfKZb%2Fgit%20m2m%20bsp%202.png?generation=1584080215969546\&alt=media)

Can see BPI-M2 Ultra/BPI-M2 Berry configuration,choose BPI-M2U’s resolution what you wanted.:default compile 720P：

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1GdFtgG6jkptaY%2Fm2m%20pic%203.png?generation=1584080215836639\&alt=media)

Choose mode what you need compile (advise choose 1 option first time compile)

**5，Compile done can seen under generate new SD folder BPI-M2U-bsp**

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1IdHKZ72oatO_B%2Fm2m%20pic%204.png?generation=1584080216395887\&alt=media)

Later Enter into SD folder seen below files

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1K5k33YBCS_w-f%2Fm2m%20pic%205.png?generation=1584080216589006\&alt=media)

These files represent information one by one

100MB --> BPI-M2Ultra uboot relative file

BPI-BOOT-bpi-m2u.tgz --> BPI-M2Ultra uEnv.txt & uImage relative file

3.10.65-BPI-M2U-Kernel.tgz --> BPI-M2Ultra kernel relative file

**6,Use command to see the SD card current position.**

`sudo fdisk -l`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1MHI5HdaHpknSp%2Fm2m%20pic%206.png?generation=1584080217071214\&alt=media)

This example can be seen SD Card’s position in /dev/sdb

Can be seen BPI-M2Ultra system has two partition,one FAT32 partition,another one EXT4 partition,represent gradually.

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1OOU06BQLKchHq%2Fm2m%20pic%207.png?generation=1584080215642103\&alt=media)

**7，Change BPI-M2Ultra Uboot ，switch to /SD/100MB category；execute bpi-bootsel order:**

`sudo bpi-bootsel <file source> <SD route>`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1QiUdSWX4sdCBX%2Fm2m%20pic%208.1.png?generation=1584080217099665\&alt=media)

**8， Change BPI-M2Ultra uImage ,switch to /SD/ category；carry out relative command.**  <br>

```
sudo tar –xvf  <file source>  -C  <SD Boot route >
```

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1SLVhGlE8FdmS7%2Fm2m%20pic%208.2.png?generation=1584080216920275\&alt=media)

Belowinformation after execute，successfully done.

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1Uw5xxu8RWQkrb%2Fm2m%20pic%208.3.png?generation=1584080216786172\&alt=media)

**9， Change BPI-M2Ultra Kernel，switch to /SD/ category；execute relative order**

`sudo tar -xvf <file source> -C <SD Boot route>`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1Wt9AYVkxMOf5E%2Fm2m%20pic%209.1.png?generation=1584080217191633\&alt=media)

**Supplement**&#x20;

Change kernel setting，switch to / linux-sunxi category，execute order

`make ARCH=arm menuconfig`

![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1YWX55J9kn2YIw%2Fm2m%20pic%209.2.png?generation=1584080215863050\&alt=media)![](https://4206255271-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2HWtRGSle2JoRWmwsz%2F-M2HWva6YC36keljqeN9%2F-M2HXP1_LZHTNSNdk9wg%2Fm2m%20pic%209.3.png?generation=1584080216991571\&alt=media)
