Diff for /wikisrc/ports/evbarm/raspberry_pi.mdwn between versions 1.63 and 1.71

version 1.63, 2017/10/22 00:39:08 version 1.71, 2018/10/30 01:33:39
Line 2 Line 2
   
 This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported.  This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported.
   
 Initial, limited, Raspberry Pi support was introduced in NetBSD 6.0. NetBSD 7.0 adds complete support for the board, along with introducing support for the quad-core Raspberry Pi 2 board.  Raspberry Pi 3 support was added for NetBSD 8, and backported to NetBSD 7 in July of 2017.  Initial, limited, Raspberry Pi support was introduced in NetBSD 6.0. NetBSD 7.0 adds complete support for the board, along with introducing support for the quad-core Raspberry Pi 2 board.  Raspberry Pi 3 support was added for NetBSD 8, and backported to NetBSD 7 in July of 2017.  (This page assumes those using NetBSD 7 are using 7.2, or the netbsd-7 branch after mid 2018.)
   
 [[images/raspberrypi.jpg]]  [[images/raspberrypi.jpg]]
   
Line 12  Initial, limited, Raspberry Pi support w Line 12  Initial, limited, Raspberry Pi support w
   
 # What works (and what doesn't yet)  # What works (and what doesn't yet)
   
 ## NetBSD 7 before July, 2017  ## NetBSD 7 and NetBSD 8
   
  - RaspberryPi 1, and 2 (including SMP)   - RaspberryPi 1, and 2 (including SMP)
    - Raspberry Pi 3 (excluding WiFi and bluetooth)
  - multi-user boot with root on SD card   - multi-user boot with root on SD card
  - serial or graphics console (with EDID query / parsing)   - serial or graphics console (with EDID query / parsing)
  - DMA controller driver and sdhc(4) support   - DMA controller driver and sdhc(4) support
Line 28  Initial, limited, Raspberry Pi support w Line 29  Initial, limited, Raspberry Pi support w
  - USB Ethernet - usmsc(4)   - USB Ethernet - usmsc(4)
  - X windows.   - X windows.
   
 ## NetBSD 7 after July, 2017 and NetBSD 8  
   
  - Raspberry Pi 3 (excluding WiFi and bluetooth)  
   
 ## NetBSD current  ## NetBSD current
   
  - Raspberry Pi 3 bluetooth   - Raspberry Pi 3 bluetooth
Line 48  Note that one can also use code for earl Line 45  Note that one can also use code for earl
   
  - Raspberry Pi 1 uses "earmv6hf".   - Raspberry Pi 1 uses "earmv6hf".
  - Raspberry Pi 2 uses "earmv7hf".   - Raspberry Pi 2 uses "earmv7hf".
  - Raspberry Pi 3 uses "earmv7hf".  (NetBSD does not yet have 64-bit support.)   - Raspberry Pi 3 uses "earmv7hf".
   
   See also [[NetBSD/aarch64|aarch64]] for running the Pi 2/3 in 64-bit mode.
   
 # Installation  # Installation
   
 ## SD card structure  ## SD card structure
   
 The Raspberry Pi looks for firmware and a kernel on the first FAT32  The Raspberry Pi looks for firmware and kernel.img on the first FAT32 partition of the uSD card.  A separate kernel (kernel7.img) is used on RPI2 and RPI3.
 partition of the uSD card.  The NetBSD kernel will then use the FFS  
 partition as the root filesystem.  
   
 A 2 GB card is the smallest workable size.  The NetBSD filesystem will  The NetBSD kernel will then use the FFS partition as the root filesystem.
 be expanded to fit on larger cards.  
   A 2 GB card is the smallest workable size.  The NetBSD filesystem will be expanded to fit.
   
 ## Choosing a version  ## Choosing a version
   
 First, decide if you want to install a formal release (7.1), a stable  First, decide if you want to install a formal release (7.2 or 8.0), a stable branch build (netbsd-7, netbsd-8), or NetBSD-current.  For people who don't know how to choose among those, 8.0 or netbsd-8 is probably best.
 branch build (netbsd-7, netbsd-8), or current.  Note that 7.1 predates  
 Raspberry Pi 3 support.  For people who don't know how to choose among  See also "ebijun's image", below, which is NetBSD-current and includes packages.
 those, netbsd-8 is probably best.  
   
 ## Getting bits to install  ## Getting bits to install
   
 You can either build a release yourself with build.sh, or get one from the NetBSD FTP servers.  You can either build a release yourself with build.sh, or get one from the NetBSD FTP servers.
   
 Both will provide rpi.img.gz and rpi_inst.img.gz.  Each is an image to  Both will provide rpi.img.gz and rpi_inst.img.gz.  Each is an image to be written to a uSD card, and has a FAT32 partition for booting.  In rpi.img.gz, there is also an FFS partition for NetBSD.
 be written to a uSD card, and has a FAT32 partition for booting.  In  
 rpi.img.gz, there is also an FFS partition for NetBSD.  
   
 ### Building yourself  ### Building yourself
   
 Getting sources and building a release with build.sh is not special for evbarm.  Getting sources and building a release with build.sh is not special for evbarm.  Pick a CPU type alias and pass it to build.sh with -m.  Examples (the first two are equivalent):
 Pick a CPU type alias and pass it to build.sh with -m.  Examples:  
  - ./build.sh -m earmv6hf -u release   - ./build.sh -m earmv6hf -u release
  - ./build.sh -m evbarm -a earmv6hf -u release   - ./build.sh -m evbarm -a earmv6hf -u release
  - ./build.sh -m evbarm -a earmv7hf -u release   - ./build.sh -m evbarm -a earmv7hf -u release
