樹莓派 3B+ 筦窺︰ 【POE】 USB Boot ?★‧硬體‧頭

司馬遷在《史記》的最後一篇《太史公自序》裡所說的

失之豪釐,差以千里

應是源自《觀測之『測天文』 》一文中,所講的那個『觀天』的『傳統』︰

……

或許出於《周髀算經

「髀」,拼音:bì,注音:ㄅㄧˋ,也簡稱《周髀》,是中國古代一本數學專業書籍,在中國唐代收入《算經十書》,並為《十經》的第一部。

周髀的成書年代至今沒有統一的說法,有人認為是周公所作,也有人認為是在西漢末年寫成。

周髀算經》是中國歷史上最早的一部天文曆算著作,也是中國流傳至今最早的數學著作,是後世數學的源頭,其算術化傾向決定中國數學發展的性質,歷代數學家奉為經典。

周髀算經》《卷上》

昔者周公問於商高曰:「竊聞乎大夫善數也,請問古者包犧周天曆度。夫天不可階而升,地不可得尺寸而度。請問數安從出

商高曰:「數之法,出於圓方。圓出於方,方出於矩。矩出於九九八十一。故折矩,以為句廣三,股脩四,徑隅五。既方之外,半其一矩。環而共盤,得成三、四、五。兩矩共長二十有五,是謂積矩。故禹之所以治天下者,此數之所生也。

句股圓方圖:

句股圓方圖1

句股圓方圖2

周公曰:「大哉言數!請問用矩之道?」

商高曰:「平矩以正繩,偃矩以望高,覆矩以測深,臥矩以知遠,環矩以為圓,合矩以為方。方屬地,圓屬天,天圓地方。方數為典,以方出圓。笠以寫天。天青黑,地黃赤。天數之為笠也,青黑為表,丹黃為裏,以象天地之位。是故知地者智,知天者聖。智出於句,句出於矩。夫矩之於數,其裁制萬物,唯所為耳。周公曰:「善哉!」

昔者榮方問於陳子,曰:「今者竊聞夫子之道。知日之高大,光之所照,一日所行,遠近之數,人所望見,四極之窮,列星之宿,天地之廣袤,夫子之道皆能知之。其信有之乎?」陳子曰:「然。」榮方曰:「方雖不省,願夫子幸而說之。今若方者可教此道邪?」陳子曰:「然。此皆算術之所及。子之於算,足以知此矣。若誠累思之。」

於是榮方歸而思之,數日不能得。復見陳子曰:「方思之不能得,敢請問之。」陳子曰:「思之未熟。此亦望遠起高之術,而子不能得,則子之於數,未能通類。是智有所不及,而神有所窮。夫道術,言約而用愽者,智類之明。問一類而以萬事達者,謂之知道。今子所學,算數之術,是用智矣,而尚有所難,是子之智類單。夫道術所以難通者,既學矣,患其不博。既博矣,患其不習。既習矣,患其不能知。故同術相學,同事相觀。此列士之愚智,賢不肖之所分。是故能類以合類,此賢者業精習智之質也。夫學同業而不能入神者,此不肖無智而業不能精習。是故算不能精習,吾豈以道隱子哉?固復熟思之。」

榮方復歸,思之,數日不能得。復見陳子曰:「方思之以精熟矣。智有所不及,而神有所窮,知不能得。願終請說之。」陳子曰:「復坐,吾語汝。」於是榮方復坐而請。陳子說之曰:「夏至南萬六千里,冬至南十三萬五千里,日中立竿測影。此一者天道之數。周髀長八尺,夏至之日晷一尺六寸。髀者,股也。正晷者,句也。正南千里,句一尺五寸。正北千里,句一尺七寸。日益表南,晷日益長。候句六尺,即取竹,空徑一寸,長八尺,捕影而視之,空正掩日,而日應空之孔。由此觀之,率八十寸而得徑一寸。故以句為首,以髀為股。從髀至日下六萬里,而髀無影。從此以上至日,則八萬里。若求邪至日者,以日下為句,日高為股。句、股各自乘,并而開方除之,得邪至日,從髀所旁至日所十萬里。以率率之,八十里得徑一里。十萬里得徑千二百五十里。故曰,日晷徑千二百五十里。」

日高圖

400px-Rigaotu1213CE

法曰:「周髀長八尺,句之損益寸千里。故曰:極者,天廣袤也。今立表高八尺以望極,其句一丈三寸。由此觀之,則從周北十萬三千里而至極下。」榮方曰:「周髀者何?」

陳子曰:「古時天子治周,此數望之從周,故曰周髀。髀者,表也。日夏至南萬六千里,日冬至南十三萬五千里,日中無影。以此觀之,從南至夏至之日中十一萬九千里。北至其夜半亦然。凡徑二十三萬八千里。此夏至日道之徑也,其周七十一萬四千里。從夏至之日中,至冬至之日中十一萬九千里。北至極下亦然。則從極南至冬至之日中二十三萬八千里。從極北至其夜半亦然。凡徑四十七萬六千里。此冬至日道徑也,其周百四十二萬八千里。從春秋分之日中北至極下十七萬八千五百里。從極下北至其夜半亦然。凡徑三十五萬七千里,周一百七萬一千里。故曰:月之道常緣宿,日道亦與宿正。南至夏至之日中,北至冬至之夜半,南至冬至之日中,北至夏至之夜半,亦徑三十五萬七千里,周一百七萬一千里。

「春分之日夜分以至秋分之日夜分,極下常有日光。秋分之日夜分以至春分之日夜分,極下常無日光。故春秋分之日夜分之時,日所照適至極,陰陽之分等也。冬至、夏至者,日道發歛之所生也至,晝夜長短之所極。春秋分者,陰陽之脩,晝夜之象。晝者陽,夜者陰。春分以至秋分,晝之象。秋分至春分,夜之象。故春秋分之日中光之所照北極下,夜半日光之所照亦南至極。此日夜分之時也。故曰:日照四旁各十六萬七千里。

「人望所見,遠近宜如日光所照。從周所望見北過極六萬四千里,南過冬至之日三萬二千里。夏至之日中,光南過冬至之日中光四萬八千里,南過人所望見一萬六千里,北過周十五萬一千里,北過極四萬八千里。冬至之夜半日光南不至人所見七千里,不至極下七萬一千里。夏至之日中與夜半日光九萬六千里過極相接。冬至之日中與夜半日光不相及十四萬二千里,不至極下七萬一千里。夏至之日正東西望,直周東西日下至周五萬九千五百九十八里半。冬至之日正東西方不見日。以算求之,日下至周二十一萬四千五百五十七里半。凡此數者,日道之發歛。冬至、夏至,觀律之數,聽鐘之音。冬至晝,夏至夜。差數及,日光所還觀之,四極徑八十一萬里,周二百四十三萬里。

「從周至南日照處三十萬二千里,周北至日照處五十萬八千里,東西各三十九萬一千六百八十三里半。周在天中南十萬三千里,故東西矩中徑二萬六千六百三十二里有奇。周北五十萬八千里。冬至日十三萬五千里。冬至日道徑四十七萬六千里,周一百四十二萬八千里。日光四極當周東西各三十九萬一千六百八十三里有奇。」

此方圓之法。

萬物周事而圓方用焉,大匠造制而規矩設焉,或毀方而為圓,或破圓而為方。方中為圓者謂之圓方,圓中為方者謂之方圓也。

七衡圖

400px-Qihengtu1213CE

凡為此圖,以丈為尺,以尺為寸,以寸為分,分一千里。凡用繒方八尺一寸。今用繒方四尺五分,分為二千里。

呂氏曰:「凡四海之內,東西二萬八千里,南北二萬六千里。」

凡為日月運行之圓周,七衡周而六間,以當六月節。六月為百八十二日、八分日之五。故日夏至在東井極內衡,日冬至在牽牛極外衡也。衡復更終冬至。故曰:一歲三百六十五日、四分日之一,一歲一內極,一外極。三十日、十六分日之七,月一外極,一內極。是故衡之間萬九千八百三十三里、三分里之一,即為百步。欲知次衡徑,倍而增內衡之徑。二之以增內衡徑。次衡放此。

內一衡徑二十三萬八千里,周七十一萬四千里。分為三百六十五度、四分度之一,度得一千九百五十四里二百四十七步、千四百六十一分步之九百三十三。

次二衡徑二十七萬七千六百六十六里二百步,周八十三萬三千里。分里為度,度得二千二百八十里百八十八步、千四百六十一分步之千三百三十二。

次三衡徑三十一萬七千三百三十三里一百步,周九十五萬二千里。分為度,度得二千六百六里百三十步、千四百六十一分步之二百七十。

次四衡徑三十五萬七千里,周一百七萬一千里。分為度,度得二千九百三十二里七十一步、千四百一十分步之六百六十九。

次五衡徑三十九萬六千六百六十六里二百步,周一百一十九萬里。分為度,度得三千二百五十八里十二步、千四百六十一分步之千六十八。

次六衡徑四十三萬六千三百三十三里一百步,周一百三十萬九千里。分為度,度得三千五百八十三里二百五十四步、千四百六十一分步之六。

次七衡徑四十七萬六千里,周一百四十二萬八千里。分為度,得三千九百九里一百九十五步、千四百六十一分步之四百五。

其次,日冬至所北照,過北衡十六萬七千里。為徑八十一萬里,周二百四十三萬里。分為三百六十五度四分度之一,度得六千六百五十二里二百九十三步、千四百六十一分步之三百二十七。過此而往者,未之或知。或知者,或疑其可知,或疑其難知。此言上聖不學而知之。故冬至日晷丈三尺五寸,夏至日晷尺六寸。冬至日晷長,夏至日晷短。日晷損益,寸差千里。故冬至、夏至之日,南北遊十一萬九千里,四極徑八十一萬里,周二百四十三萬里。分為度,度得六千六百五十二里二百九十三步、千四百六十一分步之三百二十七。此度之相去也。

其南北游,日六百五十一里一百八十二步、一千四百六十一分步之七百九十八。

術曰:置十一萬九千里為實,以半歲一百八十二日、八分日之五為法,而通之,得九十五萬二千,為實。所得一千四百六十一為法,除之。實如法得一里。不滿法者,三之,如法得百步。不滿法者,十之,如法得十步。不滿法者,十之,如法得一步。不滿法者,以法命之。

 

的求『日高』之法,大概就是

失之豪釐,差以千里

的成因。

300px-海岛算经

四庫全書海島算經

220px-Sea_island_survey

如果用《海島算經

三國時代魏國數學家劉徽所著的測量學著作,原為《劉徽九章算術注》第九卷勾股章內容的延續和發展,名為《九章重差圖》 ,附於《劉徽九章算術注》 之後作為第十章。唐代將《重差》從《九章》分離出來,單獨成書,按第一題今有望海島」,取名為《海島算經》,是《算經十書 》之一。

劉徽《海島算經》「使中國測量學達到登峰造極的地步」,使「中國在數學測量學的成就,超越西方約一千年」(美國數學家弗蘭克·斯委特茲語)

之圖來作『三角測量』的計算︰

\overline{GH} = D
\overline{BG} = X
\overline{AB} = H
 \angle AHB = \alpha
 \angle AGB = \beta

\tan(\alpha) = \frac{H}{D + X}
\tan(\beta) = \frac{H}{X}

Sea_Island_Measurement

可以得到

 H = D \cdot \tan(\alpha) \cdot \frac{1}{1 - \frac{\tan(\alpha)}{\tan(\beta)}}

然而『天很高,日很遠』,因此 \angle \beta \approx \angle \alpha ,故而很難『度量』的『精準』,一點點『角度』之『誤差』就產生了那個

失之豪釐,差以千里

的吧!!

─── 《失之豪釐,差以千里!!《上》

 

已知軟件『風扇控制』法,在此情狀不管用。☻

既然自己焊接功夫又不好,就試試這個硬體『PoE 分離』法吧!☺

Re: PoE HAT – USB Ports not working – over-current

Grozzie

Tue Sep 04, 2018 12:28 pm

Hi,

I have been getting the same problems as mentioned on these post.

However, I have managed to fix the problem!!!

I removed the PoE hat from the Raspberry Pi.
Used jumpers to connect the 4pin PoE header on the Pi to the 4pin header on the PoE hat.
Stripped a micro usb cable, crimped Dupont connectors to the red and black wires. Connected these wires to the 5v and GND on the PoE hat. Plugged the micro usb connector end into the micro usb connector (power) on the Raspberry Pi. I then connected a flash drive, PoE Ethernet cable, monitor etc… to the Raspberry Pi. The Raspberry Pi booted without any errors. I then ran numerous large file copies from the Raspberry Pi to my PC over the network, without any issues.

I didn’t connect any of the 40pin GPIO headers from the Raspberry Pi to the PoE hat so no I2C connections. I also noticed the the link speed indicator on my hub changed from yellow (10/100mb/s) to green (1000mb/s).

I did read somewhere (can’t remember where) that the Raspberry Pi shouldn’t be powered via the GPIO.

20180904_124433_001.jpg
20180904_124433_001.jpg (197.51 KiB) Viewed 455 times

Anyway this seems to work.

Have fun.

……

Re: PoE HAT – USB Ports not working – over-current

Grozzie

Wed Sep 05, 2018 5:21 pm

Hi

It’s obvious that there is a fundamental problem with voltage regulation from the PoE Hat. I don’t particularly want to get my soldering iron out and modify the PoE Hat. I’m hoping that a new revised PoE Hat that works will be available soon and that we can expect a free replacement. In the mean time if, like me, you don’t want to modify the PoE Hat the solution I posted earlier works. I have now tidied it up and have had no issues. The fan works and you still have access to all the GPIO header pins. Note 5v will be supplied from the PoE Hat and not the Raspberry Pi as I needed to isolate these pins. I used two 40pin stacking headers with pins 2 and 4 cut on the bottom header. I also had to cut another 40pin stacking header to make 2 x 4pin headers for the PoE header on the Raspberry Pi.

20180905_174748_001.jpg
20180905_174748_001.jpg (158.52 KiB) Viewed 817 times
The attachment 20180905_174748_001.jpg is no longer available

I will run this headless but for now I’m just testing stability, I have run sysbemch and numerous large file copies. So far I’ve had no ‘over-current’ warning and no usb dropouts. I’ve also connected an SSD again with no problems. Just need to print a case and I’ll have my single cable solution.

This may not be the most elegant solution nor does it address the problems with the PoE Hat 5v supply but it works.

Enjoy

 

由於手上沒有那位作者之『 micro usb connector 電源供應』頭,且直接連通 5V (pin 2) 以及接地 (pin 6) 針 ,看看如何哩?!

 

一樣可以開機勒!?

此時當然『風扇』不會轉,雖然也看不到『over-current change』的蹤影︰

pi@raspberrypi:~ dmesg | grep over pi@raspberrypi:~

 

不過卻跑出了許多『Under-voltage detected!』訊息︰

pi@raspberrypi:~ dmesg | grep Under-voltage [    2.151728] Under-voltage detected! (0x00050005) [   47.911748] Under-voltage detected! (0x00050000) [   54.151756] Under-voltage detected! (0x00050005) [ 116.548093] Voltage normalised (0x00000000) [ 307.908549] rpi_firmware_get_throttled: 5 callbacks suppressed [ 307.908555] Under-voltage detected! (0x00050005) [ 328.709766] Under-voltage detected! (0x00050005) [ 339.110272] Under-voltage detected! (0x00050005) [ 361.991125] rpi_firmware_get_throttled: 8 callbacks suppressed [ 361.991133] Voltage normalised (0x00000000) [ 368.231337] Voltage normalised (0x00000000) [ 380.711650] Voltage normalised (0x00000000) [ 619.905927] rpi_firmware_get_throttled: 16 callbacks suppressed [ 619.905937] Under-voltage detected! (0x00050000) [ 630.305384] Under-voltage detected! (0x00050005) [ 653.184325] Under-voltage detected! (0x00050000) [ 665.663795] rpi_firmware_get_throttled: 16 callbacks suppressed [ 665.663801] Voltage normalised (0x00000000) [ 678.143281] Voltage normalised (0x00000000) [ 694.782718] Voltage normalised (0x00000000) [ 929.819191] rpi_firmware_get_throttled: 14 callbacks suppressed [ 929.819198] Under-voltage detected! (0x00050005) [ 944.378153] Under-voltage detected! (0x00050000) [ 990.137696] Under-voltage detected! (0x00050005) [ 998.457628] rpi_firmware_get_throttled: 13 callbacks suppressed [ 998.457635] Voltage normalised (0x00000000) [ 1037.977500] Voltage normalised (0x00000000) [ 1054.618329] Voltage normalised (0x00000000) [ 1245.984519] rpi_firmware_get_throttled: 6 callbacks suppressed [ 1245.984525] Under-voltage detected! (0x00050000) [ 1275.105120] Under-voltage detected! (0x00050005) [ 1289.665423] Under-voltage detected! (0x00050005) [ 1302.145600] rpi_firmware_get_throttled: 7 callbacks suppressed [ 1302.145606] Voltage normalised (0x00000000) [ 1320.865917] Voltage normalised (0x00000000) [ 1356.226457] Voltage normalised (0x00000000) [ 1557.988363] rpi_firmware_get_throttled: 12 callbacks suppressed [ 1557.988370] Under-voltage detected! (0x00050000) [ 1589.188529] Under-voltage detected! (0x00050005) [ 1603.748612] rpi_firmware_get_throttled: 10 callbacks suppressed [ 1603.748618] Voltage normalised (0x00000000) [ 1628.708717] Under-voltage detected! (0x00050005) [ 1632.868749] Voltage normalised (0x00000000) [ 1645.348793] Voltage normalised (0x00000000) [ 1876.229394] rpi_firmware_get_throttled: 10 callbacks suppressed [ 1876.229401] Under-voltage detected! (0x00050005) [ 1882.469402] Under-voltage detected! (0x00050005) [ 1888.709432] Under-voltage detected! (0x00050005) [ 1921.989469] rpi_firmware_get_throttled: 12 callbacks suppressed [ 1921.989475] Voltage normalised (0x00000000) [ 1959.429518] Voltage normalised (0x00000000) pi@raspberrypi:~ 

 

不知為什麼??只好『從頭想』★

 

 

 

 

 

 

 

 

樹莓派 3B+ 筦窺︰ 【POE】 USB Boot ?★‧軟件

科學追求真理,為的是打開大自然的黑箱;然而真理明白若昭,就是透明的白箱。我們總在求真的旅途上一知半解,努力灰箱為白箱。如果偵錯就是科學,除錯即求真理,那這一段話用在『偵錯』與『除錯』上來講依然合適。這也說明為什麼人們喜歡用不同的灰度,來表達對『箱內之物』的認識與了解了。

如何打開黑箱?讓我們歸結到胡適之先生的兩句名言

學問要,

大膽假設,小心求證

讀書要,

於不疑處有疑,於有疑處不疑

─── 《打開黑箱!!

 

從這兩天『測試』經驗看來,『問題』來源箭指 PoE HAT 也!實質原因一時千頭萬緒?故而前往樹莓派『論壇』谷歌!!找找是否有『類似狀況』者,聽聽他們怎麼說耶??

PoE HAT – USB Ports not working – over-current

martinrowan

Tue Aug 21, 2018 10:10 pm

Hi, Just taken delivery of my official PoE-HAT and whilst I can now power the Pi on without the need for a separate micro USB PSU, it’s not exactly usable as the USB ports aren’t working.

Hardware:

  • Raspberry Pi 3 b+
  • Raspberry Pi PoE HAT
  • Cisco SG250-26HP POE Network Swich.

System:

  • Linux raspberrypi 4.14.62-v7+ #1134 SMP Tue Aug 14 17:10:10 BST 2018 armv7l GNU/Linux
  • Firmware:
    Aug 16 2018 17:30:30
    Copyright (c) 2012 Broadcom
    version 31e0613622dc2f2463bf3dd74e6c897d91201a4d (clean) (release)

On booting (without anything connected to the USB ports) the following is logged:

[   11.661117] Bluetooth: RFCOMM socket layer initialized
[   11.661151] Bluetooth: RFCOMM ver 1.11
[   12.986076] usb 1-1.1-port2: over-current change
[   13.147084] usb 1-1-port2: over-current change
[   13.231877] usb 1-1.1-port3: over-current change
[   13.391693] usb 1-1-port3: over-current change
[   13.631851] usb 1-1-port4: over-current change
[   33.978119] usb 1-1.1-port2: over-current change
[   34.139091] usb 1-1-port2: over-current change
[   34.211769] usb 1-1.1-port3: over-current change
[   34.371756] usb 1-1-port3: over-current change
[   34.611750] usb 1-1-port4: over-current change
[  408.250020] usb 1-1.1-port2: over-current change
[  408.411057] usb 1-1-port2: over-current change
[  408.482948] usb 1-1.1-port3: over-current change
[  408.644602] usb 1-1-port3: over-current change
[  408.762133] usb 1-1.1-port2: over-current change
[  408.883014] usb 1-1-port4: over-current change
[  408.993105] usb 1-1.1-port3: over-current change
[  409.132964] usb 1-1-port2: over-current change
[  409.232949] usb 1-1.1-port2: over-current change
[  409.372938] usb 1-1-port3: over-current change

