2022年10月27日木曜日

[ドライバ][ソース変更] ソフトの影響が少ないハードウェアデバイス選定は?

こんにちは、今日もソフトウェアについてほのぼのと記載します。


現在、基板に載っている通信用モジュールが変更になるため、


そのソフトウェアを検討しています。


といいましても、どのようなものになるのか


まだ分かっていませんので、


どのようなケースがあるのか考えてみたいと思います。


ハードウェアデバイスを選ぶ担当次第で幸不幸が決まります。


ざっくりと、以下のケースが考えられると思います。


1.既存品に近いデバイスを選ぶ人(影響が少ない方を好む人)


2.ハイスペックを選ぶ人(他社に負けたくない人)


3.ロースペックを選ぶ人(コストを気にする人)


ソフトの影響度を考えると、


”1”がコストを抑えられて、不具合が少ない選択になります。

レジスタ構成が同じならそれが一番良いですね。


”2.”の場合、ハイスペックなのは良いのですが、他のデバイスとの相性やドライバソースが提供されていることを確認したほうが良いです。

・仮に提供されていても、それを現ソースに組み込むのは必要な作業になります

(簡単に実装出来ると思っているハード担当がいますが、そんな簡単には出来ません。最近では、開発環境でチェックを入れれば対応可能品があるので、そちらなら楽です。)

・ハイスペック製品選んでも、

実際に必要な機能は、その製品機能の1/10にも満たないことはよくある話です。


”3.”の場合、製品性能が満たせなくなる可能性があります。

ソフトでは性能アップに限界があり、ドライバソースに手を加えると、サポート対象外に陥るケースもあるので

現デバイス以上の性能のものを選ぶようにしましょう。


2022年10月20日木曜日

[linux][ディスク容量]Gparted使用したら起動しなくなった問題

こんにちは


今日もほのぼのとソフトウェアについて


記載していきたいと思います。


Vmware Player Ubuntu14_04上で作業していたところ、


仮想ディスク容量が足りなくなってしまいました。。


そのため、Vmware Playerの仮想マシン設定から


ハードディスクを追加で200GB増やして


パーティションを増やすように試してみました。


一度バックアップをとった後、


Gparted アプリを使ってパーティションを


変更して、再起動を行ってみました。

(バックアップは必須です。)


・・・

起動してきませんでした。


(パスワード入力まではいくのですが、その後数時間経過してもデスクトップ画面になりませんでした。)


試行錯誤して、結果的に以下を行うことで


現象は解消出来ました。


1.Gparted アプリで、使用しているパーティション以外を削除する。

(私の環境だと、”/dev/sda1”だけ使用して直後にSWAP用のメモリがあったので、それを削除)


2.使用しているパーティションをリサイズして増やす。”/dev/sda1”だけパーティションとしては有効な状態。


3.Vmware Playerの仮想マシン設定からハードディスク→”デフラグ”を実行

(これは試しにやってみただけで、もしかしたら不要かもしれません)


以上です。


ハードディスクは仮想環境を作成する時点で300GBくらいを設定しておいた方が良いです。

かなりハマりました。


<a href="https://px.a8.net/svt/ejp?a8mat=3HE3NL+M125U+3L4M+6PZF5" rel="nofollow">

<img border="0" width="300" height="250" alt="" src="https://www22.a8.net/svt/bgt?aid=210609921037&wid=001&eno=01&mid=s00000016735001129000&mc=1"></a>

<img border="0" width="1" height="1" src="https://www10.a8.net/0.gif?a8mat=3HE3NL+M125U+3L4M+6PZF5" alt="">

<br>


<a href="https://rpx.a8.net/svt/ejp?a8mat=3HE0IY+3DGG6Q+2HOM+699KH&rakuten=y&a8ejpredirect=http%3A%2F%2Fhb.afl.rakuten.co.jp%2Fhgc%2F0ea62065.34400275.0ea62066.204f04c0%2Fa21060505431_3HE0IY_3DGG6Q_2HOM_699KH%3Fpc%3Dhttp%253A%252F%252Fwww.rakuten.co.jp%252F%26m%3Dhttp%253A%252F%252Fm.rakuten.co.jp%252F" rel="nofollow">

<img src="http://hbb.afl.rakuten.co.jp/hsb/0eb4bbc5.1222aa2a.0eb4bbaa.95151395/" border="0"></a>

