์
์
์ ์๋ํ๋ฉด์ ์ฐพ์๋ณธ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค.
์ค๊ฐ๋
์ด ์์ ์ ์๋ค.
์ง์ ๋ถํ ์ ํ์ฉํ๋ ์ ์ฅ์: MicroSD / SPI NOR Flash / eMMC (ํด๋น ์์)
- MicroSD ์ U-Boot์ ํฌํจํ ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ์ด๋์ ์ํ๋ก ๊ทธ๋ฆฌ๋ก ๋ฐ๋ก ๋ถํ ํ๋ ๋ฐฉ๋ฒ
- SPI ์ ๋ถํธ๋ก๋ (U-Boot or EDK2)๋ฅผ ์ฌ๋ ค์ NVMe or MicroSD๋ก ๋ถํ ํ๋ ๋ฐฉ๋ฒ
- ๋ถํ ์ฐ์ ์์๋ SPI > MicroSD
- AP ๋ด๋ถ์ ๋ฏธ๋ฆฌ ์ ์ฅ๋ ์ฝ๋๋ก ๋ถํ ํ๋ ๋ชจ๋
- ์ฃผ๋ก SPI์ ํ๋์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฏ ํจ
- ํ๋์ ์์
- rkdeveloptool db๋ฅผ ํตํด SPL Loader๋ฅผ ๋ก๋ฉ์์ผ์ ํ๋์๋ฅผ ํ ์ ์๋ ์ํ๋ก ๋ง๋ ํ
- rkdeveloptool wl ๋ก SPI์ ํ๋์ํ ์ ์์
-
- ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ปดํจํ ํ๊ฒฝ์ ๊ทผ์ ํด๋ณด์.
- Rock 5B+ ๋ ์์ง Bronze Support์.
- ์ด์๋ฅผ ์ฐพ์๋ณด๋ DMC (Dynamic Memory Controller์ธ ๋ฏ)๊ฐ ์๋ํ์ง ์๋๋ค๋ ๋ง์ด ์์
-
U-Boot ๋ฒ์ ์ด ๋ฎ๋ค๊ณ ํจ์ปค๋ ์ด๋ฆ ๊ธธ์ด๋ ์ด๋ฐ ๋ฐ์์ ๋ฌธ์ ๊ฐ ์กฐ๊ธ์ฉ ์์ ์ ์๋ค๊ณ ํจ
- ์ต๊ทผ์ ์ ๋ฐ์ดํธ๊ฐ ๋ ๊ฒ์ผ๋ก ๋ณด์ (ํ์ค์น ์์)
-
Close-to-Mainline U-Boot (Artifacts)
- Collabora ์ธก์์ Upstreaming์ ์๋ํ๊ณ ์๋ U-Boot
- MicroSD์ U-Boot์ ์ค์นํ๋ ๋ฐฉ๋ฒ๋ ์๋ค๋ ๋ฏ ํ๋ค.
- U-Boot๋ UEFI ์คํ์ ์ผ๋ถ๋ฅผ ๊ตฌํํ๊ณ ์์ด UEFI๋ก์ ๋ถํ ์ด ๊ฐ๋ฅํ๋ค๋ ๋ฏ ํ๋ค.
- ์๋ฆฌ์ผ ์ฝ์์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์ผ์ด๋ธ์ ์ฒดํฌํ์
- ๊ธฐ๋ณธ baudrate๊ฐ 1.5M์ด๋ผ ๊ฐ์ง๊ณ ์๋ ์ผ์ด๋ธ๋ก๋ ์๋์๋ค.
- RADXA Wiki / Install the bootloader to the SPI NOR flash
- RADXA Wiki / Install the image to microSD
- NixOS Wiki / Radxa ROCK5 Model B
- Rockchip(๋ฝ์นฉ) - ์ธ ๊ฐ์ง ๋ถํธ ๋ชจ๋(Boot Mode) ์ค๋ช
- RK3588 Mainline U-Boot Instructions
- Mainline DeviceTree๊ฐ ์์ง ์์ฑ๋์ง ์์๋ค.
- ์ฐพ์๋ณด๋ ํจ์น๋ฅผ ๋ณด๋ธ ๊ฒ ๊ฐ์ผ๋ ์์ง ๋จธ์ง๊ฐ ์๋ ๋ฏ
- ๋ ํฌ๋ฅผ ํด๋ก ํ๋ค.
$ git clone https://gitlab.collabora.com/hardware-enablement/rockchip-3588/u-boot.git
$ git clone https://gitlab.collabora.com/hardware-enablement/rockchip-3588/rkbin.git
- ํฌ๋ก์ค๋น๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค.
let
nixpkgs = import <nixpkgs> {};
crosspkgs = import <nixpkgs> {
crossSystem = { config = "aarch64-unknown-linux-gnu"; };
};
in
nixpkgs.mkShell {
nativeBuildInputs = (with crosspkgs.buildPackages; [
binutils
bison
flex
gcc
]) ++ (with nixpkgs; [
gnutls
openssl
python312
python312Packages.pip
python312Packages.pyelftools
python312Packages.virtualenv
python312Packages.setuptools
swig
]);
}
- u-boot๋ฅผ ๋น๋ํ๋ค.
$ nix-shell
$ cd u-boot
$ make rock5b-rk3588_defconfig
# ๋น๋ํ๋ค.
$ export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.18.bin
$ export BL31=../rkbin/bin/rk35/rk3588_bl31_v1.47.elf
$ make CROSS_COMPILE="aarch64-unknown-linux-gnu-"
$ ls -alh u-boot.idb idbloader.img
-rw-r--r-- 1 nenw nenw 216K May 6 03:33 idbloader.img
-rw-r--r-- 1 nenw nenw 1.5M May 6 03:33 u-boot.itb
# ๊ธฐ์กด ์ด๋ฏธ์ง์ ๋ฎ์ด์์ด๋ค.
$ cp ~/rock-5b-spi-image-gd1cf491-20240523-debug.img ./rock-5b-plus-bootloader-20250506.img
$ dd if=idbloader.img of=rock-5b-plus-bootloader-20250506.img seek=64 conv=notrunc
$ dd if=u-boot.itb of=rock-5b-plus-bootloader-20250506.img seek=16384 conv=notrunc
- NixOS Download ์์ Minimal ISO (64-bit ARM) ์ ๋ค์ด๋ก๋ํ๋ค.
- USB์ ์ด๋ค.
$ lsblk
# ์ฃผ์! `/dev/sdX` ๋ฅผ ์ด์ `lsblk` ์์ ์์๋ธ USB์ ๋๋ฐ์ด์ค ํ์ผ๋ก ๊ต์ฒดํ๋ค.
# ์๋ชป ์ํ ์ ์๋ฑํ ๋์คํฌ๊ฐ ๋ ์๊ฐ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํ ๊ฒ
$ dd if=nixos-minimal-25.05.802674.7848cd8c982f-aarch64-linux.iso of=/dev/sdX bs=4M status=progress conv=fdatasync
I followed your instructions, but I end up in a boot loop: