Неисправности Raspberry Pi и борьба с ними (часть 2)

В этой статье перечислены основные неисправности и проблемы, возникающие с Raspberry Pi и некоторые способы их решения.

  • 3. Обновление прошивки Raspberry Pi
    • 3.1 Проверка версии прошивки
    • 3.2 Обновление прошивки
    • 3.3 Выбираем правильную модель разделения памяти ARM/GPU
  • 4. SD карты
  • 5. Проблемы с сетью
    • 5.1 Соединение теряется при подключении устройства USB
    • 5.2 Соединение происходит на скорости 10 Мбит/с вместо 100 Мбит/с
    • 5.3 Не получается подключиться по SSH
    • 5.4 Микросхемы сетевого адаптера и контроллера USB сильно греются
    • 5.5 Сеть перестает работать при переносе SD карты с одного Raspberry Pi на другой
    • 5.6 Происходят сбои при высокой нагрузке на сеть
    • 5.7 Пропадает сетевое соединение при запуске графической среды
  • 6. Пароли
    • 6.1 Я не знаю учетные данные (имя пользователя и пароль)
    • 6.2 Некоторые программы не принимают мой пароль
    • 6.3 Я не знаю пароль суперпользователя (root)
  • 7. Звук
    • 7.1 Нет звука на мониторе, подключенном по HDMI
    • 7.2 Нет звука совсем или в отдельных приложениях

3. Обновление прошивки Raspberry Pi

3.1 Проверка версии прошивки

Использование свежей версии прошивки устройства может решить разные проблемы, например связанные с несовместимостью SD карт или мониторов. Проверить версию ядра Linux можно следующей командой:

 uname -a Linux RPi 3.1.19 #1 PREEMPT Fri Jun 1 14:16:38 CEST 2012 armv6l GNU/Linux

Прошивка графического сопроцессора GPU проверяется так:

 /opt/vc/bin/vcgencmd version May 31 2012 13:35:03 Copyright (c) 2012 Broadcom version 317494 (release)

3.2 Обновление прошивки

Прошивку графического сопроцессора можно обновить при помощи этой утилиты  Hexxeh’s rpi-update tool.

Но для того, чтобы запустить утилиту, Raspberry Pi должен нормально загрузиться. Если ваш компьютер не загружается, то можно попробовать обновить прошивку вручную. Если у вас есть компьютер с установленной Linux, то можно запустить rpi-update на нём и он обновит содержимое SD карты.

С другой стороны, с компьютера на Windows можно получить доступ только к разделу «/boot» вашей SD карты. Скачайте прошивку здесь (нажмите View Raw и сохраните содержимое в файл start.elf) и замените соответствующий файл на карте. Аналогично, можно обновить ядро системы по ссылке. После замены этих двух файлов Raspberry Pi должен загрузиться. Тем не менее, после загрузки придется запустить программу rpi-update для того, чтобы обновить модули ядра (/lib/modules) и библиотеки GPU (/opt/vc).

3.3 Выбираем правильную модель разделения памяти ARM/GPU

Существует несколько моделей разделения памяти между процессором ARM и графическим сопроцессором GPU:

 arm240_start.elf : 240M ARM, 16M GPU split : Максимум памяти процессора. Подходит для задач, в которых не используется видео и 3D. arm224_start.elf : 224M ARM, 32M GPU split : Новый режим. Минимально достаточный для запуска графической среды и простых программ. arm192_start.elf : 192M ARM, 64M GPU split : Средний режим. Простое видео (omxplayer) или 3D (quake). Используется по умолчанию. arm128_start.elf : 128M ARM, 128M GPU split : Используйте этот режим для серьезных задач 3D или просмотра видео вместе с 3D. Необходим для XBMC.

Для переключения вручную, замените файл start.elf одним из перечисленных выше и перезагрузите компьютер. Например:

 sudo cp /boot/arm240_start.elf /boot/start.elf && sudo reboot

Замечание: файл arm224_start.elf в обычном случае использовать не стоит. arm240_start.elf будет лучшим выбором.

4. SD карты

  • В случае проблем, сначала убедитесь, что установлена последняя версия прошивки (как это сделать описано выше)
  • Некоторые SD карты не совместимы с Raspberry Pi, поэтому проверьте совместимость по этом списку.
  • В случае любых проблем с SD картой начать стоит с форматирования карты, особенно, если на карте уже были какие то данные.
  • Также для форматирования SD карты можно воспользоваться цифровым фотоаппаратом.
  • После записи образа системы на SD карту проверьте, что существует загрузочный раздел boot, подключив карту памяти к компьютеру. Этот раздел должен содержать несколько файлов, среди которых start.elf и kernel.img. Если этих файлов на карте памяти нет, то очевидно проблема возникает при записи карты.
  • Если вы создаете карту памяти вручную в системах Linux или Mac OS с использованием команды  dd, то эта операция в любом случае полностью очищает всю информацию, записанную на карте. Но обязательно убедитесь, что вы записываете карту памяти полностью (например /dev/sdd), а не отдельный раздел карты памяти (например /dev/sdd1).
  • Убедитесь, что в момент записи и после него SD карта не защищена от записи. Многие карты имеют переключатель на корпусе карты, который запрещает запись на такую карту. Кроме того, из-за неисправностей, некоторые картридеры неверно определяют положение этого переключателя и ошибочно считают, что запись на такие карты памяти запрещена. В это случае можно попробовать заменить картридер или карту памяти.

