Diff for /wikisrc/ports/evbarm/install_using_sysinst.mdwn between versions 1.3 and 1.14

version 1.3, 2018/11/19 20:08:42 version 1.14, 2018/11/19 22:44:51
Line 4  In this document we will see step by ste Line 4  In this document we will see step by ste
 external media (SATA hard disk, USB stick or (u)SD card) using  external media (SATA hard disk, USB stick or (u)SD card) using
 [[!template id=man name="sysinst" section="8"]].  [[!template id=man name="sysinst" section="8"]].
   
   We will start by installing NetBSD/evbarm via `armv7.img` on a
   (u)SD card.  Then we will use
   [[!template id=man name="sysinst" section="8"]] to install
   NetBSD/evbarm on a SATA hard disk. The (u)SD card populated via
   `armv7.img` will then be used only in the early boot phase for u-boot.
   
   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`  # Populating (u)SD card with `armv7.img`
   
 *TODOleot*: (mostly) copy-paste instructions from allwinner.mdwn  - Download or build `armv7.img`, e.g.:
   
 *TODOleot*: Adjust/provide u-boot incantantions to boot on a BPI  [[!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:
   
   [[!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:
   
   [[!template id=programlisting text="""
   # dd if=/usr/pkg/share/u-boot/&lt;boardname&gt;/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:
   
   [[!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"]].
   
   [[!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)  # Installing via sysinst(8)
   
 *TODOleot*: Document all sysinst(8) "screenshot"!  
   
 Now that the SD card is populated with `armv7.img` we can login as `root` (by  Now that the SD card is populated with `armv7.img` we can login as `root` (by
 default the password is empty) and run `sysinst`:  default the password is empty) and run `sysinst`:
   
 ````  [[!template id=programlisting text="""
 # sysinst  # sysinst
 ````  """]]
   
 The first menu is about the system type (Respberry PI or Other), we select the  The first menu is about the system type (Respberry PI or Other), we select the
 latter ("Other"):  latter ("Other"):
   
 ````  [[!template id=programlisting text="""
    
    
    
    
    
    
    
    
    
    
                     +-------------------------------------+                      +-------------------------------------+
                     | What kind of system do you have?    |                      | What kind of system do you have?    |
                     |                                     |                      |                                     |
                     | a: Raspberry PI                     |                      | a: Raspberry PI                     |
                     |>b: Other                            |                      |>b: Other                            |
                     +-------------------------------------+                      +-------------------------------------+
    
    
    
    
    
    
    
    
    
    
 ````  """]]
   
 We want to install NetBSD/evbarm on the hard disk so let's select  We want to install NetBSD/evbarm on the hard disk so let's select
 "Install NetBSD to hard disk":  "Install NetBSD to hard disk":
   
 ````  [[!template id=programlisting text="""
   
  NetBSD/evbarm 8.0   NetBSD/evbarm 8.0
   
Line 85  We want to install NetBSD/evbarm on the  Line 139  We want to install NetBSD/evbarm on the 
   
   
   
 ````  """]]
   
 Before proceeding with the installation, if the hard disk had any important data  Before proceeding with the installation, if the hard disk had any important data
 it is better to stop and doing a backup before proceeding. If it is empty and/or  it is better to stop and doing a backup before proceeding. If it is empty and/or
 we can safetely remove its data we can proceed:  we can safetely remove its data we can proceed:
   
 ````  [[!template id=programlisting text="""
   
  You have chosen to install NetBSD on your hard disk.  This will change   You have chosen to install NetBSD on your hard disk.  This will change
  information on your hard disk.  You should have made a full backup before   information on your hard disk.  You should have made a full backup before
Line 118  we can safetely remove its data we can p Line 172  we can safetely remove its data we can p
   
   
   
 ````  """]]
   
 Now we can see all the available disks. The hard disk attached via SATA is a  Now we can see all the available disks. The hard disk attached via SATA is a
 120GB SSD recognized as `wd0`:  120GB SSD recognized as `wd0`:
   
 ````  [[!template id=programlisting text="""
   
  On which disk do you want to install NetBSD?   On which disk do you want to install NetBSD?
   
Line 150  Now we can see all the available disks.  Line 204  Now we can see all the available disks. 
   
   
   
 ````  """]]
   
 We now need to edit MBR partition table. We will create two MBR partitions: the  We now need to edit MBR partition table. We will create two MBR partitions: the
 first one a FAT32 for `/boot` and the other for NetBSD. We select "Edit the MBR  first one a FAT32 for `/boot` and the other for NetBSD. We select "Edit the MBR
 partition table":  partition table":
   
 ````  [[!template id=programlisting text="""
   
  We are now going to install NetBSD on the disk wd0.   We are now going to install NetBSD on the disk wd0.
   
Line 183  partition table": Line 237  partition table":
   
   
   
 ````  """]]
   
 First we select the second entry ("b"), set the "type:" to "NetBSD":  First we select the second entry ("b"), set the "type:" to "NetBSD":
   
 ````  [[!template id=programlisting text="""
   
  The Current MBR partition table is shown below.   The Current MBR partition table is shown below.
  Flgs: a => Active partition, I => Install here.   Flgs: a => Active partition, I => Install here.
Line 210  First we select the second entry ("b"),  Line 264  First we select the second entry ("b"), 
              | g: Linux native                   |               | g: Linux native                   |
              | h: Linux swap                     |               | h: Linux swap                     |
              | i: DOS FAT12                      |               | i: DOS FAT12                      |
              | <: page up, >: page down          |               | &lt;: page up, &gt;: page down          |
              +-----------------------------------+               +-----------------------------------+
   
   
 ````  """]]
   
 We reserve for the NetBSD MBR partition all the end of the disk,  We reserve for the NetBSD MBR partition all the end of the disk,
 starting at 92MB (1MB that will be empty and 91MB that will be for  starting at 92MB (1MB that will be empty and 91MB that will be for
 the FAT32), we also select to make it active ("active: Yes") and  the FAT32), we also select to make it active ("active: Yes") and
 we will use it to install NetBSD ("install: Yes"):  we will use it to install NetBSD ("install: Yes"):
   
 ````  [[!template id=programlisting text="""
   
  The Current MBR partition table is shown below.   The Current MBR partition table is shown below.
  Flgs: a => Active partition, I => Install here.   Flgs: a => Active partition, I => Install here.
Line 248  we will use it to install NetBSD ("insta Line 302  we will use it to install NetBSD ("insta
   
   
   
 ````  """]]
   
 We now select the first partition ("a") and create a "Windows FAT32", starting  We now select the first partition ("a") and create a "Windows FAT32", starting
 at 1MB and ending at 92MB before the "NetBSD" partition. We also make it active  at 1MB and ending at 92MB before the "NetBSD" partition. We also make it active
 ("active: Yes"):  ("active: Yes"):
   
 ````  [[!template id=programlisting text="""
   
  The Current MBR partition table is shown below.   The Current MBR partition table is shown below.
  Flgs: a => Active partition, I => Install here.   Flgs: a => Active partition, I => Install here.
Line 281  at 1MB and ending at 92MB before the "Ne Line 335  at 1MB and ending at 92MB before the "Ne
   
   
   
 ````  """]]
   
 Here the final MBR partition table:  Here the final MBR partition table:
   
 ````  [[!template id=programlisting text="""
   
  The Current MBR partition table is shown below.   The Current MBR partition table is shown below.
  Flgs: a => Active partition, I => Install here.   Flgs: a => Active partition, I => Install here.
Line 312  Here the final MBR partition table: Line 366  Here the final MBR partition table:
   
   
   
 ````  """]]
   
 Now that the MBR partition table is written we can proceed to set  Now that the MBR partition table is written we can proceed to set
 sizes of NetBSD partitions:  sizes of NetBSD partitions:
   
 ````  [[!template id=programlisting text="""
   
  NetBSD uses a BSD disklabel to carve up the NetBSD portion of the disk into   NetBSD uses a BSD disklabel to carve up the NetBSD portion of the disk into
  multiple BSD partitions.  You must now set up your BSD disklabel.   multiple BSD partitions.  You must now set up your BSD disklabel.
Line 344  sizes of NetBSD partitions: Line 398  sizes of NetBSD partitions:
   
   
   
 ````  """]]
   
 We set the swap size to 4G and we reserve the rest of the space for "/":  We set the swap size to 4G and we reserve the rest of the space for "/":
   
 ````  [[!template id=programlisting text="""
   
  You can now change the sizes for the system partitions.  The default is to   You can now change the sizes for the system partitions.  The default is to
  allocate all the space to the root file system.  However, you may wish to   allocate all the space to the root file system.  However, you may wish to
Line 375  We set the swap size to 4G and we reserv Line 429  We set the swap size to 4G and we reserv
   
   
   
 ````  """]]
   
 The summary of the current BSD disklabel is:  The summary of the current BSD disklabel is:
   
 ````  [[!template id=programlisting text="""
   
  We now have your BSD disklabel partitions as:   We now have your BSD disklabel partitions as:
  This is your last chance to change them.   This is your last chance to change them.
Line 406  The summary of the current BSD disklabel Line 460  The summary of the current BSD disklabel
   
   
   
 ````  """]]
   
 We can adjust the disklabel, for example we can use FFSv2 for "/"  We can adjust the disklabel, for example we can use FFSv2 for "/"
 and for the disklabel "e" set its mount point to "/boot" in order  and for the disklabel "e" set its mount point to "/boot" in order
 that an `/etc/fstab` entry will be populated (please note  that an `/etc/fstab` entry will be populated (please note
 that "/boot" will not be automatically mounted by default):  that "/boot" will not be automatically mounted by default):
   
 ````  [[!template id=programlisting text="""
   
  We now have your BSD disklabel partitions as:   We now have your BSD disklabel partitions as:
  This is your last chance to change them.   This is your last chance to change them.
Line 440  that "/boot" will not be automatically m Line 494  that "/boot" will not be automatically m
   
   
   
 ````  """]]
   
 We have finally ready to proceed with  We have finally ready to proceed with
 [[!template id=man name="sysinst" section="8"]] as usual and install  [[!template id=man name="sysinst" section="8"]] as usual and install
Line 449  note that the "Binary set directory" nee Line 503  note that the "Binary set directory" nee
 `/evbarm/binary/sets` to `/evbarm-earmv7hf/binary/sets` (it's  `/evbarm/binary/sets` to `/evbarm-earmv7hf/binary/sets` (it's
 missing an `-earmv7hf' due different evbarm-s):  missing an `-earmv7hf' due different evbarm-s):
   
 ````  [[!template id=programlisting text="""
   
  The following are the http site, directory, user, and password that will be   The following are the http site, directory, user, and password that will be
  used.  If "user" is "ftp", then the password is not needed.   used.  If "user" is "ftp", then the password is not needed.
Line 476  missing an `-earmv7hf' due different evb Line 530  missing an `-earmv7hf' due different evb
   
   
   
 ````  """]]
   
 The installation will proceed as usual and for more information  The installation will proceed as usual and for more information
 please give a look to  please give a look to
 [The NetBSD Guide](https://www.netbsd.org/docs/guide/en/chap-exinst.html#exinst-choose-media).  [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`,  When the installation is completed, back to the shell we can populate
 `boot.scr`.  `/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  # mount /dev/wd0e /mnt
 # cp -r /boot/* /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  # References
   
 *TODOleot*: add a reference to the instructions shared via PR port-evbarm/50806.  - [Installing NetBSD to HD/SSD on the Banana Pi](http://daemonforums.org/showthread.php?t=9652)
     shows how to install NetBSD/evbarm 7.0 on a SATA hard disk by copying the
     contents of (u)SD.
   - [Chapter 3. Example installation, The NetBSD Guide](https://www.netbsd.org/docs/guide/en/chap-exinst.html)
     describes in details every steps of the NetBSD installation.

Removed from v.1.3  
changed lines
  Added in v.1.14


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb