File:  [NetBSD Developer Wiki] / wikisrc / ports / evbarm / install_using_sysinst.mdwn
Revision 1.15: download - view: text, annotated - select for diffs
Mon Nov 19 22:50:11 2018 UTC (4 years, 10 months ago) by leot
Branches: MAIN
CVS tags: HEAD
sed -i -Ee '/"""$/,/^"""/s/^$/ /' (add a space in programlisting to force
"screenshot" to 80x25).

    1: [[!meta title="NetBSD/evbarm install via sysinst(8) on a SATA hard disk, USB stick or (u)SD card"]]
    2: 
    3: In this document we will see step by step how to install NetBSD/evbarm on an
    4: external media (SATA hard disk, USB stick or (u)SD card) using
    5: [[!template id=man name="sysinst" section="8"]].
    6: 
    7: We will start by installing NetBSD/evbarm via `armv7.img` on a
    8: (u)SD card.  Then we will use
    9: [[!template id=man name="sysinst" section="8"]] to install
   10: NetBSD/evbarm on a SATA hard disk. The (u)SD card populated via
   11: `armv7.img` will then be used only in the early boot phase for u-boot.
   12: 
   13: As practical example a BananaPI and a SATA hard disk will be used.
   14: However, the following instructions can be probably easily applied
   15: on other SoCs and medias with little adjustments.
   16: 
   17: 
   18: # Populating (u)SD card with `armv7.img`
   19: 
   20: - Download or build `armv7.img`, e.g.:
   21: 
   22: [[!template id=programlisting text="""
   23: $ ftp http://cdn.NetBSD.org/pub/NetBSD/NetBSD-8.0/evbarm-earmv7hf/binary/gzimg/armv7.img.gz
   24: $ gunzip armv7.img.gz
   25: """]]
   26: 
   27: - Write the image to (u)SD card:
   28: 
   29: [[!template id=programlisting text="""
   30: # dd if=armv7.img of=/dev/rsd0d bs=1m conv=sync
   31: """]]
   32: 
   33: - Write u-boot to (u)SD card. `u-boot` images are provided by
   34: `sysutils/u-boot-<boardname>` packages, for example for Allwinner SoC:
   35: 
   36: [[!template id=programlisting text="""
   37: # 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
   38: """]]
   39: 
   40: NetBSD/evbarm 8.0 does not automatically boot on the BananaPI.
   41: We can use the following commands to boot from the (u)SD cards in u-boot:
   42: 
   43: [[!template id=programlisting text="""
   44: mmc dev 0
   45: setenv kernel netbsd-BPI.ub
   46: fatload mmc 0:1 82000000 $kernel
   47: bootm 82000000 root=ld0a console=fb
   48: """]]
   49: 
   50: Or, to avoid typing them at every boot we can prepare an u-boot script via
   51: [[!template id=man name="mkubootimage" section="1"]].
   52: 
   53: [[!template id=programlisting text="""
   54: $ cat boot.cmd
   55: mmc dev 0
   56: setenv kernel netbsd-BPI.ub
   57: fatload mmc 0:1 82000000 $kernel
   58: bootm 82000000 root=ld0a console=fb
   59: $ mkubootimage -A arm -n armv7 -T script boot.cmd boot.scr
   60: """]]
   61: 
   62: ...and copy it on the populated (u)SD card:
   63: 
   64: [[!template id=programlisting text="""
   65: # mount /dev/sd0e /mnt
   66: # cp /mnt/boot.scr /mnt/boot.scr.orig
   67: # cp boot.scr /mnt/
   68: """]]
   69: 
   70: 
   71: # Installing via sysinst(8)
   72: 
   73: Now that the SD card is populated with `armv7.img` we can login as `root` (by
   74: default the password is empty) and run `sysinst`:
   75: 
   76: [[!template id=programlisting text="""
   77: # sysinst
   78: """]]
   79: 
   80: The first menu is about the system type (Respberry PI or Other), we select the
   81: latter ("Other"):
   82: 
   83: [[!template id=programlisting text="""
   84:  
   85:  
   86:  
   87:  
   88:  
   89:  
   90:  
   91:  
   92:  
   93:  
   94:                     +-------------------------------------+
   95:                     | What kind of system do you have?    |
   96:                     |                                     |
   97:                     | a: Raspberry PI                     |
   98:                     |>b: Other                            |
   99:                     +-------------------------------------+
  100:  
  101:  
  102:  
  103:  
  104:  
  105:  
  106:  
  107:  
  108:  
  109:  
  110: """]]
  111: 
  112: We want to install NetBSD/evbarm on the hard disk so let's select
  113: "Install NetBSD to hard disk":
  114: 
  115: [[!template id=programlisting text="""
  116:  
  117:  NetBSD/evbarm 8.0
  118:  
  119:  This menu-driven tool is designed to help you install NetBSD to a hard disk,
  120:  or upgrade an existing NetBSD system, with a minimum of work.
  121:  In the following menus type the reference letter (a, b, c, ...) to select an
  122:  item, or type CTRL+N/CTRL+P to select the next/previous item.
  123:  The arrow keys and Page-up/Page-down may also work.
  124:  Activate the current selection from the menu by typing the enter key.
  125:  
  126:  If you booted from a floppy, you may now remove the disk.
  127:  Thank you for using NetBSD!
  128:                +-----------------------------------------------+
  129:                | NetBSD-8.0 Install System                     |
  130:                |                                               |
  131:                |>a: Install NetBSD to hard disk                |
  132:                | b: Upgrade NetBSD on a hard disk              |
  133:                | c: Re-install sets or install additional sets |
  134:                | d: Reboot the computer                        |
  135:                | e: Utility menu                               |
  136:                | f: Config menu                                |
  137:                | x: Exit Install System                        |
  138:                +-----------------------------------------------+
  139:  
  140:  
  141:  
  142: """]]
  143: 
  144: Before proceeding with the installation, if the hard disk had any important data
  145: it is better to stop and doing a backup before proceeding. If it is empty and/or
  146: we can safetely remove its data we can proceed:
  147: 
  148: [[!template id=programlisting text="""
  149:  
  150:  You have chosen to install NetBSD on your hard disk.  This will change
  151:  information on your hard disk.  You should have made a full backup before
  152:  this procedure!  This procedure will do the following things:
  153:          a) Partition your disk
  154:          b) Create new BSD file systems
  155:          c) Load and install distribution sets
  156:          d) Some initial system configuration
  157:  
  158:  (After you enter the partition information but before your disk is changed,
  159:  you will have the opportunity to quit this procedure.)
  160:  
  161:  Shall we continue?
  162:                                +---------------+
  163:                                | yes or no?    |
  164:                                |               |
  165:                                | a: No         |
  166:                                |>b: Yes        |
  167:                                +---------------+
  168:  
  169:  
  170:  
  171:  
  172:  
  173:  
  174:  
  175: """]]
  176: 
  177: Now we can see all the available disks. The hard disk attached via SATA is a
  178: 120GB SSD recognized as `wd0`:
  179: 
  180: [[!template id=programlisting text="""
  181:  
  182:  On which disk do you want to install NetBSD?
  183:  
  184:  
  185:                      +-----------------------------------+
  186:                      | Available disks                   |
  187:                      |                                   |
  188:                      |>a: wd0 (112G, SanDisk SDSSDA120G) |
  189:                      | b: Extended partitioning          |
  190:                      | x: Exit                           |
  191:                      +-----------------------------------+
  192:  
  193:  
  194:  
  195:  
  196:  
  197:  
  198:  
  199:  
  200:  
  201:  
  202:  
  203:  
  204:  
  205:  
  206:  
  207: """]]
  208: 
  209: We now need to edit MBR partition table. We will create two MBR partitions: the
  210: first one a FAT32 for `/boot` and the other for NetBSD. We select "Edit the MBR
  211: partition table":
  212: 
  213: [[!template id=programlisting text="""
  214:  
  215:  We are now going to install NetBSD on the disk wd0.
  216:  
  217:  NetBSD requires a single partition in the disk's MBR partition table, this is
  218:  split further by the NetBSD disklabel.  NetBSD can also access file systems
  219:  in other MBR partitions.
  220:  
  221:  If you select 'Use the entire disk' then the previous contents of the disk
  222:  will be overwritten and a single MBR partition used to cover the entire disk.
  223:  If you want to install more than one operating system then edit the MBR
  224:  partition table and create a partition for NetBSD.
  225:  
  226:  A few hundred MB is enough for a basic installation, but you should allow
  227:  extra for additional software and user files.
  228:  Allow at least 5GB if you want to build NetBSD itself.
  229:                       +---------------------------------+
  230:                       | Which would you like to do?     |
  231:                       |                                 |
  232:                       |>a: Edit the MBR partition table |
  233:                       | b: Use the entire disk          |
  234:                       +---------------------------------+
  235:  
  236:  
  237:  
  238:  
  239:  
  240: """]]
  241: 
  242: First we select the second entry ("b"), set the "type:" to "NetBSD":
  243: 
  244: [[!template id=programlisting text="""
  245:  
  246:  The Current MBR partition table is shown below.
  247:  Flgs: a => Active partition, I => Install here.
  248:  Select the partition you wish to change:
  249:  
  250:     Total disk size 114473 MB.
  251:                +-----------------------------------------------------------+
  252:     Start( MB) |>a:       type: unused                                     |
  253:     ---------- | b:      start: 0 MB                                       |
  254:  a:            | c:       size: 0 MB                                       |
  255: >b:            | d:        end: 0 MB                                       |
  256:  c:            | e:     active: No                                         |
  257:  d:          +-----------------------------------+                         |
  258:  e: Change in| a: Don't change                   |linders/MB)              |
  259:  x: Partition| b: Delete partition               |                         |
  260:              |>c: NetBSD                         |-------------------------+
  261:              | d: Extended partition, LBA        |
  262:              | e: FreeBSD/386BSD                 |
  263:              | f: OpenBSD                        |
  264:              | g: Linux native                   |
  265:              | h: Linux swap                     |
  266:              | i: DOS FAT12                      |
  267:              | &lt;: page up, &gt;: page down          |
  268:              +-----------------------------------+
  269:  
  270:  
  271: """]]
  272: 
  273: We reserve for the NetBSD MBR partition all the end of the disk,
  274: starting at 92MB (1MB that will be empty and 91MB that will be for
  275: the FAT32), we also select to make it active ("active: Yes") and
  276: we will use it to install NetBSD ("install: Yes"):
  277: 
  278: [[!template id=programlisting text="""
  279:  
  280:  The Current MBR partition table is shown below.
  281:  Flgs: a => Active partition, I => Install here.
  282:  Select the partition you wish to change:
  283:  
  284:     Total disk size 114473 MB.
  285:                +-----------------------------------------------------------+
  286:     Start( MB) | a:       type: NetBSD                                     |
  287:     ---------- | b:      start: 92 MB                                      |
  288:  a:            | c:       size: 114381 MB                                  |
  289: >b:            | d:        end: 114473 MB                                  |
  290:  c:            | e:     active: Yes                                        |
  291:  d:            | f:    install: Yes                                        |
  292:  e: Change inpu| g: Change input units (sectors/cylinders/MB)              |
  293:  x: Partition t|>x: Partition OK                                           |
  294:                +-----------------------------------------------------------+
  295:  
  296:  
  297:  
  298:  
  299:  
  300:  
  301:  
  302:  
  303:  
  304:  
  305: """]]
  306: 
  307: We now select the first partition ("a") and create a "Windows FAT32", starting
  308: at 1MB and ending at 92MB before the "NetBSD" partition. We also make it active
  309: ("active: Yes"):
  310: 
  311: [[!template id=programlisting text="""
  312:  
  313:  The Current MBR partition table is shown below.
  314:  Flgs: a => Active partition, I => Install here.
  315:  Select the partition you wish to change:
  316:  
  317:     Total disk size 114473 MB.
  318:                +-----------------------------------------------------------+
  319:     Start( MB) | a:       type: Windows FAT32                              |
  320:     ---------- | b:      start: 1 MB                                       |
  321: >a:            | c:       size: 91 MB                                      |
  322:  b:         92 | d:        end: 92 MB                                      |
  323:  c:            | e:     active: Yes                                        |
  324:  d:            | f:    install: No                                         |
  325:  e: Change inpu| g: Change input units (sectors/cylinders/MB)              |
  326:  x: Partition t|>x: Partition OK                                           |
  327:                +-----------------------------------------------------------+
  328:  
  329:  
  330:  
  331:  
  332:  
  333:  
  334:  
  335:  
  336:  
  337:  
  338: """]]
  339: 
  340: Here the final MBR partition table:
  341: 
  342: [[!template id=programlisting text="""
  343:  
  344:  The Current MBR partition table is shown below.
  345:  Flgs: a => Active partition, I => Install here.
  346:  Select the partition you wish to change:
  347:  
  348:     Total disk size 114473 MB.
  349:  
  350:     Start( MB)  Size( MB) Flg Kind
  351:     ---------- ---------- --- ----------------
  352: >a:          1         91 a   Windows FAT32
  353:  b:         92     114381   I NetBSD
  354:  c:                           unused
  355:  d:                           unused
  356:  e: Change input units (sectors/cylinders/MB)
  357:  x: Partition table OK
  358:  
  359:  
  360:  
  361:  
  362:  
  363:  
  364:  
  365:  
  366:  
  367:  
  368:  
  369: """]]
  370: 
  371: Now that the MBR partition table is written we can proceed to set
  372: sizes of NetBSD partitions:
  373: 
  374: [[!template id=programlisting text="""
  375:  
  376:  NetBSD uses a BSD disklabel to carve up the NetBSD portion of the disk into
  377:  multiple BSD partitions.  You must now set up your BSD disklabel.
  378:  
  379:  You can use a simple editor to set the sizes of the NetBSD partitions, or
  380:  keep the existing partition sizes and contents.
  381:  
  382:  You will then be given the opportunity to change any of the disklabel fields.
  383:  
  384:  The NetBSD part of your disk is 114381 Megabytes.  A full installation
  385:  requires at least 288 Megabytes without X and at least 348 Megabytes if the X
  386:  sets are included.
  387:                      +-----------------------------------+
  388:                      | Choose your installation          |
  389:                      |                                   |
  390:                      |>a: Set sizes of NetBSD partitions |
  391:                      | b: Use existing partition sizes   |
  392:                      +-----------------------------------+
  393:  
  394:  
  395:  
  396:  
  397:  
  398:  
  399:  
  400:  
  401: """]]
  402: 
  403: We set the swap size to 4G and we reserve the rest of the space for "/":
  404: 
  405: [[!template id=programlisting text="""
  406:  
  407:  You can now change the sizes for the system partitions.  The default is to
  408:  allocate all the space to the root file system.  However, you may wish to
  409:  have separate /usr (additional system files), /var (log files etc) or /home
  410:  (users' home directories) file systems.
  411:  
  412:  Free space will be added to the partition marked with a '+'.
  413:  
  414:         MB         Cylinders   Sectors   Filesystem
  415:     a:   2208(110284)      4488   4523904 + /
  416:     b:   4096              8323   8389584   swap
  417:     c:      0                 0         0   /tmp (mfs)
  418:     d:      0                 0         0   /usr
  419:     e:      0                 0         0   /var
  420:     f:      0                 0         0   /home
  421:     g: Add a user defined partition
  422:     h: Change input units (sectors/cylinders/MB)
  423:    >x: Accept partition sizes.  Free space 108076 MB, 13 free partitions.
  424:  
  425:  
  426:  
  427:  
  428:  
  429:  
  430:  
  431:  
  432: """]]
  433: 
  434: The summary of the current BSD disklabel is:
  435: 
  436: [[!template id=programlisting text="""
  437:  
  438:  We now have your BSD disklabel partitions as:
  439:  This is your last chance to change them.
  440:  
  441:     Start  MB   End  MB  Size  MB FS type    Newfs Mount Mount point
  442:     --------- --------- --------- ---------- ----- ----- -----------
  443: >a:        92    110375    110284 FFSv1      Yes   Yes   /
  444:  b:    110376    114472      4096 swap
  445:  c:         0    114472    114473 Whole disk
  446:  d:         0         0         0 unused
  447:  e:         1        91        91 Boot partition
  448:  f:         0         0         0 unused
  449:  g: Show all unused partitions
  450:  h: Change input units (sectors/cylinders/MB)
  451:  x: Partition sizes ok
  452:  
  453:  
  454:  
  455:  
  456:  
  457:  
  458:  
  459:  
  460:  
  461:  
  462:  
  463: """]]
  464: 
  465: We can adjust the disklabel, for example we can use FFSv2 for "/"
  466: and for the disklabel "e" set its mount point to "/boot" in order
  467: that an `/etc/fstab` entry will be populated (please note
  468: that "/boot" will not be automatically mounted by default):
  469: 
  470: [[!template id=programlisting text="""
  471:  
  472:  We now have your BSD disklabel partitions as:
  473:  This is your last chance to change them.
  474:  
  475:     Start  MB   End  MB  Size  MB FS type    Newfs Mount Mount point
  476:     --------- --------- --------- ---------- ----- ----- -----------
  477:  a:        92    110375    110284 FFSv2      Yes   Yes   /
  478:  b:    110376    114472      4096 swap
  479:  c:         0    114472    114473 Whole disk
  480:  d:         0         0         0 unused
  481:  e:         1        91        91 Boot partition             /boot
  482:  f:         0         0         0 unused
  483:  g: Show all unused partitions
  484:  h: Change input units (sectors/cylinders/MB)
  485: >x: Partition sizes ok
  486:  
  487:  
  488:  
  489:  
  490:  
  491:  
  492:  
  493:  
  494:  
  495:  
  496:  
  497: """]]
  498: 
  499: We have finally ready to proceed with
  500: [[!template id=man name="sysinst" section="8"]] as usual and install
  501: the installation sets.  If you choose to install via FTP/HTTP please
  502: note that the "Binary set directory" needs to be adjusted from
  503: `/evbarm/binary/sets` to `/evbarm-earmv7hf/binary/sets` (it's
  504: missing an `-earmv7hf' due different evbarm-s):
  505: 
  506: [[!template id=programlisting text="""
  507:  
  508:  The following are the http site, directory, user, and password that will be
  509:  used.  If "user" is "ftp", then the password is not needed.
  510:  
  511:  a: Host                      ftp.NetBSD.org
  512:  b: Base directory            pub/NetBSD/NetBSD-8.0
  513: >c: Binary set directory      /evbarm-earmv7hf/binary/sets
  514:  d: Source set directory      /source/sets
  515:  e: User                      ftp
  516:  f: Password
  517:  g: Proxy
  518:  h: Transfer directory        /usr/INSTALL
  519:  i: Delete after install      No
  520:  j: Configure network
  521:  k: Exit
  522:  x: Get Distribution
  523:  
  524:  
  525:  
  526:  
  527:  
  528:  
  529:  
  530:  
  531:  
  532:  
  533: """]]
  534: 
  535: The installation will proceed as usual and for more information
  536: please give a look to
  537: [The NetBSD Guide](https://www.netbsd.org/docs/guide/en/chap-exinst.html#exinst-choose-media).
  538: 
  539: When the installation is completed, back to the shell we can populate
  540: `/boot` partition of the hard disk ("wd0e") by just copying all
  541: files of the `/boot` partition of the (u)SD card (`armv7.img`):
  542: 
  543: [[!template id=programlisting text="""
  544: # mount /dev/wd0e /mnt
  545: # cp -r /boot/* /mnt/
  546: # umount /mnt
  547: """]]
  548: 
  549: Finally we can prepare a u-boot script (`boot.scr`) to load the kernel from the
  550: SATA hard disk and boot it:
  551: 
  552: [[!template id=programlisting text="""
  553: $ cat boot.cmd
  554: scsi scan
  555: scsi dev 0
  556: setenv kernel netbsd-BPI.ub
  557: fatload scsi 0:1 82000000 $kernel
  558: bootm 82000000 root=wd0a console=fb
  559: $ mkubootimage -A arm -n armv7 -T script boot.cmd boot.scr
  560: """]]
  561: 
  562: ...and copy them to the (u)SD `/boot`:
  563: 
  564: [[!template id=programlisting text="""
  565: # cp boot.scr /boot
  566: """]]
  567: 
  568: Please remember that in the early boot phase, u-boot and `boot.scr`
  569: are loaded from the (u)SD card and it loads the kernel present in
  570: the `/boot` partition of the hard disk.
  571: 
  572: 
  573: # References
  574: 
  575: - [Installing NetBSD to HD/SSD on the Banana Pi](http://daemonforums.org/showthread.php?t=9652)
  576:   shows how to install NetBSD/evbarm 7.0 on a SATA hard disk by copying the
  577:   contents of (u)SD.
  578: - [Chapter 3. Example installation, The NetBSD Guide](https://www.netbsd.org/docs/guide/en/chap-exinst.html)
  579:   describes in details every steps of the NetBSD installation.

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