Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Qbilinux 開発について(その72): 最近の状況

Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

とりあえず最近の状況でも.

開発マシンのメインメモリが足りないという話を以前しました.

toshi-mtk.hatenablog.com

だましだまし使っていますが,物によってはコンパイル時に大量にメモリを必要とするパッケージがあるので,どうしても不便.というわけで,メモリを発注しました.けど,最近の半導体不足の影響か注文したメモリが欠品.というわけで注文だけ入れていますが,納品は4月以降になるみたい.昨年末くらいに発注したんだけどなぁ.

あとは,current ツリーをリリースできる状態に徐々に持っていきたいなと思ってソフト類のバージョンを調べて古いものを順次バージョンアップ作業中.

けど,どこかでコンパイルミスをしたパッケージが開発環境に紛れ込んでしまいました.そのために shared library の状態がおかしくなっていたんだけど,気が付いて手作業で適当なリンクを貼ってごまかそうとしたけど全然ダメ.やっぱり挙動が変.shared library 自体を削除してみたら,依存しているコマンド類が大量にあって全然動かなくなってしましました.

がっくり.

現状 current 用に作成してあるパッケージ類から環境を戻しても,結局おかしな状態に戻るだけなのでダメ.また,作成したパッケージがどこまで影響を受けているかもよくわらない.なんだか八方塞がり.

仕方ないので,リリースバージョンの 0.4.0 ベースから再びパッケージを作り直している状況です.

ある程度まとまったタイミングで,インストール用の iso を定期的に作っておかないと,こういうトラブルの時には対応できないですね.ちょっとやり方を考えないとダメかなと思っています.

そんな感じで作業をしていますが,ついでに glibc などを最新に追従させながらようやく x86_64 環境は復旧目前まで作業ができた状態です.x86 や arm もどうなっているか調べて,そっちもダメそうならパッケージ作り直さないと.

また,リリースしている 0.4.0 もセキュリティフィックスを含めて 0.4.1 としてリリースしたいなと思っていますが,インストーラーの調整途中で作業を放置している状態です.なかなか手が回ってないです.はい.

という状況で,作業は停滞気味でしたが,最近は落ち着いてきていて少し時間が取れそうなので徐々に作業を消化していきたいと思っています.

Qbilinux 開発について(その71): ARM 版 current の状況と x86_64 の current 公開ツリー更新

Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

先日,current の状況を書きましたが,ARM 版 current の方もぼちぼちと作業中.

とりあえず,glibc と gcc, llvm などを最新に入れかえましたが,その状況で動作しています.gcc, glibc のビルドの際,x86/x86_64 の場合と同様に statx.h 中で #if __glibc_has_include ("linux/stat.h") のマクロ展開ができないようなエラーが出たので手作業で対応しました.

ARM 版の方は次のバージョンで armv7 対応から armv6 対応に変更しようと思っていますが,とりあえず現状は armv7 のままで作業中.そのうちに変更したいと思っています.ざっとみた感じ,gcc とか glibc の CFLAG だけを修正すれば大丈夫かなと思っていますが,どの程度修正が必要かの詳細はまだ調べていないです.過去にも書きましたが,armv6 に変更するのは raspberry pi zero などでも動作するようにしておきたいからです.

で,ARM 版の方の作業ですが引き続きパッケージ作成をするよりも,いくつか補助ツールを作成した方がよさそうかなと思っています.手作業で行なっている作業を出来るだけ自動化しておきたいので,しばらくそのツールを作成するかんじかなと思います.

x86/x86_64 の方は新しいツールがなくてもある程度作業でるので,引き続きパッケージ更新していく感じかと思います.バックアップを兼ねて,最近の手元の環境を一応 current としてパッケージ公開しておきました.まだ x86_64 版のみですが https://qbilinux.org/pub/qbilinux-current/x86_64/ 以下においてあります.主なツール類のバージョン等は kernel 5.15.2, glibc 2.34, gcc 11.2, llvm 13.0.0, gnome 41.1 (library only), kde framework 5.87, plasma desktop 5.32.3, mate 1.26, lxqt 1.0.0 な感じになっています.色々と動作がおかしかったり,一部パッケージがビルドできていないために収録されていないなどありますが,まぁそんな程度ものということで参考まで.バージョン 0.4 の方で行なっているセキュリティ対策も current の方は追従できていないです.

