Debian HiFive Unmatched notes

master
forksand 3 years ago
parent 07f90446ca
commit 57d529abc9

@ -0,0 +1,173 @@
# Debian on the SiFive HiFive Unmatched RISC-V Motherboard
```
sudo apt install mmdebstrap qemu-user-static binfmt-support debian-ports-archive-keyring
sudo mmdebstrap \
--architectures=riscv64 \
--include="debian-ports-archive-keyring" \
sid \
unmatched-root \
"deb http://deb.debian.org/debian-ports/ sid main" \
"deb http://deb.debian.org/debian-ports/ unreleased main" \
--aptopt='Acquire::Languages { "environment"; "en"; }' \
--aptopt='Acquire::Languages "none"' \
--aptopt='Apt::Install-Recommends "false"' \
--aptopt='Acquire::http::Proxy "http://192.168.110.8:3142"' \
--variant=apt \
--dpkgopt="path-exclude=/usr/share/man/*" \
--dpkgopt='path-exclude=/usr/share/doc/*' \
--include=net-tools,iproute2,isc-dhcp-client,systemd,udev,debian-archive-keyring,debian-ports-archive-keyring,debian-keyring,gnupg2,systemd-sysv,procps,lshw,ifupdown,kmod,nano,fdisk,parted,e2fsprogs,sshfs,rsyslog,less,sudo,apt-utils,locales
# Go into root and fix some stuff up:
# /etc/fstab
# /dev/mmc*
# mkdir /dev/pts
# /dev/nvme*
# symlink /sbin/init
cd unmatched-root/etc/
sudo vim fstab
# thusly:
proc /proc proc defaults 0 0
devpts /dev/pts devpts mode=0620,ptmxmode=0666,gid=5 0 0
tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
sysfs /sys sysfs defaults 0 0
/dev/nvme0n1p4 / auto errors=remount-ro 0 1
/dev/mmcblk0p3 /boot vfat defaults 0 0
####
cd ../dev
#sudo mkdir -p pts
# maybe?
sudo mknod mmcblk0 b 179 0
sudo mknod mmcblk0p1 b 179 1
sudo mknod mmcblk0p2 b 179 2
sudo mknod mmcblk0p3 b 179 3
sudo mknod mmcblk0p4 b 179 4
sudo mknod mmcblk0p5 b 179 5
sudo mknod mmcblk0p6 b 179 6
# nvme ?
# XXX NOTE /dev permissions are bad! XXX
sudo chmod 600 console
sudo chown root:disk mmcblk0*
sudo chmod 660 mmcblk0*
cd ../sbin/
# already there?
sudo ln -s /lib/systemd/systemd init
# Set up network
vim etc/network/interfaces
# fill with:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
###
# root image is done, tarball it
cd ../../
sudo tar cf unmatched-root.tar unmatched-root/
# put unmatched-root.tar on webserver for Unmatched to wget
# put sda1 sda2 sda3 for Umatched to wget
dd if=sda1 of=/dev/nvme0n1p1
dd if=sda2 of=/dev/nvme0n1p2
dd if=sda3 of=/dev/nvme0n1p3 status=progress
sync
```
# On the Unmatched
Log in via serial to the default Unmatched image.
## Get root tarball
wget http://192.168.1.1/unmatched-root.tar
sync
## Partition nvme drives
Set up partions similar to sd card:
```
root@unmatched:~# fdisk -l /dev/mmcblk0
...
Device Start End Sectors Size Type
/dev/mmcblk0p1 34 2081 2048 1M HiFive Unleashed FSBL
/dev/mmcblk0p2 2082 10273 8192 4M HiFive Unleashed BBL
/dev/mmcblk0p3 16384 282623 266240 130M Microsoft basic data
/dev/mmcblk0p4 286720 13918207 13631488 6.5G Linux filesystem
```
```
fdisk /dev/nvme0n1
# g for GPT partition
# n for new partion
# 1 for partition 1
# 2048 for first sector
# +1M for size
# t for type
# 107 for HiFive Unleashed FSBL
# n for new partition
# 2 for partition 2
# 4096 for first sector
# +4M for size
# t for type
# 2 for partition 2
# 108 for HiFive Unleashed BBL
# n for new partition
# 3 for partition 3
# 12288 for first sector
# +130M for size
# t for type
# 3 for partition 3
# 11 for Microsoft basic data
# n for new partition
# 4 for partition 4
# 278528 for first sector
# <enter> for last sector (max size)
# w for write and exit
# format the thing:
mkfs.vfat /dev/nvme0n1p3
mkfs.ext4 /dev/nvme0n1p4
# set the time or tar complains:
date -u --set="20210602 12:00:00"
# mount up
mount /dev/nvme0n1p4 /mnt
cd /mnt
tar xf ~/unmatched-root.tar
mv unmatched-root/*
rmdir unmatched-root
cd
vim etc/shadow
vim etc/hostname
umount /mnt
fsck /dev/nvme0n1p4
# XXX CRYPTSETUP
# XXX hostname
# XXX root password
sed -i -e 's/root:\*/root:/g' /run/media/nvme0n1p4/etc/shadow
# XXX dd sda1 sda2 onto nvme
apt install dialog
```
## Edit /boot/extlinux/extlinux.conf
default debian
label debian
menu label debian
kernel /Image.gz
fdt /hifive-unmatched-a00.dtb
append earlyprintk rw root=/dev/nvme0n1p4 rootfstype=ext4 rootwait console=ttySIF0,115200 earlycon
#
umount /boot/
fsck /dev/mmcblk0p3
poweroff
```
Loading…
Cancel
Save