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…
					
					
				
		Reference in new issue