分類彙整: 樹莓派之疑難

樹莓派 3 三兩事之 UART 落幕篇 ??!!

即將要到『愚人節』了︰

愚人節位於每年公曆4月1日,是從19世紀開始在西方興起流行的民間節日,並未被任何國家認定為法定節日。在這一天人們以各種方式互相欺騙、捉弄及取笑,往往在玩笑的最後才揭穿並宣告捉弄對象為「愚人」。玩笑的性質極少包含實質惡意,但個別玩笑由於開得過大而引起人們的恐慌,產生較大規模反響及衍生成為(傳媒謠言都市傳說,所以對於人們來說一般會加以避免如災難之事的玩笑。

 

作者不知是否樹莓派 3 之『 UART 』,就要如此定案的耶??

Hexxeh/rpi-firmware

kernel: lirc_rpi: Lower IR reception error to debug

See: raspberrypi/linux#1361

kernel: vchiq_arm: Access the dequeue_pending flag locked
See: raspberrypi/linux@a7419d5

kernel: BCM270X_DT: Add pi3-act-led overlay
See: raspberrypi/linux#1363

firmware: sdram: cache the last set_frequency
firmware: pwm_sdm: Set SDRAM turbo frequency to default if pwm_sdm is enabled
See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=136445

firmware: vchiq_lib: Don't overwrite loop count mid-loop
See: https://discourse.osmc.tv/t/frequent-random-muting-then-freezing/9875/104

# UART 方案
firmware: arm_loader: Change mini-UART initialisation order
See: raspberrypi/firmware#553

 

如果從目前『討論』而言︰

Raspberry Pi 3 model B Serial console does not use correct baudrate #553

Serial console seems to give a incorrect baudrate. Overriding frequencies to previous Raspberries in /boot/config.txt helps: everything works as normal. After some iterations, I found that setting ‘gpu_freq=300’ solves the problem, although that is the default setting on a rpi 3. Probably someone reads that value to initialise the baudrate generator, and uses the old default ‘gpu_freq=250’ if the value is not set. This is almost certainly done in the closed-source /boot/start*.elf files. All those files do contain the texts ‘config.tst’ as well as ‘gpu_freq’. Please repair this issue..

……

  • If the console is on UART1 (mini-UART) – the default case on Pi3 – you get serial output if and only if enable_uart=1. The core frequency is fixed at 250MHz, unless force_turbo=1 in which case it is fixed at 400MHz (provided there is sufficient power and cooling).
  • If the console is on UART0 (PL011) – the default case on Pi0, Pi1, Pi2 and CM – you get serial output unless enable_uart=0. The core frequency is not restricted.

The only implication for Raspbian is that raspi-config should toggle enable_uart when the serial console is configured. It is safe to continue to send output to the UART when it is “disabled” because the UARTs are configured but disconnected from the GPIO pins. From today, a clean Raspbian install that has been rpi-updated will output to the serial port by default unless it is a Pi3, in which it is disabled unless enable_uart is set; it should never output corrupted data (unless you get over-temperature or under-voltage with force_turbo=1).

I’m in favour of making enable_uart=0 the default on all Pis, once people have had time to get used to the idea and we’ve not thought of any gotchas.

……

@pelwell mkknlimg does indeed allow the DT overlay to switch the RPi 3 console UART back to the PL011.

I’ve tested firmware.git commit 046effa “firmware: arm_loader: emmc clock depends on core clock See: #572” and found no blocking issues. From my perspective this bug can be closed, but I’ll leave that up to @josn0 since they filed the bug.

I did find one quirk, but I’m not sure there’s anything that can/should be done about it: On the RPi 3, if config.txt specifies enable_uart=0, or has no enable_uart line at all, then the mini UART is still enabled (so as not to hang SW that transmits data on it). However, the RX pinmux is not set up, so the UART continually receives 0x00 bytes (I didn’t actually verify the value; I assume 0x00). Perhaps the RX pinmux could still be set up to avoid this, leaving enable_uart simply as a flag that the user actively wants to use the UART so clock rates should be fixed? I suppose it’s quite plausible these days that a U-Boot user would only use HDMI+usbkbd, in the same way we assume a user of Linux GUI would.

My test matrix:

RPi B+
HDMI: OK
UART: OK
MMC: OK
Net: OK

RPi 2 B
HDMI: OK
UART: OK
MMC: OK
Net: OK

RPi 3 B 32-bit
MU (rpi_3_32b build):
HDMI: OK
UART: OK
MMC: OK
Net: OK
enable_uart=0 or no enable_uart stanza work: OK, with quirk
PL01x (rpi_2 build w/ DT overlay to switch UARTs):
HDMI: OK
UART: OK
MMC: OK
Net: OK

RPi 3 B 64-bit
MU (rpi_3 build):
HDMI: OK
UART: OK
MMC: OK
Net: OK

───

 

彷彿…的乎!!

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之預告篇

一篇 MagPi 上的訪談︰

Eben Upton talks Raspberry Pi 3

We speak to Eben Upton to find out what makes the Raspberry Pi 3 tick….

USB and PXE network boot

Even with the chip designed and taped out in March of last year, the Foundation had some final input for Broadcom in order to add twonew features: direct USB mass storage and PXE network boot capabilities. “Gordon rewrote the boot ROM for the chip and then provided an updated boot ROM to Broadcom, saying ‘shove this in the chip, it’ll work’,” Eben laughs. “And it does!

The Raspberry Pi 3 in its full glory

The Raspberry Pi 3 in its full glory

“The other interesting thing about the chip is for all other ones the implementation work was done entirely in Cambridge; this one was a collaboration with Broadcom’s settop box engineering group in Aztec West [business park] in Bristol.”

───

 

,預告著樹莓派 3 『 boot 』之新時代的到來!

一段樹莓派論壇裡的討論︰

usb boot on pi3

by lmoss30 » Mon Feb 29, 2016 10:03 pm
I know this is probably everywhere but with the release of pi3 could someone indicate how to set the system upto to run noobs of a usb drive is this even possible or is it just the os that runs on the usb drive? And you still need something on the sd card?

………

by mimi123 » Tue Mar 01, 2016 3:19 pm
lmoss30 wrote:I know this is probably everywhere but with the release of pi3 could someone indicate how to set the system upto to run noobs of a usb drive is this even possible or is it just the os that runs on the usb drive? And you still need something on the sd card?

you can boot from USB and from network on the Pi3 without a MicroSD at all

The tools are still not public though

………

by jdb » Sun Mar 06, 2016 1:35 pm
The bootrom on Pi3 supports USB mass-storage class booting as well as tftp/PXE boot. What isn’t in place yet is a bootcode.bin that understands it’s been loaded from a USB device (and therefore should go look for a USB device/listen on tftp for start.elf).

───

 

,訴說著它並不是此刻?這其中『USB 儲存裝置』之『直接』開機尚且容易直覺明白。至於『PXE network boot』未雨綢繆者或應先了解

Preboot Execution Environment

In computing, the Preboot eXecution Environment (PXE, sometimes pronounced as pixie[1]) specification describes a standardized client-server environment that boots a software assembly, retrieved from a network, on PXE-enabled clients. On the client side it requires only a PXE-capable network interface controller (NIC), and uses a small set of industry-standard network protocols such as DHCP and TFTP.

The concept behind the PXE originated in the early days of protocols like BOOTP/DHCP/TFTP, and as of 2015 it forms part of the Unified Extensible Firmware Interface (UEFI) standard. Given fast and reliable local area networks (LANs), PXE is the most frequent choice[2] for operating system booting, installation and deployment.

PXE_diagram

A high-level PXE overview

───

 

的概念。並且能深入閱讀規範與專論︰

Legacy – PXE Boot

Red Hat Linux 下建立 PXE Server

Step 1 : 前言
Step 2 : 環境需求
Step 3 : tftp server 的設定
Step 4 : 安裝媒體(FTP,NFS,HTTP)
Step 5 : PXE 設定檔
Step 6 : DHCP Server
Step 7 : The PXE clients
Step 8 : 其他 Linux Distribution(SuSE , Turbo Linux, Ubuntu)
Step 8 : 其他 Linux Distribution(Ubuntu 11.04)
錯誤訊息

Step 1 : 前言

在安裝作業系統時最常見的方式就是透過 CD/DVD 為安裝媒體來安裝作業系統,而這邊所說的 PXE (Preboot eXecution Environment) 則是透過網路的方式進行安裝作業系統.一開始可能會覺得怎麼有可能透過這樣的方式來進行安裝作業系統,他是怎麼做到的.先說說 PXE 的歷史,他是由 Intel 所提出,最主要的目的就是希望網卡能像是 其他裝置如:硬碟,光碟,磁碟機一樣可以擔任開機的動作.所以一開始我們主機的 BIOS 必須要支援從網卡開機.

在網卡上有一塊 ROM(firmware) 裡面存放了一些基本的網路協定如:Internet Protocol (IP), User Datagram Protocol (UDP), Dynamic Host Configuration Protocol (DHCP) 以及 Trivial File Transfer Protocol (TFTP)  透過這一些協定使得 PXE 可以進行網路的存取進一步取得網路上的資源.

pxe_boot06

圖片出自於 :http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf

而 PXE 是指在作業系統前的一個作業環境,所以他最主要的工作就是將任何的作業系統載入的動作.目前多是數的網卡都支援 PXE 功能,有些甚至還支援到 iSCSI Boot 的功能.目前 PXE 已經是一個成熟的標準協定,詳細的技術可以參考 Intel 網站的 PXE 規格書.http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf

───

 

最好還能先考慮樹莓派上之實務︰

Debian: installing a PXE server on Wheezy

Table Of Contents

───

 

一旦將來若果需要,或將事半功倍的乎??!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之 A.I. 篇

一場人機對奕, AlphaGo

Alphago_logo.svg

AlphaGo阿爾法圍棋,又暱稱阿爾法狗[1]阿法狗[2])是由英國倫敦Google DeepMind開發的人工智慧圍棋程式。2015年10月,它成為第一個無需讓子,即可在19路棋盤上擊敗圍棋職業棋士電腦圍棋程式。[3][4]2016年3月,在一場五番棋比賽中,AlphaGo於前三局以及最後一局均擊敗頂尖職業棋手李世乭,成為第一個不藉助讓子而擊敗圍棋職業九段棋士的電腦圍棋程式。[5]五局賽後韓國棋院授予AlphaGo為有史以來第一位名譽職業九段[6]

專業術語上來說,AlphaGo其做法是使用了蒙地卡羅樹狀搜尋與兩個深度神經網路相結合方法,其中一個是以估值網路來評估大量的選點,而以走棋網路來選擇落子。在這種設計下,電腦可以結合樹狀圖的長遠推斷,又可像人類的大腦一樣自發學習進行直覺訓練,以提高下棋實力。[7][8]

歷史

一般認為,電腦要在圍棋中取勝比在西洋棋等遊戲中取勝要困難得多,因為圍棋的分支因子大大多於其他遊戲,諸如暴力搜尋法Alpha-beta剪枝啟發式搜尋的傳統人工智慧方法在圍棋中很難奏效。[3][9]在1997年IBM的電腦「深藍擊敗俄籍世界西洋棋冠軍加里·卡斯帕羅夫之後,經過18年的發展,棋力最高的人工智慧圍棋程式才大約達到業餘5段圍棋棋手的水平,[10]且在不讓子的情況下,仍無法擊敗職業棋手。[3][4][11]2012年,在4台PC上執行的Zen程式在讓5子和讓4子的情況下兩次擊敗日籍九段棋士武宮正樹[12]。2013年,Crazy Stone在讓4子的情況下擊敗日籍九段棋士石田芳夫[13]

AlphaGo和之前的圍棋程式相比表現出顯著提升。在和Crazy Stone和Zen等其他圍棋程式的500局比賽中[14],單機版AlphaGo(執行於一台電腦上)僅輸一局[15]。而在其後的對局中,分散式版AlphaGo(以分散式運算執行於多台電腦上)在500局比賽中全部獲勝,且對抗運行在單機上的 AlphaGo 有 77% 的勝率。2015年10月的分散式運算版本AlphaGo使用1,202塊CPU及176塊GPU[10]

