樹莓派 3B+ 筦窺︰ 【POE】 USB Boot ?

『科學精神』意在求真,大概不需要『詭辯矛盾』之非吧!

『技術創新』追求圓滿,終究免不了『善惡美醜』之是哩!

故爾針對

Under-voltage detected! (0x00050005) … how to disable?

文本之『硬體』和『軟件』及其『偵測訊息』該與不該對誰顯示的問題,理當置於『是是非非』之外乎?

不巧人間『價值衝突』常有『是其所非,非其所是』之爭耶??

所以借著

Under-voltage detected! (0x00050005) spams dmesg on new kernel 4.14.30-v7+ #2512

書己一二成見,非為議論呦!!

─── 《STEM 隨筆︰古典力學︰轉子【五】《電路學》三【電阻】V.E

 

俗語說︰飯可以多吃,話不要鐵齒!

昨天才講測好了 POE + SD 卡,今天一試 USB 『大拇哥』卻不行?

分明 POE 『規格』清清楚楚︰

RASPBERRY PI POE HAT

The Raspberry Pi PoE HAT is an add-on board for the Raspberry Pi 3 Model B+. It allows the Raspberry Pi to be powered via a power-enabled Ethernet network.

  • 802.3af PoE
  • Fully isolated switched-mode power supply
  • 37–57V DC, Class 2 device
  • 5V/2.5A DC output
  • 25mm x 25mm brushless fan for processor cooling
  • Fan control

PRODUCT BRIEF AND MECHANICAL DRAWINGS

 

怎麼卻不給用呢?!

HOW TO BOOT FROM A USB MASS STORAGE DEVICE ON A RASPBERRY PI 3

This tutorial explains how to boot your Raspberry Pi 3 from a USB mass storage device such as a flash drive or USB hard disk. Be warned that this feature is experimental and does not work with all USB mass storage devices. See this blog post from Gordon Hollingworth for an explanation of why some USB mass storage devices don’t work, as well as some background information.

Program USB Boot Mode

Before a Raspberry Pi 3 will boot from a mass storage device, it needs to be booted from an SD card with a config option to enable USB boot mode. This will set a bit in the OTP (One Time Programmable) memory in the Raspberry Pi SoC that will enable booting from a USB mass storage device. Once this bit has been set, the SD card is no longer required. Note that any change you make to the OTP is permanent and cannot be undone.

You can use any SD card running Raspbian or Raspbian Lite to program the OTP bit. If you don’t have such an SD card then you can install Raspbian or Raspbian Lite in the normal way – see installing images.

First, prepare the /boot directory with up to date boot files:

sudo apt-get update && sudo apt-get upgrade</pre> <code class=" language-bash"></code>  <span style="color: #808080;">The above step is not required if you use the 2017-04-10 release of Raspbian / Raspbian Lite or later.</span>  <span style="color: #808080;">Then enable USB boot mode with this code:</span> <pre class="lang:default decode:true">echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt</pre> <span style="color: #808080;">This adds <code>program_usb_boot_mode=1</code> to the end of <code>/boot/config.txt</code>. Reboot the Raspberry Pi with <code>sudo reboot</code>, then check that the OTP has been programmed with:</span> <pre class="lang:default decode:true "> vcgencmd otp_dump | grep 17:
17:3020000a

Ensure the output 0x3020000a is shown. If it is not, then the OTP bit has not been successfully programmed.

If you wish, you can remove the program_usb_boot_mode line from config.txt, so that if you put the SD card in another Raspberry Pi, it won’t program USB boot mode. Make sure there is no blank line at the end of config.txt. You can edit config.txt using the nano editor using the command sudo nano /boot/config.txt, for example.

Prepare the USB mass storage device

Starting with the 2017-04-10 release of Raspbian you can install a working Raspbian system to a USB mass storage device by copying the operating system image directly onto your USB device, in the same way that you would for an SD card. To perform this step, follow the instructions here, remembering to select the drive that corresponds to your USB mass storage device.

Once you have finished imaging your USB mass storage device, remove it from your computer and insert it into your Raspberry Pi 3.

Boot your Raspberry Pi 3 from the USB mass storage device

Attach the USB mass storage device to your Raspberry Pi 3 and power it up. After between five and ten seconds the Raspberry Pi 3 should begin booting, and display the rainbow splash screen on an attached screen.

 

