¿Cómo puedo habilitar la cámara sin usar raspi-config?

18

Estoy tratando de usar la cámara raspi en una versión minimalizada de wheezy. El comando raspi-configno está disponible. Hasta ahora he podido hacer todo sin él editando /boot/config.txto instalando software perdido con apt-get.

Desafortunadamente, en todas partes que miro, todos los tutoriales en la cámara (incluido el RaspiCam-Documentation.pdf oficial) dicen que primero debe habilitarlo raspi-config. Entonces, ¿qué hace realmente raspi-config al Pi que puedo reproducir manualmente?

Pulpo
fuente
FYI El uso de start_x = 1 en config.txt impide que mi xbian se inicie y provoca daños en la tarjeta SD, lo que significa que se debe mostrar una imagen completamente nueva en la tarjeta SD.
gazhay

Respuestas:

12

OKAY. raspi-config es en realidad un poco bash, por lo que es bastante fácil ver lo que hace:

# $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
}

Aparentemente hay una entrada en /boot/config.txt llamada start_x que debe establecerse en 1 para habilitar la cámara. También debe haber al menos 128 MB de memoria para el gpu (gpu_mem). La doble verificación parece confirmarlo.

Fred
fuente
2
Aquí está el código fuente completo , en caso de que alguien esté interesado. La función ahora parece ser llamada do_camera.
Cerin
11

edite su archivo /boot/config.txt y asegúrese de que las siguientes líneas se vean así:

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

reiniciar

Pulpo
fuente
6

Lo que hace raspi-config es cambiar el /boot/config.txt. Hay una cadena dentro de ese archivo que dice start_x=0cuando la cámara está desactivada. Al cambiar eso a start_x=1habilitará la cámara. Deberá reiniciar después de editar el archivo.

Hice un script que busca la /boot/config.txtcadena "start_x = 0" y, si la encuentra, la cambia a "start_x = 1". Use el siguiente código y no olvide chmod + x y ejecute con 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
Diego
fuente
+1 ¿Para qué es el primer grep? ¿Y es posible que antes de la primera puesta en marcha no haya una línea como start_x=*?
Gabber
El primer grep puede ser útil para propósitos de depuración. No es necesario para la operación del script. En mi archivo Raspbian stretch config.txt no puedo encontrar una start_xlínea config.txt, por lo que este script no funcionará como está.
Diomidis Spinellis