Linux

Raspberry Pi向けのクロスコンパイル環境の整え方 2022年夏

4年ほど前にRaspberry Pi向けのC/C++クロスコンパイル環境を整えたのだけど、当時と今では環境構築の方法が異なるようだ。ということで、現時点(2022年8月)での「Linux上でRaspberry Pi向けクロスコンパイル環境を構築する方法」についてメモを残しておく…

Debian stretchからbusterにアップグレードした環境でiptablesからnftablesに乗り換える

Debian 10ではパケットフィルタリングまわりの設定に使用するフレームワークがnftablesに変更されたのだが、この変更が「既に運用中の『iptablesを使用しているDebian 9』」をアップグレードする際にどのような影響を及ぼすのか、メモを残しておく。(Debian…

umask(1)は引き算しない、多分。

umask(1)の仕様を調べようとしたのである。で、ググって見つかった「デフォルトのファイルアクセス権 (umask) (Solaris のシステム管理 (基本編))」を見てちょっと驚いた。 設定する umask の値は、与えたいアクセス権の値を 666 (ファイルの場合) または 77…

Raspberry Pi用にQtをクロスコンパイルする――ただしQtはX11上で動かしたい

Raspberry Pi用にQtをクロスコンパイルする方法を探していたのだが、どの情報も非X11のコンソール環境にてEGLFS経由で直接OpenGL ESで画面描画する構成のQtのバイナリを作るものばかりだった。しかし私は、諸事情よりX11のデスクトップ上でアプリを実行でき…

ALSAでMIDIをループバックさせたい――ただしALSA RawMidi APIで!

ALSA C libraryのAPIを使用してMIDIの入出力を行うLinuxアプリがあるのだが、出力したMIDIをループバックさせて入力として読み込みたい――という話である。macOSなら標準のIACドライバを、Windowsならサードパーティの仮想MIDIケーブル*1を使うパターンである…

リンク切れしたシンボリックリンクを探す

id:eel3:20121112:1352651058 でシンボリックリンクを張りなおすMakefileを書いたのだが、デッドリンク(リンク切れしたシンボリックリンク)がそのまま残ってしまう問題があった。この問題に対処するために、デッドリンクを探す方法を――『覚えて便利 います…

正規表現を使ったテキストフィルタとC/C++による自作ツールではどちらが高速か?

改行区切りのテキストレコードを舐めて、特定の形式に当てはまるものを除外するツールが欲しくなった。形式の判定には正規表現が使えそうだった。Unix環境で動かすなら、既存のテキストフィルタを使えばよい。だが残念なことに動作環境はWindowsで、しかもス…

あえてbc(1)した話

たぶんまだまだ初級な小ネタ。こんな感じに16進数(プレフィックスなし)のデータが並んでいるテキストファイルtest.datがあって: 00000000 00000001 0000000F 00000010 7FFFFFFF 80000000 FFFFFFFE FFFFFFFFこれを元データ(32bit符号なし整数)としてちょ…

cat(1)しない話

初級小ネタ。例えばgrep(1)する際に、こんな感じのサンプルコードが示されることがある。 cat file.txt | grep foo しかし個人的には次のほうが好みだ。 grep foo file.txt せっかく引数でファイルを指定できるのだから、そちらを使いたい気分になるのだ。tr…

grep(1)しない話

もう1つ、初級小ネタ。DebianやUbuntuで、あるパッケージがインストールされているか否か調べるのに、今までdpkg(1)とgrep(1)を組み合わせていた。 dpkg -l | grep acpi ところで先日、dpkg(1)のmanを見たところ: -l, --list package-name-pattern... 「pac…

Swift 2.2.1から3.0に更新したらSegmentation faultが多発するようになった話

Ubuntu 14.04.5にAppleのSwiftを入れて遊ぼうとしていたのだが、Swift 2.2.1から3.0に差し掛かえたらSegmentation faultが多発するようになった。 $ swift Welcome to Swift version 3.0 (swift-3.0-RELEASE). Type :help for assistance. 1> 1 + 3 Segmenta…

netcatによるTCPでのファイル転送は2パターンある

タイトル名の通りのことを今更ながら実感したので、記録を残しておく。netcat(nc(1))を使って、TCPで簡易的にファイルを転送する方法は2パターンある。ファイルを送る側のコンピュータでlistenする方法と、ファイルを受け取る側のコンピュータでlistenする…

Rustインストール後にlibrustc_driverが無いといわれる現象について

LinuxにRustをインストールした後、rustc(1)を実行しようとして、次のようなエラーメッセージが表示されることがある。 $ rustc rustc: error while loading shared libraries: librustc_driver-4e7c5e5c.so: cannot open shared object file: No such file …

Linux(Ubuntu)にNode.jsのバイナリを手動インストールする方法

id:eel3:20140309:1394294944 の続きというか、ついでというか。Node.jsのプロジェクトでは、x86とx86_64向けのLinux用バイナリも配布している。これの手動インストール手順を確かめてみた。環境はUbuntu 12.04 LTSだ。 公式サイトのダウンロード一覧から、L…

Windows/LinuxとMacのCapsLockキーの重箱の隅をつつくような違い

手元のWindows/LinuxとMacとで、CapsLockキーの動作に思わぬ違いがあった。具体的には、CapsLockがONの状態でShiftキーを押しながらアルファベットを入力した時、Windows XP・Windows 7・Ubuntu 12.04 LTSでは小文字が入力されたが、Mac(Mac OS X v10.8.4)…

身辺整理用ファイル削除ツールあれこれ

身辺整理というか、開発用機材の入れ替えだ。新しいPCに移行するので、返却する古いPCのHDDデータを削除する必要があるのだ。今まではWindowsだけで、しかも1回に1台のPCだけで済ましていたというのに、なぜか今回はWindows・Mac・LinuxのオールスターPC軍団…

Windows PowerShellの罠――trap文概論

PowerShell 1.0の頃から例外処理用にtrap文が用意されていて、これがまた興味深い。trap文の元となったのは、おそらくBourne shellの系統のシェルに用意されている組み込みコマンドtrapだろう。『Windows PowerShellインアクション』1.2.1によれば、PowerShe…

Ubuntuを10.04から12.04にしたらfile(1)の出力内容が変わった

Ubuntu 10.04から12.04.1にアップグレードしたらfile(1)の出力内容が変わった。スクリプトファイルのテキストのエンコーディングを出力するようになったようだ。例えば10.04の頃の出力はこんな感じだった。 # Groovy 2.0.5付属の起動用シェルスクリプトで実…

JVMベースの言語処理系用にシンボリックリンクを張りなおすMakefile

Javaプラットフォームで動作する言語処理系を幾つかUbuntuに入れている。$HOME/langs以下に各処理系のアーカイブを伸張・展開しておき、付属の実行スクリプトへのシンボリックリンクを$HOME/binに作成して使用している。アーカイブを展開した後のディレクト…

JavaCASL2(IPA公式(?)のCASL IIシミュレータ)クイックガイド for Linux (Ubuntu 10.04) and Windows XP

ものすごーく久しぶりに――具体的には6年ぶりぐらいに――偽アセンブラであるCASL IIを触ってみようと思い立ったのだけど、WindowsはともかくLinux上で使えそうなシミュレータがなかなか見当たらない。「Linux CASL」等でググってもIPAのサイトで公開されている…

今更MZK-USBSVを買ったのでUbuntu 10.04 LTSから設定して使ってみた

本当に今更だけど、投げ売りなのか1,480円で売ってたので試しに買ってみた。一緒に買ったUSBメモりの方が高かった。PLANEX USB機器のデータをパソコンやデジタル家電で共有できるUSB 2.0メディアサーバ 1ポート (PS3・Xbox 360対応) MZK-USBSV出版社/メーカ…

カーナビ三部作その2:Ubuntu 10.04 LTSでUSBカードリーダーライター経由でmicroSDHCを使おうとしてつまづく

id:eel3:20110618:1308377037 の続き。前回までの作業で、Ubuntu上でCDをリッピングしてMP3化する環境を構築できた。しかし安心するのはまだ早い。十分な容量のSDメモリカードを持っていないし、作業するPCにSDカードリーダーの類は付いていない。肝心のハー…

カーナビ三部作その1:Ubuntu 10.04 LTSでCDをリッピングしてMP3にしようとしてつまづく

「カーナビ三部作」となっているが、カーナビ絡みだがカーナビとは斜め45度ぐらいの方向にて苦労した話だ。カーナビにSDメモリカードのリーダが付いていた。SDメモリ内のMP3ないしWMAファイルを再生できるらしい。そこで手持ちのCDをリッピングしてMP3に変換…

Ubuntu 10.04のgvimが ~/.vim/after/ftplugin/*.vim を読み込……んでくれた!

id:eel3:20110317:1300326487 で ~/.vim/after/ftplugin に置いた *.vim なファイルが読み込まれなくて悩んでいたが、ようやく解決した。Ubuntu用のvimの設定一式をDebian 5.0にコピーしたら同じ問題が起きたので、これはほぼ間違いなく自分の設定に不備があ…

ubuntu 10.04 LTS使用中にマウスが壊れた時に安全にシャットダウンする方法

ubuntu 10.04でPCをシャットダウンする場合、通常は画面右上の電源マーク的なもの*1をマウスでクリックしてシャットダウンを選択するのだが、万一マウスが壊れてしまった場合はどうするべきか?ノートPCなのでタッチパッドが付いているとかUSBの替えのマウス…

Ubuntu 10.04のgvimが ~/.vim/after/ftplugin/*.vim を読み込まない?

C言語やC++を使うときはタブ(半角4文字分)でインデントするので、vimの標準設定(.vimrc にて設定)はそれに合わせている。が、言語によっては別の設定にしたくて、例えばRubyの場合は半角スペース2文字でインデントしたい。という訳でこんなファイル(rub…

思いつきでライフゲームを実装してみた

何の気の迷いか、それとも魔が差したのか、夜中に思いついてライフゲームを実装するという暴挙*1に出てみた。夜中で頭の働き低下していたので、取りあえず書きなれているC++を使用。本来はC言語の方が書きなれているはずだが、ここ最近C++を弄くっている影響…

今更ながらPrime A Note Cressida NBにubuntu 8.04.1を入れた

openSUSE 11.0のx86_64を入れてたんだけど、もう何ヶ月も放置状態だったので、入れ替えた。やっぱり目的に合ったツールを選ばないといけない。元々Cressida NBを買った理由は、 主にプログラミングの勉強用のマシンとして使う。 ついでに持ち運びが楽だとう…

Vine Linux 4.2 起動時にハードディスクのDMAモードを変更する

ふと思い立って、NASを買わないで自作してみた。バカだな、自分。 ちなみにこんな構成。RAIDじゃないのは仕様です。 OS Vine Linux 4.2 FTP MB VIA EPIA-N8000E (VIA CN400 North Bridge + VIA VT8237R-Series South Bridge) HDD HITACHI Deskstar T7K500 32…

ubuntu 8.04.1 LTS Desktop Editionのgccでコンパイル不可能とは思わなかった

今更ながらubuntuを7.10から8.04にアップグレードした。いつも使っているFirefoxのアドオンがFirefox 3に対応するのを待っていたのだ。まあアップグレードといっても途中で止まってしまってにっちもさっちもいかなくなったので、結局クリーンインストールし…