土日の勉強ノート

AI、機械学習、最適化、Pythonなどについて、技術調査、技術書の理解した内容、ソフトウェア/ツール作成について書いていきます

開発環境

Rustを始めてみる

picoCTF 2025 の General Skills の 全5問のうち、3問が Rust を扱う問題でした。そこで、今回は、Rust の環境構築について記事にしておこうと思います。 それでは、やっていきます。

KVM/QEMU(virt-manager)でUbuntu24.04をインストールした

前回 は、Ubuntu 24.04 のインストールについて書きました。今回は、KVM を入れて、Ubuntu 24.04 の上に Ubuntu 24.04 を QEMU で起動していきたいと思います。 ややこしいですね。本当は、Ubuntu のインストールされたパソコンで、Ubuntu や、ParrotOS など…

Ubuntu24.04(VirtualBox 7.1)のインストールと初期設定

今回は、Ubuntu 24.04 のインストールについて書いていきます。執筆時点(2025/3/1)で、Ubuntu24.04.2 LTS がリリースされていました。これを Windows10 の VirtualBox上にインストールしていきます。 それでは、やっていきます。

Androidアプリの開発環境の構築とHelloWorldアプリを作ってみる

今回は、かなり久しぶりに Androidアプリの開発をやってみます。まずは、開発環境の構築と、簡単なアプリを作ってみたいと思います。 今回の目的は、スマホを使って、NFC のリードライトがやることです。簡単な OSS を持ってきて動かしてみたいのですが、そ…

QEMUで組み込みLinux(aarch64+virtボード)でネットワーク調査とツールのクロスコンパイル

前回 は、VirtualBox + Ubuntu 22.04 のネットワークの理解を進めました。 今回は、ここで作った QEMU を使って、VirtualBox + Ubuntu 22.04 とのネットワークの疎通を確認していきます。 それでは、やっていきます。

VirtualBoxのネットワークの理解(VirtualBox+Ubuntu 22.04)

今回からネットワークの理解を進めていきます。 今回は、VirtualBox + Ubuntu 22.04 で、環境構築していきます。 それでは、やっていきます。

QEMUで組み込みLinux(Buildroot+virtボード)で ARM64bitを起動する

前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox+U-Boot)で、initramfs を追加しました。 これまで、今回は、initramfsを追加していきます。 それでは、やっていきます。

QEMUで組み込みLinux(Buildroot+BusyBox+U-Boot)をinitramfsで起動する

前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)で、U-Boot を追加しました。 今回は、initramfsを追加していきます。 それでは、やっていきます。

QEMUで組み込みLinux(Buildroot+BusyBox+U-Boot)で起動する

前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)で、U-Boot を追加して、U-Boot の起動まで確認しました。 今回は、U-Boot の設定をして、カーネル、ルートファイルシステムを起動していきます。 それでは、やっていきます。

QEMUで組み込みLinux(Buildroot+BusyBox)にU-Bootを追加する

前々回 と 前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)を動かしました。 今回は、Buildroot の別のオプションで Linux を構築します。 それでは、やっていきます。

QEMUで組み込みLinux(Buildroot+BusyBox)をやってみる、の補足

前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)を動かしました。 今回は、前回の起動について、カーネルのパラメータなど、可能な限り、調査してみたいと思います。 それでは、やっていきます。

QEMUで組み込みLinux(Buildroot+BusyBox)をやってみる

今回は、QEMU で Arm の組み込み Linux を動かしていきたいと思います。 これまで、STM32 を動かしていたのは、本家の QEMU ではなく、xPackプロジェクトの QEMU Arm でした。 今回は、Linux なので、本家の QEMU をインストールして、開発環境の構築と、簡…

Git BASH(Git for Windowsに付属するツール)の紹介とカスタマイズ方法

今回は、Git BASH の紹介と、カスタマイズについて説明します。 Git BASH とは、Git for Windows をインストールすると一緒にインストールされるツールです。 簡単に言うと、Windows で、Linux のようなコンソールが使えるようになります。 Windows のシステ…

JGraphTのサンプルソースの解説と可視化の補足(Ubuntu22.04、IntelliJ、Gradle)

前回 は、JGraphT というグラフ理論のライブラリを Gradle プロジェクトで実行して、GraphViz で可視化するところまでやりました。 今回は、前回の補足として、サンプルソースの解説と、可視化のソースを完成させようと思います。 それではやっていきます!

GradleプロジェクトでJGraphTを使う(Ubuntu22.04)