不是早已成『預設』??況且也看到 rainbow splash 的呦!!

莫非真遇着『相容性』問題的吧!!??

PI 3 BOOTING PART I: USB MASS STORAGE BOOT BETA

Posted by Gordon Hollingworth
Director of Software Engineering
Cycles. Makes a mean chilli.

 

When we originally announced the Raspberry Pi 3, we announced that we’d implemented several new boot modes. The first of these is the USB mass storage boot mode, and we’ll explain a little bit about it in this post; stay tuned for the next part on booting over Ethernet tomorrow. We’ve also supplied a boot modes tutorial over on the Raspberry Pi documentation pages.

Note: the new boot modes are still in beta testing and use the “next” branch of the firmware. If you’re unsure about using the new boot modes, it’s probably best to wait until we release it fully.

How did we do this?

Inside the 2835/6/7 devices there’s a small boot ROM, which is an unchanging bit of code used to boot the device. It’s the boot ROM that can read files from SD cards and execute them. Previously, there were two boot modes: SD boot and USB device boot (used for booting the Compute Module). When the Pi is powered up or rebooted, it tries to talk to an attached SD card and looks for a file called bootcode.bin; if it finds it, then it loads it into memory and jumps to it. This piece of code then continues to load up the rest of the Pi system, such as the firmware and ARM kernel.

While squeezing in the Quad A53 processors, I spent a fair amount of time writing some new boot modes. If you’d like to get into a little more detail, there’s more information in the documentation. Needless to say, it’s not easy squeezing SD boot, eMMC boot, SPI boot, NAND flash, FAT filesystem, GUID and MBR partitions, USB device, USB host, Ethernet device, and mass storage device support into a mere 32kB.

What is a mass storage device?

The USB specification allows for a mass storage class which many devices implement, from the humble flash drive to USB attached hard drives. This includes micro SD readers, but generally it refers to anything you can plug into a computer’s USB port and use for file storage.

I’ve tried plugging in a flash drive before and it didn’t do anything. What’s wrong? 

We haven’t enabled this boot mode by default, because we first wanted to check that it worked as expected. The boot modes are enabled in One-Time Programmable (OTP) memory, so you have to enable the boot mode on your Pi 3 first. This is done using a config.txt parameter.

Instructions for implementing the mass storage boot mode, and changing a suitable Raspbian image to boot from a flash drive, can be found here.

Are there any bugs / problems?

There are a couple of known issues:

  1. Some flash drives power up too slowly. There are many spinning disk drives that don’t respond within the allotted two seconds. It’s possible to extend this timeout to five seconds, but there are devices that fail to respond within this period as well, such as the Verbatim PinStripe 64GB.
  2. Some flash drives have a very specific protocol requirement that we don’t handle; as a result of this, we can’t talk to these drives correctly. An example of such a drive would be the Kingston Data Traveller 100 G3 32G.

These bugs exist due to the method used to develop the boot code and squeeze it into 32kB. It simply wasn’t possible to run comprehensive tests.

However, thanks to a thorough search of eBay and some rigorous testing by our awesome work experience student Henry Budden, we’ve found the following devices work perfectly well:

  • Sandisk Cruzer Fit 16GB
  • Sandisk Cruzer Blade 16Gb
  • Samsung 32GB USB 3.0 drive
  • MeCo 16GB USB 3.0

If you find some devices we haven’t been able to test, we’d be grateful if you’d let us know your results in the comments.

Will it be possible to boot a Pi 1 or Pi 2 using MSD?

Unfortunately not. The boot code is stored in the BCM2837 device only, so the Pi 1, Pi 2, and Pi Zero will all require SD cards.

However, I have been able to boot a Pi 1 and Pi 2 using a very special SD card that only contains the single file bootcode.bin. This is useful if you want to boot a Pi from USB, but don’t want the possible unreliability of an SD card. Don’t mount the SD card from Linux, and it will never get corrupted!

My MSD doesn’t work. Is there something else I can do to get it working?

If you can’t boot from the MSD, then there are some steps that you can take to diagnose the problem. Please note, though, this is very much still a work in progress:

  • Format an SD card as FAT32
  • Copy the current next branch bootcode.bin from GitHub onto the SD card
  • Plug it into the Pi and try again

If this still doesn’t work, please open an issue in the firmware repository.

 

只是為何 POE + w/Power HUB + 大拇哥又 OK 靁??!!