澪的开发经验分享 - luckfox
type: channel
link: https://www.chorblack.top/index.php/category/luckfox/
description: luckfox开发板摸索
items: 在Alpine Linux中使用交叉编译
items: luckfox使用记录

在Alpine Linux中使用交叉编译
type: item
date: 2026-03-17T11:27:00+00:00
description: 前言在B站看到一个项目仅用几十KB就构建了一个Minecraft服务端，运行更是只需要少得可怜的资源（esp32-c3都能运行），于是记录一下在Alpine Linux上的移植过程。开始因为使用的是 Alpine Linux，它底层使用 musl 而不是通常的 glibc (Ubuntu) 或 uClibc (Buildroot)。这需要一个专门针对 arm-linux-musleabihf 的交叉编译器，否则编译出的程序在板子上运行时会报错（例如 File not found 或段错误）。因此我们需要获取 musl 交叉编译工具链，不过我建议在宿主机手动下载然后传到wsl，不然这速度太慢了。 # 下载工具链 wget https://musl.cc/arm-linux-musleabihf-cross.tgz # 解压 tar -xf arm-linux-musleabihf-cross.tgz echo 'export PATH=$PATH:/home/luckfox/Desktop/arm-linux-musleabihf-cross/bin' >> ~/.bashrc source ~/.bashrc arm-linux-musleabihf-gcc --version搭建编译环境，运行setup_env.sh#!/bin/bash # Setup script for BareIron development environment on WSL/Ubuntu # Installs Java 21 and Node.js set -e echo "[1/3] Updating package lists..." sudo apt update echo "[2/3] Installing dependencies (curl, wget, tar, build-essential)..." sudo apt install -y curl wget tar sudo build-essential echo "[3/3] Installing Java 21..." # Check if OpenJDK 21 is available in default repos if apt-cache search openjdk-21-jdk | grep -q openjdk-21-jdk; then sudo apt install -y openjdk-21-jdk else echo "OpenJDK 21 not found in default repositories. Adding PPA.." sudo add-apt-repository -y ppa:openjdk-r/ppa sudo apt update sudo apt install -y openjdk-21-jdk fi # Verify Java installation java -version echo "Installing Node.js (Latest LTS)..." # Using NodeSource for up-to-date Node.js if ! command -v node &> /dev/null; then curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs else echo "Node.js is already installed." fi # Verify Node installation node -v echo "--------------------------------------------------------" echo "Setup Complete!" echo "--------------------------------------------------------" echo "1. Java 21 and Node.js have been installed." echo "" echo "Note: You need to manually install or configure your cross-compilation toolchain." echo "For Luckfox Pico (Alpine), ensure 'arm-linux-musleabihf-gcc' is in your PATH." echo "" echo "Then you can proceed with:" echo " ./…

luckfox使用记录
type: item
date: 2026-03-17T09:56:00+00:00
description: 前言之前买了一个luckfox pico plus，有一说一，当时不知道为什么脑子抽了买个这玩意，60多💴，拿来不知道有啥用，就跟着教程随便摸索了一下，记录一下摸索过程。开始摸索先看了几遍幸狐科技给的wiki文档，有一说一，还挺通俗易懂，luckfox pico plus使用RV1103处理器，基于单核 ARM Cortex-A7 32 位架构，计算性能可达 0.5 TOPS，板载内存64MB DDR2与板载存储128MB spi nand flash，跟着教程也装了ubuntu（卡的要死）、Buildroot，不过用起来感觉不怎么样，看见教程有Alpine Linux 移植，就跟着进行了移植（幸狐这wiki搬运教程也太不上心了，我看到好多错的地方）。移植开始docker运行Alpine Linux容器我用的windows桌面端docker，所以运行前执行docker run --rm --privileged multiarch/qemu-user-static --reset --persistent yes在wsl的ubuntu22.04换行中，执行以下代码，将临时文件挂载到系统，用来存储新的rootfsdd if=/dev/zero of=rootfs.ext4 bs=1M count=100 mkfs.ext4 rootfs.ext4 mkdir -p /home/luckfox/my-rootfs sudo mount rootfs.ext4 /home/luckfox/my-rootfs然后执行启动armv7alpine容器docker run -it --name armv7alpine --net=host -v /tmp/my-rootfs:/my-rootfs arm32v7/alpine容器内操作在容器里，将Alpine Linux的官方源替换成阿里源sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories apk update安装openrc用来管理进程apk add openrc rc-update add devfs boot rc-update add procfs boot rc-update add sysfs boot添加安全终端 ：允许 root 用户从 ttyFIQ0 登录。删除tty1到tty6开始的行，这一步一定要做，否则串口启动会卡死在找ttyX上。执行完最好vi /etc/inittab看看ttyFIQ0::respawn:/sbin/agetty --autologin root ttyFIQ0 vt100前面有没有#echo ttyFIQ0 > /etc/securetty # 删除 tty1-tty6 的配置 sed -i '/tty[1-6]/d' /etc/inittab # 添加 ttyFIQ0 自动登录配置 sed -i '/# Put a agetty on the serial port/a ttyFIQ0::respawn:/sbin/agetty --autologin root ttyFIQ0 vt100' /etc/inittab配置静态ipcat <<EOF > /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 EOF添加开机启动rc-update add networking default修改dnscat <<EOF > /etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8 EOF设置板子名字，方便ssh连接echo luckfox > /etc/hostname安装配置ssh，设置登录密码apk add openssh vi /etc/ssh/sshd_config sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config rc-update add sshd default passwd创建本地启动服务脚本cat <<EOF > /etc/local.d/crond.start #!/bin/bash # 网络校时并启动 crond 定时任务 ntpd -d -q && crond # 关闭板载 LED 灯 (…