7143
Comment: SiFive HiFive Unleashed. chroot, kernel info
|
7409
format-boot-loader
|
Deletions are marked like this. | Additions are marked like this. |
Line 127: | Line 127: |
Install this image on the mini SD card. Change /dev/sdXXX to your mini SD card (see `dmesg | tail` after inserting for device name). Note, be sure to get the right device name as this will overwrite data. {{{ sudo make DISK=/dev/sdXXX format-boot-loader }}} |
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
Generic Computer
Generic SubModel, 13.3", 2.13 GHz Intel Core 2 Duo, 2GB DDR3 SDRAM, 128 GB SDD, NVIDIA GeForce 9400M
Overall Status
Core Components |
||
Boot Standard Kernel: |
{-} |
|
LAN network card (Generic Ethernet): |
{-} |
|
Detect hard drives: |
{-} |
|
Xorg |
{-} |
|
Extra Features |
||
CPU Frequency Scaling |
{-} |
|
Hibernation |
[-] |
|
Sleep / Suspend |
[-] |
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 is very new. There are no public images available yet.
See: RISC-V
Installing Debian on HiFive
The easiest way at present to run Debian binaries on a ?HiFive is to boot the official ?SiFive image with a Debian install on the second partition and chroot into it. From there Debian's apt, ssh, apache, etc. can be run. A Debian chroot can be created with debootstrap or multistrap, each with some caveats. Multistrap leaves more of the system to configure. Debootstrap at present requires a version of qemu that is newer than what is in sid.
Creating a chroot with multistrap
apt install multistrap debian-ports-archive-keyring cat >/tmp/multistrap-riscv64.conf <<EOF [General] arch=riscv64 aptsources=Unstable Unreleased Sid-main bootstrap=Unstable Unreleased Sid-main [Sid-main] source=http://deb.debian.org/debian suite=unstable omitdebsrc=true keyring=debian-archive-keyring packages=XXX [Unstable] source=http://deb.debian.org/debian-ports suite=unstable omitdebsrc=true keyring=debian-ports-archive-keyring packages=XXX [Unreleased] source=http://deb.debian.org/debian-ports suite=unreleased omitdebsrc=true packages=XXX EOF multistrap -d /tmp/riscv64-chroot -f /tmp/multistrap-riscv64.conf
That will make a chroot you can copy to the second partition of the mini-sd card. Then boot that up, log in as root/sifive. By default, the image does DHCP and starts ssh.
mount /dev/mmcblk0p2 /mnt chroot /mnt cat /etc/debian_version mount proc -t proc /proc
You may have to do this to clean up the package system:
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true export LC_ALL=C LANGUAGE=C LANG=C /var/lib/dpkg/info/dash.preinst install dpkg --configure -a # Make sure all is ok apt -f install
Building a Kernel
The stock kernel from ?SiFive won't boot Debian as it is missing a few modules. A kernel from ?SiFive's git repo can be built which will (mostly) boot Debian. Run this to build a kernel and bootloader under Debian Stretch. (Buster and Sid had build issues for me.) This is a big download (multi gig) and takes a long time to compile. It is much faster to re-build ccache is installed.
# Install build dependencies: apt install build-essential ccache gawk texinfo bison flex libmpfr-dev libgmp-dev libmpc-dev zlib1g-dev bc unzip libssl-dev python wget gdisk libncurses5-dev # Set up ccache. Not necessary, but makes re-builds much faster. echo 'PATH=/usr/lib/ccache:$PATH' >> ~/.bashrc . ~/.bashrc ccache -M 2G git clone https://github.com/sifive/freedom-u-sdk.git cd freedom-u-sdk git submodule update --init --recursive make
Install this image on the mini SD card. Change /dev/sdXXX to your mini SD card (see dmesg | tail after inserting for device name). Note, be sure to get the right device name as this will overwrite data.
sudo make DISK=/dev/sdXXX format-boot-loader
Info
Console
There is no display output hardware on the ?HiFive. Use minicom to connect via USB serial port. Settings 115200 baud, 8N1.
minicom -D /dev/ttyUSB1
Keyboard, Video, Mouse
There is no USB or PS/2, so no keyboard or mouse. Video output is serial console.
Power Management
The units default to running at 1GHz. Units that shipped to the Crowdsupply can run up to 1.4GHz (may be unstable).
Network
Ethernet Cadence GEM.
There is no wifi.
System Summary
Resources
Attachments
Some configuration files and sample outputs.
Useful Links
Credits