Line 89  Pick a CPU type alias and pass it to bui Line 84  Pick a CPU type alias and pass it to bui
 NetBSD provides nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/).  These are equivalent to building yourself.  NetBSD provides nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/).  These are equivalent to building yourself.
   
  - The 'evbarm-earmv6hf/binary/gzimg/' directory contains an rpi.img file that can be used as a single image for both boards.   - The 'evbarm-earmv6hf/binary/gzimg/' directory contains an rpi.img file that can be used as a single image for both boards.
  - The 'evbarm-earmv7hf/binary/gzimg/' directory contains an armv7.img file that is optimized for Raspberry Pi 2.   - The 'evbarm-earmv7hf/binary/gzimg/' directory contains an armv7.img file that is optimized for Raspberry Pi 2/3.
  - The stable build directory will be under netbsd-7/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201710201440Z/evbarm-earmv6hf/binary/gzimg)       - The old stable build directory will be under netbsd-7/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201710201440Z/evbarm-earmv6hf/binary/gzimg)    
  - The not-yet-released stable build directory will be under netbsd-8/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-8/201710211010Z/evbarm-earmv6hf/binary/gzimg/)   - The stable build directory will be under netbsd-8/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-8/201710211010Z/evbarm-earmv6hf/binary/gzimg/)
  - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201710202210Z/evbarm-earmv7hf/binary/gzimg/)   - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201710202210Z/evbarm-earmv7hf/binary/gzimg/)
   
 ## Installing to uSD  ## Preparing a uSD card
   
 Once you have rpi.img.gz, put it on a uSD card using gunzip and dd, for example:  Once you have rpi.img.gz (or rpi_inst), put it on a uSD card using gunzip and dd, for example:
   
  - gunzip rpi.img.gz   - gunzip rpi.img.gz
  - dd if=rpi.i7mg of=/dev/disk1   - dd if=rpi.img of=/dev/disk1
   
 ### Serial Console  ### Serial Console
   
Line 112  edit cmdline.txt and remove '"console=fb Line 107  edit cmdline.txt and remove '"console=fb
   
    In minicom, run "minicom -s" and set hardware flow control to "no"     In minicom, run "minicom -s" and set hardware flow control to "no"
   
   ### Enabling ssh
   
   If you want to enable ssh with the standard image, so that you can log in over the net without either a serial or HDMI console, mount the ffs partition, place /root/.ssh/authorized_keys, uncomment PermitRootLogin in /etc/ssh/sshd_config, and comment out the rc_configure=NO in /etc/rc.conf.  Besides having to find the IP address, you will have to wait for the partition resizing and reboot.
   
 ### Installation with sshramdisk image  ### Installation with sshramdisk image
   
 build.sh (and hence the FTP site) also creates an image 'rpi_inst.img.gz' specifically for installation without HDMI or a serial console.  To use this method, write that image to a uSD card as above, and then:  build.sh (and hence the FTP site) also creates an image 'rpi_inst.img.gz' specifically for installation without HDMI or a serial console.  Note that this image is much smaller and that you will need to fetch the sets over the network.  To use this method, write that image to a uSD card as above, and then:
   
  - Ensure that you have a lan with a DHCP server.   - Ensure that you have a lan with a DHCP server.
  - Connect an Ethernet cable from the RPI to the LAN.   - Connect an Ethernet cable from the RPI to the LAN.
Line 142  every few weeks. Line 141  every few weeks.
           /Users/feyrer/work/NetBSD/cvs/src-current/obj.evbarm-Darwin-XXX/sys/arch/evbarm/compile/RPI2/netbsd            /Users/feyrer/work/NetBSD/cvs/src-current/obj.evbarm-Darwin-XXX/sys/arch/evbarm/compile/RPI2/netbsd
          ...           ...
   
  - Besides the "netbsd" kernel in ELF format, there is also a "netbsd.bin" kernel that is in a format that the Raspberry can boot.   - Besides the "netbsd" kernel in ELF format, there is also a "netbsd.img" (for current) or "netbsd.bin" (for 7 and 8) kernel that is in a format that the Raspberry can boot.
  - Depending on your hardware version, copy this either to /boot/kernel.img (First generation Pi, Pi Zero hardware) or to /boot/kernel7.img (Pi 2, Pi 3 hardware)   - Depending on your hardware version, copy this either to /boot/kernel.img (First generation Pi, Pi Zero hardware) or to /boot/kernel7.img (Pi 2, Pi 3 hardware)
  - reboot   - reboot
   

Removed from v.1.63  
changed lines
  Added in v.1.71


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