Как включить камеру без использования raspi-config?

18

Я пытаюсь использовать камеру распи на минимизированной версии wheezy. Команда raspi-configнедоступна. До сих пор я мог делать все без этого, редактируя /boot/config.txtили устанавливая недостающее программное обеспечение с помощью apt-get.

К сожалению, куда бы я ни посмотрел, во всех руководствах по камере (включая официальный RaspiCam-Documentation.pdf) говорится, что сначала нужно включить его raspi-config. Итак, что же на самом деле делает raspi-config с Pi, который я могу воспроизвести вручную?

Осьминог
источник
К вашему сведению Использование start_x = 1 в config.txt останавливает загрузку моего xbian и вызывает повреждение SD-карты, а это означает, что на SD-карту должно быть записано новое изображение.
газжай

Ответы:

12

OK. raspi-config на самом деле немного bash, так что довольно легко увидеть, что он делает:

# $1 is 0 to disable camera, 1 to enable it
set_camera() {
  # Stop if /boot is not a mountpoint
  if ! mountpoint -q /boot; then
    return 1
  fi

  [ -e /boot/config.txt ] || touch /boot/config.txt

  if [ "$1" -eq 0 ]; then # disable camera
    set_config_var start_x 0 /boot/config.txt
    sed /boot/config.txt -i -e "s/^startx/#startx/"
    sed /boot/config.txt -i -e "s/^start_file/#start_file/"
    sed /boot/config.txt -i -e "s/^fixup_file/#fixup_file/"
  else # enable camera
    set_config_var start_x 1 /boot/config.txt
    CUR_GPU_MEM=$(get_config_var gpu_mem /boot/config.txt)
    if [ -z "$CUR_GPU_MEM" ] || [ "$CUR_GPU_MEM" -lt 128 ]; then
      set_config_var gpu_mem 128 /boot/config.txt
    fi
    sed /boot/config.txt -i -e "s/^startx/#startx/"
    sed /boot/config.txt -i -e "s/^fixup_file/#fixup_file/"
  fi
}

По-видимому, в /boot/config.txt есть запись start_x, для которой нужно установить значение 1, чтобы включить камеру. Для gpu (gpu_mem) также должно быть не менее 128 МБ памяти. Двойная проверка, кажется, подтверждает это.

Фред
источник
2
Вот полный исходный код , на случай, если кому-то интересно. Теперь кажется, что эта функция вызывается do_camera.
Cerin
11

отредактируйте файл /boot/config.txt и убедитесь, что следующие строки выглядят так:

start_x=1             # essential
gpu_mem=128           # at least, or maybe more if you wish
disable_camera_led=1  # optional, if you don't want the led to glow

перезагрузка

Осьминог
источник
6

То, что делает raspi-config, это изменение /boot/config.txt. Внутри этого файла есть строка, которая сообщает, start_x=0когда камера отключена. Изменяя это start_x=1, включите камеру. Вам нужно будет перезагрузиться после того, как вы отредактировали файл.

Я сделал скрипт, который ищет /boot/config.txtстроку «start_x = 0» и, если он находит, меняет ее на «start_x = 1». Используйте следующий код, и не забудьте chmod + x и запустить с sudo.

#!/bin/bash
grep "start_x=1" /boot/config.txt
if grep "start_x=1" /boot/config.txt
then
        exit
else
        sed -i "s/start_x=0/start_x=1/g" /boot/config.txt
        reboot
fi
exit
Диего
источник
+1 Для чего нужен первый grep? И возможно ли, что до первого запуска нет такой строки как start_x=*?
Габбер
Первый grep может быть полезен для целей отладки. Это не требуется для работы скрипта. В моем файле Raspbian stretch config.txt я не могу найти start_xстроку config.txt, поэтому этот скрипт не будет работать как есть.
Диомидис Спинеллис