───

 

改寫了人工智慧的里程碑!!不知古之『奕秋』能有多少勝算??

論語.陽貨篇

宰我問:『三年之喪,期【時間】已久矣。君子三年不為禮禮必壞;三年不為樂樂必崩。舊穀既沒,新穀既升,鑽燧火,【一年】可已矣。』子曰:『食夫稻,衣夫錦,於女【你】安乎? 』曰:『。』『女安則為之!夫君子之居喪,食【脂】不甘,聞 ㄩㄝˋ 不樂 ㄌㄜˋ ,居處不安,故不為也。今女安,則為之!』宰我出。子曰:『予【宰我】之不仁也!子生三年,然後免於父母之懷。夫三年之喪,天下之通喪也。予也,有三年之於其父母乎?』

子曰:『飽食終日,無所用心,難矣哉!不有博弈者乎,為之猶乎已。』

。作者不知那編撰論語者是否有意這樣的安排篇章次序,彷彿孔老夫子以為宰我該去學學下圍棋,怎麼連個慎始敬終的棋理都不通的呢!如此看來圍棋起源實在很古早,有學者推測時間大約是公元前六世紀左右。據稱戰國時之弈秋是史籍記載的第一位高手,君不見《孟子‧告子上》有言︰

孟子曰:『無或乎王之不智也,雖有天下易生之物也,一日暴【曝】之,十日寒之,未有能生者也。吾見亦罕矣,吾退而寒之者至矣。吾如有萌焉何哉?今夫之為小數也;不專心致志,則不得也弈秋,通國之善弈者也。使弈秋二人,其一人專心致志弈秋之為;一人雖聽之,一心以為有鴻鵠將至,思援弓繳而射之,雖與之俱學,弗若之矣。為是其智弗若與?曰:非然也。』

於是乎圍棋成為古代知識分子修身養性的『必修課』,是為『琴棋書畫』四藝之一。這門古老的『博奕之術』有經典的嗎?在此僅舉北宋仁宗時的皇祐中翰林學士張擬所著《棋經》以饗讀者︰

張擬‧《棋經

論局
夫萬物之數,從一而起。局之路,三百六十有一。一者,生數之主,據其極而運四方也。三百六十,以象周天之數。分而為四,以象四時。隅各九十路,以象其日。外周七二路,以象其候。枯棋三百六十,白黑相半,以法陰陽。局之線道,謂之枰。線道之間,謂之罫。局方而靜,棋圓而動。自古及今,弈者無同局。《》曰:『日日新。』故宜用意深而存慮精,以求其勝負之由,則至其所未至矣

得算
棋者,以正合其勢,以權制其敵。故計定於內而勢成於外。戰未合而算勝者,得算多也。算不勝者,得算少也。戰已合而不知勝負者,無算也。兵法曰:『多算勝,少算不勝,而況於無算乎?由此觀之,勝負見矣。』

權輿
權輿者,弈棋布置,務守綱格。先於四隅分定勢子,然後拆二斜飛,下勢子一等。立二可以拆三,立三可以拆四,與勢子相望可以拆五。近不必比,遠不必乖。此皆古人之論,後學之規,捨此改作,未之或知。詩曰:『靡不有初,鮮克有終。

合戰
博弈之道,貴乎謹嚴。高者在腹,下者在邊,中者佔角,此棋家之常然。法曰:寧輸數子,勿失一先。有先而後,有後而先。擊左則視右,攻後則瞻前。兩生勿斷,皆活勿連。闊不可太疏,密不可太促。與其戀子求生,不若棄子取勢,與其無事強行,不若因之自補。彼眾我寡,先謀其生。我眾彼寡,務張其勢。善勝者不爭,善陣者不戰。善戰者不敗,善敗者不亂。夫棋始以正合,終以奇勝。必也,四顧其地,牢不可破,方可出人不意,掩人不備。凡敵無事而自補者,有侵襲之意也。棄小而不就者,有圖大之心也。隨手而下者,無謀之人也。不思而應者,取敗之道也。詩云:『惴惴小心,如臨于谷。

虛實
夫弈棋,緒多則勢分,勢分則難救。投棋勿逼,逼則使彼實而我虛。虛則易攻,實則難破。臨時變通,宜勿執一。《》曰:『見可而進,知難而退。

自知
夫智者見於未萌,愚者暗於成事。故知己之害而圖彼之利者,勝。知可以戰不可以戰者,勝。識眾寡之用者,勝。以虞待不虞者,勝。以逸待勞者,勝。不戰而屈人之棋者,勝。《老子》曰:『自知者明。

審局
夫弈棋布勢,務相接連。自始至終,著著求先。臨局離爭,雌雄未決,毫釐不可以差焉。局勢已贏,專精求生。局勢已弱,銳意侵綽。沿邊而走,雖得其生者,敗。弱而不伏者,愈屈。躁而求勝者,多敗。兩勢相違,先蹙其外。勢孤援寡,則勿走。機危陣潰,則勿下。是故棋有不走之走,不下之下。誤人者多方,成功者一路而已。能審局者多勝。》曰:『窮則變,變則通,通則久。

度情
人生而靜,其情難見;感物而動,然後可辨推之於棋,勝敗可得而先驗。持重而廉者多,輕易而貪者多。不爭而自保者多,務殺而不顧者多。因敗而思者,其勢;戰勝而驕者,其勢退。求己弊不求人之弊者,;攻其敵而不知敵之攻己者,。目凝一局者,其思周;心役他事者,其慮散。行遠而正者,機淺而詐者。能畏敵者,謂人莫己若者。意旁通者,心執一者。語默有常,使敵難量。動靜無度,招人所惡。《》云:『他人之心,予時度之。

斜正
或曰:『棋以變詐為務,劫殺為名,豈非詭道耶?』予曰:『不然。』《》云:『師出以律,否藏凶。兵本不尚詐,謀言詭行者,乃戰國縱橫之說。棋雖小道,實與兵合。故棋之品甚繁,而弈之者不一。得品之下者,舉無思慮,動則變詐。或用手以影其勢,或發言以泄其機。得品之上者,則異於是。皆沉思而遠慮,因形而用權。神遊局內,意在子先圖勝於無朕,滅行於未然。豈假言辭喋喋,手勢翩翩者哉?《》曰:『正而不譎。』其是之謂歟?