When connecting any USB device, a USB mass storage device or the Logitech wireless keyboard transceiver, messages are logged.

[  473.733117] usb 1-1.3: new high-speed USB device number 5 using dwc_otg
[  473.864020] usb 1-1.3: New USB device found, idVendor=0781, idProduct=556c
[  473.864035] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  473.864043] usb 1-1.3: Product: Firebird USB Flash Drive
[  473.864051] usb 1-1.3: Manufacturer: SanDisk
[  473.864060] usb 1-1.3: SerialNumber: 4C532000000116109085
[  473.868191] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[  473.871816] scsi host0: usb-storage 1-1.3:1.0
[  473.947128] usb 1-1-port2: over-current change
[  474.042110] usb 1-1.1-port2: over-current change
[  474.183449] usb 1-1-port3: over-current change
[  474.273351] usb 1-1.1-port3: over-current change
[  474.423299] usb 1-1.3: USB disconnect, device number 5
[  474.753127] usb 1-1.3: new high-speed USB device number 6 using dwc_otg
[  474.883976] usb 1-1.3: New USB device found, idVendor=0781, idProduct=556c
[  474.883993] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  474.884001] usb 1-1.3: Product: Firebird USB Flash Drive
[  474.884009] usb 1-1.3: Manufacturer: SanDisk
[  474.884017] usb 1-1.3: SerialNumber: 4C532000000116109085
[  474.884822] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[  474.885225] scsi host0: usb-storage 1-1.3:1.0
[  474.885928] usb 1-1-port4: over-current change
[  475.066003] usb 1-1.1-port2: over-current change
[  475.123277] usb 1-1-port2: over-current change
[  475.303252] usb 1-1.1-port3: over-current change
[  475.363319] usb 1-1-port3: over-current change
[  475.603178] usb 1-1.3: USB disconnect, device number 6
[  475.903134] usb 1-1.3: new high-speed USB device number 7 using dwc_otg
[  476.044024] usb 1-1.3: New USB device found, idVendor=0781, idProduct=556c
[  476.044042] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  476.044050] usb 1-1.3: Product: Firebird USB Flash Drive
[  476.044059] usb 1-1.3: Manufacturer: SanDisk
[  476.044067] usb 1-1.3: SerialNumber: 4C532000000116109085
[  476.044877] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[  476.048170] scsi host0: usb-storage 1-1.3:1.0
[  476.049075] usb 1-1-port4: over-current change
[  476.283387] usb 1-1-port2: over-current change
[  476.346097] usb 1-1.1-port2: over-current change
[  476.523476] usb 1-1-port3: over-current change
[  476.583383] usb 1-1.1-port3: over-current change
[  476.763258] usb 1-1.3: USB disconnect, device number 7
[  477.103133] usb 1-1.3: new high-speed USB device number 8 using dwc_otg
[  477.234021] usb 1-1.3: New USB device found, idVendor=0781, idProduct=556c
[  477.234038] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  477.234047] usb 1-1.3: Product: Firebird USB Flash Drive
[  477.234056] usb 1-1.3: Manufacturer: SanDisk
[  477.234064] usb 1-1.3: SerialNumber: 4C532000000116109085
[  477.234868] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[  477.237752] scsi host0: usb-storage 1-1.3:1.0
[  477.238749] usb 1-1-port4: over-current change
[  478.314404] scsi 0:0:0:0: Direct-Access     SanDisk  Ultra            1.26 PQ: 0 ANSI: 5
[  478.316594] sd 0:0:0:0: [sda] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB)
[  478.317631] sd 0:0:0:0: [sda] Write Protect is off
[  478.317649] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[  478.318064] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  478.331456]  sda: sda1
[  478.334032] sd 0:0:0:0: [sda] Attached SCSI removable disk
[  478.340700] sd 0:0:0:0: Attached scsi generic sg0 type 0
[  478.394088] usb 1-1.1-port2: over-current change
[  478.555097] usb 1-1-port2: over-current change
[  478.633379] usb 1-1.1-port3: over-current change
[  479.183155] usb 1-1.3: reset high-speed USB device number 8 using dwc_otg
[  479.313802] usb 1-1-port3: over-current change
[  479.553522] usb 1-1-port4: over-current change
[  479.674094] usb 1-1.1-port2: over-current change
[  479.793515] usb 1-1-port2: over-current change
[  479.913413] usb 1-1.1-port3: over-current change
[  480.153155] usb 1-1.3: reset high-speed USB device number 8 using dwc_otg
[  480.283764] usb 1-1-port3: over-current change
[  480.442136] usb 1-1.1-port2: over-current change
[  480.603102] usb 1-1-port2: over-current change
[  480.673471] usb 1-1.1-port3: over-current change
[  481.153129] usb 1-1.3: reset high-speed USB device number 8 using dwc_otg
[  481.283588] usb 1-1-port3: over-current change
[  481.533586] usb 1-1-port4: over-current change

