為求盡快確認『樹莓派 3B+』當作 OpenWrt 開發系統之『可行性』 ?憑藉過往回憶,選擇了 16G 的 SD 卡【※約有 9-10 G 空間】!
然後依據
文件打造
The build system – About
The build system is a set of Makefiles and patches that allows users to easily generate both a cross-compilation toolchain and a root filesystem for embedded systems. The cross-compilation toolchain uses musl, a tiny C standard library.
A compilation toolchain is the set of tools used to compile code for your system. It consists of:
-
a compiler (in our case,
gcc
) -
binary utils like assembler and linker (in our case,
binutils
) -
a C standard library (for example GNU Libc, musl-libc, uClibc or dietlibc).
A compilation toolchain generates code for the same processor’s instruction set architecture (ISA) it runs on (in the case of most PCs and servers, for an x86 processor).
On most Linux systems, the compilation toolchain uses the GNU libc as C standard library. This is called the “host compilation toolchain”, and the machine it is running on is called the “host system”. The host compilation toolchain is provided by the Linux distribution running on the host system, and has nothing to do with the actual build system.
Embedded systems use a different processor and require a cross-compilation toolchain – a compilation toolchain that runs on a host system but that generates code for a target system (and target processor’s instruction set architecture (ISA)). For example, if your host system uses x86 and your target system uses MIPS32, the cross-compilation toolchain runs on x86 but generates code for MIPS32.
While it is possible to manually configure and compile your own software, this is complex and does not guarantee reproducible builds. LEDE’s build system automates this process and provides a 100% reproducible build.
While the build system was designed for developers, inexperienced users can also use it to easily build their own custom firmware!
The build system’s Makefiles have their own syntax, different from the conventional Makefiles of Linux make tool.
The Makefiles define the meta information of the package, where to download the package, how to compile, where to install the compiled binaries, etc.
………
接著查詢『目標』︰
Raspberry Pi
The Raspberry Pi is a single-board computer without an Ethernet Network Switch. There are many more Single-board computers without one.
OpenWrt for Raspberry Pi 2 is compiled with the ARM hard-float kernel ABI (armhf). This means that non-integer math is done in hardware instead of in software. Raspberry Pi 1 (and Zero) support only soft-float (armel) which is slower than hard float.
Supported Versions
The Raspberry Pi is supported in the brcm2708 target.
Subtargets are bcm2708 for Raspberry Pi 1, bcm2709 for the Raspberry Pi 2, bcm2710 for the Raspberry Pi 3.
↓ Model | Version | Current Release | Unsupported Functions | OEM Info | Forum Topic | Technical Data |
---|---|---|---|---|---|---|
Raspberry Pi | A | 18.06.1 | View/Edit data | |||
Raspberry Pi | B | 18.06.1 | View/Edit data | |||
Raspberry Pi | B+ | 18.06.1 | View/Edit data | |||
Raspberry Pi 2 | B | 18.06.1 | forum.openwrt.org | View/Edit data | ||
Raspberry Pi 3 | B | 18.06.1 | Country Code setting | pi-3-model-b | View/Edit data | |
Raspberry Pi 3 | B+ | 18.06.1 | Country Code setting, WiFi 2.4GHz, WiFi 5GHz, WIP | pi-3-model-b-plus | forum.openwrt.org | View/Edit data |
Raspberry Pi Zero W | 18.06.1 | pi-zero-wireless | View/Edit data |
決定了︰
make menuconfig
“Target System” ⇒ “Broadcom BCM27xx”
“Subtarget” ⇒ “BCM2710 64 bit based boards”
“Target Profile” ⇒ “Raspberry Pi 3B/3B+”
心想樹莓派 3B+ 既有四顆 arm CPU 內核,何不用
make -j 4 呢☺
pi@raspberrypi:~/openwrt make make[1] world make[2] toolchain/compile make[3] -C toolchain/gdb compile make[3] -C toolchain/binutils compile make[3] -C toolchain/gcc/initial compile
【demsg】
[ 7002.114849] Workqueue: events_freezable mmc_rescan [ 7002.114867] [<8079ef70>] (__schedule) from [<8079f5d8>] (schedule+0x50/0xa8) [ 7002.114875] [<8079f5d8>] (schedule) from [<8061a2d0>] (__mmc_claim_host+0xb8/0x1cc) [ 7002.114884] [<8061a2d0>] (__mmc_claim_host) from [<8061a414>] (mmc_get_card+0x30/0x34) [ 7002.114891] [<8061a414>] (mmc_get_card) from [<80623010>] (mmc_sd_detect+0x20/0x74) [ 7002.114898] [<80623010>] (mmc_sd_detect) from [<8061ccdc>] (mmc_rescan+0x1c8/0x394) [ 7002.114907] [<8061ccdc>] (mmc_rescan) from [<801379b4>] (process_one_work+0x158/0x454) [ 7002.114914] [<801379b4>] (process_one_work) from [<80137d14>] (worker_thread+0x64/0x5b8) [ 7002.114921] [<80137d14>] (worker_thread) from [<8013dd98>] (kthread+0x13c/0x16c) [ 7002.114930] [<8013dd98>] (kthread) from [<801080ac>] (ret_from_fork+0x14/0x28)
也只好鼻子摸著明天看結果吧★
pi@raspberrypi:~/openwrt $ make make[1] world make[2] toolchain/compile make[3] -C toolchain/gdb compile make[3] -C toolchain/binutils compile make[3] -C toolchain/gcc/initial compile make[3] -C toolchain/kernel-headers compile make[3] -C toolchain/musl compile make[3] -C toolchain/gcc/final compile ...