洞微
凡棋有益之而損者,有損之而益者。有侵而利者,有侵而害者。有宜左投者,有宜右投者。有先著者,有後著者。有緊避者,有慢行者。粘子勿前,棄子思後。有始近而終遠者,有始少而終多者。欲強外先攻內,欲實東先擊西。路虛而無眼,則先覷。無害于他棋,則做劫。饒路則宜疏,受路則勿戰。擇地而侵,無礙而進。此皆棋家之幽微也,不可不知也。《》曰:『非天下之至精,其孰能與於此。

名數
夫弈棋者,凡下一子,皆有定名棋之形勢、死生、存亡,因名而可見。有沖,有斡,有綽,有約,有飛,有關,有劄,有粘,有頂,有尖,有覷,有門,有打,有斷,有行,有捺,有立,有點,有聚,有蹺,有夾,有拶,有避,有刺,有勒,有撲,有徵,有劫,有持,有殺,有松,有盤。圍棋之名,三十有二,圍棋之人,意在可周。臨局變化,遠近縱橫,吾不得而知也。用倖取勝,難逃此名。《》曰:『必也,正名乎棋!

品格
夫圍棋之品有九。一曰入神,二曰坐照,三曰具體,四曰通幽,五曰用智,六曰小巧,七曰斗力,八曰若愚,九曰守拙。九品之外不可勝計,未能入格,今不復云。《》曰:『生而知之者,上也;學而知之者,次也;困而學之又其次也。

雜說
夫棋邊不如角,角不如腹。約輕於捺,捺輕於避。夾有虛實,打有情偽。逢綽多約,遇拶多粘。大眼可贏小眼,斜行不如正行。兩關對直則先覷,前途有礙則勿徵。施行未成,不可先動。角盤曲四,局終乃亡。直四扳六,皆是活棋,花聚透點,多無生路。十字不可先紐,勢子在心,勿打角圖。弈不欲數,數則怠,怠則不精弈不欲疏,疏則忘,忘則多失勝不言,敗不語。振廉讓之風者,君子也;起忿怒之色者,小人也。高者無亢,卑者無怯。氣和而韻舒者,喜其將勝也。心動而色變者,憂其將敗也。赧莫赧於易,恥莫恥於盜。妙莫妙於用松,昏莫昏於複劫。凡棋直行三則改,方聚四則非。勝而路多,名曰贏局;敗而無路,名曰輸籌。皆籌為溢,停路為芇。打籌不得過三,淘子不限其數。劫有金井、轆轤,有無休之勢,有交遞之圖。弈棋者不可不知也。凡棋有敵手,有半先,有先兩,有桃花五,有北斗七。夫棋者有無之相生,遠近之相成,強弱之相形,利害之相傾,不可不察也。是以安而不泰,存而不驕。安而泰則危,存而驕則亡。》曰:『君子安而不忘危,存而不忘亡。

─── 摘自《物理哲學·中中

 

難道 AlphaGo 『演算法』之精良已出《棋經》之右也!!??深得『智慧』之三昧乎??!!

如果想知道『人工智慧』的滋味,探究它的『功夫火侯』,何不就自己飲水,或可以從此開始︰

About TensorFlow

TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google’s Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.

What is a Data Flow Graph?

Data flow graphs describe mathematical computation with a directed graph of nodes & edges. Nodes typically implement mathematical operations, but can also represent endpoints to feed in data, push out results, or read/write persistent variables. Edges describe the input/output relationships between nodes. These data edges carry dynamically-sized multidimensional data arrays, or tensors. The flow of tensors through the graph is where TensorFlow gets its name. Nodes are assigned to computational devices and execute asynchronously and in parallel once all the tensors on their incoming edges becomes available.

tensors_flowing

……

Who Can Use TensorFlow?

TensorFlow is for everyone. It’s for students, researchers, hobbyists, hackers, engineers, developers, inventors and innovators and is being open sourced under the Apache 2.0 open source license.

TensorFlow is not complete; it is intended to be built upon and extended. We have made an initial release of the source code, and continue to work actively to make it better. We hope to build an active open source community that drives the future of this library, both by providing feedback and by actively contributing to the source code.

……

Why Did Google Open Source This?

If TensorFlow is so great, why open source it rather than keep it proprietary? The answer is simpler than you might think: We believe that machine learning is a key ingredient to the innovative products and technologies of the future. Research in this area is global and growing fast, but lacks standard tools. By sharing what we believe to be one of the best machine learning toolboxes in the world, we hope to create an open standard for exchanging research ideas and putting machine learning in products. Google engineers really do use TensorFlow in user-facing products and services, and our research group intends to share TensorFlow implementations along side many of our research publications.

───

 

看看是否能將樹莓派『聰明化』??能把 IOT 『智慧化』的耶!!

Installing TensorFlow on Raspberry Pi 3 (and probably 2 as well)

Intro

We did it! It took a lot of head-banging and several indirect passings-of-the-torch, but we finally got TensorFlow compiled and running properly on the Raspberry Pi! Hopefully this will enable more hardware-based machine learning projects, as well as making the distributed aspects of TensorFlow more accessible.

Contents

Installing from Pip

Note: These are unofficial binaries (though built from the minimally modified official source), and thus there is no expectation of support from the TensorFlow team. Please don’t create issues for these files in the official TensorFlow repository.

This is the easiest way to get TensorFlow onto your Raspberry Pi 3. Note that currently, the pre-built binary is targeted for Raspberry Pi 3 running Raspbian 8.0, so this may or may not work for you.

───

 

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之 VLC 篇

或許因為『 omxplayer

About

OMXPlayer is a commandline OMX player for the Raspberry PI.
It was developed as a testbed for the XBMC Raspberry PI implementation and is quite handy to use standalone.