余談ですが,ARM 版の方は rock64 などの対応も行いたいと思っているし,ついでに rockpro64 なども対応させたいなと思っています.ちょっとどこまで時間が取れるかわからないですけどね.

ちなみに rock64 を購入した際の簡単なインプレなどは下記に記載しています.

toshi-mtk.hatenablog.com

そういえは過去に Dynabook AZ 対応もしたいなと思っていたのを思い出して,久しぶりに AZ の電源を入れて少しいじってみましたが...流石に今更対応する理由もないかなと思いましたのでそのプランは無しかなぁ.

とりあえず現状はそんな感じです.

Linux 開発用に AMD Ryzen 9 3900 を購入してみた (続き)

先日,AMD Ryzen 9 3900 を購入してみた話をしましたが,その続き.

toshi-mtk.hatenablog.com

稼働するようになったので大丈夫かなと思ったのもつかの間,別記事でも少し書きましたがやっぱり安定しない.

Linux で使っていて思いっきり負荷をかけるとハングアップしてしまう.

kernel 内でエラーメッセージを吐いて固まっている感じ.

32bit 環境だと割と問題なく動作するんだけど,64bit 環境で 24 スレッドフルに長時間回しているとダメらしい.

CPU コア内でエラーになったって感じのメッセージが出る.

しかもエラーになるコアは同じものではなさそうなので,CPU の不具合ではない雰囲気.

うーむ.

どうしよう.

悩んでても解決しない.

B450 マザーを使っていましたが,B550 マザーに変えてみれば安定するかなと,ふと思い立ちマザーボードを交換してみることに.

ダメ元でもスペックアップすることになるから,まぁいいかなと.

で,選んだマザーは ROG STRIX B550-I GAMING.

rog.asus.com

これまで使っていた B450 マザーも GIGABYTE B450 I AORUS PRO WIFI だったので,ゲーミングマザーつながり.

www.gigabyte.com

ゲームはやらなくて Linux 開発用なんだけど,どうしても周辺環境が揃っていて,信頼性を取ろうとすると最近はゲーミングマザーとかになってしまうんだよな.

選んだ理由は

  • ITX
  • intel イーサーネット
  • 値段が手頃
  • 安心の ASUS?

って感じですかね.

購入後,早速組み替えて Linux でブート.使っている周辺機器は以前の環境と全く同じでマザーボードだけ交換.

問題なく立ち上がりました.

負荷をかけてみた.

全く問題ないみたい.

ということで,それから2ヶ月ほど運用していますが問題なく稼働しています.

よかったよかった.

ネットで色々と検索してみたんだけど,B450 で Ryzen 9 3900 などの Zen2 CPU で安定しないって記事は見つからなかったんだよな.

うちの環境だけなのかなぁ.

Windows で動作させていないのでわからないんだけど,Windows だと全く問題なかったりするのかな.

たまたま購入した CPU とマザーボードとの相性が悪かっただけなのか.

今となっては謎.

ちなみに,買い換えで不要になった B450 マザーは買い取ってもらうために中古屋さんに持っていったところ,特に動作は問題はないという形で買取してもらえましたので壊れていたというわけではなさそうです.はい.

マザーボードまで買い換えることになってしまったのは想定外でしたが,まぁ安定する環境になってよかったという感じです.

ということで,この環境を開発に使っていますが,今度はメモリが足りないなというのが気になってきている今日この頃.

現在,積んでいるはメモリは 16G なんだけど,ソフトのコンパイル作業をしているとスワップアウトしてしまうものとかがぼちぼちとあるんだよね.

使われるメモリ量は「各スレッドで確保するメモリ容量 x スレッド数」って感じになるから,スレッド数が増えたためにトータルで使用するメモリ量が増えてしまい,結果,現在のメモリ搭載量ではメモリ不足になった様子.

