--- wikisrc/ports/evbarm/install_using_sysinst.mdwn 2018/11/19 20:56:25 1.6 +++ wikisrc/ports/evbarm/install_using_sysinst.mdwn 2018/11/19 22:00:10 1.11 @@ -4,30 +4,65 @@ In this document we will see step by ste external media (SATA hard disk, USB stick or (u)SD card) using [[!template id=man name="sysinst" section="8"]]. +As practical example a BananaPI and a SATA hard disk will be used. +However, the following instructions can be probably easily applied +on other SoCs and medias with little adjustments. + # Populating (u)SD card with `armv7.img` - Download or build `armv7.img`, e.g.: -```` + +[[!template id=programlisting text=""" $ ftp http://cdn.NetBSD.org/pub/NetBSD/NetBSD-8.0/evbarm-earmv7hf/binary/gzimg/armv7.img.gz $ gunzip armv7.img.gz -```` +"""]] + - Write the image to (u)SD card: -```` -$ dd if=armv7.img of=/dev/rsd0d bs=1m conv=sync -```` + +[[!template id=programlisting text=""" +# dd if=armv7.img of=/dev/rsd0d bs=1m conv=sync +"""]] + - Write u-boot to (u)SD card. `u-boot` images are provided by -`sysutils/u-boot-<boardname>` packages, for example for Allwinner SoC: -```` -$ dd if=/usr/pkg/share/u-boot/<boardname>/u-boot-sunxi-with-spl.bin of=/dev/rld0d bs=1k seek=8 conv=sync -```` +`sysutils/u-boot-` packages, for example for Allwinner SoC: -*TODOleot*: Adjust/provide u-boot incantantions to boot on a BPI +[[!template id=programlisting text=""" +# dd if=/usr/pkg/share/u-boot/<boardname>/u-boot-sunxi-with-spl.bin of=/dev/rld0d bs=1k seek=8 conv=sync +"""]] +NetBSD/evbarm 8.0 does not automatically boot on the BananaPI. +We can use the following commands to boot from the (u)SD cards in u-boot: -# Installing via sysinst(8) +[[!template id=programlisting text=""" +mmc dev 0 +setenv kernel netbsd-BPI.ub +fatload mmc 0:1 82000000 $kernel +bootm 82000000 root=ld0a console=fb +"""]] + +Or, to avoid typing them at every boot we can prepare an u-boot script via +[[!template id=man name="mkubootimage" section="1"]]. -*TODOleot*: Document all sysinst(8) "screenshot"! +[[!template id=programlisting text=""" +$ cat boot.cmd +mmc dev 0 +setenv kernel netbsd-BPI.ub +fatload mmc 0:1 82000000 $kernel +bootm 82000000 root=ld0a console=fb +$ mkubootimage -A arm -n armv7 -T script boot.cmd boot.scr +"""]] + +...and copy it on the populated (u)SD card: + +[[!template id=programlisting text=""" +# mount /dev/sd0e /mnt +# cp /mnt/boot.scr /mnt/boot.scr.orig +# cp boot.scr /mnt/ +"""]] + + +# Installing via sysinst(8) Now that the SD card is populated with `armv7.img` we can login as `root` (by default the password is empty) and run `sysinst`: @@ -495,14 +530,39 @@ The installation will proceed as usual a please give a look to [The NetBSD Guide](https://www.netbsd.org/docs/guide/en/chap-exinst.html#exinst-choose-media). -*TODOleot*: add information how to populate `/boot` and prepare `boot.cmd`, -`boot.scr`. +When the installation is completed, back to the shell we can populate +`/boot` partition of the hard disk ("wd0e") by just copying all +files of the `/boot` partition of the (u)SD card (`armv7.img`): [[!template id=programlisting text=""" # mount /dev/wd0e /mnt # cp -r /boot/* /mnt/ +# umount /mnt +"""]] + +Finally we can prepare a u-boot script (`boot.scr`) to load the kernel from the +SATA hard disk and boot it: + +[[!template id=programlisting text=""" +$ cat boot.cmd +scsi scan +scsi dev 0 +setenv kernel netbsd-BPI.ub +fatload scsi 0:1 82000000 $kernel +bootm 82000000 root=wd0a console=fb +$ mkubootimage -A arm -n armv7 -T script boot.cmd boot.scr +"""]] + +...and copy them to the (u)SD `/boot`: + +[[!template id=programlisting text=""" +# cp boot.scr /boot """]] +Please remember that in the early boot phase, u-boot and `boot.scr` +are loaded from the (u)SD card and it loads the kernel present in +the `/boot` partition of the hard disk. + # References