OMXPlayer has big dependencies that take long to compile on Raspberry Pi and usually without sucess, so I decided to make a build-bot for creating binary distributions for Raspbian (Debian with hard-float for RPi).

I didn’t wrote the code, I just provide the binary packages. If you have any problem with them you can contact me in different ways and I will try to help:

  • E-Mail: skgsergio [at] gmail [dot] com
  • Twitter: @skgsergio
  • IRC: [SkG] @ irc.freenode.net (usually online at #raspberrypi, #raspbian and many others.)

───

 

是個『命令列』程式。然而人們總是想要有個『圖形界面』的應用程式,於是許久以來,就有人開始嘗試

Tutorial: Compile VLC with HW acceleration – Jessie, RPi 2/3

by gkreidl » Sat Nov 02, 2013 8:30 am
Update March 14th, 2016:
This is now finally working again! This tutorial is for Raspbian Jessie and the RPi 2 and 3 only!If you have already VLC installed, remove it now (all packages belonging to it).
If not, it might be a good idea, to install it first and remove it again (all packages belonging to it) to get all the program dependencies installed.1) Download and unpack:
http://download.videolan.org/vlc/2.2.2/vlc-2.2.2.tar.xzFor everything else we’ll use a terminal.2) Installing the dependencies for building

……

This will also take a few minutes.

After starting VLC for the first time, change the following options:
Settings, simple, Audio: make sure, ALSA and bcm2835 are selected
Settings, simple, Video, output: select “OpenMAX IL video output”
VLC will remember these settings.

Video is displayed in an overlay, similar to omxplayer, not inside a window. On both RPi2 and 3 it will play up to 1080p video.

If audio is jerky and out of sync, check, if pulseaudio is installed on your system and remove it (only the main application package).

Enjoy!

───

 

後來友人寫了樹莓派二『 vlc 安裝 』一文,作者一旦需要首先也就這麼編譯的了。雖說如今還是『依樣畫葫蘆』,卻請讀者注意那個文本中有一行,應如下︰

./configure –-prefix=/usr –-enable-rpi-omxil –-disable-ogg –-disable-mux_ogg –-disable-mmal-codec

 

果然結果很成功的哩!僅簡單以圖為證︰

VLC 媒體播放器

 

VLC 關於

 

VLC 簡易偏好設定

 

如果問為什麼要作這件事呢?大概由於過去有人問

Do I still need to purchase the MPEG-2 and VC-1 license keys for the Raspberry Pi 2?

 

。即使這在樹莓派 3 之 KODI

 

1.9 Enabling additional video codecs

Link
You can buy additional video codecs (VC-1 – used in some bluray discs, and MPEG-2) from the Raspberry Pi Foundation online shop. After purchase the keys are emailed to you, looking like this (invalid keys used for example):

decode_MPG2=0x1cc591c7
decode_WVC1=0x8aa09876

In order to enable additional video codecs you should modify /boot/config.txt and add these lines literally. The method may vary per distribution:

  • Manual: Open /boot/config.txt with a text editor like nano or vi, and add the keys.
  • XBian: You can add/remote your keys using XBian-config. After reboot your keys will be entered and ready to use.
  • OSMC: Go in to My OSMC -> Pi Config. Navigate to Codecs and enter your keys with the on-screen keyboard. After a reboot your keys will be entered and ready to use.
  • OpenELEC: Type mount /flash -o remount,rw to remount the boot partition in read/write mode. The file to edit is located in /flash/config.txt, and contains stubs for the license keys. Add the keys using nano or vi. There is also an unofficial add-on which can be used to enter the codec information.

 

官方版的驗證下也是需要??!!

雖然『  Jessie 』的 VLC 也已經很新的了︰

pi@raspberrypi ~ apt-cache show vlc Package: vlc Version: 2.2.1-1~deb8u1 Architecture: armhf Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org> Installed-Size: 3859 Depends: fonts-freefont-ttf, vlc-nox (= 2.2.1-1~deb8u1), libaa1 (>= 1.4p5), libavcodec56 (>= 6:11~beta1) | libavcodec-extra-56 (>= 6:11.4), libavutil54 (>= 6:11~beta1), libc6 (>= 2.16), libcaca0 (>= 0.99.beta17-1), libegl1-mesa (>= 7.8.1) | libegl1-x11, libfreerdp-cache1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-client1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-codec1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-core1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-crypto1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-gdi1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-locale1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-rail1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-utils1.1 (>= 1.1.0~beta1+git20130629), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:4.4.0), libgl1-mesa-glx | libgl1, libgles1-mesa (>= 7.8.1) | libgles1, libgles2-mesa (>= 7.8.1) | libgles2, libice6 (>= 1:1.0.0), libpulse0 (>= 0.99.4), libqtcore4 (>= 4:4.8.0), libqtgui4 (>= 4:4.8.0), libsdl-image1.2 (>= 1.2.10), libsdl1.2debian (>= 1.2.11), libsm6, libstdc++6 (>= 4.9), libva-drm1 (>= 1.1.0), libva-x11-1 (>= 1.0.3), libva1 (>= 1.2.0), libvlccore8 (>= 2.2.0), libvncclient0 (>= 0.9.9), libwinpr-rpc0.1 (>= 1.1.0~beta1+git20130629), libwinpr-sspi0.1 (>= 1.1.0~beta1+git20130629), libwinpr-utils0.1 (>= 1.1.0~beta1+git20130629), libx11-6, libxcb-composite0, libxcb-keysyms1 (>= 0.4.0), libxcb-randr0 (>= 1.1), libxcb-render0, libxcb-shape0, libxcb-shm0, libxcb-xfixes0, libxcb-xv0 (>= 1.2), libxcb1 (>= 1.6), libxext6, libxinerama1, libxpm4, zlib1g (>= 1:1.2.3.3) Recommends: vlc-plugin-notify (= 2.2.1-1~deb8u1), vlc-plugin-samba (= 2.2.1-1~deb8u1), xdg-utils Suggests: videolan-doc Breaks: vlc-data (<< 1.1.5), vlc-nox (<< 2.2.0~pre2-2~), vlc-plugin-pulse (<< 2.2.0~pre2-2~) Replaces: vlc-data (<< 1.1.5), vlc-nox (<< 2.2.0~pre2-2~), vlc-plugin-pulse (<< 2.2.0~pre2-2~) Provides: mp3-decoder Homepage: http://www.videolan.org/vlc/ Priority: optional Section: video Filename: pool/main/v/vlc/vlc_2.2.1-1~deb8u1_armhf.deb Size: 1280554 SHA256: 567ff0e4faa792b4a23d7331ded649453b2d4e06fee3daf9774007d261e74eec SHA1: 00771e56e45bd9eb8959095a7847433479028393 MD5sum: ecf025906c32b9ceccdb1cf096e0ba3c Description: multimedia player and streamer  VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,  DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,  podcasts, and multimedia streams from various network sources.  .  VLC can also be used as a streaming server that duplicates the stream it  reads and multicasts them through the network to other clients, or serves  them through HTTP.  .  VLC has support for on-the-fly transcoding of audio and video formats, either  for broadcasting purposes or for movie format transformations. Support for  most output methods is provided by this package, but features can be added by  installing additional plugins (vlc-plugin-fluidsynth, vlc-plugin-jack,  vlc-plugin-notify, vlc-plugin-samba, vlc-plugin-sdl, vlc-plugin-svg,  vlc-plugin-zvbi). Description-md5: c3a7a10e39c9ddd30da6653ec2238442  pi@raspberrypi ~ 

 

