ユーザ用ツール

サイト用ツール


sbc:raspberrypi:raspbian:buster

Raspbian Buster

/ が SD card でない場合 Expand Filesystem が効かない

sda2 is not an SD card. Don't know how to expand

手動で parted(やfdisk), resize2fs をかける。

$ sudo parted /dev/sda
(parted) print
(parted) resizepart 2 512GB
(parted) quit
$ sudo resize2fs /dev/sda2

拡大はオンラインで可能。縮小はオンラインでは面倒なので計画的に。

標準以外のWMを導入してもlightdmで選択できない

/etc/lightdm/lightdm.confgreeter-sessionlightdm-gtk-greeter に書き換える

greeter-session=lightdm-gtk-greeter

firefoxが起動しない

$ firefox
Error: eval: #() is not a valid R5RS form. use '#() instead

~/.mozilla を消しても動作変わらず。

のコメント欄によるとuimとの組み合わせの問題ぽい?試しにGTKIMMODULEを空にしたりximを指定すると起動した。

$ echo ${GTK_IM_MODULE}
uim
$ GTK_IM_MODULE='' firefox
$ GTK_IM_MODULE=xim firefox
$ dpkg-query -W uim* firefox*
firefox 
firefox-esr     60.9.0esr-1~deb10u1+rpi1
firefox-esr-l10n-ja     60.9.0esr-1~deb10u1+rpi1
uim     1:1.8.8-4+deb10u2
uim-anthy
uim-byeoru
uim-common
uim-data        1:1.8.8-4+deb10u2
uim-fep 1:1.8.8-4+deb10u2
uim-gtk2.0      1:1.8.8-4+deb10u2
uim-gtk2.0-immodule:armhf       1:1.8.8-4+deb10u2
uim-gtk3        1:1.8.8-4+deb10u2
uim-gtk3-immodule:armhf 1:1.8.8-4+deb10u2
uim-ipa-x-sampa 
uim-latin
uim-look
uim-m17nlib
uim-mozc:armhf  2.23.2815.102+dfsg-4+b1
uim-pinyin
uim-plugins:armhf       1:1.8.8-4+deb10u2
uim-qt5 1:1.8.8-4+deb10u2
uim-qt5-immodule:armhf  1:1.8.8-4+deb10u2
uim-skk 
uim-utils
uim-viqr
uim-xim 1:1.8.8-4+deb10u2

基板上のLED制御

  • 黄緑のSDアクセスLED /sys/class/leds/led0/brightness
  • 赤の電源LED /sys/class/leds/led0/brightness

でアクセスできる。

  • On時は 255(実際は1〜255を入れると全て255になってOnになるよう)
  • Off時は 0

なので、LEDを実装しなくてもこれで状態を表すことも可能。

黄緑LEDをOnにする例

$ echo 255 | sudo tee /sys/class/leds/led0/brightness
255

点滅例

$ sudo sh -c "while :; do echo 255 > /sys/class/leds/led0/brightness; sleep 0.3; echo 0 > /sys/class/leds/led0/brightness; sleep 0.3; done"

Bluetooth HeadsetでA2DPを選択できない

BluemanやPavucontrolでBluetoothヘッドセットのプロファイルをA2DPに切り替えることが出来ない。

Failed to change profile to a2dp_sink

とりあえず利用前、利用中にbluetoothサービスを再起動すると選べるようになる。

$ sudo service bluetooth restart

しかし、今度は再起動前に利用できていたHSP/HFPに切り替わらない。これはサービス再起動でも解決せず……。

Failed to change profile to headset_head_unit

Debian amd64などでは問題なく切り替わるのでRaspbianのbugのような感じ(BTSとか未確認)

GPIOでシャットダウン操作

以前はscriptを書いていたが、 config.txtdtoverlay=gpio-shutdown を設定しておくと、GPIO3 + GND でシャットダウンできるようになっている。

RPi1ではそのままでは動作せず、GPIO Pinを変更する必要があるらしい。GPIO Pinを変更するにはパラメータを指定する。 例えばGPIO1 にする場合は、 dtoverlay=gpio-shutdown,gpio_pin=1

Name:   gpio-shutdown
Info:   Initiates a shutdown when GPIO pin changes. The given GPIO pin
        is configured as an input key that generates KEY_POWER events.
        This event is handled by systemd-logind by initiating a
        shutdown. Systemd versions older than 225 need an udev rule
        enable listening to the input device:

                ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \
                        SUBSYSTEMS=="platform", DRIVERS=="gpio-keys", \
                        ATTRS{keys}=="116", TAG+="power-switch"

        This overlay only handles shutdown. After shutdown, the system
        can be powered up again by driving GPIO3 low. The default
        configuration uses GPIO3 with a pullup, so if you connect a
        button between GPIO3 and GND (pin 5 and 6 on the 40-pin header),
        you get a shutdown and power-up button.
Load:   dtoverlay=gpio-shutdown,<param>=<val>
Params: gpio_pin                GPIO pin to trigger on (default 3)

        active_low              When this is 1 (active low), a falling
                                edge generates a key down event and a
                                rising edge generates a key up event.
                                When this is 0 (active high), this is
                                reversed. The default is 1 (active low).

        gpio_pull               Desired pull-up/down state (off, down, up)
                                Default is "up".

                                Note that the default pin (GPIO3) has an
                                external pullup.

        debounce                Specify the debounce interval in milliseconds
                                (default 100)

Raspberry PiのSoC温度について

/sys/class/thermal/thermal_zone0/tempvcgencmd measure_temp が知られている。 これらは同じ温度センサを見ている。 違いは前者の /sys/class/thermal/thermal_zone0/tempKernel moduleで、後者の vcgencmd measure_temp はclosed source。 スロットリングなどには vcgencmd measure_temp を利用しているのでそのあたりの判断にはこちらを使ったほうが確実そう。

$ cat /sys/class/thermal/thermal_zone0/temp
64757
$ vcgencmd measure_temp
temp=64.0'C

オーディオ出力先変更

HDMIやBluetoothヘッドホンの切り替えは pavucontrol(GUI), alsamixer で出来る.

amixer

HDMI/基板上のヘッドホンジャックの切り替えは pavucontrol/alsamixer では切り替えられないようなので amixer を使う.

$ amixer cset numid=3 "1"

最後の引数で切り替えが出来る.

  • 0 : auto(default)
  • 1 : Analog(HeadphoneJack)
  • 2 : HDMI

※即時反映されるが,音量が0になっていて切り替わったの気づかないとかやりがち.

raspi-config

raspi-config でも切り替えが出来る.

$ sudo raspi-config

7 Advanced Options → A4 Audio で選択できる
内部ではamixerを叩いている → do_audio を参照のこと.

omxplayer

omxplayer の既定値は上の設定は無視するよう? -o に出力先を指定することで音声出力先を指定できる.

$ omxplayer -h|grep "Audio out"
    -o  --adev  device          Audio out device      : e.g. hdmi/local/both/alsa[:device]
  • hdmi
  • local(headphonejack)
  • both(hdmi & headphonejack)
  • alsa[:device]

-o alsa にしておけば上と同じ設定になるはず. -o both はhdmi及びheadphone両方に出力される.追加のサウンドデバイスがある場合の動作は未確認.

コメント

コメントを入力. Wiki文法が有効です:
155 +12 =
 
sbc/raspberrypi/raspbian/buster.txt · 最終更新: 2020/01/06 04:56 by matoken