К счастью, большинство проблем с картами памяти чаще всего связаны с неисправными картридерами. Некоторые пользователи советуют продуть сжатым воздухом внутренности картридера, это может помочь восстановлению. Проблемы с картридерами, которые неверно определяют состояние защиты от записи, иногда решаются установкой переключателя защиты от записи в промежуточное положение. При этом картридер считывает его состояние верно. В конце концов, USB картридер стоит недорого (дешевле карты памяти) и всегда можно попробовать воспользоваться другим устройством.

5. Проблемы с сетью

5.1 Соединение теряется при подключении устройства USB

Чаще всего это происходит из-за недостаточной мощности источника питания. Используйте качественный источник питания и качественные провода. Некоторые блоки питания с некачественными проводами дают достаточно энергии для зарядки сотового телефона, но недостаточно для питания Raspberry Pi. Некоторые устройства USB потребляют большой ток (более 100 мА), поэтому должны подключаться с помощью концентратора с внешним питанием. Также, некоторые дешевые USB концентраторы потребляют ток от Raspberry Pi, даже при наличии внешнего источника питания. (Иногда, хотя и редко, встречается ситуация с такими недорогими устройствами, когда Raspberry Pi сам потребляет энергию от внешнего концентратора, что в конечном итоге не дает возможности загрузиться без сбоев)

Также бывают случаи, когда сетевое соединение теряется при подключении через концентратор с внешним питанием низкоскоростных устройств USB, например мыши или клавиатуры. В этой ситуации можно посоветовать подключить эти устройства напрямую к USB портам Raspberry Pi (конечно при условии, что ток потребления каждого из этих устройств не превышает 100 мА).

5.2 Соединение происходит на скорости 10 Мбит/с вместо 100 Мбит/с

Дело в том, что индикатор в углу платы с обозначением «10M» обозначен неверно. В действительности, в то время, когда индикатор горит, соединение осуществляется на скорости 100 Мбит/с. Это легко проверить с помощью утилиты тестирования скорости соединения, такой как iperf. Также, скорость соединения можно проверить командой:

  cat /sys/class/net/eth0/speed

5.3 Не получается подключиться по SSH

В образах операционной системы Debian сервер ssh отключен по умолчанию. Список программ для автозагрузки берется из файла /boot/boot.rc, при условии, что он существует. В то же время, в загрузочном разделе записан образец файла с загрузкой сервера ssh. Поэтому, для включения автоматической загрузки достаточно выполнить следующую команду:

 sudo mv /boot/boot_enable_ssh.rc /boot/boot.rc

и после перезагрузки сервер ssh будет запущен (имя пользователя и пароль для входа такие же, как и при входе в систему).

5.4 Микросхемы сетевого адаптера и контроллера USB сильно греются

Это нормально. На открытом воздухе и при комнатной температуре 24 градуса микросхема LAN9512 контроллера Ethernet/USB может нагреваться до 52-х градусов в процессе работы. При такой температуре уже не получается дотрагиваться до корпуса более чем на пару секунд, но это абсолютно нормальный режим работы для микросхемы.

В спецификации микросхемы LAN9512 в таблице 4.1 на странице 40  говорится, что микросхема выпускается в двух вариантах — коммерческом и промышленном. В коммерческом исполнении максимальная рабочая температура составляет 70 градусов, а в промышленном — 85 градусов. Такой высокий нагрев связан с высоким уровнем потребления, который может достигать 763 мВт при напряжении питания 3.3 В при максимальной загрузке сетевого интерфейса на 100 МБит/с и обоих USB портов. (Таблица 4.3.4, стр. 42).

Также, существует исследование, проведенное пользователем «Remy», которое можно посмотреть по ссылке на испанском языке ¿Se calienta el ordenador Raspberry Pi? Estudio de sus temperaturas en funcionamiento (Греется ли Raspberry Pi? Исследование рабочих температур). В этой статьи приводятся снимки платы, сделанные тепловизором в различных режимах работы. Максимальная температура, зарегистрированная для микросхемы LAN9512 является 64.5 градуса.

