linux
この記事はLinuxのカレンダー | Advent Calendar 2022 - Qiitaの8日目の記事です。 会社にあるfedora 36のPCをfedora 37にアップグレードしようと思ってリモートからdnf system-upgradeでアップグレードしかけといたら何かしらの原因でアップグレードに失敗…
この記事はLinux Advent Calendar 2021の18日目の記事です。 stable kernelへのコントリビュート コントリビュートの方法としては次のような方法があると思います。 テストする patchをレビューする patchをバックポートする その他 本記事ではpatchをバック…
Linux 5.14.4のリリースして同日にregressionが報告されて次の日には5.14.5がリリースされてたんですが、これがどんなバグだったのかなというのを調べたメモです。 バグ報告の内容としては5.14.4でNextcloudっていうphpのwwebアプリケーションを実行するとハ…
はじめに この記事はRaspberry Pi 3B+の実際の挙動と公式のドキュメントから大体こんな感じだろうというところで書いてるので正確さは期待しないでください。 下図のような構成でLinux kernel(Raspberry Pi向けのカーネルじゃなくて、mainlineとかstable tr…
fapolicydがどのようにアプリケーションの実行を禁止しているのだろうか?と思って調べためもです。 fapolicydがアプリケーションの実行を禁止する仕組み 仕組みとしてはfanotifyの仕組みを使ってファイルが実行のために開かれた場合に通知を受け取り、設定…
この記事はLinux Advent Calendar 2020の17日目の記事です。 OSSのコントリビュート方法はpatchを書いたりドキュメントを翻訳したり、バグレポートしたりと色々な方法がありますね。fedoraでテストというとリリース前のベータ版のテスト、パッケージがアップ…
この記事はLinux Advent Calendar 2020の24日目の記事です。 自分がLinuxを使いだした頃、OSはどうやってブートしてんるんだろうとか色々知りたくて買ったのが↓の本です。 Linuxカーネルインターナル 買った当時は知識がなくて読むのが大変だったけど今はそ…
この記事はLinuxその2 Advent Calendar 2020の4日目の記事です。 今回はtoolネタです。vgrepというgrep系のツールがあって結構便利です。これは今年のOpen Source Summit + Embedded Linux Conference North America 2020でのAsk the Expert SessionでGreg K…
この記事はLinux Advent Calendar 2020 - Qiitaの1日目の記事です。 Tiny Core Linux(以下tcl)を使ってLinuxのブートプロセスを見てましょう。Tiny Core Linuxは軽量ディストリビューションで最小のisoイメージだと11MBほどです ブートプロセスを見ると言っ…
kdumpで利用するcrashkernelパラメータに渡せる値はfedora系カーネルとupstreamカーネルの微妙な差があるので自分でビルドしたカーネルを使う場合は気をつけろという自分へのメモです。 kdumpをfedora・rhelなどでdumpを利用する場合、crashkernelに渡す値に…
Linux Advent Calendar 2019でunameコマンドから始めるデバッグ&カーネルハック入門という記事を書きました。 kernhack.hatenablog.com このときはFedora 31を実験環境として選んで書いたんですが、環境をCentOS 8にして内容を加筆修正して電子書籍にしまし…
機種依存ですが、fedoraで5.4系のカーネルで起動時にカーネルパニックするようになり、自分もこのバグに当たったので修正してパッチをlkmlに投稿しました。 このパッチはLinux5.5.に取り込まれました github.com ついでなのでどんな感じでデバッグしたかの記…
fedoraなら多分一番手軽だと思う署名方法です。他のディストリビューションはわかりません テスト環境 ディストリビューションは(もちろん) fedoraです。バージョンは31です。実機ではなくてqemuでテストしました。 準備 まずpesignとnss-toolsパッケージを…
(´-`).。oO(killコマンドを提供するプロジェクト多いなって killコマンドを提供するプロジェクト とりあえず気付いた範囲で4つ。 util-linux procps-ng coreutils busyboxl 上のリストはmanページへのリンクになっているのでオプションの違いとかはそちら…
この記事はLinux Advent Calendar 2019の1日目の記事です。 はじめに 環境 おことわり uname(1) uname(1)が出力する内容 strace(1) gdb(1) bpftrace systemtap Kernel Hack Livepatch おまけ RHEL 8.1 CentOS 8 まとめ はじめに 本記事ではLinuxサーバのホス…
FedoraではkernelのテストイベントとかGnome 3.34 Test Day、I18N Test Day などのテストイベントがちょくちょくあります。 今回はKernel 5.3 Test Weekの備忘録です。ちなみに、この手のイベントはfedora MAGAZINEで紹介されることがあります。 今回の参加…
UEFIのSecure boot + kdump・kexecの動作確認 uefiのSecure bootが有効な環境でkdump・kexecは動作するのか?ってところの確認です。 Secure bootとは?というところはこちらのドキュメントを参照してください。 access.redhat.com テスト環境 テスト環境に…
Raspberry Pi(以下rpi)のカーネルではなくて、mainline等のカーネルを使いたい場合のメモです。 TL;DR 基本的に次のwebサイトを見れば事足ります。 elinux.org 概要 rpi向けのカーネルは以下なのですが、mainlineのカーネルを使いたい等の理由がある場合の環…
ちょっとCI環境でも作るか〜ということで。 CI だいたいこんな構成です。 構成 いまのところすべてローカル環境で閉じてます。うちはマンションタイプのBフレッツでそんなに速いわけでもないからローカルで閉じてるほうがテスト時間が短くて済むというとこで…
meta-fedora はじめに もし、meta-fedoraと聞いてピンときた場合はその感は当たりですw 主に組み込み向けのLinuxディストリビューションを作るためのものとしてyocto projectがありますね。yoctoプロジェクトのリファレンスディストリビューションとしてpok…
はじめに 名前空間 名前空間の利点 名前空間の種類 Mount名前空間 IPC名前空間 UTS名前空間 Net名前空間 PID名前空間 User名前空間 名前空間の管理 プロセスと名前空間 名前空間のエクスポート nsfs 名前空間共通データ NSProxy構造体 NSProxyと名前空間 参…
はじめに スラブアロケータ以外の動的メモリ確保 vmalloc関数 vmalloc関数で使用するデータ構造 vmallocの初期化 vmallocでのメモリ確保 vfree関数でのメモリ解放 その他の非連続メモリ領域からメモリを確保する関数 vmap関数 ioremap関数 /proc/vmallocinfo…
はじめに ユーザプロセス空間とカーネル空間 x86_64のメモリレイアウト ダイレクトマップ(ストレートマップ)領域 vmalloc/ioremap領域 仮想メモリマップ %esp fixup stack カーネルテキスト領域 モジュールマッピング領域 vsyscall 固定マップ領域 はじめに…
はじめに スラブアローケータ Linuxのスラブアローケータ slabアローケータ slobアローケータ slubアローケータ スラブオブジェクトの管理 使用中リスト スラブのマージ機能 Chache Coloring スラブの不活性化 frozen状態 スラブキャッシュの情報 slubアロー…
Fedora 30でChanges/BootLoaderSpecByDefaultというプロポーザルがあって、Fedora 30βでは実際にこの仕様になってます。カーネルを弄る人にはちょっと影響があるかなって感じです。 仕様 The Boot Loader Specificationに書かれています どんな風になったか …
dynamic_debugのcontrolファイルを読むとこんな感じでファイル名、関数名、そしてpr_debugに渡している文字列などが見れます。これってどうやってんだろ?というのが今回調べたところです。 masami@kerntest:~/pr_debug_test$ sudo cat /sys/kernel/debug/dy…
この記事はLinux Advent Calendar 2018の12日目の記事です。 カーネルのソースコードに含まれるscripts/を探索してみます。カーネルのビルド中で使うようなものもあるし、それ以外の時に使うものもあります。今回は後者の方を探してみましょう。 diffconfig …
この記事はLinux Advent Calendarの13日目です。 いんとろ Powering IT’s future while preserving the present: Introducing Red Hat Enterprise Linux 8 Beta キタ━━━━(゚∀゚)━━━━!!って感じですよね。 srpmも公開されています。Index of /redhat/rhel/rhel-8-…
この記事はLinux Advent Calendarの19日目です。 概要 今回はsrpmをダウンロードしてきて何かをするのではなくて、パッケージのgitリポジトリからcloneしてきてビルドするときのメモです。パッケージのビルド方法としてはfedpkgを使うかmockを使うかの2通り…
この記事はLinux Advent Calendar 2018の1日目ですΣ(゚∀゚ノ)ノキャー イントロ ほんとは別の内容にしようと思ってたのですが、進めてる途中でカーネルのデバッグをするハメになったのでカーネルデバッグをネタにしてみました。カーネルのデバッグと言っても普通の…