投稿

Debian Linux/amd64 9.1をUSBメモリーにインストールし、カスタマイズされたLinuxカーネルを使う

普段は、NetBSD/amd64-currentを使用しているのだが、WindowsかLinuxでしか動かないデバイスを使ってみたり、どういう挙動をしているのか確認する際には、Linuxを一時的に起動させたい。 その際には、printkをいくつも追加してビルドしたLinuxカーネルで起動させたい。 USBメモリーまたはUSB HDDにDebian Linuxをインストールする NetBSDだと、build.sh live-imageで、そのままgzcatとddコマンドで書き込めるXも含まれた環境のイメージファイルが作れるので、あるマシンで一時的にNetBSDを起動させようと言う場合には、非常に助かっている。 同じようにLinuxでもライブイメージを探してみたのだが、カーネルをISO 9660イメージの中に含めていて置き換えが難しいものしか見つからない。 確かにあっても、ルートディスクデバイスを決め打ちするので、あまり汎用性はないかもしれないが…。 Debian Linux/amd64 9.1を以下のような手順でインストールすれば、1台目のUSBメモリーやUSB HDDでどのマシンでも起動できるので、書いておく。 Debian Linux/amd64 9.1のライブイメージをダウンロードする(今回はXFCE版を使用した)ダウンロードしたイメージファイルをDVD-Rに書き込むDebian Linux/amd64 9.1をインストールしたいUSBメモリーやUSB HDDをマシンにつなぐ書き込んだDVD-RからDebian Graphical Installerを起動させる(USB接続のDVD-ROMドライブで良い)USBメモリーやUSB HDDにインストールするDVD-Rをドライブから抜き、あるいは、DVD-Rドライブを外して、USBメモリーまたはUSB HDDから起動させる USBメモリーにダウンロードしたイメージファイルをddコマンドで書き込んでインストールする方が速いし楽なのだが、そうすると、grub.cfgを後で手修正しないといけないので、DVD-Rにしておくのがお勧めである。 Linuxカーネルをビルドする Debian Linux 9.1では、linux-packageというパッケージはなくなっているようだが、それを使ったウェブページばかり検索されてくる…

NetBSDでwpa_supplicantを使ってWEPでWi-Fi接続する場合

NetBSDでWEPでWi-Fi接続する場合には、ifconfig(8)コマンドを使えば簡単なのだが、 wpa_supplicantを使っても接続してみたい。 まず、ifconfig(8)を使った場合を書いておく。run(4)なWi-Fiアダプターを使う場合である。 # ifconfig run0 ssid [SSID名] nwkey [パスフレーズ] # dhcpcd run0 同じことをwpa_supplicantを使って設定する場合を書いておく。 $ cat ~/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel network={ ssid="[SSID名]" scan_ssid=1 key_mgmt=NONE # WEP wep_tx_keyidx=0 wep_key0="[パスフレーズ]" } # wpa_supplicant -d -i run0 -c ~/wpa_supplicant.conf # dhcpcd run0 今さらWEPもないはずなのだが、必要な時はあるので、書いておいた。

FreeBSD 11.1のリリースとALPS GlidePoint

PS/2接続のALPS GlidePointがどう動くのかを知りたくて、 NEC VersaPro JVF-7にリリースしたてのFreeBSD/amd64 11.1 RELEASEをインストールしてみた。 結果として、xf86-input-synapticsでProtocol "alps"で動かすことは できなかった。 他には、pkgコマンドでX.orgをインストールすると、llvm 4.0がインストール されてしまうのが気になった。 baseにllvm 4.0が含まれているのに、重複してしまうのは、あまり面白くない。

Windows 10でインストールされているフォントをPowerShellで一覧する

Windows 10でインストール済みのフォントの一覧をテキストファイルで得たい用事があった。 こんな簡単なことなのだが、ぴったりの例を探すことができなかった。 ちゃんとPowerShellを体系的に理解しないといけないが、以下のようにすれば動く。 [void] [system.reflection.assembly]::loadwithpartialname("system.drawing") (new-object system.drawing.text.installedfontcollection).families.name | out-file fonts.txt http://codegists.com/snippet/powershell/displayallfontsps1_matthewjberger_powershell が参考になった。

