Other

项目介绍

frank-w/u-boot 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 Other 许可证,目前获得 83 个 Star、40 次 Fork。

仓库全名
frank-w/u-boot
开源许可证
Other
Star 数
83
Fork 数
40
未关闭 Issue
9

README 摘要

U-boot for BPI-R2/R64/R2Pro/R3/R4 Requirements On x86/x64-host you need cross compile tools for the armhf architecture: Issues R2: loadenv fails because of resized environment (4096 => 8188) backup your saved environment before update uboot or change back CONFIGENVSIZE to SZ4K (./build.sh soc) erase your saved environment no emmc-command (not needed "emmc pconf 0x48" = "mmc partconf 0 1 1 0") Usage flash precompiled…

完整内容见 GitHub 原始 README 或本页 。

常见问题

u-boot 用什么语言开发?

主要使用 C 编写,采用 Other 许可证,目前有 83 个 Star。

u-boot 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 u-boot 的源码?

可以直接克隆仓库:git clone https://github.com/frank-w/u-boot.git;安装与运行步骤见仓库 README。

u-boot 最近还在维护吗?

仓库最近一次更新为 6月18日,当前有 9 个未关闭 Issue;Star 数为 83,可作为社区活跃度的参考。

关于

U-Boot-Bootloader for BananaPI-R2/R64/R2Pro/R3/R4/R4Pro/R4Lite

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

README

U-boot for BPI-R2/R64/R2Pro/R3/R4

CI

Requirements

On x86/x64-host you need cross compile tools for the armhf architecture:

sudo apt-get install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu libc6-armhf-cross u-boot-tools make gcc swig python-dev python3-pyelftools

Issues

R2:

  • loadenv fails because of resized environment (4096 => 8188)
    • backup your saved environment before update uboot or change back CONFIG_ENV_SIZE to SZ_4K (./build.sh soc)
    • erase your saved environment
env erase
  • no emmc-command (not needed “emmc pconf 0x48” = “mmc partconf 0 1 1 0”)

Usage

  #edit build.conf to select bpi-r64/bpi-r2pro/bpi-r3 if needed
  ./build.sh importconfig
  ./build.sh config #optional (menuconfig)
  ./build.sh
  ./build.sh install #write to sd-card
  ./build.sh umount #umount automatic mounted partitions

flash precompiled binaries

e.g. for change my image (not tested for openwrt) to 8G-variant

sudo dd if=bpi-r4_sdmmc_8GB_bl2.img of=/dev/sdX1 conv=notrunc,fsync

building and flash image

for all boards there are basic sdcard image templates created containing the full bootchain till uboot.

  • bpi-r2.img.gz
  • bpi-r2pro.img.gz
  • bpi-r3_sdmmc.img.gz
  • bpi-r4_sdmmc.img.gz
  • bpi-r64_sdmmc.img.gz

These do not contain linux kernel or rootfs but you can flash them as base to sdcard.

gunzip -c bpi-r3_sdmmc.img.gz | sudo dd bs=1M status=progress conv=notrunc,fsync of=/dev/sdX

#writing R3 emmc (booting from spi-nand/nor and load kernel with initrd)
gunzip -c /mnt/bpi-r3_emmc.img.gz | dd bs=1M status=progress conv=notrunc,fsync of=/dev/mmcblk0

After this you can extract the rootfs and kernel to the card.

refresh partitiontable and mounting

sudo partprobe /dev/sdX
udisksctl mount -b /dev/disk/by-label/BPI-BOOT
udisksctl mount -b /dev/disk/by-label/BPI-ROOT

debian bullseye rootfs (created by buildchroot.sh in same folder): https://drive.google.com/drive/folders/1mEcz1NLX8kv_AOKCPGGBcebRtLVNrQqF?usp=share_link

kernel: https://github.com/frank-w/BPI-Router-Linux/releases/

# unpack debian rootfs
sudo tar -xzf bullseye_arm64.tar.gz -C /media/$USER/BPI-ROOT
# unpack kernel binary files
sudo tar -xzf bpi-r3_6.1.0-main.tar.gz --strip-components=1 -C /media/$USER/BPI-BOOT BPI-BOOT
# for r3 move kernel binary to root of boot-partition and rename it
mv /media/$USER/BPI-BOOT/bananapi/bpi-r3/linux/bpi-r3.itb /media/$USER/BPI-BOOT/bpi-r3-6.1.0.itb
echo "fit=bpi-r3-6.1.0.itb" >> /media/$USER/BPI-BOOT/uEnv.txt
# unpack kernel modules to rootfs
# debian uses /lib as symlink to usr/lib, extracting the dir from tar overwrites symlink with directory
# which contains then only the kernel-modules, but not other libs so extract the subfolder to /lib
sudo tar -xzf bpi-r3_6.1.0-main.tar.gz --strip-components=2 -C /media/$USER/BPI-ROOT/lib/ BPI-ROOT/lib/

R2 uses uImage and kernel=xxx in uEnv.txt (in folder bananapi/bpi-r2/linux) R64, R3, R4 uses fit in in root dir of BPI-BOOT partition (fit=bpi-rX.itb) R2Pro uses now fit and uEnv.txt too (Image.gz+dtb in extlinux folder as fallback).

set root-password and maybe make additional changes:

sudo chroot /media/$USER/BPI-ROOT
passwd
echo "bpi-r3" > /etc/hostname

/etc/fstab

# <file system>	<dir>	<type>	<options>		<dump>	<pass>
/dev/mmcblk0p5	/boot	vfat    errors=remount-ro	0	1
/dev/mmcblk0p6	/	ext4	defaults		0	0

maybe add network-config (systemd) and systemd services i uploaded here: https://drive.google.com/drive/folders/1kST9ZOv8xQWFfo9GUNIIpKjD8QuYMj8i?usp=share_link

i have created an script which creates full sdcard-Images including rootfs and kernel (except BPI-R4):

https://github.com/frank-w/BPI-Router-Images

评论

暂无评论