2022年02月26日

kgamma5 (モニタの表示サイズ合わせツール) / plasma-desktopのインストールで入らないもの。archlinux

久しぶりにsparkylinux上のvirtualboxを起動しました。
ゲストのarchbangを起動。モニタがフルスリーンになりません。

構わずシステム更新して、
キーリングが通らないパッケージがいくつかありました。
中断して、archlinux-keyringをインストール。
(このパッケージは、キーチェックなしで入ります)
で、無事更新できました。490パッケージの更新でした。

数あるarchbangの中でこれひとつ、なのですが、
デスクトップをplasmaにしています。
まあまあいい感じなのですが、conkyとの相性は、
相変わらずよくないみたいです。
qt系デスクトップのせいような。

話が後先ながら、
virtualboxホストのバージョンが知らない間に、
6.1.32に上がっていて、extension-packと齟齬を来し、
ゲストosが起動しなかったりもしました。

ゲストがフルスクリーンにならないわけは、
vboxvideoモジュールがロードしていないからで、
その元のvboxservice.serviceが起動していないからでした。
systemdの同サービスを起動したら、問題解決しました。
$ sudo systemctl enable vboxservice
$ sudo systemctl start vboxservice


それから、フルスクリーンにできない間、
xrandr系のplasmaツールを使おうとしたら、
設定→kdeシステム設定→ハードウェア→の
「ディスプレーとモニタ」にモニタのサイズ設定の項目が
ありません。pacman -Ss plasmaで根気よく調べたら
わかりました。kgamma5というパッケージが
受け持ちでした。

openboxで使っていて、plasmaのデスクトップにするとき、
archlinuxのパッケージとしては、plasam-desktopという名の
パッケージのみをインストールしていました。
plasmaのグループインストールには、含まれないということです。
archlinuxで、plasmaを
やるときは、含まれないことを覚えておくと
よいと思います。モニタのサイズ合わせなんて、
しなくても、ドライバが当たっていれば、
だいたい自動でフィットしますが、
仮想環境上では、そうも行かない
ことは、割りと多いです。plasma-desktopに
デフォルトで含めるようにしてほしいですね。

ゲストの側では、
virtualbox-guest-dkmsは、なくなっています。
パッケージインストールは、
dkmsが統合されたであろう、
virtualbox-guest-utilsのみとなり、
あとは、仮想dvdドライブから、
取得してスクリプトを走らせる、
guest additionsだけになっています。


posted by ブログ開設者 at 01:19| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

2022年02月25日

dISO、dSB、mkSB、mkISO の使い方。APorteusの便利なツール(覚え書き)

nekoさんが開示してくださったスクリプトコマンドは、
非常に良く出来ていることを理解しました。

カーネルビルダーは、言及なさっていないので、
APorteus上限定で動くものとして、考えておきます。

そして、APortesで生成したカーネルを、
他の、たとえば、archbangなどのisoに適用できるかも、
です。

APorteusでは、カーネルを変更したら、
取り替えることになっている、
firemwareの扱いがどうなのか、ちょっとわかりません。
表題の4つのコマンドは、
dSBコマンドは、archbang.iso内の、airootfs.sfsに対して
有効でしたので、カーネルも、カーネルモジュールも
取り替え可能ということですね。

nekoさんの貴重なコメントを投稿欄にも
掲載させていただき、永久保存といたします。
管理人の画面と違って、ブログのご来訪者には、
コメント欄がかなり見にくい状況のようです。

ここから----------------------------------------------------

カーネル更新手順は以下の通りです。

Porteusの"カーネルビルダー"を使用して作成されたもの。
===32Bit===
v5.17-rc5/32/vmlinuz
v5.17-rc5/32/lib/firmware
v5.17-rc5/32/lib/modules


置換。
% su
# ls

slax-32bit-11.2.0.iso v5.17-rc5
#
# dISO slax-32bit-11.2.0.iso
#
# cp v5.17-rc5/32/vmlinuz slax-32bit-11.2.0/slax/boot/
#
# dSB slax-32bit-11.2.0/slax/01-core.sb
# rm -fr 01-core/usr/lib/modules
# cp -a v5.17-rc5/32/lib/modules 01-core/usr/lib/
# mkSB 01-core
# rm -fr 01-core
# mv 01-core.sb slax-32bit-11.2.0/slax/
#
# dSB slax-32bit-11.2.0/slax/01-firmware.sb
# cp -a v5.17-rc5/32/lib/firmware/* 01-firmware/usr/lib/firmware/.
# mkSB 01-firmware
# rm -fr 01-firmware
# mv 01-firmware.sb 01-core.sb slax-32bit-11.2.0/
#
# mv 01-core.sb slax-32bit-11.2.0 01-core.sb slax-32bit-11.2.0-k5.17-rc5
# mkISO slax-32bit-11.2.0-k5.17-rc5
# rm -fr slax-32bit-11.2.0-k5.17-rc5
#
# ls

