Ubuntu のキーバインドを Emacs 風に変更する方法。
Ubuntu 16.10 で確認。
1. gnome-tweak-tool をインストール
このツール、なくならないで欲しい。
# apt install gnome-tweak-tool
2. キーボードとマウスの設定を変更
キーテーマを Emacs に変更。
● Ubuntu, key, キーバインド, Emacs, 変更
主に Linux (Ubuntu, Fedora) 関連の設定メモ&小技集です。たまに Windows 関連ネタも。
(プロンプトの $ は一般ユーザ権限、# は root 権限です。いちいち説明はせんよ。)
Ubuntu 機の Dell Inspiron 14 5000 シリーズ (5459) で、BIOS をアップデートした時の話。
Dell のサイトで 2016 年 12 月 8 日にリリースされた BIOS をダウンロード。
ファイル形式が Windows/DOS になってるので、ちょっと困る。
Windows の入った HDD は、早々に SSD に換装済み。アップデートできんのか?
起動時するときに、たまに無線 LAN のデバイスが無いと言われるので、アップデートに期待してたんやけど、、、。
ちょっとググってみると BIOS のメニューから USB メモリとかでアップデートできそうな気配。
早速 USB (micro SD) に BIOS ファイル (Windows/DOS .exe 形式) をコピー。
PC に挿して、BIOS 起動。起動時に F12 キーで Boot Menu 表示。
BIOS Flash Update を選択。
.exe ファイルを選択。
ファイル選択後、Begin Flash Update を選択するときは、AC アダプタがつながってないと選択できないようになってます。
良くできてるなぁと感心。
AC アダプタを挿して、
アップデート開始。
2 分ぐらいで完了。
最近の Dell PC は、だいたい同じ手順でいけるのでは?
● Dell, Inspiron, Ubuntu, BIOS, Windows 無い, アップデート, update, 5459
しょっちゅう、これにハマるので復旧方法をメモしておく。
( これだから、Windows は嫌い )
全部やると、数分から数十分かかる。
dism /online /cleanup-image /restorehealth
sfc /scannow
powershell
Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like “*SystemApps*”} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}
参考: windows10のスタートメニューが開けない・表示されない不具合解決方法 | windows操作まとめ
● Windows10, スタートメニュー, 出ない, 表示, されない, 復旧
デバッグ時に苦悩、懊悩するのが、メモリ破壊系。
SIGSEGV で core を吐かせる前にやっておくべき設定のメモ。
この記事に何度助けられたことか。
参考: メモリ破壊の現場を見つけるTips - nariのぶろぐ
プログラム実行時のアドレスを固定。
これやったあとも原因の特定に時間がかかってしまうんだが…。
ASLR とか、この記事読んで初めて知った。
# echo 0 > /proc/sys/kernel/randomize_va_space
あと、バッファオーバーフロー系は、gcc のコンパイルオプション (下記) で対応。
参考: IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御
-fstack-protector-all
● Linux, プログラム, 実行, program, run, アドレス, address, 固定, fix, randomize_va_space, デバッグ, debug, メモリ, 破壊, memory
Raspberry Pi 3 を USB シリアルコンソール端末に改造。
まずは、USB シリアル変換基板を調達。
変換基板は、SWITCH SCIENCE の 絶縁 USB シリアル変換基板 がオススメ。
USB の形状は、mini-B になります。
ちょっと高いけど、PC と Raspberry Pi の両方を不意の過電流から守れると考えれば安いもんです。
ジャンパワイヤ (メス-メス) も合わせて調達。
http://pinout.xyz/ で GPIO の割り当てを確認。
| Pin # | Name |
| 02 | 5v Power |
| 04 | Ground |
| 06 | BCM 14 (UART Transmit) TXD |
| 08 | BCM 15 (UART Receive) RXD |
仮組みしてみる。配線は、こんな感じ。
四つ編み開始~。
編んどいたほうが扱いやすい。
ピン配置と合わせないといけないので、ヨリ方は調整しながら進める。
5 回ぐらいやり直した (汗)。
よしよし。
蓋開けっ放しってのも使いづらいので、HDMI ケーブルの横を 5 mm 角ほど切り込み加工。
カッターナイフで、ちょっとずつ削ればいけます。
一気にやろうとすると、汚くなる可能性あり ( ツゲを彫るより簡単 )。
HDMI コネクタとフレキのコネクタの間を通す。
横のカバーを付ける。
上蓋をはめて完成。
UART0 でコンソールを使えるようにするために、コアクロックを 250MHz に変更。
# vi /boot/config.txt (下記を追記) core_freq=250
上記は一時対応なので、ちゃんと設定したい場合は下記を参照。
http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41
■ 参考
http://qiita.com/komeda-shinji/items/03546ae1014c6b4edc92
http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41
UART コンソールで vi 等を起動した場合、画面サイズが 80x24 ぐらいになってしまう。
stty コマンドで変更可能。
~/.bashrc とかに下記を書いておけば、104x40 とかに変更できる。
一時的に変更したければ、直接実行しても良い。
$ vi ~/.bashrc (下記を追加) stty rows 40 cols 104
apt update/upgrade を実行すると、UART が使えなくなった。
config.txt に下記を設定 (追加) すれば解決。
kernel 4.4.9 以降? UART が DISABLE になっているようだ。2017/09/13 時点で、4.4.38 だった。
# /boot/config.txt (下記を追加) enable_uart=1
■参考
https://raspberrypi.stackexchange.com/questions/45570/how-do-i-make-serial-work-on-the-raspberry-pi3
● Raspberry Pi 3, Ubuntu MATE, UART, USB, シリアル, serial, コンソール, console, 変換, コネクタ, mini-B, stty, rows, cols, 画面, サイズ, screen, size
Raspberry Pi 3 Model B Base Kit 32GB。
KSY から購入。
電話帳より小さいサイズの箱に入って届いたので、「えっ」と思ってしまいました。
ケースはブラックで、9,720 円。
OS は、Ubuntu MATE 16.04 LTS を選択。
Unetbootin でイメージを焼けば良いのかと思って、説明も読まずに試したところ、うまくいきませんでした (当たり前か)。
Win32 Disk Imager を使ってインストール。簡単ポン。
とりあえず、起動。
このあと、下記コマンドでファイルシステムをリサイズ。
これやらないと、8 GB ぐらいしか認識してくれない。
ここをよく読むこと。http://ubuntu-mate.org/raspberry-pi/
# fdisk /dev/mmcblk0 # resize2fs /dev/mmcblk0p2
今回は、ここまで。
次は、「Raspberry Pi 3 を USB シリアルコンソール端末にする」です。
● Raspberry Pi 3, Ubuntu MATE
本日、ドコモ光開通。
Galaxy S4 から 3 年ぶりに Galaxy S7 edge に機種変更したタイミングで、フレッツ光からドコモ光に乗り換えです。
設定ガイドを読むと、Windows PC で、簡単セットアップツールをダウンロードすることになっています。
Windows 持ってない人は、どうするの?
そんな人向けのメモ。
設置されたのは、ホームゲートウェイ/ひかり電話ルータ (RT-500KI)。
LAN ポートに PC を接続すると、192.168.1.0/24 ネットワークの IP アドレスが DHCP で設定されます。
192.168.1.1 がルータの IP アドレス。
ブラウザで http://192.168.1.1/ に接続すると、機器設定用パスワードの設定が求められます。
機器設定用なので、自分の好きなパスワードを設定。
設定が完了したら、機器設定用ユーザ名、パスワードで認証する必要があります。
| 機器設定用ユーザ名 | user (小文字です) |
| 機器設定用パスワード | さっき設定したパスワード |
次にプロバイダの設定。うちの場合は OCN です。
基本設定 -> 接続先設定 (IPv4 PPPoE)
| 接続先名 | OCN |
| 接続先ユーザ名 | xxxxxxxx@xxx.ocn.ne.jp |
| 接続パスワード | プロバイダの接続パスワード |
● ドコモ光, RT-500KI, ルータ, router, ルーター, 設定, ユーザ, ユーザ名, パスワード, user, password, 簡単セットアップツール, 無しで, なしで, 使わない, Linux, Mac, OCN, 玄人
bash 依存コードが含まれているシェルスクリプトを sh で実行すると、思ったように動かないことがある。
それをチェックするには、checkbashisms を使うと良い。
■ checkbashisms をインストール
# apt-get install devscripts
■ 使用例
サンプルコード
$ cat hogehoge.sh #!/bin/sh source hogehoge
■ 実行例
source は使っちゃダメ。代わりに "." を使うべし。
$ checkbashisms hogehoge.sh possible bashism in hogehoge.sh line 2 (should be '.', not 'source'): source hogehoge
● bash, 依存, コード, シェルスクリプト, shell, script, sh, チェック, check, checkbashisms, 専用
Ubuntu で、DHCP の設定で立ち上がるように設定していて、DHCP サーバがいない時ってたまにあります。
(いや、普通はないけど)
このとき、ディスプレイには Waiting for network configuration... と表示されて、
非常に待たされてイライラさせられます。
これの対処法。
sleep 40 と sleep 59 のところをコメントアウト。
# vi /etc/init/failsafe.conf
# Plymouth errors should not stop the script because we *must* reach
# the end of this script to avoid letting the system spin forever
# waiting on it to start.
$PLYMOUTH message --text="Waiting for network configuration..." || :
# sleep 40 (★ ここをコメントアウト)
$PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :
# sleep 59 (★ ここをコメントアウト)
$PLYMOUTH message --text="Booting system without full network configuration..." || :
■参考
http://www.aa7.netvolante.jp/wp/?p=1579
● Ubuntu, DHCP, Waiting for network configuration..., Waiting up to 60 more seconds for network configuration..., イライラ, 起動, 遅い, 待たされる, 時間, かかる