Checking my Cisco SG250-26HP switch shows the port connected to the Pi (via a 1m cable):

  • Operational Status: Delivering Power
  • Administrative Power Allocation: 30000mW
  • Power Consumption: 3000mW
  • Class: 3
  • PoE Standard: 802.3 AT

Do I have a faulty HAT, or RPi3, or any other suggestions as to why this isn’t working properly. When powered via micro USB power socket the USB ports work just fine.

……

 

多方文字洋洋灑灑,似乎已將『硬體』定罪矣!!??

不過一時『科南』上身??!!

laughlin

胡楊三千

跂礄曾經於二零壹二年六月六日刊登︰
履,柔履剛也。說而應乎乾,是以履虎尾,不咥人,亨。剛中正 ,履帝位而不疚,光明也。
胡楊精神
千年不死,千年不倒,千年不朽 。

─── 摘自《胡楊三千!!

 

竟敢先『履虎尾』乎,

Re: PoE HAT – USB Ports not working – over-current

scripsi

Thu Sep 06, 2018 3:00 pm

I can confirm this same issue with my own PoE hat.

I was getting all sorts of ugly errors when trying to mount USB storage while powering the Pi from the PoE hat, but not when powered from the micro-USB connector. Googling brought me to this thread and others. I checked dmesg and was getting the same over current errors as others here. I initially tried setting the fan constantly on with the command:

echo 40 | sudo tee /sys/class/hwmon/hwmon0/def_pwm1

Which worked – the errors went away and I was succesfully able to mount the USB drive – but didn’t survive a reboot. So I tried the change to the rpi-poe overlay detailed above which also worked and survived a reboot.

While this temporary kludge helps me get on with developing my solution, I wouldn’t feel confident putting it into a production environment! It’s a shame – I hope that we can find a more permanent fix.

……

Re: PoE HAT – USB Ports not working – over-current

bfarmerjr

Fri Sep 07, 2018 5:07 pm

I tried compiling and replacing the rpi-poe.dtbo as listed in this thread and just want to chime in that booting from USB flash drive which is what I do on my 4 Pi 3+ w/POE HAT still gives unreliable results. I either get the rainbow screen with green LED flashing 7 times and no further progress, or I get partial boot with errors- either the usb over-current messages or messages about not being able to mount the disk. One time, one of the Pis with the poe hat booted up fully and loaded my dashboard in the web browser. When I go back to standard power supplies plugged in to the microUSB port, I have no issues or errors and the system is stable and reliable. So while I think the updated module may help those booting SD cards, those of us who are booting off a USB flash drive instead are still out of luck.

 

發現它會咬人哩★

pi@raspberrypi:~ dmesg | grep over [    2.803497] usb 1-1-port2: over-current change [    3.041767] usb 1-1-port3: over-current change [    3.291864] usb 1-1-port4: over-current change [    3.542367] usb 1-1.1-port2: over-current change [    3.953683] usb 1-1.1-port3: over-current change [    4.292355] usb 1-1-port2: over-current change [    4.520924] usb 1-1.1-port2: over-current change [    4.603540] usb 1-1-port3: over-current change [    4.751871] usb 1-1.1-port3: over-current change [    4.842126] usb 1-1-port4: over-current change [    4.992019] usb 1-1.1-port2: over-current change [    5.081984] usb 1-1-port2: over-current change [    5.332113] usb 1-1-port3: over-current change [    5.502080] usb 1-1.1-port3: over-current change [    5.571995] usb 1-1-port4: over-current change [    5.741966] usb 1-1.1-port2: over-current change [    5.812033] usb 1-1-port2: over-current change [   40.947334] usb 1-1-port2: over-current change [   41.181793] usb 1-1-port3: over-current change [   41.421796] usb 1-1-port4: over-current change [   41.692925] usb 1-1.1-port2: over-current change [   42.172728] usb 1-1.1-port3: over-current change [   44.147287] EXT4-fs (sda2): recovery complete [  103.411381] usb 1-1-port2: over-current change [  103.642376] usb 1-1-port3: over-current change [  103.882375] usb 1-1-port4: over-current change [  104.122674] usb 1-1-port2: over-current change [  104.153045] usb 1-1.1-port2: over-current change [  104.623277] usb 1-1.1-port3: over-current change [  104.862352] usb 1-1.1-port2: over-current change [  104.887137] usb 1-1-port3: over-current change [  105.122326] usb 1-1-port4: over-current change [  105.362509] usb 1-1-port2: over-current change [  122.355385] usb 1-1-port2: over-current change [  122.592439] usb 1-1-port3: over-current change [  122.832441] usb 1-1-port4: over-current change [  122.902775] usb 1-1.1-port2: over-current change [  123.374174] usb 1-1.1-port3: over-current change pi@raspberrypi:~ 

 

 

 

 

 

 

 

 

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

窮舉法』是一種通用方法。它以『問題』為『解』之『對錯』的『判準』,窮盡『所有可能』的『解』作『斷言』之求解法。或可同時參閱《 M♪o 之學習筆記本《寅》井井︰【䷝】試釋是事》文中所說之『蠻力法』以及例子︰