うーむ.

スワップアウトしてしまうと結果的に遅くなってしまうので,折を見てメモリも増やしておかないとダメかなと思っています.そうしないと,せっかく大量のスレッド数を扱えるのにスレッドを絞って使うって形になってしまいますからね.一応,最大 64G まで詰めるみたいなのでそこまで増やしておいた方が無難かなと思っています.はい.

 

メカニカルキーボードテスターを aliexpress から購入

少し前の話ですが,メカニカルキーボードテスターを aliexpress から購入してみました.

普段使っているキーボードは Realforece なんですけど,最近メカニカルキーボードにも興味が出てきたので.

ちょっと色々な種類のメカニカルキーボードを試してみたいなと.

最初,国内の通販サイトなんかで探していたんですけど,搭載されているキーボードの種類が少ない割に高い.

ちらっと aliexpress をみてみたら安い.

ということで aliexpress から購入することに.

選んでみたのは下記のものです.81 種類載っていて 5000円 くらい.

f:id:toshi-mtk:20211102021714p:plain

注文してから2週間ほどで到着.

箱はやっぱりボロボロ.海外から購入するときはいつもそんな感じだからあんまり気にしない.

f:id:toshi-mtk:20211102021930j:plain

f:id:toshi-mtk:20211102021937j:plain

キーボードはこんな感じ.まぁシンプル.

f:id:toshi-mtk:20211102021944j:plain

f:id:toshi-mtk:20211102022002j:plain

f:id:toshi-mtk:20211102021954j:plain

クリアなキートップも一応ついてきました.

f:id:toshi-mtk:20211102022009j:plain

まぁ,キータッチを試すには十分かな.

個人的には軽くてクリック感の少ないリニアな感じのものが好みかな.

まぁ,余裕ができたら自作キーボードも作ってみたいなと思っています.はい.

最近,やたら電子工作がまたやりたいなと思ってるんだよな.

オーディオ用アンプとか,自作キーボードとか,マイコンの外付け回路の作成作業とか.

なんかキットでも購入しようかなと,エレキットのサイトとかもよくみていたりします.

www.elekit.co.jp

Xbox Series X を追加購入

先日,Xbox Series S の簡単なレビューを書きましたが,少し前ですが追加で Xbox Series X を購入したのでその話でも.

toshi-mtk.hatenablog.com

Xbox Series S のレビューにも書きましたが,外付けの DVD ドライブの動作確認してみたところ全く動作しませんでした.仕方がないので,最近使っていなかった PS3 を引っ張り出して DVD/Blue-ray の再生だけ PS3 を使うって形で運用していました,けど,やっぱり面倒.

機会があれば,DVD/Blu-ray ドライブがついている Series X に置き換えたほうが便利かなと思っていたところ,近所の家電量販店で Xbox Series X を販売しているのを見つけたので購入してみました.家電量販店はヨドバシカメラね.転売防止のためか,ヨドバシのゴールドポイントカードプラス(クレカがついてるやつね)を持っていないと購入できませんでした.

外箱はこんな感じ.

f:id:toshi-mtk:20211102015156j:plain

開封した感じはこんな感じ.

f:id:toshi-mtk:20211102015204j:plain

店舗から持ち帰った時にはかなり重たいなぁと思っていましたが,箱の緩衝材とかがわりとがっちりしているんですね.本体自体はそれほど重たい感じはないですね.

f:id:toshi-mtk:20211102015213j:plain

筐体自体の体積はそれほど大きくはないですが,正方形で縦長なので置き場所は結構選びそうな感じですね.とりあえず縦置きで床に置いた形で運用.

で,Xbos Series S からの引っ越し作業.

過去に Series S のレビューを書いた時と同じような手順で行いました.

Series S は外付けの SSD と HDD をつないで使っていましたが,内臓 SSD にインストールしてあるゲーム・ソフトをとりあえず外付けの SSD に移動.その後,その SSD/HDD を Xbox Series X に接続.それから Xbox Series X の電源を入れて初期設定.

セーブデータは基本的にクラウドに上がっているので,ソフト類だけ外付け SSD/HDD に移動させて,それを Series X に繋ぎかえるって作業を行えば良いので,き換えもそれほど時間かからないですね.実質20分くらい終わりました.その大半の時間は Series X の初期設定の時に行われる本体・コントローラーのファームウエアのアップデートでしたけどね.

ただし,Series X 用に最適化されているゲームは繋ぎ変えた後にアップデートチェックを行うとダウンロードやり直す形になりました.詳しいことはよくわからないですけど,Series X 用に 4K 解像度用のデータが含まれているものとかがそうなっているのかなって感じ.

そんな感じで置き換えは終了.

置き換え後,Series X を実際に使ってみた感じですけど,使っているテレビもフル HD なのでうちの環境ではあんまり Series S と変わらないかな.早速,blu-ray を再生してみましたが,やっぱり直接再生できるのは便利ですね.最近の blu-ray だとオーディオビットレートが 48kHz/24bit とかですが,PS3 だと直接再生できないです.仕方なくオーディオのビットレートを下げる設定を行っていましたが,Xbox Series X だとわざわざそういう設定をする必要もなく普通に再生できました.まぁ,この辺りはつかっているテレビとかオーディオ環境にも依存するのかもしれないですが,私の環境だとそういう状況でした.

あとはディスクで所有している Xbox 用のゲームが Series S だとできなくなっていましたが,Series X だとできるようになったもの大きいかな.Forza Horizon 2/3 とかはディスクで所有しているので.ストアで販売しているゲームなら買いなおせばよいんですけど,Forza シリーズなどは車両のライセンスの関係で古いシリーズってストアでも販売終了になるんですよね.

ほかの感想としては,内臓 SSD の容量が増えたのもいいですね.Series S/X 用に最適化されたゲームは内臓 SSD に入れておかないと起動できないので,やりたいものを USB HDD からコピーしたりしていましたが,その必要はほとんどなくなりました.

また,本体を床置きしていると,赤外線ポート (IRポート) が床すれすれの場所になるので使いにくいですね.メディアリモコンを使っているとたまに反応しないことがあります.メディアリモコンを使う場合には床置きは避けた方がよさそうかも.そのうち,置き方を変えないとなと思っています.

で,ちょっと話が変わりますが,最近,メディア再生ツールの Kodi がアップデート.ようやく Xbox 用 Kodi もバージョン 19.x ベースになりました.Xbox で動かすと色々と不具合があったからリリースがなかなかされなかったみたい.あたらしいものを試してみたところ,以前のような不安定さはなくなった様子.以前のバージョンのものは Series S/X が販売される前にリリースされたものだったから仕方なかったんだろうなとは思いますが,今回のリリースのものは以前書いたようなハードウエアアクセラレータをオフにしなくても問題なく動作している様子.よかったよかった.

それにしても,また Xbox の本体が増殖してしまったな.360, One, One X, Series S, Series X などが転がっていますが,使っていないものは処分しようかなと思っています.オークションとかに出すと変なプレミアつきそうでそういうのはなんか嫌なので,中古屋さんに持っていくことにするかなって感じ.

簡単ですけどそんな感じです.

Qbilinux 開発について(その70): 現状のリリースバージョンの状況と開発版の状況など

Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

先日,開発用マシンの CPU 入れ替えなどを行なっていたら,環境が安定しなくなってしまったのでしばらく作業中断していました.最近,ようやく落ち着いてきたので,ぼちぼちと作業しています.トラブル詳細に関してはまた後日にでも書こうかなと思っています.結果的には全く安定しなかったので,マザーボードも交換しました.

で,相変わらず 0.4.0 の方はセキュリティフィックスとかバグ修正をぼちぼちと.

