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


18

Я намагаюся використовувати камеру raspi на мінімізованій версії хрипів. Команда raspi-configнедоступна. Я досі міг зробити все без цього, редагуючи /boot/config.txtабо встановивши програмне забезпечення, що відсутнє apt-get.

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


FYI Використання start_x = 1 у config.txt зупиняє завантаження моєї xbian і спричиняє пошкодження sd-карти, що означає, що на SD-карту потрібно прошивати нове зображення.
Гажай

Відповіді:


12

ДОБРЕ. raspi-config насправді трохи баш, тому досить просто зрозуміти, що це робить:

# $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.
Серін

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 Що таке перша похвала? І чи можливо, що до першого запуску не існує такої лінії, як start_x=*?
Габбер

Перший греп може бути корисним для налагодження. Це не потрібно для роботи сценарію. У моєму файлі Raspbian stretch config.txt я не можу знайти start_xрядок config.txt, тому цей скрипт не працюватиме як є.
Diomidis Spinellis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.