問題是沒有『硬體影音解碼』!!??所以 …… 怎麼得到『兩種』好處的乎☆★

可是作者還想要『第三種』的也︰

Listen to Bluetooth Audio on Your Raspberry Pi 3, Pi Zero, or Earlier Pi

YouTube on the Pi

The Raspberry Pi is a handy little computer for so many uses, but Raspbian doesn’t come already set up for listening to audio over Bluetooth headphones or speakers. However, it’s not hard to do, it’s a lot of fun, and it works!. As I’m writing this, I’m listening to 40s Big Band music on my Pi 3 through my Bluetooth headphones.

The instructions in this post are for the February 26, 2016 version of version of Raspbian or Noobs, but they work with all previous versions of Raspbian Jessie. They work for the Raspberry any Pi version, although the Zero and the original Pi are not really powerful enough to stream from the internet. They work great for playing mp3 files with a media player like VLC.

Except for the Pi 3, you’ll need a Bluetooth adapter like the Plugable Bluetooth adapter. For the Pi Zero, you’ll also need a way to connect to the Internet like a Plugable USB-Ethernet adapter or WiFi adapter, along with an OTG cable and a powered hub like the compact Plugable 4-port USB 2.0 hub. Whichever Pi you use, you end up with is a great little music server that opens the door to a lot of fun projects.

───

 

只不過眼前似乎『踢到鐵板』?之前 OK 的『藍牙喇叭』

IMAG1178

 

,現在雖不能用『blueman』連接??不是還可用『bluetoothctl』

pi@raspberrypi ~ bluetoothctl  [NEW] Controller B8:27:EB:23:2B:C8 raspberrypi [default] [bluetooth]# power on Changing power on succeeded [bluetooth]# agent on Agent registered [bluetooth]# default-agent  Default agent request successful [bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:23:2B:C8 Discovering: yes [NEW] Device 00:02:5B:00:47:4E NOGO B6500 [NEW] Device 74:E5:43:88:E4:16 localhost.localdomain-0 [bluetooth]# pair 00:02:5B:00:47:4E Attempting to pair with 00:02:5B:00:47:4E [CHG] Device 00:02:5B:00:47:4E Connected: yes [CHG] Device 00:02:5B:00:47:4E UUIDs: 	00001108-0000-1000-8000-00805f9b34fb 	0000110b-0000-1000-8000-00805f9b34fb 	0000110c-0000-1000-8000-00805f9b34fb 	0000110e-0000-1000-8000-00805f9b34fb 	0000111e-0000-1000-8000-00805f9b34fb [CHG] Device 00:02:5B:00:47:4E Paired: yes Pairing successful [CHG] Device 00:02:5B:00:47:4E Connected: no [bluetooth]# connect 00:02:5B:00:47:4E Attempting to connect to 00:02:5B:00:47:4E [CHG] Device 00:02:5B:00:47:4E Connected: yes Connection successful [bluetooth]# quit Agent unregistered [DEL] Controller B8:27:EB:23:2B:C8 raspberrypi [default] pi@raspberrypi ~ 

 

連成功乎!怎 A2DP 聲音會 …… 不忍聞的耶!!

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之 I2S 篇

當樹莓派 3 甫一出現,就有人發想『拿來做什麼好呢?』。於是乎各種『最佳計畫』表列林立。這裡挑選曾經談過的典型之幾個︰

入門電腦

遊戲機

媒體中心

‧……

 

其中『媒體中心』︰

過去老子說︰『天地不仁,以萬物為芻狗;聖人不仁,以百姓為芻狗』,如果『祭祀』時不用『活狗』,改以『草扎』的芻狗,總是『比較好』的事吧。或許正因如此,此話歷史上議論的少自然的『法則』和聖人的『教化』,無法因人設事,只好聽之隨緣罷了。後來孟子於《孟子‧梁惠王上》上講︰ 『子曰︰始作俑者,其无后乎?』這可引發了大『辯論』,彷彿人們都想知道孔子此言何意?是不是罵人』?作者於此無意』或者『』說著這一件事情,從另一處說吧,『考古發現古代『宮殿』是有以人為』的事實,『墓穴』又有以人為』的證據,直白的面對不就好了,『是什麼的』就稱它是個什麼』。

甲骨文孚

金文孚

甲骨文妥

金文妥

裘錫圭先生認為』是『』的初文,甲骨文『』從『』從『』,或不 從』而』。『又』、『爪』皆象手形,『象小孩子。『孚』字象抓住一個孩子之形古之戰勝方往往把敵敗方的成年男子殺死,只俘虜婦女和小孩。

』字的甲金文從『』從『』,象以手擒拿、抓取女子之形本義俘掠,後作『』。『妥』與『孚』的造字原理相同吳其昌先生認為甲骨文『男曰孚女曰妥

孔子說法的『真相』是什麼呢?如果從『孔子葬母』一事來看,也許只是製作精美的用之於喪禮頗有意見

作者認為
人類應當誠實面對歷史事實,要能真心認識自己,或許才知道人、事、物的『道路』,也許可避免 進□?退□? 』的『困境』。如果人生真的一個『終極』的『目的』或者說『意義』,那麼過程中的 一切一種『手段』與『追求』。為什麼這麼說呢?畢竟人生自古誰無死?一個航向死亡或是致力期間總是自己方可回答的問題,就像自己想要成為『什麼樣的人』一樣??

過去有人說︰假使『讀歷史』像『看電影』這該有多好?也許時至今日,已然不是不可能的了。然而這還是不能取代如何『解讀』歷史的問題?英國 Robin George Collingwood 過世之後,1946 年他的友人  T.  M.  Knox  將他的『歷史的哲學』之思想編輯成《歷史的理念》一書,這本書說︰

基於自然的『人性』,人的『同理心』和『同感心』是否能夠用著『想像力』的翅膀重回『歷史的現場』,再次在心中『重演』那些『歷史事件』,『體驗』事件中人物的『思想』以及『情感』,因此『解讀』歷史事件中的『人性抉擇』之理性必然性』。

作者從這點切入,是因為不論建立哪種媒體中心』,不管收集哪些媒體』,即使只是以休閒觀賞為目的,都離不開『人、事、物』的『閱讀』,如果以之』,將更能知彼知此』和『知此知彼』,故特寫此一段『前言』。

大火焚毀亞歷山大圖書館 ── 那個藏書量達七十萬卷,只說『書目』就有一百二十卷的圖書館 ── ,如今竟然是到底長的『什麼模樣』都無人知曉?因為它連『一塊殘石』也沒法能留下來!……

───

 

是作者早年喜愛的項目之一,也曾寫『音樂播放器之………』系列文本談談如何將『 CD 轉成 mp3 』。因想增加『軟體影音解碼』的速度,打算將之升級。由於『聲音品質』是欣賞音樂的必要條件,故而考察 HiFiBerry  音效卡

dacplus-rca-300x300

在樹莓派 3 上的『相容性』。非常驚訝的讀到︰

Important news on compatibility with the Raspberry Pi 3

Update 16.03.16: The bug in the Raspberry Pi drivers has been fixed now. All drivers now work perfectly. The Bluetooth-workaround isn’t needed anymore.

Dear customers,

we are happy to tell that most of our boards already work with the new Raspberry Pi 3. Please note, we are still working on making the Digi+ (both versions) and DAC+ PRO fully compatible with the new Raspberry Pi 3.

Right now the boards only work correctly if you disable the Bluetooth option. It looks like this is caused by a conflict with the Bluetooth chip of the Raspberry Pi 3. We work closely together with the Raspberry Pi developers to find a solution as fast as possible. However, at this time it is not clear if there is a hardware conflict on the Raspberry Pi 3 or this can be fixed by upgrading the firmware.

As many of you won’t use the Bluetooth connectivity, the following workaround should work for most of you. You need to add a line

dtoverlay=pi3-disable-bt

 

to /boot/config.txt (the file might be located somewhere else if you are using a distribution different from Raspbian)

If you have any ideas or questions please discuss them in our forum, we are going to support you as good as we can.

Kind regards

Daniel
Founder HiFiBerry

───

 

那時心想『為什麼需要關掉藍牙呢?』,這個

I²S

I²SI2S英語:Inter-IC SoundIntegrated Interchip Sound)是IC間傳輸數位音訊資料的一種介面標準,採用序列的方式傳輸2組(左右聲道)資料。I2S常被使用在傳送CDPCM音訊資料到CD播放器的DAC中。由於I2S將資料訊號和時脈訊號分開傳送,它的抖動jitter)失真十分地小。

一般的I²S

I²S由3條傳輸線組成:

  1. 位元時脈線(BCLK: bit clock line)
  2. 字元選擇線(word select line)或左右時脈線(left right clock line)(LRCLK)
  3. 至少一條複合資料線(SDATA:multiplexed data)

也有可能找到以下這些線:

  1. 主時脈:256個典型的左右時脈線(MCLK= 256*LRCLK)
  2. 上傳資料的複合訊息(multiplex)線

I²S由前述的位元時脈、字元時脈和資料三條線所組成。當新的資料被放到資料線上時,位元時脈就會跳動一次。它以資料取樣頻率的64倍速度在運作, 諸如CD的取樣頻率為44.1 KHz,要傳輸它所使用的位元時脈就為2.8224 MHz。I²S的資料線允許兩個軌道的資料同時傳送,而字元選擇時脈能讓接收裝置知道現在正在傳送軌道1或軌道2的資料。每個軌道可傳輸32位元的資料, 所以顯而易見地,字元選擇時脈和聲音的取樣頻率時脈是相同的。位元時脈即是取樣頻率時脈的64倍,44.1KHz x 2個聲道 x 32位元 = 2.8224MHz。

I²S的資料是從高位元(MSB)傳送至低位元(LSB),從字元選擇時脈的左端開始,加上一個位元時脈的延遲,即資料將比字元選擇時脈要慢一個位 元時脈。也有左校正(Left Justified)的I²S資料流,它沒有位元時脈的延遲,資料和字元選擇時脈是同步的。右校正(Right Justified)則是資料比字元選擇時脈快一個位元時脈。

───

 

到底與『藍牙』能有什麼牽扯??結果踏上了一條意外之旅!或可呈現『樹莓派基金會』和『社群』間的互動關係,『除錯』的實務過程,故特以為記。

當人們對某個『現象』不解,難免會瞎子摸象︰

派︰現在時間尚早,就給大家說個《象  》象法,祝福同學們鵬程萬里︰

《白虎通德論》‧ 卷三‧《五行

五 行者,何謂也?謂金、木、水、火、土也。言行者,欲言為天行氣之義也。地之承天,猶妻之事夫,臣之事君也,謂其位卑。卑者親視事,故自周於一行,尊於天 也。《尚書》:「一曰水,二曰火 ,三曰木,四曰金,五曰土。」水位在北方,北方者,陰氣在黃泉之下,任養萬物;水之為言淮也,陰化沾濡任生木。木在東方。 東方者,陰陽氣始動,萬物始生。木之為言觸也,陽氣動躍,火在南方,南方者,陽在上,萬物垂枝。火之為言委隨也,言萬物布施;火之為言化也,陽氣用事,萬 物變化也。金在西方,西方者,陰始起,萬物禁止。金之為言禁也。土在中央者,主吐含萬物。土之為言吐也。何知東方生?《樂記》曰:「春生,夏長,秋收,冬 藏。 」土所以不名時,地,土別名也,比於五行最尊,故不自居部職也 。《元命苞》曰:「土之為位而道在,故大不預化,人主不任部職 。」

五 行之性或上或下何?火者,陽也,尊,故上;水者,陰也,卑,故下;木者,少陽;金者,少陰,有中和之性,故可曲可直,從革 ;土者最大,苞含物,將生者出者,將歸者,不嫌清濁為萬物。《尚書》曰:「水曰潤下,火曰炎上,木曰曲直,金曰從革,土爰稼穡。」五行所以二陽三陰何?土 尊,尊者配天,金木水火,陰陽自偶。

水 味所以鹹何?是其性也。所以北方鹹者,萬物鹹與,所以堅之也 ,猶五味得鹹乃堅也。木味所以酸何?東方,萬物之生也,酸者以達生也,猶五味得酸乃達也。火味所以苦何?南方主長養,苦者所以長養也,猶五味須苦可以養 也。金味所以辛何?西方煞傷成物,辛所以煞傷之也,猶五味得辛乃委煞也。土味所以甘何?中央者, 中和也,故甘,猶五味以甘為主也。《尚書》曰:「潤下作鹹,炎上作苦,曲直作酸,從革作辛,稼穡作甘。」北方其臭朽者何?,北方水,萬物所幽藏也,又水者 受垢濁,故臭腐朽也。東方者木也 ,萬物新出地中,故其臭膻。南方者火也,盛陽承動,故其臭焦。西方者金也,萬物成熟,始復諾,故其臭腥。中央土也,主養, 故其臭香也。《月令》曰:「東方其臭膻,南方其臭焦,中央其臭香 ,西方其臭腥,北方其臭朽。」所以名之為東方者,動方也,萬物始動生也。南方者,任養之方,萬物懷任也。西方者,遷方也,萬物遷落也。北方者,伏方也,萬 物伏藏也。

行 行的說法太古,傳聞可以追之於神 農 農氏之紀。雖然用著『木』、『火』、『土』、『金』、『水』的名目,只不過假借『可見』之『象』 象,來講那『不可睹』之天行『氣』 氣 。假使用著瞎子摸象的辦法,就會失了『體用』之 經緯 緯。若問『五行』從哪而來的?來自於『陰陽』。『陰陽』又從哪而來的?來自於『太極』。如此問下去,終將歸之於來自『大自然』的了。古人為求『厚生』天 下,『稼穡』的收成十分重要,這可是『靠天吃飯』,所以能由『四時』得出『生、長、收、藏』的道理。而後又用『陰陽五行』解說這個道理的原故,逐漸形成了 『抽象』系統 ,可以『經緯縱橫』的比擬『萬事萬物』的『體』『用』關係。要是理解『精當』,將之用於寫 碼 碼,有何不可的耶!

─── 摘自《 M♪o 之學習筆記本《卯》基件︰【䷪】莧陸夬夬

 

其實這也是『科技』追求『新知』時,常有的『現象』。或許要點在『整體』知識以及『部份』證據之間求『融洽』。而且可能發現『偶然』或『意外』恰是『解決』問題之關鍵處??說不定正是

凡一心追求,必使他求得

的奧秘!!

在此就請讀者好好欣賞這篇《 I2S 除錯記》吧!!!

Possible I2S master/slave bug in RPi3 #1321

bonezuk opened this Issue · 37 comments

Hi

I am currently investigating a number of issues on the rpi-4.1-y branch within our sound drivers concerning the playback of sound via our HiFiBerry Digi+ and DAC-Pro on the new RPi3. After a series of initial investigations we think there might be some conflict on the I2S bus line between the bcm2708_i2s and the (pcm512x and hifiberry_dacplus) modules.

Both the Digi+ and DAC-Pro modules set the

dai->dai_fmt = SND_SOC_DAIFMT_CBM_CFM |SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF;

With hifiberry_dacplus module it is initially configured to

dai->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS;

This is done so the PCM512x on the DAC+ acts as an I2S slave. On the start in snd_rpi_hifiberry_dacplus_init it detects that wither or not a given board is a DAC-Pro and thus changes the dai_fmt to master (SND_SOC_DAIFMT_CBM_CFM).

Also the same hifiberry_dacplus module works with the DAC+ sound card where it is the I2S slave.

2016-03-02_17-15-04

The image shows the output from my logic analyser of the I2S bus where it shows errors in reading the samples due to an incorrect bit number in a given sample. This also helps tie in with explaining what is actually heard during playback: i.e. Sometimes the music can be heard with distortion, other times there is too much distortion to hear any music.

My best guess, at this moment in time, is that a bug has been introduced in the bcm2708_i2s module or associated architecture somewhere between 4.1.7 and 4.1.18+7 where-by when the dai_fmt flag is set to SND_SOC_DAIFMT_CBM_CFM then both the bcm2708 and associated the snd_soc_codec module both try to send an I2S clock signal. Where as, I would expect only the snd_soc_codec DSP to configure to setup the I2S clock signal.

Another line of investigation that I am looking at is updating and ensuring that our device drivers reflect the various changes to the device tree code. It maybe possible that because of this something is not being initialized write in the bcm2708_i2s module and thus the conflict in the I2S bus.

I’m also currently expanding my investigation of this issue to cover the 4.4 kernel branch.

Let me know if you have ideas but how I can go about resolving this issue?

Cheers,

Stuart

───

Are you saying this fault is only seen on a Pi3, not a Pi2?

───