先日書いたように,一部のファイルは current の方から持ってくるように修正していたりします.あとは,ちょっと例外ですけど firefox とか openjdk は ESR, LTS のバージョンが上がったのでそちらのバージョンにアップデートしました.いつまで 0.4.x 系をメンテするか分からないので,最新 LTS にしておいた方が無難かなという判断です.

current の方から持ってきたファイルの中にはパッケージ管理周りのファイルもあったりするので,現状で 0.4.1 として一旦リリースしようかなと思っています.変更点としてはパッケージの xz ファイルの解凍を並列に行うように少しだけ手を入れてあります.このため,インストールやパッケージのアップデートが早くなっているかなと思います.また,それに関連して hdsetup パッケージもアップデートしているので get_pkginfo コマンドでパッケージの自動アップデート行おうとするとこけるので注意が必要です.詳細はリリースノートなどに記載します.

...ということで get_pkginfo コマンドのデバッグをしていたところ,全く動作しない.
症状としては wget でファイルとってくる時にエラーになっていました.どうして?って思ったらどうやら qbilinux.org サイトのサイト認証の期限が切れていてエラーになっている様子.Let's Encrypt を使っていて,かつ自動更新するように設定していたはずですが,どうやらホームページを更新した際に自動更新できなくなっていた様子.以前は concrete5 でホームページを作っていましたが,baser に入れ替えた時に設定変更するのを忘れていたらしい.

設定を変更したところ,無事更新もできて get_pkginfo コマンドも実行できるようになりました.ふう.

一方,current の方もぼちぼちと作業.

開発用のマシンの入れ替えしていた時に,何度も強制的に電源オフを繰り返していたせいで current 用の作業を行っていた SSD が使いもにならなくなってしまいました.パーティションにエラーが出まくって,いくら修復しても終わらない.仕方がないので再フォーマット.ということで,これまで行っていた作業は振り出しに戻ってしまいました.

仕方なく,gcc や glibc のアップデート作業から始めたんだけど,昔,どうやってアップデートしたのかすっかり忘れてしまって大ハマり.やっぱり,備忘録代わりにメモをきちんと残しておかないとダメですね.

対応方法の概略は過去の blog に少しだけ書いていますが,詳細に書いておくと,最初に gcc を更新した後に glibc を更新.その環境で gcc をコンパイルしようとすると glibc の /usr/include/bits/statx.h 中でエラーになります.どうやら #if __glibc_has_include ("linux/stat.h") のマクロ展開ができない様子.ファイルの有無を自分で調べて,if 文を使わないように手作業で修正.手元の環境ではファイルが存在しなかったので関連する箇所は全部コメントアウトしました.その状況で gcc をコンパイル.その後,glibc を再びコンパイルし直したらオッケーでした.

基本部分の入れ替えができたので,再び徐々に各種ツール類を最新にアップデートしている感じです.python 3.9 に入れ替えようとして結構苦戦.3.8 から 3.9 の差分って結構大きかったのね.

並行して,パッケージビルドスクリプト周りもちょっと気になる箇所があるので手を入れようかなと思っています.そのため,ビルドスクリプト自体は過去互換がなくなるかもしれないですが,まぁ,ビルドスクリプト自体を使っている方はほとんどいないかなと思いますので問題ないかなと.:-P

とりあえずそんな感じで作業しています.

まぁ,近いうちに 0.4.1b1 の iso ファイルを作成して公開するようにしたいと思っています.で,特に問題なければ 0.4.1 にしたいなと.(http サーバーの SSD 残容量がほとんどないので 0.4.1 関連を公開する時には Plamo って名前がついている過去のファイルは消してしまうかと思います...)

Linux 開発用に AMD Ryzen 9 3900 を購入してみた

これまでは AMD Ryzen 5 2400G を使っていました.4C/8T な CPU ですね.

最近,コンパイルなどに結構時間がかかるようになってきたので,流石に限界かなぁと思って置き換えようかなぁと.firefox や thunderbird のビルドだと1時間以上かかるんですよね.昔はもうちょっと短時間 (30分くらい?) だった気がしますが,ソフトウエアもどんどんでかくなっているので....

