From da5e8d9bb81f9b0a67f1f5e897cebabcf66a97b5 Mon Sep 17 00:00:00 2001 From: Jacob Garber Date: Thu, 20 Jun 2019 15:26:01 -0600 Subject: Update BBB configuration for Debian 9 SSH access to a BBB has changed as of Debian 9, with the user needing to login to the debian account instead of root. Furthermore, the addition of the config-pin utility has simplified spidev setup considerably, with the device tree overlay files no longer being needed. References to the BBB screwdriver have also been removed, since it appears to no longer be maintained. --- docs/install/bbb_setup.md | 113 +++++++++++++++++----------------------------- 1 file changed, 41 insertions(+), 72 deletions(-) diff --git a/docs/install/bbb_setup.md b/docs/install/bbb_setup.md index 5d684a7f..352344a4 100644 --- a/docs/install/bbb_setup.md +++ b/docs/install/bbb_setup.md @@ -18,15 +18,10 @@ Lastly SBC is an example of self-contained device that is capable of flashing, but it's possible to use smaller device like stm32 bluepill with another computer to achieve similar result.* -*NOTE: this documentation may be outdated, and discusses configuring -SPI flashing on the default Debian system that the BBB sometimes comes -with. If you want an easier time, just use [BBB -ScrewDriver](https://www.coreboot.org/BBB_screwdriver) which comes -pre-configured.* - -*This guide is written for Debian Wheezy 7.5, which is what came on the -BBB at the time this guide was written. This one: -* +*Note: This guide was written for Debian Stretch 9.5, which is the latest +operating system for the BeagleBone Black as of June 2019. It is possible that +these instructions may be outdated if newer operating systems versions +have been released since then.* There was no justification for a further section for the Teensy. Simply refer to [this page on @@ -146,10 +141,14 @@ Here is an example set up:\ Accessing the operating system on the BBB ========================================= -The operating system on your BBB will probably have an SSH daemon -running where the root account has no password. Use SSH to access the -operating system and set a root password. By default, the OS on your BBB -will most likely use DHCP, so it should already have an IP address. +Follow the [Getting Started](https://beagleboard.org/getting-started) +instructions to install the latest version of Debian onto the BBB. +It is recommended to download the eMMC IoT Flasher edition, which will +write its image to the on-board eMMC. + +The operating system on the BBB can be accessed over SSH, with username +'debian' and password 'temppwd'. Follow the instructions on the Getting +Started page for complete details. You will also be using the OS on your BBB for programming an SPI flash chip. @@ -176,76 +175,46 @@ of SSH. Setting up spidev on the BBB ============================ -Log on as root on the BBB, using either SSH or a serial console as -defined in [\#bbb\_access](#bbb_access). Make sure that you have -internet access on your BBB. - -Follow the instructions at - up to (and -excluding) the point where it tells you to modify uEnv.txt - -You need to update the software on the BBB first. If you have an -element14 brand BBB (sold by Premier Farnell plc. stores like Farnell -element14, Newark element14, and Embest), you may need to [work around a -bug](https://groups.google.com/forum/?_escaped_fragment_=msg/beagleboard/LPjCn4LEY2I/alozBGsbTJMJ#!msg/beagleboard/LPjCn4LEY2I/alozBGsbTJMJ) -in the LED aging init script before you can update your software. If you -don't have a file named /etc/init.d/led\_aging.sh, you can skip this -step and update your software as described below. Otherwise, replace the -contents of this file with: - - #!/bin/sh -e - ### BEGIN INIT INFO - # Provides: led_aging.sh - # Required-Start: $local_fs - # Required-Stop: $local_fs - # Default-Start: 2 3 4 5 - # Default-Stop: 0 1 6 - # Short-Description: Start LED aging - # Description: Starts LED aging (whatever that is) - ### END INIT INFO - - x=$(/bin/ps -ef | /bin/grep "[l]ed_acc") - if [ ! -n "$x" -a -x /usr/bin/led_acc ]; then - /usr/bin/led_acc & - fi - -Run `apt-get update` and `apt-get upgrade` then reboot the BBB, -before continuing. -Check that the firmware exists: - - # ls /lib/firmware/BB-SPI0-01-00A0. +Log in to the BBB using either SSH or a serial console as +described in [\#bbb\_access](#bbb_access). -Output: +*Note: The following commands are run as root. To run them from a normal user +account, add yourself to the `gpio` group to configure the pins and the `spi` +group to access spidev.* - /lib/firmware/BB-SPI0-01-00A0.dtbo +Run the following commands to enable spidev: -Then: + # config-pin P9.17 spi_cs + # config-pin P9.18 spi + # config-pin P9.21 spi + # config-pin P9.22 spi_sclk - # echo BB-SPI0-01 > /sys/devices/bone_capemgr./slots - # cat /sys/devices/bone_capemgr./slots +Verify that the spidev devices now exist: -Output: + # ls /dev/spidev* - 0: 54:PF--- - 1: 55:PF--- - 2: 56:PF--- - 3: 57:PF--- - 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G - 5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI - 7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPI0-01 +Output: -Verify that the spidev device now exists: + /dev/spidev1.0 /dev/spidev1.1 /dev/spidev2.0 /dev/spidev2.1 - # ls -al /dev/spid* +Now the BBB is ready to be used for flashing. The following systemd service +file can optionally be enabled to make this persistent across reboots. -Output: +``` +[Unit] +Description=Enable SPI function on pins - crw-rw---T 1 root spi 153, 0 Nov 19 21:07 /dev/spidev1.0 +[Service] +Type=oneshot +ExecStart=config-pin P9.17 spi_cs +ExecStart=config-pin P9.18 spi +ExecStart=config-pin P9.21 spi +ExecStart=config-pin P9.22 spi_sclk +RemainAfterExit=yes -Now the BBB is ready to be used for flashing. Make this persist across -reboots:\ -In /etc/default/capemgr add `CAPE=BB-SPI0-01` at the end (or change -the existing `CAPE=` entry to say that, if an entry already exists. +[Install] +WantedBy=multi-user.target +``` Get flashrom from the libreboot\_util release archive, or build it from libreboot\_src/git if you need to. An ARM binary (statically compiled) -- cgit v1.2.3-70-g09d2