前回 は、前々回 に作った Gradle プロジェクトを、IntelliJ を使ってデバッグするところをやりました。 今回は、その Gradle プロジェクトを使って、JGraphT というグラフ理論のライブラリを Java で使ってみます。 JGraphT で簡単なサンプルを動かして、Gr…

QEMUに似たRenodeでVSCodeを使ってRenode自体をデバッグする

Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、STM32 のサンプルアプリを対象として、GDB でデバッグする代わりに、VSCode を使ってデバッグするところまで行いました。 今回は、STM32 のサンプルアプリではなく、サンプ…

QEMUに似たRenodeでVSCodeを使ってデバッグする

Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、バイナリファイルから構築した ELFファイルが動かない原因を解析して、対策を行い、無事に動作するところまで行いました。 今回は、VSCode でデバッグする環境を構築してい…

QEMUに似たRenodeをソースからビルドする

Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、バイナリファイルが動かない原因を解析しましたが、分かりませんでした。 もう少し深く解析するために、今回は、Renode をソースからビルドして、問題個所の特定と対策まで…

QEMUに似たRenodeでSTM32をバイナリファイルで動かす

前々回から、Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回は、GDB で接続するところをやりましたが、バイナリファイルではうまく動きませんでした。 この記事では、バイナリファイルで動かない原因を調べて、その記録となり…

QEMUに似たRenodeでSTM32をGDBを使ってデバッグする

前回から、Renode という QEMU に似たオープンソースのエミュレータを試してます。 前回は、インストールとSTM32のサンプルソースの実行までをやりました。 今回は、GDB で接続して、デバッグしてみます。 それでは、やっていきます。

QEMUに似たRenodeというOSSの組込みデバイスエミュレータを試す

今回から、Renode というオープンソースの組込みデバイスのエミュレータを試していきます。 簡単に言うと、QEMU と同じ位置付けの OSS です。QEMU よりも、組込みデバイスのサポートが充実しているようです。 それでは、やっていきます。

QEMUのソースコードを変更してSTM32の動作を変える

前回は、だいぶ苦労して、QEMU をソースからビルドしました。 今回は、QEMU のソースコードを変更して、STM32 の動作を変えてみます。 それでは、やっていきます。

QEMUをソースからビルドして動かす

前回は、QEMU のビルドに必要な xpm について学びました。 今回は、QEMU をビルドしていきます。途中でエラーが出ますが、そこを解決していきたいと思います。 それでは、やっていきます。

QEMUのビルドに必要なxpm(xPack Project Manager)について学ぶ

前回は、バイナリファイル(デバッグ情報、シンボル情報が削除される)から再構築した ELFファイルを QEMU (ターゲットは STM32F4-Discovery)で動かしました。 今回は、QEMU をビルドして動かす予定でしたが、やってみるとビルドエラーになりました。簡単…

STM32(ARM Cortex-M)のバイナリから構築したELFファイルをQEMUで動かす

前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたELFファイルをバイナリファイル(デバッグ情報、シンボル情報が削除される)に変換して、そのバイナリファイルでELFファイルを再構築しました。 今回は、そのELFファイル(デバッグ情報、シンボル…

STM32(ARM Cortex-M)のELFファイル⇔バイナリの変換を行う

前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたELFファイルの内容を確認しました。 今回は、このELFファイルをバイナリファイルに変換して、デバッグ情報、シンボル情報を削除して、そこから、ELFファイルを再構築していきたいと思います。 そ…

STM32(ARM Cortex-M)のELFファイルの内容を確認する

前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたサンプルソースのリンカスクリプトの内容を確認しました。 今回は、これまで使ってきたサンプルソースをビルドして生成された ELFファイル の内容を見ていきたいと思います。 それでは、やってい…

STM32(ARM Cortex-M)をQEMUで動かす(リンカスクリプト編)

前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたサンプルソースのスタートアップルーチンの内容を確認しました。 今回は、サンプルソースのリンカスクリプトの内容を確認していきます。 それでは、やっていきます。

STM32(ARM Cortex-M)をQEMUで動かす(スタートアップルーチン編)

前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたサンプルソースのスタートアップルーチン以外の内容を確認しました。 今回は、サンプルソースのスタートアップルーチンの内容の確認と、アセンブラの動作の確認をしていきます。 それでは、やって…

STM32(ARM Cortex-M)をQEMUで動かす(ソースコード確認編)

前回は、Interface 2022年 7月号 を参考にして、苦労の末、QEMU (ターゲットは STM32F4-Discovery)を立ち上げました。QEMU とは、実機が無くてもプロセッサ(CPU、評価ボード)を動かせるエミュレータです。 今回は、動作させたサンプルソースの内容の確認…