Installing Debian On SiFiveHiFiveUnmatched
<h1> </h1><div class="cnblogs_code">
<pre>ubuntu@ubuntu:~/linux-<span style="color: rgba(128, 0, 128, 1)">5.14</span>$ ls ./arch/riscv/boot/dts/sifive/<span style="color: rgba(0, 0, 0, 1)">
fu540</span>-c000.dtsihifive-unleashed-a00.dtbhifive-unmatched-<span style="color: rgba(0, 0, 0, 1)">a00.dtbMakefile
fu740</span>-c000.dtsihifive-unleashed-a00.dtshifive-unmatched-<span style="color: rgba(0, 0, 0, 1)">a00.dts
ubuntu@ubuntu:</span>~/linux-<span style="color: rgba(128, 0, 128, 1)">5.14</span>$ </pre>
</div>
<p> </p>
<h1> </h1>
<div class="cnblogs_code">
<pre>cat hifive-unleashed-<span style="color: rgba(0, 0, 0, 1)">a00.dts
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> SPDX-License-Identifier: (GPL-2.0 OR MIT)</span><span style="color: rgba(0, 128, 0, 1)">
/*</span><span style="color: rgba(0, 128, 0, 1)"> Copyright (c) 2018-2019 SiFive, Inc </span><span style="color: rgba(0, 128, 0, 1)">*/</span><strong><span style="color: rgba(255, 0, 0, 1)">
#include "fu540-c000.dtsi"</span></strong><span style="color: rgba(0, 0, 0, 1)">
#include </span><dt-bindings/gpio/gpio.h></pre>
</div>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(255, 0, 0, 1)">cat hifive-unmatched-a00.dts
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> SPDX-License-Identifier: (GPL-2.0 OR MIT)</span><span style="color: rgba(0, 128, 0, 1)">
/*</span><span style="color: rgba(0, 128, 0, 1)"> Copyright (c) 2020 SiFive, Inc </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
#include </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">fu740-c000.dtsi</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p> </p>
<h1 id="Important_Note">Important Note</h1>
<p class="line867"> </p>
<p class="line867"> </p>
<p class="line862">Debian on the ?HiFive Unmatched is very new. There are no official images available yet.<span id="line-45" class="anchor"><span id="line-46" class="anchor"></span></span></p>
<p class="line862">You could find some experimental images in (signed with ?Deiv's key):<span id="line-47" class="anchor"><span id="line-48" class="anchor"></span></span></p>
<ul>
<li>
<p class="line891">https://people.debian.org/~deiv/riscv/debian-sid-risc-v-sifive-unmatched.tar.xz (490M)<span id="line-49" class="anchor"></span></p>
<ul>
<li>
<p class="line891">https://people.debian.org/~deiv/riscv/debian-sid-risc-v-sifive-unmatched.tar.xz.asc<span id="line-50" class="anchor"><span id="line-51" class="anchor"></span></span></p>
</li>
</ul>
</li>
</ul>
<p class="line874">This images are built with the same instructions in the next section. You just need to decompress them and burn to sd-card.<span id="line-52" class="anchor"><span id="line-53" class="anchor"></span></span></p>
<p class="line867"> </p>
<h1 id="Installing_Debian_on_HiFive">Installing Debian on HiFive</h1>
<p class="line862">The easiest way at present to run Debian binaries on a ?HiFive is to generate an sdcard image with all the Debian stock parts.<span id="line-55" class="anchor"><span id="line-56" class="anchor"></span></span></p>
<p class="line867"> </p>
<h2 id="Preparing_disk_image">Preparing disk image</h2>
<p class="line867"> </p>
<pre><span id="line-1" class="anchor"># create image file
<span id="line-2" class="anchor">dd if=/dev/zero of=debian-sid-risc-v-sifive-unmatched.img bs=1M count=4096
<span id="line-3" class="anchor">
<span id="line-4" class="anchor"># Partition image with correct disk IDs
<span id="line-5" class="anchor">sudo sgdisk -g --clear --set-alignment=1 \
<span id="line-6" class="anchor"> --new=1:34:+1M: --change-name=1:'u-boot-spl' --typecode=1:5b193300-fc78-40cd-8002-e86c45580b47 \
<span id="line-7" class="anchor"> --new=2:2082:+4M:--change-name=2:'opensbi-uboot' --typecode=2:2e54b353-1271-4842-806f-e436d6af6985 \
<span id="line-8" class="anchor"> --new=3:16384:+130M: --change-name=3:'boot' --typecode=3:0x0700--attributes=3:set:2\
<span id="line-9" class="anchor"> --new=4:286720:-0 --change-name=4:'rootfs' --typecode=4:0x8300 \
<span id="line-10" class="anchor"> debian-sid-risc-v-sifive-unmatched.img
<span id="line-11" class="anchor">
<span id="line-12" class="anchor"># Mount image in loop device
<span id="line-13" class="anchor">sudo losetup --partscan --find --show debian-sid-risc-v-sifive-unmatched.img
<span id="line-14" class="anchor">
<span id="line-15" class="anchor"># format partitions
<span id="line-16" class="anchor">sudo mkfs.vfat /dev/loop0p3
<span id="line-17" class="anchor">sudo mkfs.ext4 /dev/loop0p4
<span id="line-18" class="anchor">sudo e2label /dev/loop0p3 boot
<span id="line-19" class="anchor">sudo e2label /dev/loop0p4 rootfs</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="line867"> </p>
<h2 id="Installing_debian_sid.2B-riscv-port_on_image">Installing debian sid+riscv-port on image</h2>
<p class="line867"> </p>
<pre><span id="line-1-1" class="anchor"># mount root partition
<span id="line-2-1" class="anchor">sudo mount /dev/loop0p4 /mnt
<span id="line-3-1" class="anchor">
<span id="line-4-1" class="anchor"># install base files
<span id="line-5-1" class="anchor">sudo apt-get install debootstrap qemu-user-static binfmt-support debian-ports-archive-keyring
<span id="line-6-1" class="anchor">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
<span id="line-7-1" class="anchor">
<span id="line-8-1" class="anchor"># mount boot partition
<span id="line-9-1" class="anchor">sudo mount /dev/loop0p3 /mnt/boot
<span id="line-10-1" class="anchor">
<span id="line-11-1" class="anchor"># chroot into base filesystem and made basic configuration
<span id="line-12-1" class="anchor">sudo chroot /mnt</span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="line874">Inside created chroot:<span id="line-99" class="anchor"><span id="line-100" class="anchor"></span></span></p>
<p class="line867"> </p>
<pre><span id="line-1-2" class="anchor"># Update package information
<span id="line-2-2" class="anchor">apt-get update
<span id="line-3-2" class="anchor">
<span id="line-4-2" class="anchor"># Set up basic networking
<span id="line-5-2" class="anchor">cat >>/etc/network/interfaces <<EOF
<span id="line-6-2" class="anchor">auto lo
<span id="line-7-2" class="anchor">iface lo inet loopback
<span id="line-8-2" class="anchor">
<span id="line-9-2" class="anchor">auto eth0
<span id="line-10-2" class="anchor">iface eth0 inet dhcp
<span id="line-11-2" class="anchor">EOF
<span id="line-12-2" class="anchor">
<span id="line-13-1" class="anchor"># Set root password 'sifive'
<span id="line-14-1" class="anchor">passwd
<span id="line-15-1" class="anchor">
<span id="line-16-1" class="anchor"># Change hostname
<span id="line-17-1" class="anchor">echo unmatched > /etc/hostname
<span id="line-18-1" class="anchor">
<span id="line-19-1" class="anchor"># Set up fstab
<span id="line-20" class="anchor">cat > /etc/fstab <<EOF
<span id="line-21" class="anchor"># <file system> <mount point> <type><options> <dump><pass>
<span id="line-22" class="anchor">
<span id="line-23" class="anchor">/dev/mmcblk0p4 / ext4 errors=remount-ro 0 1
<span id="line-24" class="anchor">/dev/mmcblk0p3 /boot vfat nodev,noexec,ro 0 2
<span id="line-25" class="anchor">EOF
<span id="line-26" class="anchor">
<span id="line-27" class="anchor"># Install kernel and bootloader infrastructure
<span id="line-28" class="anchor">apt-get install linux-image-riscv64 u-boot-menu u-boot-sifive
<span id="line-29" class="anchor">apt-get clean
<span id="line-30" class="anchor">
<span id="line-31" class="anchor"># add needed modules in initrd
<span id="line-32" class="anchor">echo mmc_spi >>/etc/initramfs-tools/modules
<span id="line-33" class="anchor">#update-initramfs -u (TODO: add more space in boot)
<span id="line-34" class="anchor">rm /boot/initrd*
<span id="line-35" class="anchor">update-initramfs -c -k all
<span id="line-36" class="anchor">
<span id="line-37" class="anchor"># Set up u-boot (TODO: better integration for kernel updates)
<span id="line-38" class="anchor">cp /usr/lib/linux-image-5.14.0-3-riscv64/sifive/hifive-unmatched-a00.dtb /boot/
<span id="line-39" class="anchor">echo U_BOOT_FDT=\"hifive-unmatched-a00.dtb\" >> /etc/default/u-boot
<span id="line-40" class="anchor">echo U_BOOT_PARAMETERS=\"rw rootwait console=ttySIF0,115200 earlycon\" >> /etc/default/u-boot
<span id="line-41" class="anchor">u-boot-update
<span id="line-42" class="anchor">
<span id="line-43" class="anchor"># Install ssh server and ntp
<span id="line-44" class="anchor">apt-get install openssh-server openntpd ntpdate
<span id="line-45" class="anchor">apt-get clean
<span id="line-46" class="anchor">
<span id="line-47" class="anchor"># set the time immediately at startup
<span id="line-48" class="anchor">sed -i 's/^DAEMON_OPTS="/DAEMON_OPTS="-s /' /etc/default/openntpd
<span id="line-49" class="anchor">
<span id="line-50" class="anchor"># exit chroot
<span id="line-51" class="anchor">exit</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="line874">Once out of chroot:<span id="line-156" class="anchor"><span id="line-157" class="anchor"></span></span></p>
<p class="line867"> </p>
<pre><span id="line-1-3" class="anchor">sudo rm /mnt/root/.bash_history</span></pre>
<p class="line867"> </p>
<h2 id="Setup_bootloaders">Setup bootloaders</h2>
<p class="line867"> </p>
<pre><span id="line-1-4" class="anchor">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
<span id="line-2-3" class="anchor">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</span></span></pre>
<p class="line867"> </p>
<h2 id="Finish_and_write_image_to_sdcard">Finish and write image to sdcard</h2>
<p class="line867"> </p>
<pre><span class="anchor">sudo umount /mnt/boot
<span class="anchor">sudo umount /mnt
<span class="anchor">
<span class="anchor">sudo losetup -d /dev/loop0
<span class="anchor">
<span class="anchor"># take care of writing to the correct sdcard-device
<span class="anchor">sudo dd if=debian-sid-risc-v-sifive-unmatched.img of=/dev/sdcard-device bs=64k iflag=fullblock oflag=direct conv=fsync status=progress<br><br><br></span></span></span></span></span></span></span></pre>
<h1 data-topic-id="24078">How to install Ubuntu on RISC-V HiFive boards</h1>
<pre><span id="line-1-5" class="anchor"><span id="line-2-4" class="anchor"><span id="line-3-3" class="anchor"><span id="line-4-3" class="anchor"><span id="line-5-3" class="anchor"><span id="line-6-3" class="anchor"><span id="line-7-3" class="anchor"> </span></span></span></span></span></span></span></pre><br><br>
来源:https://www.cnblogs.com/dream397/p/16036362.html
頁:
[1]