行 ︰雖說是蠻力法,實則乃用『窮舉』,數ㄕㄨˇ數ㄕㄨˋ數不盡,耗時難為功,怎曉 機 機心迅捷後,此法遂真可行耶!?實習所用機,登入採『學號』與『針碼』【※ Pin Code 四位數字碼】 。『學號』之制 ── 班碼-位碼 ──,班不過十,位少於百,故而極其數不足千。針碼有四位,總其量,只有萬。試而盡之,『千萬』已『窮舉』。問題當在『咸澤碼訊』有多快?『登錄』之法有 多嚴 ?破解程式幾人會?設使一應具足,那個『駭黑』之事,怕是恐難免!!……

此處特別指出計算機『速度提昇』使得『窮舉法』的實用性大增,對此法的了解也就更顯得重要了。

假使將『所有可能解』看成『解空間』,將『問題』當成『約束』條件,此時『問題』的『求解』,就轉換成『尋找』『解空間』中滿足『約束』條件的『解』。一般將之稱為『蠻力搜尋法』︰

Brute-force search

In computer science, brute-force search or exhaustive search, also known as generate and test, is a very general problem-solving technique that consists of systematically enumerating all possible candidates for the solution and checking whether each candidate satisfies the problem’s statement.

A brute-force algorithm to find the divisors of a natural number n would enumerate all integers from 1 to the square root of n, and check whether each of them divides n without remainder. A brute-force approach for the eight queens puzzle would examine all possible arrangements of 8 pieces on the 64-square chessboard, and, for each arrangement, check whether each (queen) piece can attack any other.

While a brute-force search is simple to implement, and will always find a solution if it exists, its cost is proportional to the number of candidate solutions – which in many practical problems tends to grow very quickly as the size of the problem increases. Therefore, brute-force search is typically used when the problem size is limited, or when there are problem-specific heuristics that can be used to reduce the set of candidate solutions to a manageable size. The method is also used when the simplicity of implementation is more important than speed.

This is the case, for example, in critical applications where any errors in the algorithm would have very serious consequences; or when using a computer to prove a mathematical theorem. Brute-force search is also useful as a baseline method when benchmarking other algorithms or metaheuristics. Indeed, brute-force search can be viewed as the simplest metaheuristic. Brute force search should not be confused with backtracking, where large sets of solutions can be discarded without being explicitly enumerated (as in the textbook computer solution to the eight queens problem above). The brute-force method for finding an item in a table — namely, check all entries of the latter, sequentially — is called linear search.

─── 《勇闖新世界︰ 《 PYDATALOG 》【專題】之約束編程‧三

 

心想碰到『古怪』之事!如何『決斷』咦?最好用『窮舉』法☺

電源甲乙丙︰

‧ A/C Adapter

‧ PoE Splitter

‧ Official PoE HAT

情況有三種︰

‧ SD boot

‧ USB Flash connected via Power HUB, then Boot

‧ USB Flash  connected directly to Raspberry Pi, then Boot

 

同時確認官網『啟動流程』文件︰

BOOT FLOW

The flow of boot begins with reading the OTP to decide on the valid boot modes enabled. By default, this is SD card boot followed by USB device boot. Subsequently, the boot ROM checks to see if the GPIO boot mode OTP bits have been programmed — one to enable GPIO boot mode and one to select the bank of GPIOs it uses to disable boot modes (low = GPIOs 22-26, high = GPIOs 39-43). This makes it possible to use a hardware switch to choose between different boot modes if there is more than one available.

The GPIO boot mode OTP bits can be programmed by adding program_gpio_bootmode=n to config.txt, where n is 1 to select the low bank (22-26) or 2 to select the high bank (39-43). Once added, boot the device, then power-cycle it (rebooting is not sufficient). You should expect it to no longer boot (all boot modes will be disabled by default). Apply a pull-up to the required pin to enable the required boot mode. After programming, the config.txt setting can be removed.

N.B.:

  1. It is important to remember that, once set, OTP bits can never be unset, so think carefully before enabling this facility because it effectively makes 5 GPIOs unusable for other purposes. Also note that the bit assignments make it possible to switch from the low bank (22-26) to the high bank (39-43), but not back again, and that selecting the high bank is likely to produce a non-bootable Pi, unless you’re using a Compute Module (any version).
  2. Do not use program_gpio_bootmode unless your firmware is dated 20 Oct 2017 or later (vcgencmd version). Doing so will make it impossible to select the low bank of boot mode GPIOs.

Next the boot ROM checks each of the boot sources for a file called bootcode.bin; if it is successful it will load the code into the local 128K cache and jump to it. The overall boot mode process is as follows:

  • 2837 boots
  • Reads boot ROM enabled boot modes from OTP
  • Uses program_gpio_bootmode to disable some modes by reading GPIOs 22-26 or 39-43 to see if the default values do not equal the default pull to ‘0’. If it is low, it will disable that boot mode for each of SD1, SD2, NAND, SPI, USB. If the value read is a ‘1’, then that boot mode is enabled (note this cannot enable boot modes that have not already been enabled in the OTP). The default pull resistance is around 50K ohm, so a smaller pull up of 5K should suffice to enable the boot mode but still allow the GPIO to be operational without consuming too much power.
  • If enabled: check primary SD for bootcode.bin on GPIO 48-53
    • Success – Boot
    • Fail – timeout (five seconds)
  • If enabled: check secondary SD
    • Success – Boot
    • Fail – timeout (five seconds)
  • If enabled: check NAND
  • If enabled: check SPI
  • If enabled: check USB
    • If OTG pin == 0
    • Enable USB, wait for valid USB 2.0 devices (two seconds)
      • Device found:
      • If device type == hub
        • Recurse for each port
      • If device type == (mass storage or LAN951x)
        • Store in list of devices
    • Recurse through each MSD
      • If bootcode.bin found boot
    • Recurse through each LAN951x
      • DHCP / TFTP boot
    • else (Device mode boot)
    • Enable device mode and wait for host PC to enumerate
    • We reply to PC with VID: 0a5c PID: 0x2763 (Pi 1 or Pi 2) or 0x2764 (Pi 3)

