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.
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
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)]
[ 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. --------------------------------------------------