NetBSDのdate(1)コマンドは、なぜデフォルトでは分かりにくい結果を返すのか?

はじめに NetBSDでLANG=ja_JP.UTF-8な環境で生活しているが、date(1)コマンドを 実行すると、分かりにくい結果の文字列が返って来るのがなぜなのか ずっと気になっていた。 $ date 月 7月 10 21:00:41 JST 2017 やっと重い腰を上げて調べてみたので、結果を書いておく。 date(1)のソースコードを見てみるsrc/bin/date/date.cに出力の処理は書かれているようである。 特にフォーマットを指定しない場合の出力フォーマットを決めている箇所を 探すと、以下の箇所が見付かった。141行目である。 132 if (!rflag && time(&tval) == -1) 133 err(EXIT_FAILURE, "time"); 134 135 136 /* allow the operands in any order */ 137 if (*argv && **argv == '+') { 138 format = *argv; 139 ++argv; 140 } else 141 format = "+%a %b %e %H:%M:%S %Z %Y"; 142 143 if (*argv) { 144 setthetime(*argv); 145 ++argv; 146 } どうやら、ロケールの標準値を指定する等ではなく、私が見やすくないと思っていた フォーマットで決め打ちになっている。 POSIXの規格を見てみる POSIX(これはIEEE 1003.1-2008のことであって、Open Groupのウェブサイトで公開されているものと思っている)の規格の内容を調べてみると、date(1)コマンドに関する最新版…

Windows 10 home Creators UpdateでCAPSキーをCTRLキーにする

Microsoft Windows 10 homeをインストールしているマシンがあるのだが、CAPSキーをCTRLキーに置き換えて使用している。 以下のような内容をcaps2ctrl.regと言うファイル名で保存し、ダブルクリックでregedit.exeで書き込むば良い。 REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00 どこで入手したのか原典が分からなくなってしまっているが、Microsoft Windows 10 home Creators Updateで動いている。

NetBSD/evbearmv7hf-el VEXPRESS_A15カーネルをqemu-system-armで動かす

Jared McNeillさんがNetBSD/evbarmのVEXPRESS_A15カーネルをqemu-system-arm -M vexpress-a15で動かせるようにしてくれた。 fdt(4)を使うようになったのが注目点なのかもしれないが、私としてはqemuのSDカードエミュレーションがNetBSDから使えるようになったことに注目している。 以前、INTEGRATOR_CPカーネルやGUMSTIXカーネルを起動させた際には、SDカードコントローラーの想定しない状態変化をNetBSDが設定しようとしてエラーになり、使えなかったような記憶があるためだ。 INTEGRATOR_CPカーネルやGUMSTIXカーネルは後ほど試してみるとして、まずはhttp://mail-index.netbsd.org/port-arm/2017/06/02/msg004154.htmlにある内容をやってみた。 qemuは、pkgsrc/emulators/qemuからインストールしたqemu-2.9.0nb1であり、ホストはNetBSD/amd64 8.99.1である。 まずは、以下のように実行し、最新のevbearmv7hf-elのreleaseディレクトリーを用意する。場所は、/usr/world/8.99/evbearmv7hf-el/releaseにする。 $ cd /usr/src $ cvs up -dPA $ ./build.sh -U -O /usr/world/8.99.1/evbearmv7hf-el/obj -T /usr/world/8.99.1/evbearmv7hf-el/tools -D /usr/world/8.99.1/evbearmv7hf-el/destdir -R /usr/world/8.99.1/evbearmv7hf-el/release -u -x -j 4 -m evbearmv7hf-el release 次に、作業用ディレクトリーを作り、必要なファイルを用意する。注意事項としては、dtbファイルは最新のNetBSD-currentではbuild.shの実行の中で生成されるので、pkgsrcからインストールする必要はない点がある。 $ mkdir ~/tmp $ cd ~/tmp $ cp /usr/world/8…