NOTES:

  • If there is no SD card inserted, the SD boot mode takes five seconds to fail. To reduce this and fall back to USB more quickly, you can either insert an SD card with nothing on it or use the GPIO bootmode OTP setting described above to only enable USB.
  • The default pull for the GPIOs is defined on page 102 of the ARM Peripherals datasheet. If the value at boot time does not equal the default pull, then that boot mode is enabled.
  • USB enumeration is a means of enabling power to the downstream devices on a hub, then waiting for the device to pull the D+ and D- lines to indicate if it is either USB 1 or USB 2. This can take time: on some devices it can take up to three seconds for a hard disk drive to spin up and start the enumeration process. Because this is the only way of detecting that the hardware is attached, we have to wait for a minimum amount of time (two seconds). If the device fails to respond after this maximum timeout, it is possible to increase the timeout to five seconds using program_usb_boot_timeout=1 in config.txt.
  • MSD takes precedence over Ethernet boot.
  • It is no longer necessary for the first partition to be the FAT partition, as the MSD boot will continue to search for a FAT partition beyond the first one.
  • The boot ROM also now supports GUID partitioning and has been tested with hard drives partitioned using Mac, Windows, and Linux.
  • The LAN951x is detected using the Vendor ID 0x0424 and Product ID 0xec00, this is different to the standalone LAN9500 device which has a product ID of 0x9500 or 0x9e00. To use the standalone LAN9500 an I2C EEPROM would need to be added to change these ID’s to match the LAN9514

The primary SD card boot mode is, as standard, set to be GPIOs 49-53. It is possible to boot from the secondary SD card on a second set of pins, i.e. to add a secondary SD card to the GPIO pins. However, we have not yet enabled this ability.

NAND boot and SPI boot modes do work, although they do not yet have full GPU support.

The USB device boot mode is enabled by default at the time of manufacture, but the USB host boot mode is only enabled with program_usb_boot_mode=1. Once enabled, the processor will use the value of the OTGID pin on the processor to decide between the two modes. On a Raspberry Pi Model B, the OTGID pin is driven to ‘0’ and therefore will only boot via host mode once enabled (it is not possible to boot through device mode because the LAN9515 device is in the way).

The USB will boot as a USB device on the Pi Zero or Compute Module if the OTGID pin is left floating (when plugged into a PC for example), so you can ‘squirt’ the bootcode.bin into the device. The code for doing this is usbboot.

 

為何一切行禮如儀,十之八九如其所言,可是唯獨

Official PoE HAT + USB Flash  connected directly to Raspberry Pi, then Boot

這個組合卻不行呢?☻

 

 

 

 

 

 

 

 

樹莓派 3B+ 筦窺︰ 【POE】號外

難得寫作文章之際,發現如此『號外』事件︰

Re: PoE HAT – USB Ports not working – over-current

jamesh

Tue Sep 11, 2018 2:22 pm

OK all, as some will have seen on the Register (www.theregister.co.uk) we think we have got to the bottom of this. Here is a letter from Eben sent to the Register, who had asked what was up after some of their readers got in touch.

We’ve been looking at this over the last week, and have a good handle on the underlying mechanism: it’s an interaction between the fairly low-frequency switching regulator on the HAT, and one of the two brands of USB current limiting switch that we use on the main board. Because the regulator operates at a fairly low frequency, each time it switches it moves quite a large chunk of energy into the three USB reservoir caps via the current limiting switch: this large instantaneous current is fooling the switch into thinking that a genuine over-current event is occurring. We missed it in product testing because (dumb luck) our heavy-load testing was done on boards with the other brand of switch, and most of our field testers were only using the board to power mice and keyboards, which works fine on all the HAT/Pi pairs we’ve tested.

There will be a blog post of gory details, probably tomorrow, but for now the summary is:

– A significant proportion of HAT/Pi pairs are limited to delivering <200mA of downstream current to USB. This is generally enough for mice and keyboards, but not for e.g. hard drives.
– We will fix this issue in a subsequent spin of the PoE HAT.
– In the meantime we’ll be adding a note where the HAT is sold, documenting this limitation.
– We will provide a couple of hand-mod options for adventurous users. These are likely to be:
– Removing reservoir caps from the main board (an easy, clean mod if you can use a soldering iron, but limits USB hotpluggability).
– Inserting a small amount of series impedance in the current path from the HAT (this one will be a bit fiddly to implement).
– Users who have bought a HAT and are inconvenienced by this issue should return it for a refund.

The moral of the story: do more testing, particularly where we have multiple vendors for key bits of silicon.

I hope that covers all the questions that have been asked above.

 

心想這個【POE】文本系列,主旨是談『測試‧除錯』過程 ,十分樂見 Eben 先生的快速全面回應呦。

所以依舊照表操課也。

 

 

 

 

 

 

 

樹莓派 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 靁??!!