jh7110 visionfive2 linux uboot debian rtl8188ftv

opensbi

复制代码
git clone https://github.com/riscv-software-src/opensbi.git
cd opensbi/
sudo apt install gcc-riscv64-linux-gnu
make PLATFORM=generic FW_TEXT_START=0x40000000 FW_OPTIONS=0 CROSS_COMPILE=riscv64-linux-gnu- -j$(nproc)

uboot

复制代码
sudo apt install swig

git clone https://github.com/u-boot/u-boot.git
cd u-boot/

configs/starfive_visionfive2_defconfig 添加:

复制代码
CONFIG_CMD_SYSBOOT=y
CONFIG_BOOTCOMMAND="sysboot mmc 1:3 any b0000000 /extlinux/extlinux.conf"

make starfive_visionfive2_defconfig
make CROSS_COMPILE=riscv64-linux-gnu- OPENSBI=../opensbi/build/platform/generic/firmware/fw_dynamic.bin -j$(nproc)

linux

复制代码
git clone https://github.com/starfive-tech/linux.git
cd linux/
git checkout JH7110_VisionFive2_upstream
make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- starfive_visionfive2_defconfig
make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- menuconfig
make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- -j$(nproc)

rootfs

复制代码
sudo apt install mmdebstrap qemu-user-static binfmt-support

mkdir rvrootfs
sudo mmdebstrap --architectures=riscv64 sid rvrootfs "deb https://mirrors.ustc.edu.cn/debian sid main"
# 如果 rvrootfs 文件夹在移动硬盘上使用 apt install 来预先安装软件有问题,需要在本地硬盘上操作。这和挂载属性有关,debootstrap 则直接不支持在移动硬盘上创建。这不会影响 rootfs 本身

sudo chroot rvrootfs
passwd root
...

exit

dd if=/dev/zero of=rootfs.img bs=1G count=1
sudo mkfs.ext4 rootfs.img
mkdir rootfs_mount
sudo mount rootfs.img rootfs_mount
sudo cp -rfp rvrootfs/* rootfs_mount
sudo umount rootfs_mount
rm -r rootfs_mount
sudo e2fsck -f rootfs.img
sudo resize2fs -M rootfs.img # 调整镜像为实际大小

下载到 sdcard

复制代码
sudo sgdisk -z -og /dev/sdc
sudo sgdisk --clear \
--set-alignment=2 \
--new=1:4096:8191 --change-name=1:spl --typecode=1:2E54B353-1271-4842-806F-E436D6AF6985 \
--new=2:8192:16383 --change-name=2:uboot --typecode=2:BC13C2FF-59E6-4262-A352-B275FD6F7172 \
--new=3:16384:1654784 --change-name=3:boot --typecode=3:EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 \
--new=4:1654785: --change-name=4:rootfs \
/dev/sdc

sudo mkfs.ext4 /dev/sdc3

nano extlinux.conf

extlinux.conf:

复制代码
default hhh

label hhh
    kernel /Image.gz
    fdt /jh7110-starfive-visionfive-2-v1.3b.dtb
    append root=/dev/mmcblk1p4 rw

sudo dd if=u-boot/spl/u-boot-spl.bin.normal.out of=/dev/sdc1 bs=512
sudo dd if=u-boot/u-boot.itb of=/dev/sdc2 bs=512
sudo dd if=rootfs.img of=/dev/sdc4 bs=512
sync

sudo mount /dev/sdc3 /mnt/
sudo mkdir /mnt/extlinux
sudo cp extlinux.conf /mnt/extlinux/
sudo cp linux/arch/riscv/boot/Image.gz /mnt/
sudo cp linux/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.3b.dtb /mnt/
sudo umount /mnt

power on...

使用root用户登录

扩展镜像分区大小:

复制代码
lsblk # 查看存储器和各分区大小
df -h # 查看文件系统挂载的大小,比如`/`(根)目录的大小,这时多半和缩小的镜像一样大
resize2fs /dev/mmcblk1p4 # 重置分区大小

联网测试:

复制代码
插上网线
ip addr # 查看各网卡信息。自带 iproute2,代替 ifconfig
ip link set end0 up # 启动 end0 网卡。最边上的那个网口
dhclient end0 # dhcp
date -s '2024-04-26 19:07:00' # 设置为实际时间,如果系统时间和实际时间误差过大就访问不了 apt update,install 可能还可以用
nano /etc/apt/sources.list # 将 https 改成 http。crtl s 保存,crtl x 退出
apt update # 测试网络是否正常
apt install ca-certificates # apt 源需要
nano /etc/apt/sources.list # 将 http 改回 https
apt upgrade

网络时间同步:

复制代码
apt install chrony # 支持 ntp 的工具,timedatectl 需要这个
timedatectl set-timezone "Asia/Shanghai" # 若使用 UTC:timedatectl set-timezone UTC
timedatectl set-ntp true

创建普通用户和 sudo:

复制代码
apt install sudo
adduser hhh
...
usermod -aG sudo hhh

可选

鼠标和屏幕触摸等:

复制代码
linux 里打开 INPUT_EVDEV
ls -l /dev/input # 查看有没有 event...,若没有,i2c类可能是设备树不对或驱动没配置,usb类检查驱动配置和usb配置、hid配置

其他工具:

复制代码
nmcli(比如连wifi什么的):network-manager
lsusb:usbutils
lspci:pciutils

桌面:

复制代码
我使用 hdmi,装完后重启,重启前把 hdmi 插上
xfec4
gnome:有些包含的软件 riscv 源里没有,装不了

软件源分支:

复制代码
方便安装一些驱动
nano /etc/apt/sources.list # 后面添加 contrib non-free non-free-firmware

移植 rtl8188ftv wifi: http://t.csdnimg.cn/oI26t

相关推荐
learning-striving1 分钟前
kali连不上网解决方法
linux·开发语言·网络·php·kali
阿钱真强道2 分钟前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
wbs_scy18 分钟前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
Lethehong22 分钟前
实测可用|一文搞定OpenClaw部署,免费kimi-k2.5+飞书远程,新手也能秒上手
linux·运维·服务器·玩转openclaw·云端创意实践
承渊政道28 分钟前
Linux系统学习【Linux基础开发工具】
linux·运维·笔记·学习·centos·编辑器
艾莉丝努力练剑29 分钟前
【Linux:文件】基础IO
linux·运维·c语言·c++·人工智能·io·文件
_OP_CHEN31 分钟前
【Linux系统编程】(二十七)手撕动静态库原理与实战:从底层逻辑到代码落地
linux·操作系统·动态库·静态库·c/c++·库的原理与制作
南烟斋..32 分钟前
Linux设备驱动开发完全指南:从启动流程到Platform驱动模型
linux·驱动开发·uboot
天才奇男子9 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
学嵌入式的小杨同学9 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux