फर्मवेयर 3.18.x टूटता है I²C, SPI, ऑडियो, lirc, 1-wire (जैसे / dev / i2c-1, ऐसी कोई फ़ाइल या निर्देशिका नहीं)


19

मैं एक उज्ज्वल पाई मॉड्यूल को नियंत्रित करने के लिए I amC का उपयोग कर रहा हूं ।

मैंने I theC स्थापित करने के लिए ' विन्यास GPIO - Adafruit ' और ' कॉन्फ़िगर I --C - Adafruit ' के निर्देशों का पालन किया । मैंने कुछ महीने पहले ऐसा किया है और सब कुछ ठीक हो गया।

यह है कि मैंने अपने रास्पबेरी पाई (मॉडल बी) पर ब्राइट पाई को कैसे जोड़ा:

सर्किट ब्राइट पाई

आज के बाद से मैंने देखा कि IC अब काम नहीं करता है जैसा कि यह करता था। ' Sudo i2cdetect -y 1 ' और ' sudo i2cset -y 1 0x70 0x00 0xff ' जैसी कमांड का उपयोग करने से त्रुटि होगी:

फ़ाइल नहीं खोल सका '/ dev / i2c-1' या '/ dev / i2c / 1': ऐसी कोई फ़ाइल या निर्देशिका नहीं

कमांड ' sudo i2cdetect ' का प्रयोग त्रुटि देगा

कोई i2c- बस निर्दिष्ट नहीं है!

जिसका मतलब है कि i2c-dev चल रहा है।

फ़ाइल '/ etc / मॉड्यूल' इस तरह दिखता है:

#/etc/modules: kernel modules to load at boot time. 
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-dev
i2c-bcm2708

फ़ाइल '/etc/modprobe.d/raspi-blacklist.conf' इस तरह दिखती है:

blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
blacklist snd-soc-pcm512x
blacklist snd-soc-wm8804

मैंने सभी आवश्यक मॉड्यूल को फिर से स्थापित करने की कोशिश की है, लेकिन इससे भी मदद नहीं मिली। इसके अलावा apt-get updateऔर apt-get upgradeमदद नहीं की।

कमांड ' lsmod | grep i2c 'यह दिखाता है:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

यह अजीब है, क्योंकि यह पहले काम करता था। मुझे लगता है कि यह "टूटा हुआ" हो सकता है क्योंकि मैंने दो दिन पहले एक फर्मवेयर अपडेट किया था, क्योंकि मेरे रास्पबेरी पाई अजीब कर्नेल त्रुटियों को दिखा रहे थे।

मैं I²C के साथ समस्या को कैसे ठीक कर सकता हूं?

जवाबों:


35

नवीनतम फर्मवेयर उपकरण ट्री समर्थन को लागू करता है। इससे I²C, SPI और 1-तार बस जैसी चीजें टूट गई होंगी।

पूर्ण विवरण के लिए I²C, SPI, I2S, LIRC, PPS देखें, काम करना बंद कर दिया? इसे पढ़ें।

सारांश

Add one or more of the following to your /boot/config.txt and reboot.

I2C
No longer add: dtparam=i2c1=on (or dtparam=i2c0=on on old models)
Instead add: dtparam=i2c_arm=on (as this is correctly mapped to 0 or 1 for each model)
A very few users might need: dtparam=i2c_vc=on (for the other i2c interface - see note below)

SPI
Add dtparam=spi=on

I2S
Add dtparam=i2s=on

lirc-rpi
Add dtoverlay=lirc-rpi
Add module parameters to the end of the dtoverlay line,
e.g. dtoverlay=lirc-rpi,gpio_in_pin=16,gpio_in_pull=high

w1-gpio
If you require the external pullup
dtoverlay=w1-gpio-pullup,gpiopin=x,pullup=y
otherwise
dtoverlay=w1-gpio-pullup,gpiopin=x
(where x and y are gpios).

Audio card
Add one of the following
dtoverlay=hifiberry-dac
dtoverlay=hifiberry-dacplus
dtoverlay=hifiberry-digi
dtoverlay=iqaudio-dac
dtoverlay=iqaudio-dacplus

heartbeat LED
dtparam=act_led_trigger=heartbeat

नोट: यह अनुशंसा की जाती है कि आप केवल i2c_vc (और i2c_vc_baudrate) का उपयोग करें यदि आपको वास्तव में - उदाहरण के लिए, यदि आप HAT EEPROM की प्रोग्रामिंग कर रहे हैं। I2c_vc को सक्षम करने से पाई कैमरा का पता लगाया जा सकता है।


आप सर, मेरे हीरो हैं! यह मेरी I2C तय की।
लिटिलऑन

7

आप उपयोग कर सकते हैं sudo raspi-configऔर उन्नत विकल्पों में डिवाइस ट्री को अक्षम कर सकते हैं । मैन्युअल रूप से कॉन्फ़िगरेशन बदलने की तुलना में तेज़ हो सकता है।


1

या आप sudo raspi-configI2C को सक्षम करने के लिए उपयोग कर सकते हैं

Advanced Options> I2C

raspi-configसंस्करण 20160108, जनवरी 2016 या बाद के संस्करणों से लेआउट के लिए

Interfacing Options> I2C

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.