6512
Comment:
|
6547
|
Deletions are marked like this. | Additions are marked like this. |
Line 147: | Line 147: |
Once out of chroot: {{{ |
|
Line 148: | Line 152: |
}}} |
DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware. The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware. If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware. |
Translation(s): none
Contents
Models covered
?SiFive ?HiFive Unmatched
?SiFive HiFive Unmatched, ?SiFive FU740-C000 (Quad-core 64-bit ?SiFive U74) + Embedded 64-bit ?SiFive S7 Core, 16 GB 64-bit DDR4, 1x PCI Express Gen3 x8 via PCI Express x16 Connector, Ethernet – 10/100/1000 Mbps, NVMe SSD M.2 , microSD Card.
Overall Status
Core Components |
||
Boot Standard Kernel: |
|
|
LAN network card (): |
|
|
Detect hard drives (mini SD mmc): |
|
|
Xorg |
[?] |
|
Extra Features |
||
CPU Frequency Scaling |
[?] |
|
Hibernation |
[?] |
|
Sleep / Suspend |
[?] |
|
Power Off / Reboot |
|
Legend :
= OK ; Unsupported(No Driver) ; = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
= Configuration Required; = Only works with a non-free driver and or firmware
Important Note
Debian on the ?HiFive Unmatched is very new. There are no public images available yet.
Installing Debian on HiFive
The easiest way at present to run Debian binaries on a ?HiFive is to generate an sdcard image with all the Debian stock parts.
Preparing disk image
# create image file dd if=/dev/zero of=debian-sid-risc-v-sifive-unmatched.img bs=1M count=4096 # Partition image with correct disk IDs sudo sgdisk -g --clear --set-alignment=1 \ --new=1:34:+1M: --change-name=1:'u-boot-spl' --typecode=1:5b193300-fc78-40cd-8002-e86c45580b47 \ --new=2:2082:+4M: --change-name=2:'opensbi-uboot' --typecode=2:2e54b353-1271-4842-806f-e436d6af6985 \ --new=3:16384:+130M: --change-name=3:'boot' --typecode=3:0x0700 --attributes=3:set:2 \ --new=4:286720:-0 --change-name=4:'rootfs' --typecode=4:0x8300 \ debian-sid-risc-v-sifive-unmatched.img # Mount image in loop device sudo losetup --partscan --find --show debian-sid-risc-v-sifive-unmatched.img # format partitions sudo mkfs.vfat /dev/loop0p3 sudo mkfs.ext4 /dev/loop0p4 sudo e2label /dev/loop0p3 boot sudo e2label /dev/loop0p4 rootfs
Installing debian sid+riscv-port on image
# mount root partition sudo mount /dev/loop0p4 /mnt # install base files sudo apt-get install debootstrap qemu-user-static binfmt-support debian-ports-archive-keyring sudo debootstrap --arch=riscv64 --keyring /usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring unstable /mnt http://deb.debian.org/debian-ports # mount boot partition sudo mount /dev/loop0p3 /mnt/boot # chroot into base filesystem and made basic configuration sudo chroot /mnt
Inside created chroot:
# Update package information apt-get update # Set up basic networking cat >>/etc/network/interfaces <<EOF auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp EOF # Set root password 'sifive' passwd # Change hostname echo unmatched > /etc/hostname # Set up fstab cat > /etc/fstab <<EOF # <file system> <mount point> <type> <options> <dump> <pass> /dev/mmcblk0p4 / ext4 errors=remount-ro 0 1 /dev/mmcblk0p3 /boot vfat nodev,noexec,ro 0 2 EOF # Install kernel and bootloader infrastructure apt-get install linux-image-riscv64 u-boot-menu u-boot-sifive apt-get clean # add needed modules in initrd echo mmc_spi >>/etc/initramfs-tools/modules #update-initramfs -u (TODO: add more space in boot) rm /boot/initrd* update-initramfs -c -k all # Set up u-boot (TODO: better integration for kernel updates) cp /usr/lib/linux-image-5.14.0-3-riscv64/sifive/hifive-unmatched-a00.dtb /boot/ echo U_BOOT_FDT=\"hifive-unmatched-a00.dtb\" >> /etc/default/u-boot echo U_BOOT_PARAMETERS=\"rw rootwait console=ttySIF0,115200 earlycon\" >> /etc/default/u-boot u-boot-update # Install ssh server and ntp apt-get install openssh-server openntpd ntpdate apt-get clean # set the time immediately at startup sed -i 's/^DAEMON_OPTS="/DAEMON_OPTS="-s /' /etc/default/openntpd # exit chroot exit
Once out of chroot:
sudo rm /mnt/root/.bash_history
Setup bootloaders
sudo dd if=/mnt/usr/lib/u-boot/sifive_unmatched/u-boot-spl.bin of=/dev/loop0p1 bs=4k iflag=fullblock oflag=direct conv=fsync status=progress sudo dd if=/mnt/usr/lib/u-boot/sifive_unmatched/u-boot.itb of=/dev/loop0p2 bs=4k iflag=fullblock oflag=direct conv=fsync status=progress
Finish and write image to sdcard
sudo umount /mnt/boot sudo umount /mnt sudo losetup -d /dev/loop0 # take care of writing to the correct sdcard-device sudo dd if=debian-sid-risc-v-sifive-unmatched.img of=/dev/sdcard-device bs=64k iflag=fullblock oflag=direct conv=fsync status=progress