ちなみにここのブログに Ryzen 5 2400G を購入した時のことを書いていますが,2018年8月にアップしていますので約3年間使っていたことになります.

toshi-mtk.hatenablog.com

新しいものは何にしようかなと思いましたが,ざっと調べた感じ AMD Ryzen 9 3900 が良さそうだったのでこれを購入してみました.

Ryzen は 5000 シリーズが発売されたので 3000 シリーズが値下げされていたのと,3900XT や 3900X などと違って無印の 3900 はバルク専用なのでさらに安価.また,12コア24スレッドあれば5年くらいは使えそうかな.単純にコア数だけで比較しても処理速度はこれまでの3倍くらいにはなるかな.マザーボードはこれまで使っていたものがそのまま使えるので CPU 置き換えだけで大丈だな.オンボードグラフィックがなくなるけど,まぁ,2400G でも最近オンボードグラフィックは使っていなかったから問題ないかな....などと色々と考えてこれを選択しました.

で,さすがに近所でを売ってるお店がなかったので通販で購入.ものはこんなかんじ.
バルクなので簡易パッケージですね.

f:id:toshi-mtk:20210709223108j:plain

使っているマザーボードは GIGABYTE の B450 I AORUS PRO WIFI ですが,ざっとマニュアルを見たところ,BIOS のアップデートが必要らしい.ということで,交換する前に BIOS アップデート作業.一気に新しいバージョンのものを入れようとしましたが,エラーで入りませんでした.地道に少しずつアップデートしないとダメなのね.念のために,現在公開されている最新の BIOS までアップデートしました.ホームページから BIOS ファイルをダウンロードして USB メモリにコピー,BIOS 画面を立ち上げてアップデートという作業の流れですが,流石に何回もやると結構時間がかかりました.はい.

その後,さっくり CPU を交換.そのほかの環境はこれまでと同じ.で,立ち上げたところ BIOS で無事認識されました.万歳.

f:id:toshi-mtk:20210709223114j:plain

自分で開発している Linux 環境 (qilinux) を立ち上げてみたところ,CPU コアが8個までしか認識されていない.どうして?って思ったら kernel の CPU 上限数が 8 という設定になっていました.CONFIG_NR_CPUS あたりの設定ですね.設定変更して再起動したところ,無事,12C/24T の環境になりました.

f:id:toshi-mtk:20210709223117j:plain

top コマンドの表示でも24スレッド表示されているとちょっとテンション上がりますね.

kernel の設定変更が必要なので qbilinux に関しては,kernel アップデートの時に設定変更しておこうかなと思います.

けど,CPU 交換した際に,PC ケースのファンを繋ぎ忘れていたみたい.30分後くらいにものすごい勢いで CPU ファンが回っているのに気がついた時にはちょっと焦りました.モニターをつけてなかったのですが,急いでモニターをつけてみたら固まっている状態.おまけに PC ケースを触ってみたところ結構熱い.静音のために低速で回るファンをつけていますが,そんなファンでもあるのとないのでは大きな違いなんだなとちょっと関心してしまいました.

もう一度,ケースを開けてファンを接続.その後は1日中付けっ放しでも安定して動作するようになりました.

個人的にはあんまり細かいベンチマークとかに興味がないのでベンチマークなどはとっていませんが,kernel のコンパイルとかも割とすぐに終わる感じになったので,かなり快適な環境になったかなと思います.

これまでのPC環境は割と納得して使っていましたが,一部を早いものに変更するとほかのところも気になってしまいますね.メモリが 16G なのでちょっと少ないかなぁとか,主に HDD で作業しているのでディスクのアクセス時間が結構遅いなぁとか.うーん,悩ましい.

これまで使っていた 2400G ですが,もう必要ないかなぁということで近所の中古屋さんに買取で持っていったところ,10500円の値段がつきました.ちょっと驚き.3年使ってこの下取りだとコスパは相当いいですね.

まぁ,Linux 開発用の環境も新しくなったので,ぼちぼちと開発も進めていきたいと思います.

そんな感じです.

 

 

Qbilinux 開発について(その69): セキュリティフィックスと current ブランチはじめました

Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

先日,バージョン 0.4.0 として締めましたが,その後の作業についてでも.

ぼちぼちと 0.4.0 のセキュリティフィックスとかバグ修正を行っています.

主にはいろいろとセキュリティフィックスに対応させたりかな.基本的にパッケージバージョンは上げないつもりですけど,パッチ作ったりするのが面倒だったりすると,依存しているもの一式のバージョンを上げたりもします.はい.

また,手元の ThinkPad X270 に新規インストールして気がついたバグなども少しずつ修正.

contrib 以下に収録していた docker などもコンパイルに失敗していたみたいなので作り直し.再び動作するようになりました.

...

一方,次のバージョンのことも少しは考えないとなということで,バージョン 0.4.0 の作業ディレクトをコピーして current 用の作業ディレクトリを作成.

とりあえず glibc とか gcc, llvm を最新にしようかなと思って少しだけ作業しましたが,はまりまくりました.

glibc 2.31 から入った修正が割と厄介ですね.

最初に glibc を入れ替えたらなんかうまくいかない.glibc のヘッダに入っている変更が邪魔をして環境が崩壊.少し前にも glibc のアップデートをやったことがあったんだけど,はまったので先送りにしたんですよね.

試行錯誤した結果,最初に gcc を更新した後に glibc を作って,その環境で gcc のヘッダを手作業で少し書き換えてからもう一度 gcc をコンパイル.その後,glibc を再びコンパイルし直したらきれいな環境になったみたいです.ふう.

書き換えた gcc のヘッダは bits/statx.h あたりだったかな.すでに記憶が曖昧....

まぁ,最近は glibc とか gcc を自前でコンパイルする人ってほとんど居ないんでしょうか?エラーメッセージで検索してみてもほとんど引っかからなかったですから.しかも一回新しいバージョンに移行してしまえば問題なくなりますからね.

作業途中で何度も作業環境を飛ばしてしまいましたが,自分でいろいろといじっていると勝手がわかっているので復旧も楽です.環境が飛んでしまったときには,インストーラーの USB メモリや,ほかのパーティションに入っている linux 環境を立ち上げて,ほかのパーティションにインストールしてある環境を

dd if=/dev/nvme0n1p1 of=/dev/nvmen1p2 bs=16M status=progress

みたいな感じで壊れた環境のパーティションにコピーした後,コピーした環境の /etc/fstab の root partition だけ書き換えてからその環境で立ち上げて,netconfig コマンドでネットワークの設定を修正した後に更新していたパッケージを updatepkg すれば開発用の環境が復旧できるので,まぁ気楽な感じ.環境を飛ばしても dd コマンド一発で簡単に戻せるようにパーティションサイズは全く同じに切ってあったりはしますけどね.

とりあえず,開発環境は最新にできたので current の方はぼちぼちと最新のパッケージ類に追従させていきます.あとは,古いライブラリに依存しているパッケージ類をリコンパイルして古いライブラリ類を一層したいなと思っています.icu とかいろんなバージョンを含めているのでこの機会に.でも,次のバージョンを締めるまでにもたもたしていると,またいろんなバージョンを含める羽目になってしまいそうだけど.:-)

ためしに rustc なども最新にして firefox の最新版をパッケージングしてみたけど,普通にパッケージ作成ができたので開発環境は問題なく構築できているかなと思っています.

他にも current の方ではちょっと気になっていたところがあったのでパッケージ管理周りもいじっていたりします.しばらく使ってみて,問題なさそうなら 0.4.x 系にフィードバックしようかなとは思っています.全体には影響しない修正なので.

まぁ,最近はそんな感じで作業しています.

Qbilinux 開発について(その68): armv7l/aarch64 版の 0.4.0 リリースと今後の予定など

Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

armv7l/aarch64 の 0.0.4rc イメージを公開していましたが,そのままリリースバージョンにすることにしました.ということで,ファイルの中身は同じですがファイル名だけ変更して置き直しました.

インストールマニュアは下記を参照してください.

ホームページの方にもドキュメントを置くようにしたいと思います.

...で,今後の予定ですが,先日も書きましたがしばらくはいろいろと見つかっている不具合を修正していく予定です.セキュリティフィックスもいろいろと出ているみたいなのでその対応とかも.

また,次のバージョンに向けての作業ですが.始めるのはしばらく先になるかなと思っていますが以下のように考えています.

  • デスクトップ環境として gnome も収録しておきたい.作ってる途中でうまく動作しなかったので放置状態...
  • glibc が若干古めなので最新バージョンに追従させたい.
  • もうちょっと仮想環境とかの設定をきちんとしておきたいかな.開発に使える程度に.
  • サーバー用途とかにも簡単に使えるように設定ファイルをもうちょっとまともなものをデフォルトで用意したりとか.手元にサーバー用に使おうかなと思って入手した PC が転がっているので.
  • armv7l アーキだと raspberry pi pico で動かないので armv7l サポートはやめて armv6 系に移行しようかな.
  • arm 系は raspberry pi だけではなく pine64 にも対応させたいなぁ.PCI-E 付きのボードもあるので入手すればいろいろと遊べそうだし,サーバー用途にもいろいろ使えそうだし.手元の pine64 はしばらく放置しちゃってるからな.

    pine64.com

  • arm 版の配布形態をちょっと考えないと.インストーラー形式はインストールに時間がかかるのであんまり意味なくなっているかなぁと.
  • x86 (32bit) の状況が微妙になってきているのでサポートやめようかなぁ.けど,やめるのももったいないので必要最小限だけの環境(サーバー用途に使えるくらい)にパッケージを絞ろうかなぁ.
  • もうちょっとインストーラーを改良したいな.日本語版しかないのもどうにかしたい.
  • パッケージの作成作業ももうちょっと簡単にできるようにしておきたい.今回は kernel だけは arm 実機上ではなく,x86_64 上のクロスコンパイル環境で作成したけど,arm 系全体をどうやって作っていくか含めてちょっと考えたいな.実機での作成だとちょっとつらくなってきてるので.

なとど考えています.どこまで実現できるかはわからないですけど.:-)

なお,これまでと同じスタンスですが,基本的に 0.4.x 系はセキュリティフィックスとかバグ修正のみを行って,開発自体は新しいバージョン (current) で行っていきます.ローリングリリースという形態は個人的にあまり好きではないので....

0.3 は途中で手が回らなくなってしまってセキュリティフィックス自体も放置しちゃってましたが,0.4.x 系は次のバージョンを締めるまでなんとかセキュリティフィックスだけでも維持できていければいいなぁと思っています.

まぁ,今後どうなっていくかはわかりませんが,とりあえず現状はそんな感じのことを考えています.参考まで.

Qbilinux 開発について(その67): armv7l/aarch64 版の 0.4.0rc 実行イメージ作成

Plamo Linux 6.x のソース一式からブランチして,qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

armv7l/aarch64 の実行イメージを作成しましたので web サイトの方に置きました.ついでにバージョンを 0.4.0rc に変更しました.インストーライメージ自体は 0.4.0b2 と同じものです.

実行イメージはラズパイ4で動作確認しています.

インストールマニュアは下記を参照してください.

しばらく様子を見て,何もなければそのままリリースバージョンにする予定です.(週末くらいには...)

あと,サイトのディスク容量が足りなくなったので Plamo-nora-0.0-20170429, Plamo-nora-0.0-2017925 のディレクトリは削除しました.一応,iso イメージなどは置いてありますが,こちらもそのうちディスクが足りなくなったら削除する予定です.手元にファイルはありますので広大なディスク領域が手に入ったら復活するかもしれないですが,まぁ現状はこれ以上サーバー費用はかけたくないので多分復活はないかなぁと思います.

arm 版の方が片付いたら,いろいろと見つかっている不具合をぼちぼちと修正していく予定です.

とりあえずそんな感じです.