| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
On a x86/x64-host you need cross compile tools for the armhf architecture (bison and flex-package are needed for kernels >=4.16):
#for r2
sudo apt install gcc-arm-linux-gnueabihf libc6-armhf-cross u-boot-tools bc make ccache gcc libc6-dev libncurses5-dev libssl-dev bison flex
#for r64 / r2pro / r3 / r4
sudo apt install gcc-aarch64-linux-gnu u-boot-tools bc make gcc ccache libc6-dev libncurses5-dev libssl-dev bison flexIf you build it directly on the BananaPi-R2/R64 (not recommended) you do not need the crosscompile-packages gcc-arm-linux-gnueabihf/gcc-aarch64-linux-gnu and libc6-armhf-cross
Ubuntu 22 seems not set update-alternatives for gcc, so build.sh will report crosscompiler is not installed
for i in $(ls /usr/bin/arm-linux-gnueabihf-gcc-{8..12});do sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc $i 50;done
sudo update-alternatives --config arm-linux-gnueabihf-gcc
for i in $(ls /usr/bin/aarch64-linux-gnu-gcc-{8..12});do sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc $i 50;done
sudo update-alternatives --config aarch64-linux-gnu-gccinternal wifi/bt does not work anymore on 6.0+ as there are internal changes in linux which break mt6625 driver
if you want to build for other board than R2, change "board" in build.conf first
./build.sh importconfig
./build.sh config #to configure manually with menuconfig
./build.shthe option "pack" creates a tar.gz-file which contains folders "BPI-BOOT" (content of Boot-partition aka /boot) and BPI-ROOT (content for rootfs aka /). simply backup your existing kernel (uImage or bpi-rX.itb on /boot) and unpack the content of these 2 folders to your system
you can also install direct to sd-card which makes a backup of kernelfile, here you have to change your uEnv.txt if you use a new filename (by default it's containing kernelversion)
The Dockerfile in utils/docker/ provides a build environment without installing the native compilers on the local system.
The local directory will be mounted into the docker container. All changes will also be present in the respository folder.
Build the docker container for building once:
sh ./utils/docker/build_container.shNote: if you get this error: "Got permission denied while trying to connect to the Docker daemon socket at ..." you have to configure non-root https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
sudo usermod -aG docker $USER
newgrp dockerStart and connect to the running docker container:
sh ./utils/docker/run.shNow you can use the commands from above:
./build.shClose the container with exit or CTRL-D.
Your build artifacts from the build script will be in the folder ./SD/
If you want to clean up you can remove all containers (and the associated docker images) with:
docker rmi bpi-cross-compile:1 --forceeither on host-system (build maschine) and inserted sdcard:
./build.sh installor in running system (first make backup of your current itb in /boot) by unpacking the tar.gz file created by pack option in build.sh
kernelfile=bpi-r3_6.6.47-main.tar.gz
sudo tar -xzf $kernelfile --strip-components=1 -C /boot/ BPI-BOOT
echo "unpack kernel-modules to bpi-root loopdev..."
sudo tar -xzf $kernelfile --strip-components=2 -C /lib/. BPI-ROOT/lib/Kernel upstream + BPI-R2 / R64
Kernel features by version
R2/R64:
| Feature | 4.4 | 4.9 | 4.14 | 4.19 | 5.4 | 5.10 | 5.15 | 6.1 | 6.6 | 6.12 |
|---|---|---|---|---|---|---|---|---|---|---|
| PCIe | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| SATA | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| 2 GMAC | Y | Y | Y | Y | N | N | N | Y | Y | |
| DSA | N | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| USB | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| VLAN (dsa) | Y | N | Y | Y | Y | Y | Y | Y | ||
| VLAN-aware Bridge | N | Y | Y | Y | Y | Y | Y | Y | ||
| HW NAT (R2) | Y | Y | N | Y | Y | Y | Y | |||
| HW QOS (R2) | Y | ? | N | N | ||||||
| Crypto | Y | Y | Y | Y | ||||||
| WIFI (internal) | Y | Y | Y | Y | Y | Y | N | N | N | |
| BT | N | N | Y | Y | Y | Y | Y | N | N | N |
| VIDEO (R2 only) | Y | N | Y | Y | Y | Y | Y | Y | Y | |
| ACPI (R2) | ? | N | Y | Y | Y | Y | N | |||
| IR (R2) | ? | N | N | N | Y | Y | ? | Y | Y | |
| WIFI (R64) | N | N | N | N | Y | Y | Y | Y | Y | |
| BT (R64) | N | N | N | N | Y | Y | Y | Y | Y | |
| Other options | -- | -- | -- | -- | -- | -- | -- | -- | -- | |
| OpenVPN | ? | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| iptables (R2) | ? | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| nftables (R2) | ? | N | N | Y | Y | Y | Y | Y | Y | Y |
| LXC / Docker (R2) | ? | ? | Y | Y | Y | Y | Y | Y | Y | Y |
Symbols:
| Symbol | Meaning |
|---|---|
| ? | Unsure |
| () | Testing |
(Testing in separate branch wlan/hdmi/hwnat/hwqos)
kernel 4.4 / uboot 2014-04: https://github.com/frank-w/BPI-R2-4.4 mainline-uboot: https://github.com/frank-w/u-boot
R2Pro/R3/R4
| Feature | 6.1 | 6.6 | 6.12 |
|---|---|---|---|
| USB | Y | Y | Y |
| PCIe | Y | Y | Y |
| SATA (r2pro) | Y | Y | Y |
| DSA | Y | Y | Y |
| 2 GMAC | Y | Y | Y |
| SFP (R3) | Y | Y | Y |
| VLAN | Y/P | Y/P | Y |
| HW NAT (R3) | Y | Y | Y |
| WIFI (r3 internal) | Y | Y | Y |
| VIDEO (R2pro only) | Y | Y | Y |
| IR (R2pro) | ? | ? | ? |
| R3mini support | N | Y | Y |
| R4 support | N | N | Y |
P=partial (vlan on r3 only works on dsa-ports, not on left SFP)
Latest images are created by my BPI-Router-Images repo https://github.com/frank-w/BPI-Router-Images
and stored on my gdrive https://drive.google.com/drive/folders/1A5S7_82Bg4EYxjzdQ5FKyBw9Qi2C3uK-?usp=drive_link
discussion in bpi forum: https://forum.banana-pi.org/t/debian-ubuntu-image-creation/15826
more information: https://www.fw-web.de/dokuwiki/doku.php?id=en:bpi-r4:start#debian_ubuntu_image_building
GPL-2.0
Free Software, Hell Yeah!
| Back | FazBrowse Home | New Git URL |