タグ

bootとLinuxに関するrin51のブックマーク (13)

  • Booting Linux with U-Boot on QEMU ARM

    Balau's technical blog on open hardware, free software and security In recent months I played with QEMU emulation of an ARM Versatile Platform Board, making it run bare metal programs, the U-Boot boot-loader and a Linux kernel complete with a Busybox-based file system. I tried to put everything together to emulate a complete boot procedure, but it was not so simple. What follows is a description o

    Booting Linux with U-Boot on QEMU ARM
  • Kernel Hackerしか興味がないBootconfig Kernel APIの話 - Qiita

    前々日の記事の続きとして、Extra Boot Configurationのカーネル内APIを紹介します。個々のAPIの詳細については、Linuxカーネルのドキュメントのほうが詳しいしので、そちらを参照してください。 これまでのkernel option API これまでのKernel Boot Option APIはコマンドラインに渡されたオプションに対して、キーワードが一致すれば呼び出されるハンドラを定義するか、予め変数と型名を指定するインタフェースでした。 __setup()マクロ __setup()マクロはレガシーAPIで、指定したキーワードがカーネルコマンドラインのオプションに出てきた場合、指定したハンドラが呼び出されます。 ハンドラはchar *を引数として受け取り、正常に処理したら!0を返します。ただ、キーワードマッチングが雑なので、前方一致したら呼び出される場合(例えば"p

    Kernel Hackerしか興味がないBootconfig Kernel APIの話 - Qiita
  • Linuxカーネルの起動時トレースの話 - Qiita

    カーネル起動時トレース Linuxカーネルの起動処理は、様々なことが行われるのにそれをデバッグする方法はprintkだったり、逆にkgdbを外部デバッガから繋いだりと、結構な手間がかかっていました。カーネルが起動してしまえば、ftraceにperf, BPF, systemtapと複数の手段が使えるのに、起動時のデバッグは細かいことが出来ません。これは、起動時に指定できるオプションが大雑把になるのが大きな理由の一つでした。シェル芸ではないですが、1行プログラミングだけで様々なことをするのは大変です。 そこで導入されたのがExtra Boot Configuration (bootconfig)です。Bootconfigについては前回の記事を参考にしてください。 ここではカーネルコマンドラインのトレースオプションと、Bootconfigによって拡張されたBoot-time trace(CON

    Linuxカーネルの起動時トレースの話 - Qiita
  • Linuxの新しい起動オプション設定機能 Bootconfigの話 - Qiita

    カーネル起動オプション Linuxカーネルには、起動オプション設定方法としてkernel command lineというのがあります。Grub.confなどでCMDLINE=で書き込むあれです。 カーネルをコマンドに見立ててコマンドラインオプションを渡せる機能ですが、最近この機能に加えて、もう少し読みやすく書きやすいオプション設定方法としてExtra boot configuration通称bootconfigが追加されました。 Extra Boot Configuration Extra Boot Configuration(通称bootconfig)は、カーネルの起動オプションをsysctl.confに似た設定ファイルとしてカーネルに与えることが出来る機能です。 Extra boot configurationの有効化 Extra boot configurationはLinuxカーネ

    Linuxの新しい起動オプション設定機能 Bootconfigの話 - Qiita
  • Tiny Core LinuxでLinuxのinitプロセスが実行されるあたりを調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2020 - Qiitaの1日目の記事です。 Tiny Core Linux(以下tcl)を使ってLinuxのブートプロセスを見てましょう。Tiny Core Linuxは軽量ディストリビューションで最小のisoイメージだと11MBほどです😃 ブートプロセスを見ると言っても電源onからの流れではなくてinitプロセスの実行に関する部分です。 この記事ではバージョン11.1のCore-current.iso を利用しています。 www.tinycorelinux.net isoファイルの構成 まずはtclのisoがどんな感じで構成されていて、Linuxを起動させるのか確認しましょう。 isoファイルの構成はこのようになっています。 $ sudo mount -o loop Core-current.iso ./mnt $ tree ./

    Tiny Core LinuxでLinuxのinitプロセスが実行されるあたりを調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • KMC Staff Blog:U-Bootのデバッグ

    2013年03月07日 U-Bootのデバッグ 先日のKMCセミナーでU-Bootの話をしました。その中から一部をピックアップして紹介します。 U-Bootのブートシーケンス まずは古典的でシンプルなブートシーケンスです。電源投入するとCPUはNORフラッシュ上のU-Bootを実行します。U-BootはDRAMなど必要なハードウェアの初期化を行った後に、なんらかの方法でLinuxカーネルをDRAM上にロードし、制御を移します。Linuxカーネルをロードする元としては、NORフラッシュや、NANDフラッシュ、SDカード、あるいはtftp等のプロトコルでネットワーク経由でロードしたりします。 U-Bootのデバッグを行うには、まずはこの方法で試すのがよいでしょう。KZM-A9-GTボードにはこれが可能なようにNORフラッシュメモリを搭載しています。 最近のブートシーケンスはもっと複雑になってい

  • Linuxのブートシーケンスの基礎まとめ - Tech random memoranda

    ファームウェア(BIOS or UEFI*1)が マザーボードのROMからメモリにロードされて実行開始し、ハードウェアをスキャン(POST - Power-On Self Test というハードウェアの自己診断を)する [BIOSの場合] プライマリHDDのMBR(先頭のセクタ(512バイト))を見る [UEFIの場合] プライマリHDDのGPTヘッダ(LBA1 or 最終セクタ)を見る MBR/GPTにインストールされているブートローダをメモリにロードして制御を移す GPTとMBRはどのように違うのか? - かーねる・う゛いえむにっき BIOS/UEFI/MBR/GPT MBRでは232≒2.2TBまでのディスクしか扱えない GPTでは264≒8.5ZBまでのディスクを扱うことができる BIOSはIntel CPUのリアルモード(16bitモード)でないと起動できないため、1MBまでのメ

    Linuxのブートシーケンスの基礎まとめ - Tech random memoranda
  • JF: Linux Kernel 2.6 Documentation: ramfs-rootfs-initramfs.txt

    Linux Kernel 2.6 Documentation: /usr/src/linux/Documentation/filesystems/ramfs-rootfs-initramfs.txt filesystems/ramfs-rootfs-initramfs.txt ramfs, rootfs, initramfs の説明 [プレインテキスト版] 原著作者: Rob Landley <rob at landley dot net> 翻訳者: Akira YOSHIYAMA <yosshy at debian dot or dot jp> バージョン: 2.6.18 翻訳日時: 2007/01/28 ramfs, rootfs and initramfs October 17, 2005 2005年10月17日 Rob Landley <rob@landley.net> =====

  • Linuxがブートするまで

    普段Linuxを使っていながら、vmlinuzやinitrd.imgというファイルは何なのか、 あやふやにしか理解していなかったので、一通りLinuxマシンのブートの仕組みを 勉強してみた結果を書き留めておく。なお、BIOSとGRUB Legacyの環境を前提としている。 EFIやGRUB2を使った環境については、今後いずれ勉強していきたい。 基的にOSの起動は、単純・低機能なプログラムが、より複雑・高機能なプログラムを 読み込み起動するという処理を連鎖的に行う仕組みになっている。 Linuxでは、下記のプログラムが順に起動していく: BIOSブートローダ (GRUB)Stage 1Stage 1.5Stage 2LinuxカーネルInit以下では、それぞれのプログラムについて順に要約して述べていく。 1. BIOS現在一般的なx86/x86-64 CPUは、電源が投入されると、0xff

  • initramfsについて

    1. initramfs について Kansai Debian Meeting 20101024 西山和広 Good-Day Inc. Powered by Rabbit 0.6.4 2. Who am I? twitter: @znz fingerprint sec 4096R/B4222F7A 2010-06-27 [expires: 2040-08-10] Key fingerprint = B863 D6DC C2B9 57B8 5238 6CE0 262E D8DB B422 2F7A uid Kazuhiro NISHIYAMA <zn@...> uid Kazuhiro NISHIYAMA (ZnZ) <zn@...> uid Kazuhiro NISHIYAMA <nisiyama@...> uid Kazuhiro NISHIYAMA (znz) <kzhr.nsym@..

    initramfsについて
  • 第384回 Initramfsのしくみ | gihyo.jp

    Ubuntuはカーネルを起動したあと、ルートファイルシステムをマウントするために「Initramfs」というイメージファイルを使用します。今回はこのイメージファイルについて説明しましょう。 Initramfsの役割 Ubuntuはさまざまなディスクデバイスにルートファイルシステムをインストールし、起動するOSです。カーネルはブートローダーによって起動されたあと、ルートファイルシステムをマウントするために、サポートしているすべてのディスクデバイスのドライバを持っている必要があります。 しかしながらこのドライバをすべてカーネルに組み込んでしまうと、カーネルが肥���化してしまいます。しかもそのほとんどは、今使っているディスクデバイスでは不要なドライバです。必要なドライバを必要に応じてロードする仕組みとして「カーネルモジュール」がありますが、今度はその「カーネルモジュール」をどこに保存するのかという

    第384回 Initramfsのしくみ | gihyo.jp
  • Ubuntu Manpage: mkimage - Generate image for U-Boot

  • LinuxカーネルのuImageのフォーマット/作成手順/ブート開始 - ロウレベル

    ARM Linuxを動かすとき、u-bootを使うのでuImageをよく作っているのだけど、その造りを知らなかったので調べた。 uImageのフォーマット Ubuntu14.04でuImageをつくるツールをインストールすると、昔はuboot-mkimageだったのが、u-boot-toolsに変わっていた。 u-boot-toolsに含まれるmkimgeツールでと使うとuImageの作ったりヘッダ情報を調べたりできる。ヘッダ情報を見る場合はlオプションをつける。 $ mkimage -l uImage Image Name: Linux-3.16.0 Created: Sun Aug 31 00:55:42 2014 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2782856 Bytes = 2717.63 k

    LinuxカーネルのuImageのフォーマット/作成手順/ブート開始 - ロウレベル
  • 1