2025年05月14日

Raspberry Pi OS)g++ 12.2.0-14 でエラーが出る場合

自分で作成していないコードでエラーが出る場合
いっそg++ 11にバージョンダウンするのも手。

sudo apt update
sudo apt upgrade -y
sudo apt install g++-11
sudo apt install gcc-11

インストール後デフォルトのコンパイラにするには
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
でg++のデフォルトがg++-11 となる。

sudo update-alternatives --config g++
でデフォルトが選択できる

同様にgccの場合は
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --config gcc


※なお、共に最新(12)も登録しておくと切り替えられて便利かも。
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/gcc-12 100


しかしながら、大抵は自分の作ったコードにバグがある・・・。
posted by すら at 12:32| ラズパイ

2025年05月12日

Samba の設定

以下、主にRaspberry Pi OS

インストール
sudo apt update && sudo apt upgrade -y
sudo apt install samba -y

設定
sudo nano /etc/samba/smb.conf
の最後に以下追加
[share]
   path = /home/pi
   writable = yes
   guest ok = no
   read only= no
   browsable = yes
   valid users = pi
※sambaの共有ホルダ名:share  他PCからのアクセスの \\raspberrypi\share のshare 部分
  sampa接続時の初期パス:/home/pi
  guest okはsamba に登録ユーザー以外でもアクセスできるか?(yes でアクセス可)
  browsable はネットワーク上で共有ホルダが見えるかどうか
  valid users はsambaのユーザー指定

Samba ユーザーに登録されているか確認する
sudo pdbedit -L | grep pi
Samba ユーザーのパスワード追加(パスワード追加して初めてユーザーとして設定される)
sudo smbpasswd -a pi
※sambaユーザーはLinuxログインユーザーとは無関係

リスタート
sudo systemctl restart smbd






posted by すら at 10:41| ラズパイ

2023年10月03日

POSIXメッセージ生成時のエラー対策

mq_open したときに失敗し、errno に EINVALがセットされる場合
msg_max
msgsize_max
で指定されている値を超えた値をセットしてmq_open している(ことが多い)。

この場合は
/proc/sys/fs/mqueue/msg_max
/proc/sys/fs/mqueue/msgsize_max
/proc/sys/fs/mqueue/queues_max
を編集する、が書き出しに失敗する場合(Raspbian)は

sysctl fs.mqueue.msg_max
cat /proc/sys/fs/mqueue/msg_max
などでデフォルト値を確認して
 /etc/sysctl.d/hoge.conf の中に以下のように記載したものを置く
fs.mqueue.msg_max = 64

※hoge は何でもよい、sysctl.d ホルダ下の .conf が付いたものは自動的に起動時に読み込まれる

その後Rebootして値が更新されているか確認する。

ーーーー
ユーザーが使用できるメッセージキューのサイズは
ulimit -q で確認できる。デフォルト 819200
msgsize_max はデフォルト8192でこのサイズで指定した場合は100個まで、となる計算。



続きを読む
posted by すら at 11:07| ラズパイ

2023年05月26日

Raspbian OS のVNC画面サイズ変更

RaspbianOS にVNC接続した際に、実際にディスプレイ接続がないときに画面サイズが変わらない問題の対策。

設定→Raspberry PIの設定→ディスプレイタグのヘッドレス解像度が変更しても変化しない場合の対策です。

/boot/config.txt をスーパーユーザーで開き、以下行先頭に#を付けてコメントアウトする。
#hdmi_force_hotplug=1

なお、他サイトで対策によく出てくる
#hdmi_group=1
#hdmi_mode=1
のコメントアウト状態はそのままで問題なかった。

posted by すら at 18:15| ラズパイ

2022年09月06日

ルーターがない環境でのPCとの直接イーサネット接続

PCと直接つなぐ場合、ラズパイ側の設定で以下を気を付ける。

ネットワークの設定で
AutomaticallyConfigureEmptyOptionsのチェックを外す
IOアドレス以外のRouter, DNSServer, DNS Serchの欄を空欄とする。

こうしないと、PINGでラズパイのIPアドレスは検索できても、VNCで接続できない。

※空欄はもしかしたらどれかを空欄にすれば大丈夫かもしれない(どれが必須なのかをためしていない)
posted by すら at 14:04| ラズパイ

2020年11月16日

ラズパイ4 +i2c smbus (C++)

i2c_smbus_*() という形の関数を使う場合は、includeは

#include <linux/i2c-dev.h>
#include <linux/i2c.h>

に加えて

extern "C" {
#include <i2c/smbus.h>
}
とする。でないとi2c_smbus_*がわからないという旨のコンパイルエラーとなる。
(なぜか extern "C" を付けないとうまくいかない。このヘッダファイルの中身の書き方な話っぽい?)

なお、Makefile で、ライブラリオプションに -li2c をつけること。

また、エンディアンに注意する事。
posted by すら at 14:57| ラズパイ

2020年11月11日

ラズパイ4+RatocのREX-USB60F


※詳しくはメーカーサイト
http://www.ratoc-e2estore.com/products/detail.php?product_id=35#subsub_title2
を参照
(中ほどの「ラズパイ対応情報」タブです。)


@REX-USB60Fをラズパイ4に接続
A端末で、lsusb -d 0584:b020 
(VendorID=0584でProductID=b020 だそうだ)
Bdmesgを実行
CUSB ?-?-? : Product:USB-Serial Convertor (改行)USB ?-?-? : Manufacturer:RATOC Sysytems,Inc を探す
D同じUSB ?-?-?でFTDI USB Serial Device converter now attached to ttyUSBnを探す
→/dev/ttyUSBnでアクセス 通常1個目はn=0 で、/dev/ttyUSB0 でアクセスする。

※ラズパイのターミナルソフト cutecom
apt-get install cutecom
でインストール

posted by すら at 11:21| ラズパイ