<img border="0" width="1" height="1" src="https://www11.a8.net/0.gif?a8mat=3HE0IY+3DGG6Q+2HOM+699KH" alt="">

<br>


2022年10月19日水曜日

[Yocto] 回路図の効果

こんにちは、今日もソフトウェアについてほのぼのと記載します。


現在、ルネサス社製CPU RZ/G1E用の載っているボードのgpioの設定を調べていました。


今までの案件では、評価ボードには回路図がついていて、


それぞれのgpioはどこのモジュールに接続されていて、pinmuxの設定は何なのかを


この回路図を参考にしてgpioの機能割り当てを推測しながら解析出来ていたのですが、


今回のSKRZG1Eのボードには


どういうわけか、回路図が見つかりませんでした。


まさか、無いというオチはあるまいか。



2022年10月17日月曜日

[Yocto] NetworkManagerの開始

こんにちは、今日もソフトウェアについてほのぼのと記載します。


現在、NetworkManagerが起動できなくて


困っていました。


Service NetworkManager Start


のコマンドを実行すれば出来るようなことが


記載されているページがあったのですが、


Yoctoプロジェクトで生成された組み込みLinuxの場合、


Error: NetworkManager is not found


と出てコマンド自体見つからないと怒られました。


結果として、以下のコマンドで実行できました。


NetworkManager Start

コンフィグファイルが見つからないような応答メッセージが出てきても実行は完了しています

(ハマってしまいました。)


NetworkManager設定は以下を参考にしていくと良いと思います。


NetworkManager Cliでネットワークを設定する方法

http://www.maruko2.com/mw/NetworkManager_CLI_(nmcli)_%E3%81%A7%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95


また、NetworkmManagerは、以下が参考になります。


2022年10月13日木曜日

[Python] デコレータはデコレーション?

こんにちは、今日もソフトウェアについてほのぼのと記載します。

現在、Udemyにて、Python学習を行っています。

今回はデコレータについて受講したのですが、

理解しずらかったのでメモしておきます。

デコレータとは、

関数が呼び出される前に

くっついている(デコレーション的な)関数を実行する

事をいいます。

例:

def printInf(func):
    # 包み込むwrapper関数を作成
    def wrapper(*args, **kwargs)
        print(‘start’)
        result= func(*args, **kwargs)
        print(‘end’)
        return result
    return  wrapper

@printInf
def adddata(x,y):
    print(‘x+y’)
    return x+y

# adddata()関数を実行します。
#その際に、デコレータ@printInfによってprintInf()関数が実行されます。
# printInf()の引数funcとして、adddata()関数のオブジェクトが渡されます
# (c言語で言う関数ポインタと考えるとわかりやすいです。)
r= adddata(10,20)
print(‘r:’, r)

こうすることで、関数呼び出し側は
adddata()だけですが、

実際には、デコレートするかたちで

printInf()が呼ばれます。

@関数名

がデコレーション発動条件ですかね。

def wrapper(*args, **kwargs)
の*argsはだけ今回は使われているということです。

この引数は、タプルなので

C言語的に言うと、書き込み出来ない配列のようなものになります。

このデコレータの良いところは、
関数自体変えずに済むのがうれしいんだろうと思います。

変えると不具合が入り込む可能性が出てくるので、よく考えられた仕組みですね。

Guido van Rossumさん天才か


2022年10月11日火曜日

[yocto] IMAGE_INSTALL_appendとIMAGE_INSTALLの違い

こんにちは、今日もソフトウェアについてほのぼのと記載します。

現在、yoctoプロジェクトを使用して

ユーザボードに組み込むlinux ドライバ周りのソフトを作成しています。

rootfsを以下のコマンドで作るのですが、


bitbake core-image-base


local.confファイルに

IMAGE_INSTALL+=” ifmetric”

など入れていると、ユーザボード起動で

lsやらfindやらが使えなくなってしまいました。

binディレクトリ内にもコマンドファイルはなく、確かに動かない状態です。

その指定による動作としては、コマンド類を一度削除してから、自分用に入れていくような動きになりました。

この現象を解消する方法を色々調べたところ、

IMAGE_INSTALL_append+= “ コマンド”

を指定すれば、ベースのコマンド類に追加して

いくことが可能なようです。

yoctoは深いな。

次回から

“IMAGE_INSTALL_append”を使うようにしよう。