Again, amazing China. This time, Nanjing. What a
city!!!!!
Ancient Qinhuai @ Qinhuai River,
Nanjing
Ancient Qinhuai @ Qinhuai River,
Nanjing
Raspberry Pi has already
well-established a comprehensive community support world wide. Among
ALL the operating systems supporting Raspberry Pi, Home
Assistant stands out, shining brightly as an open-source home automation
operating system in the field of IoT.
Home Assistant is the
``open source home automation that puts local control and privacy first.
Powered by a worldwide community of tinkerers and DIY enthusiasts.
Perfect to run on a Raspberry Pi or a local server.'' (cited from first
page of the official website of Home Assistant.)
Home
Assistant OS is a minimal operating system optimized for running Home Assistant, and it does
not use traditional package management systems like apt. Instead, it
relies on Docker
containers to manage and run services, including Home Assistant and its
add-ons.
➜ ~ ssh root@192.168.1.83 The authenticity of host '192.168.1.83 (192.168.1.83)' can't be established. ED25519 key fingerprint is SHA256:MZDkXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXJmxE. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.1.83' (ED25519) to the list of known hosts.
System information IPv4 addresses for enu1u1: 192.168.1.83/24 IPv6 addresses for enu1u1: 2001:569:5993:5900:1b4a:e1e6:140c:aac0/64, fe80::ab1f:8f98:b81:a479/64 IPv4 addresses for wlan0: IPv4 addresses for wlu1u4:
OS Version: Home Assistant OS 12.3 Home Assistant Core: 2024.5.5
Home Assistant URL: http://homeassistant.local:8123 Observer URL: http://homeassistant.local:4357 [core-ssh ~]$
Please ensure the following 2 boards support have been installed
successfully.
3.2 CameraWebServer
Current ESP32
Examples provide an webcam server example: ESP32
Example CameraWebServer. Or, we can simply open up the example from
within Arduino IDE:
File->Examples->ESP32->Camera->CameraWebServer.
Both are compatible with the configuration
CAMERA_MODEL_AI_THINKER in ESP32
Example CameraWebServer. Therefore, three places are to be correctly
setup:
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
const char *ssid = "XXXXXXXXX";
const char *password = "YYYYYYYYY";
3.2.2 Verify and Upload
3.2.3 Demonstration
However, as you can see, the captured image is not quite stable. And,
I did find the WiFi connection is easy to get disconnected.
What to do???
[!NOTE:] What to
do???Please continue
reading.
3.3 RTSP with MJPEG
As of today, June 4, 2024, there is NOH.264 or
H.265
streaming server support. Therefore, I’m going to follow the following 2
blogs and build up RTSP
server with MJPEG video
streams.
I got a LicheeRV
Nano before I left China for Canada a couple of weeks ago. Nowadays
China is amazing. Let’s take a look at my hometown Wuhan of year
2024.
➜ LicheeRV-Nano-Build git:(main) ✗ source build/cvisetup.sh /proc/self/fd/19:7: cv1800b_board_sel: assignment to invalid subscript range ------------------------------------------------------------------------------------------------------- Usage: (1) menuconfig - Use menu to configure your board. ex: $ menuconfig
Fix eth0's MAC address. For the wired connection on
this particular small SBC Milk-V Duo
256M, I'd strongly recommend to use the physical MAC address for
eth0, rather than a dynamic one. Whenever rebooting, Milk-V Duo 256M will change its MAC
address, as well as the IP address, which is seriously
NOT what I expected. Therefore, what we need to do is
to modify file /etc/network/interfaces as suggested by
StackExchange issue Change
Mac Address permanently inside /etc/network/interfaces:
Even if I strictly followed the manual on duo-buildroot-sdk's
official documentation Compiled
using Ubuntu 22.04, I still failed to build an image out for
flashing, with the following error messages inside the log file
build/br.log:
After flashing the generated
out/milkv-duo256m-20240208-1949.img into the SD card,
we can now boot up Milk-V Duo 256M by
connecting it with my laptop via a USB cable.
3.1 lsusb
1 2 3
...... Bus 001 Device 009: ID 3346:1009 Cvitek RNDIS ......
ESP32-S3is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi and Bluetooth 5 (LE) connectivity that provides long-range support.
(Cite from Espressif's official
online doc ESP32-S3).
Modify line 13 of
/opt/qt/qt-everywhere-src-5.15.12/qtquick3d/src/plugins/assetimporters/assimp/assimp.pro
from QMAKE_USE_PRIVATE += assimp to
QMAKE_USE_PRIVATE += quick3d-assimp.
Don't use assimp-5.2.2 from Ubuntu default repo,
but build and install assimp (5.2.3 or above)
from source.
# cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 61.13 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : Generic DT based system Revision : 0000 Serial : eb8d68468b29abe9
For my LuckFox
Pico Max, I need to follow the following citation:
When connecting the camera to LuckFox Pico Pro/Max development boards, ensure that the metal side of the camera ribbon cable faces the chip on the development board.
(Refer to CSI
Camera)
BeagleV®-Fire is a revolutionary single-board computer (SBC) powered by the Microchip’s PolarFire® MPFS025T 5x core RISC-V System on Chip (SoC) with FPGA fabric.
(Cited from BeagleV-Fire
Board).
1. Introduction
This MPFS025T is
actually a PolarFire
Family FPGA SoC, fabriced with both FPGA and RISC-V CPU. I'm saving
my word in this part. Let's just do it.
You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
No
rule to make target 'firmware/regulatory.db'Solution: copy files regulatory.db and
regulatory.db.p7s obtained from
https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/
under folder
/home/lvision/Desktop/BeagleV-Fire-ubuntu/linux/firmware`` (You may have to create suchfirmware`
folder).
Parsing set-name Parsing hart entry points Entry Point U54_1 is 0x80200000 Entry Point U54_2 is 0x80200000 Entry Point U54_3 is 0x80200000 Entry Point U54_4 is 0x80200000 Parsing payload >>src.bin<< exec_addr is 0x80200000 owner is 1 secondary is 2 secondary is 3 secondary is 4 priv_mode is 1
Processing ELF >>src.bin<< >>src.bin<< is not an ELF object
Processing blob >>src.bin<< - placing at 0x80200000 lastChunk is 0, numChunks is 1 Set-name is >>PolarFire-SoC-HSS::U-Boot<< Output filename is >>./input/payload.bin<< Outputting Payload Header Outputting Code/Data Chunks Outputting ZI Chunks Outputting Binary Data Outputting Payload Header Tue 19 Dec 2023 12:58:45 PM PST [u-boot.bin: U-Boot 2023.07.02-linux4microchip+fpga-2023.09-dirty (Dec 19 2023 - 12:53:03 -0800)] [src.bin: U-Boot 2023.07.02-linux4microchip+fpga-2023.09-dirty (Dec 19 2023 - 12:53:03 -0800)] [payload.bin:U-Boot 2023.07.02-linux4microchip+fpga-2023.09-dirty (Dec 19 2023 - 12:53:03 -0800)]
Did you find what's
weird? - In the above subsection 3.2.6, I clearly used
debian rootfs. However, my BeagleV-Fire
Board is now running Ubuntu 23.04????? - I am using
a SD card of size 32G, why this one is detected as
16G ONLY?????
Some more investigation clearly shows that I do have 2 block
devices:
1 2 3 4 5 6 7 8 9 10 11 12
➜ ~ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk1 179:0 0 28.9G 0 disk ├─mmcblk1p1 179:1 0 722.5K 0 part ├─mmcblk1p2 179:2 0 60M 0 part └─mmcblk1p3 179:3 0 28.9G 0 part mmcblk0 179:8 0 14.6G 0 disk ├─mmcblk0p1 179:9 0 684K 0 part ├─mmcblk0p2 179:10 0 60M 0 part /boot/firmware └─mmcblk0p3 179:11 0 14.5G 0 part / mmcblk0boot0 179:16 0 4M 1 disk mmcblk0boot1 179:24 0 4M 1 disk
[ OK ] Finished systemd-user-sessions.service - Permit User Sessions. [ 24.197143] imx219 1-0010: failed to read chip id 219 [ 24.202314] imx219: probe of 1-0010 failed with error -5 [ 24.667023] usb0: HOST MAC 00:04:a3:d5:1a:45 [ 24.671376] usb0: MAC 00:04:a3:d5:1a:46 [ 24.680189] configfs-gadget.g_multi gadget.0: unable to autoconfigure all endpoints [ 24.693802] udc musb-hdrc.1.auto: failed to start g_multi: -524 [ 24.699874] configfs-gadget.g_multi: probe of gadget.0 failed with error -524 [ 24.707368] UDC core: g_multi: couldn't find an available UDC or it's busy [FAILED] Failed to start bb-usb-gadgets.service - BeagleBoard.org USB gadgets. See 'systemctl status bb-usb-gadgets.service' for details. [ OK ] Finished cockpit-motd.service - Cockpit motd updater service. [ OK ] Started nginx.service - A high per… server and a reverse proxy server. [ OK ] Started getty@tty1.service - Getty on tty1. [ OK ] Started serial-getty@ttyGS0.service - Serial Getty on ttyGS0. [ OK ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0. [ OK ] Reached target getty.target - Login Prompts. [ OK ] Finished grow_partition.service - Grow Root Partition.
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. debian@BeagleV:~$ neofetch Command 'neofetch' not found, but can be installed with: sudo apt install neofetch debian@BeagleV:~$ sudo apt install neofetch [sudo] password for debian: Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package neofetch debian@BeagleV:~$ uname -a Linux BeagleV 6.1.43-linux4microchip+fpga-2023.09-20231219+ #1 SMP Tue Dec 19 12:57:20 PST 2023 riscv64 GNU/Linux debian@BeagleV:~$
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Dec 19 08:27:24 2023 debian@BeagleV:~$ sudo apt update [sudo] password for debian: Get:1 http://deb.debian.org/debian sid InRelease [198 kB] Get:3 http://repos.rcn-ee.com/debian-riscv64 sid InRelease [3083 B] Get:2 https://debian.beagle.cc/riscv64 sid InRelease [3083 B] Get:4 http://deb.debian.org/debian sid/main riscv64 Packages [9076 kB] Get:5 http://repos.rcn-ee.com/debian-riscv64 sid/main riscv64 Packages [13.0 kB] Get:6 https://debian.beagle.cc/riscv64 sid/main riscv64 Packages [13.0 kB] Get:7 http://deb.debian.org/debian sid/main riscv64 Components [4198 kB] Get:8 http://deb.debian.org/debian sid/main riscv64 Contents (deb) [10.3 MB] Get:9 http://deb.debian.org/debian sid/main all Contents (deb) [37.8 MB] Fetched 61.6 MB in 3min 0s (341 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 6 packages can be upgraded. Run 'apt list --upgradable' to see them. debian@BeagleV:~$ apt list --upgradable Listing... Done appstream/unstable 1.0.1-2 riscv64 [upgradable from: 1.0.1-1] libappstream5/unstable 1.0.1-2 riscv64 [upgradable from: 1.0.1-1] libjs-sphinxdoc/unstable 7.2.6-3 all [upgradable from: 7.2.6-2] openssh-client/unstable 1:9.6p1-1 riscv64 [upgradable from: 1:9.5p1-2] openssh-server/unstable 1:9.6p1-1 riscv64 [upgradable from: 1:9.5p1-2] openssh-sftp-server/unstable 1:9.6p1-1 riscv64 [upgradable from: 1:9.5p1-2] debian@BeagleV:~$ sudo apt upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: ......
Today, I would disclose RISC-V. Let's save my
word and dive into it directly. As of today, December 18, 2023,
MOST of RISC-V chips are
designed and manufactured by Chinese companies.
➜ opensbi git:(master) make PLATFORM=generic FW_TEXT_START=0x40000000 FW_OPTIONS=0 CC lib/sbi/riscv_asm.o CC lib/sbi/riscv_atomic.o AS lib/sbi/riscv_hardfp.o CC lib/sbi/riscv_locks.o CC lib/sbi/sbi_ecall.o CC lib/sbi/sbi_ecall_exts.o CC lib/sbi/sbi_ecall_time.o CC lib/sbi/sbi_ecall_rfence.o CC lib/sbi/sbi_ecall_ipi.o CC lib/sbi/sbi_ecall_base.o CC lib/sbi/sbi_ecall_hsm.o CC lib/sbi/sbi_ecall_srst.o CC lib/sbi/sbi_ecall_susp.o CC lib/sbi/sbi_ecall_pmu.o CC lib/sbi/sbi_ecall_dbcn.o CC lib/sbi/sbi_ecall_cppc.o CC lib/sbi/sbi_ecall_legacy.o CC lib/sbi/sbi_ecall_vendor.o CC lib/sbi/sbi_bitmap.o CC lib/sbi/sbi_bitops.o CC lib/sbi/sbi_console.o CC lib/sbi/sbi_domain.o CC lib/sbi/sbi_emulate_csr.o CC lib/sbi/sbi_fifo.o CC lib/sbi/sbi_hart.o CC lib/sbi/sbi_heap.o CC lib/sbi/sbi_math.o AS lib/sbi/sbi_hfence.o CC lib/sbi/sbi_hsm.o CC lib/sbi/sbi_illegal_insn.o CC lib/sbi/sbi_init.o CC lib/sbi/sbi_ipi.o CC lib/sbi/sbi_irqchip.o CC lib/sbi/sbi_misaligned_ldst.o CC lib/sbi/sbi_platform.o CC lib/sbi/sbi_pmu.o CC lib/sbi/sbi_scratch.o CC lib/sbi/sbi_string.o CC lib/sbi/sbi_system.o CC lib/sbi/sbi_timer.o CC lib/sbi/sbi_tlb.o CC lib/sbi/sbi_trap.o CC lib/sbi/sbi_unpriv.o AS lib/sbi/sbi_expected_trap.o CC lib/sbi/sbi_cppc.o AR lib/libsbi.a CC platform/generic/lib/utils/timer/aclint_mtimer.o CC platform/generic/lib/utils/timer/andes_plmt.o CC platform/generic/lib/utils/timer/fdt_timer.o CC platform/generic/lib/utils/timer/fdt_timer_drivers.o CC platform/generic/lib/utils/timer/fdt_timer_mtimer.o CC platform/generic/lib/utils/timer/fdt_timer_plmt.o CC platform/generic/lib/utils/sys/htif.o CC platform/generic/lib/utils/sys/atcsmu.o CC platform/generic/lib/utils/serial/fdt_serial.o CC platform/generic/lib/utils/serial/fdt_serial_drivers.o CC platform/generic/lib/utils/serial/fdt_serial_cadence.o CC platform/generic/lib/utils/serial/fdt_serial_gaisler.o CC platform/generic/lib/utils/serial/fdt_serial_htif.o CC platform/generic/lib/utils/serial/fdt_serial_renesas_scif.o CC platform/generic/lib/utils/serial/fdt_serial_shakti.o CC platform/generic/lib/utils/serial/fdt_serial_sifive.o CC platform/generic/lib/utils/serial/fdt_serial_litex.o CC platform/generic/lib/utils/serial/fdt_serial_uart8250.o CC platform/generic/lib/utils/serial/fdt_serial_xlnx_uartlite.o CC platform/generic/lib/utils/serial/cadence-uart.o CC platform/generic/lib/utils/serial/gaisler-uart.o CC platform/generic/lib/utils/serial/renesas_scif.o CC platform/generic/lib/utils/serial/shakti-uart.o CC platform/generic/lib/utils/serial/sifive-uart.o CC platform/generic/lib/utils/serial/litex-uart.o CC platform/generic/lib/utils/serial/uart8250.o CC platform/generic/lib/utils/serial/xlnx-uartlite.o CC platform/generic/lib/utils/serial/semihosting.o CC platform/generic/lib/utils/reset/fdt_reset.o CC platform/generic/lib/utils/reset/fdt_reset_drivers.o CC platform/generic/lib/utils/reset/fdt_reset_atcwdt200.o CC platform/generic/lib/utils/reset/fdt_reset_gpio.o CC platform/generic/lib/utils/reset/fdt_reset_htif.o CC platform/generic/lib/utils/reset/fdt_reset_sunxi_wdt.o CC platform/generic/lib/utils/reset/fdt_reset_syscon.o CC platform/generic/lib/utils/regmap/fdt_regmap.o CC platform/generic/lib/utils/regmap/fdt_regmap_drivers.o CC platform/generic/lib/utils/regmap/fdt_regmap_syscon.o CC platform/generic/lib/utils/regmap/regmap.o CC platform/generic/lib/utils/libfdt/fdt.o CC platform/generic/lib/utils/libfdt/fdt_addresses.o CC platform/generic/lib/utils/libfdt/fdt_check.o CC platform/generic/lib/utils/libfdt/fdt_empty_tree.o CC platform/generic/lib/utils/libfdt/fdt_ro.o CC platform/generic/lib/utils/libfdt/fdt_rw.o CC platform/generic/lib/utils/libfdt/fdt_strerror.o CC platform/generic/lib/utils/libfdt/fdt_sw.o CC platform/generic/lib/utils/libfdt/fdt_wip.o CC platform/generic/lib/utils/irqchip/fdt_irqchip.o CC platform/generic/lib/utils/irqchip/fdt_irqchip_drivers.o CC platform/generic/lib/utils/irqchip/fdt_irqchip_aplic.o CC platform/generic/lib/utils/irqchip/fdt_irqchip_imsic.o CC platform/generic/lib/utils/irqchip/fdt_irqchip_plic.o CC platform/generic/lib/utils/irqchip/aplic.o CC platform/generic/lib/utils/irqchip/imsic.o CC platform/generic/lib/utils/irqchip/plic.o CC platform/generic/lib/utils/ipi/aclint_mswi.o CC platform/generic/lib/utils/ipi/andes_plicsw.o CC platform/generic/lib/utils/ipi/fdt_ipi.o CC platform/generic/lib/utils/ipi/fdt_ipi_drivers.o CC platform/generic/lib/utils/ipi/fdt_ipi_mswi.o CC platform/generic/lib/utils/ipi/fdt_ipi_plicsw.o CC platform/generic/lib/utils/i2c/i2c.o CC platform/generic/lib/utils/i2c/fdt_i2c.o CC platform/generic/lib/utils/i2c/fdt_i2c_adapter_drivers.o CC platform/generic/lib/utils/i2c/fdt_i2c_sifive.o CC platform/generic/lib/utils/i2c/fdt_i2c_dw.o CC platform/generic/lib/utils/i2c/dw_i2c.o CC platform/generic/lib/utils/gpio/fdt_gpio.o CC platform/generic/lib/utils/gpio/fdt_gpio_drivers.o CC platform/generic/lib/utils/gpio/fdt_gpio_designware.o CC platform/generic/lib/utils/gpio/fdt_gpio_sifive.o CC platform/generic/lib/utils/gpio/fdt_gpio_starfive.o CC platform/generic/lib/utils/gpio/gpio.o CC platform/generic/lib/utils/fdt/fdt_domain.o CC platform/generic/lib/utils/fdt/fdt_pmu.o CC platform/generic/lib/utils/fdt/fdt_helper.o CC platform/generic/lib/utils/fdt/fdt_fixup.o CC platform/generic/thead/thead_c9xx_pmu.o AS platform/generic/thead/thead_c9xx_tlb_trap_handler.o CC platform/generic/thead/thead_c9xx_errata_tlb_flush.o CC platform/generic/thead/thead-generic.o CC platform/generic/starfive/jh7110.o CC platform/generic/sophgo/sg2042.o CC platform/generic/sifive/fu540.o CC platform/generic/sifive/fu740.o CC platform/generic/renesas/rzfive/rzfive.o CC platform/generic/platform.o CC platform/generic/platform_override_modules.o CC platform/generic/andes/ae350.o AS platform/generic/andes/sleep.o CC platform/generic/andes/andes45-pma.o CC platform/generic/andes/andes_sbi.o CC platform/generic/andes/andes_pmu.o CC platform/generic/allwinner/sun20i-d1.o AR platform/generic/lib/libplatsbi.a AS platform/generic/firmware/payloads/test_head.o CC platform/generic/firmware/payloads/test_main.o MERGE platform/generic/firmware/payloads/test.o ELF platform/generic/firmware/payloads/test.elf OBJCOPY platform/generic/firmware/payloads/test.bin AS platform/generic/firmware/fw_dynamic.o ELF platform/generic/firmware/fw_dynamic.elf OBJCOPY platform/generic/firmware/fw_dynamic.bin AS platform/generic/firmware/fw_jump.o ELF platform/generic/firmware/fw_jump.elf OBJCOPY platform/generic/firmware/fw_jump.bin AS platform/generic/firmware/fw_payload.o ELF platform/generic/firmware/fw_payload.elf OBJCOPY platform/generic/firmware/fw_payload.bin
➜ busybox make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv defconfig scripts/kconfig/conf -d Config.in * * Busybox Configuration * * * Settings * Enable compatibility for full-blown desktop systems (8kb) (DESKTOP) [Y/n/?] (NEW) y Provide compatible behavior for rare corner cases (bigger code) (EXTRA_COMPAT) [N/y/?] (NEW) n Building for Fedora distribution (FEDORA_COMPAT) [N/y/?] (NEW) n Enable obsolete features removed before SUSv3 (INCLUDE_SUSv2) [Y/n/?] (NEW) y Support --long-options (LONG_OPTS) [Y/?] (NEW) y Show applet usage messages (SHOW_USAGE) [Y/n/?] (NEW) y Show verbose applet usage messages (FEATURE_VERBOSE_USAGE) [Y/n/?] (NEW) y Store applet usage messages in compressed form (FEATURE_COMPRESS_USAGE) [Y/n/?] (NEW) y Support files > 2 GB (LFS) [Y/n/?] (NEW) y Support 64bit wide time types (TIME64) [Y/n/?] (NEW) y Support PAM (Pluggable Authentication Modules) (PAM) [N/y/?] (NEW) n Use the devpts filesystem for Unix98 PTYs (FEATURE_DEVPTS) [Y/n/?] (NEW) y Support utmp file (FEATURE_UTMP) [Y/n/?] (NEW) y Support wtmp file (FEATURE_WTMP) [Y/n/?] (NEW) y Support writing pidfiles (FEATURE_PIDFILE) [Y/n/?] (NEW) y Directory for pidfiles (PID_FILE_PATH) [/var/run] (NEW) /var/run Include busybox applet (BUSYBOX) [Y/n/?] (NEW) y Support --show SCRIPT (FEATURE_SHOW_SCRIPT) [Y/n] (NEW) y Support --install [-s] to install applet links at runtime (FEATURE_INSTALLER) [Y/n/?] (NEW) y Don't use /usr (INSTALL_NO_USR) [N/y/?] (NEW) n Drop SUID state for most applets (FEATURE_SUID) [Y/n/?] (NEW) y Enable SUID configuration via /etc/busybox.conf (FEATURE_SUID_CONFIG) [Y/n/?] (NEW) y Suppress warning message if /etc/busybox.conf is not readable (FEATURE_SUID_CONFIG_QUIET) [Y/n/?] (NEW) y exec prefers applets (FEATURE_PREFER_APPLETS) [N/y/?] (NEW) n Path to busybox executable (BUSYBOX_EXEC_PATH) [/proc/self/exe] (NEW) /proc/self/exe Support NSA Security Enhanced Linux (SELINUX) [N/y/?] (NEW) n Clean up all memory before exiting (usually not needed) (FEATURE_CLEAN_UP) [N/y/?] (NEW) n Support LOG_INFO level syslog messages (FEATURE_SYSLOG_INFO) [Y/n/?] (NEW) y * * * Build Options * ...... ...... ...... * * Options common to all shells * POSIX math support (FEATURE_SH_MATH) [Y/n/?] (NEW) y Extend POSIX math support to 64 bit (FEATURE_SH_MATH_64) [Y/n/?] (NEW) y Support BASE#nnnn literals (FEATURE_SH_MATH_BASE) [Y/n] (NEW) y Hide message on interactive shell startup (FEATURE_SH_EXTRA_QUIET) [Y/n/?] (NEW) y Standalone shell (FEATURE_SH_STANDALONE) [N/y/?] (NEW) n Run 'nofork' applets directly (FEATURE_SH_NOFORK) [N/y/?] (NEW) n read -t N.NNN support (+110 bytes) (FEATURE_SH_READ_FRAC) [Y/n/?] (NEW) y Use $HISTFILESIZE (FEATURE_SH_HISTFILESIZE) [Y/n/?] (NEW) y Embed scripts in the binary (FEATURE_SH_EMBEDDED_SCRIPTS) [Y/n/?] (NEW) y * * System Logging Utilities * klogd (6.2 kb) (KLOGD) [Y/n/?] (NEW) y * * klogd should not be used together with syslog to kernel printk buffer * Use the klogctl() interface (FEATURE_KLOGD_KLOGCTL) [Y/n/?] (NEW) y logger (6.5 kb) (LOGGER) [Y/n/?] (NEW) y logread (5 kb) (LOGREAD) [Y/n/?] (NEW) y Double buffering (FEATURE_LOGREAD_REDUCED_LOCKING) [Y/n/?] (NEW) y syslogd (14 kb) (SYSLOGD) [Y/n/?] (NEW) y Rotate message files (FEATURE_ROTATE_LOGFILE) [Y/n/?] (NEW) y Remote Log support (FEATURE_REMOTE_LOG) [Y/n/?] (NEW) y Support -D (drop dups) option (FEATURE_SYSLOGD_DUP) [Y/n/?] (NEW) y Support syslog.conf (FEATURE_SYSLOGD_CFG) [Y/n/?] (NEW) y Include milliseconds in timestamps (FEATURE_SYSLOGD_PRECISE_TIMESTAMPS) [N/y/?] (NEW) n Read buffer size in bytes (FEATURE_SYSLOGD_READ_BUFFER_SIZE) [256] (NEW) 256 Circular Buffer support (FEATURE_IPC_SYSLOG) [Y/n/?] (NEW) y Circular buffer size in Kbytes (minimum 4KB) (FEATURE_IPC_SYSLOG_BUFFER_SIZE) [16] (NEW) 16 Linux kernel printk buffer support (FEATURE_KMSG_SYSLOG) [Y/n/?] (NEW) y ➜ busybox
1 2 3 4 5 6 7 8 9
➜ busybox make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig scripts/kconfig/mconf Config.in # # using defaults found in .config #
*** End of configuration. *** Execute 'make' to build the project or try 'make help'.
➜ busybox make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv -j8 LD archival/built-in.o CC archival/bzip2.o CC archival/bbunzip.o CC archival/chksum_and_xwrite_tar_header.o CC archival/dpkg.o CC archival/cpio.o CC archival/dpkg_deb.o LD archival/libarchive/built-in.o CC archival/gzip.o CC archival/libarchive/common.o CC archival/lzop.o CC archival/libarchive/data_align.o LD console-tools/built-in.o CC console-tools/chvt.o CC console-tools/clear.o CC console-tools/deallocvt.o CC archival/libarchive/data_extract_all.o LD coreutils/built-in.o CC coreutils/basename.o CC coreutils/cat.o CC console-tools/dumpkmap.o archival/libarchive/data_extract_all.c: In function ‘data_extract_all’: archival/libarchive/data_extract_all.c:235:25: warning: ignoring return value of ‘chown’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 235 | chown(dst_name, uid, gid); | ^~~~~~~~~~~~~~~~~~~~~~~~~ LD coreutils/libcoreutils/built-in.o CC archival/libarchive/data_extract_to_command.o CC archival/libarchive/data_extract_to_stdout.o CC coreutils/libcoreutils/cp_mv_stat.o LD debianutils/built-in.o CC debianutils/pipe_progress.o console-tools/dumpkmap.c: In function ‘dumpkmap_main’: ...... ...... ...... CC libbb/verror_msg.o util-linux/mkfs_minix.c: In function ‘get_list_blocks’: util-linux/mkfs_minix.c:532:17: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 532 | fscanf(listfile, "%lu\n", &blockno); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC libbb/vfork_daemon_rexec.o CC libbb/warn_ignoring_args.o CC util-linux/mkswap.o CC util-linux/more.o CC libbb/wfopen.o CC util-linux/mount.o CC libbb/wfopen_input.o CC libbb/write.o CC util-linux/mountpoint.o CC libbb/xatonum.o CC util-linux/nsenter.o CC util-linux/pivot_root.o CC util-linux/rdate.o CC libbb/xconnect.o CC util-linux/rdev.o CC libbb/xfunc_die.o CC util-linux/readprofile.o CC libbb/xfuncs.o CC util-linux/renice.o CC libbb/xfuncs_printf.o CC util-linux/rev.o CC libbb/xgetcwd.o CC util-linux/rtcwake.o CC util-linux/script.o CC libbb/xgethostbyname.o CC libbb/xreadlink.o CC libbb/xrealloc_vector.o CC util-linux/scriptreplay.o CC util-linux/setarch.o CC libbb/xregcomp.o CC util-linux/setpriv.o CC util-linux/setsid.o CC util-linux/swaponoff.o CC util-linux/switch_root.o CC util-linux/taskset.o CC util-linux/uevent.o CC util-linux/umount.o AR libbb/lib.a CC util-linux/unshare.o CC util-linux/wall.o util-linux/unshare.c: In function ‘unshare_main’: util-linux/unshare.c:295:25: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 295 | read(fdp.rd, ns_ctx_list, 1); /* ...using bogus buffer */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ AR util-linux/lib.a LINK busybox_unstripped Trying libraries: m resolv rt Library m is needed, can't exclude it (yet) Library resolv is needed, can't exclude it (yet) Library rt is not needed, excluding it Library m is needed, can't exclude it (yet) Library resolv is needed, can't exclude it (yet) Final link with: m resolv
-------------------------------------------------- You will probably need to make your busybox binary setuid root to ensure all configured applets will work properly. --------------------------------------------------