5.5 Сеть перестает работать при переносе SD карты с одного Raspberry Pi на другой

В некоторых дистрибутивах в файле /etc/udev/rules.d/70-persistent-net.rules запоминается какой MAC адрес привязан к интерфейсу eth0, поэтому изменение MAC адреса приводит к созданию нового интерфейса (eth1, eth2, и т.д.). Отредактируйте файл /etc/udev/rules.d/70-persistent-net.rules, уберите ненужные привязки и перезагрузите компьютер.

5.6 Происходят сбои при высокой нагрузке на сеть

Дело в том, что драйверу USB выделяется оперативная память из области ядра системы, поэтому при очень большой нагрузке на сеть (например при использовании торрентов) нехватка памяти вызывает критические сбои или зависания системы. Найдите строку:

 vm.min_free_kbytes = 8192

в файле /etc/sysctl.conf. Попробуйте увеличить параметр до 16384 или больше. Если это не поможет, попробуйте добавить строку в файл /boot/cmdline.txt:

 smsc95xx.turbo_mode=N

Она снизит скорость сетевого обмена, но позволит избежать сбоев.

5.7 Пропадает сетевое соединение при запуске графической среды

Сетевое соединение может пропадать при запуске графической среди командой startx. Это вызвано ошибкой в драйвере USB, связанной с отдельными типами USB мышей.

По состоянию на 1 сентября 2012 года, эта ошибка исправлена, поэтому попытайтесь обновить прошивки устройства, как описано выше.

6. Пароли

6.1 Я не знаю учетные данные (имя пользователя и пароль)

Вы можете посмотреть учетные данные по умолчанию для разных сборок операционных систем здесь: http://www.raspberrypi.org/downloads.

Вот наиболее часто встречающиеся комбинации имени пользователя и пароля:

  • Debian после Feb 2012: пользователь pi, пароль raspberry
  • Debian от 17 Feb 2012: пользователь pi, пароль suse
  • Arch: пользователь root, пароль root
  • Bodhi: пользователь pi, пароль bodhilinux

6.2 Некоторые программы не принимают мой пароль

При использовании Debian, некоторые программы запрашивают пароль, но не опознают его.

Такая ошибка существовала в некоторых выпусках Debian и была исправлена. Если у вас появляется такая проблема, попробуйте ввести следующие команды в окне терминала:

 gconftool-2 --type bool --set /apps/gksu/sudo-mode true

Убедитесь, что команда введена верно, особенно следите за пробелами. Неверно введенная команда не выдает сообщений об ошибках.

6.3 Я не знаю пароль суперпользователя (root)

В системе Debian отсутствует возможность войти в систему под учетной записью суперпользователя. Любые действия, требующие полные права должны совершаться с помощью команды sudo. Если вы уверены, что учетная запись суперпользователя вам необходима, можно назначить пароль суперпользователя командой «sudo passwd root».

7. Звук

7.1 Нет звука на мониторе, подключенном по HDMI

Это происходит потому, что некоторые компьютерные мониторы используют режим DVI даже при подключенном кабеле HDMI. В случае когда другие устройства, подключенные к этому монитору по HDMI работают нормально, можно исправить проблему с Raspberry Pi с помощью изменений в конфигурационном файле config.txt.

Добавьте следующую строку в конфигурационный файл:

 hdmi_drive=2

Это заставит монитор переключиться в режим HDMI.

7.2 Нет звука совсем или в отдельных приложениях

В Raspbian звук отключен по умолчанию, по той причине, что звуковой драйвер ALSA до сих пор находится в состоянии альфа-версии (т.е. не протестирован и не отлажен). Для того, чтобы включить звук, до запуска графической оболочки командой startx, введите следующие команды:

  sudo apt-get install alsa-utils sudo modprobe snd_bcm2835

В свежих версиях Raspbian (Debian Wheezy) драйвер snd_bm2835 включен изначально, поэтому предыдущий шаг не нужен. Попробуйте это:

  sudo aplay /usr/share/sounds/alsa/Front_Center.wav

По умолчанию, выход звука определяется автоматически (т.е. HDMI, если устройство способно проигрывать звуки, в остальных случаях выход наушников). Однако, выход звука можно указать вручную:

  sudo amixer cset numid=3 <n>

где n=0 — автоматический режим, n=1 — наушники, n=2 — hdmi.

Для проверки наличия звука удобно использовать программу hello_audio. В свежих выпусках прошивок Raspberry Pi для компиляции программы введите следующие команды:

  cd /opt/vc/src/hello_pi/ ./rebuild.sh cd hello_audio

На более старых прошивках программа компилируется так:

  cd /opt/vc/src/hello_pi/hello_audio make

После завершения компиляции, можно запустить программу для проверки аналогового выхода (наушников):

  ./hello_audio.bin