Como ativar a câmera sem usar o raspi-config?

18

Estou tentando usar a câmera raspi em uma versão minimalizada do chiado. O comando raspi-confignão está disponível. Até agora, consegui fazer tudo sem editar /boot/config.txtou instalar o software ausente apt-get.

Infelizmente, em todos os lugares que olho, todos os tutoriais da câmera (incluindo o RaspiCam-Documentation.pdf oficial) dizem que primeiro devem ser ativados raspi-config. Então, o que o raspi-config realmente faz no Pi que eu posso reproduzir manualmente?

Polvo
fonte
Para sua informação, o uso de start_x = 1 no config.txt interrompe a inicialização do meu xbian e causa corrupção no cartão sd, o que significa que uma nova imagem deve ser exibida no cartão sd.
gazhay

Respostas:

12

ESTÁ BEM. raspi-config é realmente um pouco de bash, então é muito fácil ver o que ele faz:

# $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, existe uma entrada no /boot/config.txt chamada start_x que precisa ser definida como 1 para ativar a câmera. Também é necessário ter pelo menos 128 MB de memória para a gpu (gpu_mem). A verificação dupla parece confirmar.

Fred
fonte
2
Aqui está o código fonte completo , caso alguém esteja interessado. A função agora parece ser chamada do_camera.
Cerin 11/11
11

edite seu arquivo /boot/config.txt e verifique se as seguintes linhas estão assim:

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

Polvo
fonte
6

O que o raspi-config faz é mudar o arquivo /boot/config.txt. Há uma string dentro desse arquivo que diz start_x=0quando a câmera está desativada. Alterando isso para start_x=1, a câmera será ativada. Você precisará reiniciar após editar o arquivo.

Eu /boot/config.txtcriei um script que procura a string "start_x = 0" e, se encontrar, a altera para "start_x = 1". Use o código a seguir e não se esqueça de chmod + xe execute com o 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
fonte
+1 Para que serve o primeiro grep? E é possível que, antes da primeira inicialização, não exista essa linha start_x=*?
precisa
O primeiro grep pode ser útil para fins de depuração. Não é necessário para a operação do script. No meu arquivo config.txt.txt do Raspbian, não consigo encontrar uma start_xlinha config.txt, portanto esse script não funcionará como está.
Diomidis Spinellis