slax-32bit-11.2.0.iso slax-32bit-11.2.0-k5.17-rc5.iso v5.17-rc5
#

使用ツールはシェルスクリプトです。
===dISO===
DIR=`basename $1 .iso`
rm -fr ${DIR} /tmp/TMP$$
mkdir ${DIR} /tmp/TMP$$
mount -t iso9660 -o loop $1 /tmp/TMP$$ 2>/tmp/err$$
if [ $? -eq 0 ]
then
cp -a /tmp/TMP$$/* ${DIR}/.
cp -a /tmp/TMP$$/.[0-9A-Za-z]* ${DIR}/. 2>/dev/null
umount -f /tmp/TMP$$
if [ $? -ne 0 ]
then
sleep 1
umount -f /tmp/TMP$$
fi
rm -fr /tmp/TMP$$ /tmp/err$$
exit 0
fi


===mkISO===
CDLABEL=Slax
ISO=`basename $1`
ISO=${ISO}.iso
rm -fr $ISO
mkisofs -o ${ISO} -v -l -J -joliet-long -R -D -A ${CDLABEL} -V ${CDLABEL} \
-no-emul-boot -boot-info-table -boot-load-size 4 \
-b slax/boot/isolinux.bin -c slax/boot/isolinux.boot $1


===dSB===
DIR=`basename $1 .sb`
mkdir ${DIR} TMP$$
mount -t squashfs -o loop $1 TMP$$
cp -a TMP$$/* ${DIR}/.
umount -f TMP$$
if [ $? -ne 0 ]
then
sleep 1
umount -f TMP$$
fi
rm -fr TMP$$


===mkSB===
SQ=`basename $1`
SQ=${SQ}.sb
rm -f ${SQ}
mksquashfs $1/ ${SQ} -b 256K -comp xz -Xbcj x86 -noappend


SlaxのISOを弄るご参考に、もし、成れば幸いです。

ここまで----------------------------------------------------

ファイルを作ったら、シバン(#!/bin/sh)を
それぞれのファイルの1行目に書いて、
$ sudo chmod 755 <ファイル名>
をする必要があります。
APorteusと同じ状況にするなら、
$ sudo mv dISO /usr/local/bin/
その場で使うなら、
$ sudo ./dISO slax-32bit-11.2.0-k5.17-rc.iso
同じ場所にないのなら、pathを通して実行です。

眺めているだけでも、かなり勉強になります。
isoの解凍や再構築って、そんなに複雑なことを
していない、unix(linux)コマンドでぜんぶ
できちゃうんだ、なんて。


posted by ブログ開設者 at 22:53| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

近づいているのか、遠ざかっているのか、不明。python日記-30

2つのlistの同順位の要素同士を掛け算して、
総和を求めるコードの件。いまだにクリア出来ないです。
python外からimportしなくても、
答えは出るようになりました。
#!/usr/bin/env python3

def inner_prod(li1,li2):
conbined2 = [x * y for (x, y) in zip(li1, li2)]
return sum(conbined2)
print(inner_prod((2, 3, 4), (5, 6, 7)))

入れる数値を1からではなく、2に変えています。
2x5+3x6+4x7= の回答を求める関数です。
これも連続している数字でなくても成り立っちゃいます。

inner_prod_other_2022-02-25_13-50-35.jpg

range()とlen()を使って、最終行は、
print(inner_prod((2, 3, 4), (5, 6, 7)))
で、正解が出るようにするのは、
難しいですね。

本コードでの味噌は、zip()でして、
リスト、タプルなどから要素を順番に取り出せる
オブジェクト、と説明があったりします。
それが、リストだ、ということをpythonに
判らせる印のようなもののようです。
あと、forのすぐ後ろも()をつければ、
複数にできることを知りました。

関数というのは、値をどう変えても、
正しい答えが出る雛形です。
コードの上ほうにリストの中身が書けたら、
とてもラクなんですが、それができません。

プログラミングというのは、覚えることは、
比較的少なくて、アタマの使い方、
みたいに思っていました。覚えること、
知らないとできないことの多さに、
少々驚いています。記憶力は、
幼少よりだめなもので。


posted by ブログ開設者 at 14:11| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする