2016年12月16日金曜日

Ubuntu 機 Dell Inspiron 14 5000 シリーズ ( 5459 ) の BIOS アップデート方法

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

2016年11月5日土曜日

Windows10 スタートメニューが表示されない不具合の復旧方法

しょっちゅう、これにハマるので復旧方法をメモしておく。
( これだから、Windows は嫌い )

1. スタートメニューを右クリック → コマンドプロンプト(管理者) を開く

2. あとは下記コマンドを順番に実行

全部やると、数分から数十分かかる。

dism /online /cleanup-image /restorehealth
sfc /scannow
powershell
Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like “*SystemApps*”} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}

3. PC 再起動

参考: windows10のスタートメニューが開けない・表示されない不具合解決方法 | windows操作まとめ

● Windows10, スタートメニュー, 出ない, 表示, されない, 復旧

2016年11月3日木曜日

Linux でメモリ破壊を見つけるときに有効な方法のメモ randomize_va_space, ALSR

デバッグ時に苦悩、懊悩するのが、メモリ破壊系。
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

2016年9月4日日曜日

Wireshark の表示言語変更 日本語 (Japanese) → 英語 (English)

Windows で、Wireshark の表示言語を日本語から英語に変更する手順のメモ。
日本語の表示だとわかりにくい! と思う人は結構いるはず。
Windows7 および Windows10, Wireshark-2.0.5 で確認。

メニューの 編集 → 設定 を選択。

外観 の中の 言語 で English を選択。

日本語出るようになったのいつからだ!?

● Wireshark, ワイヤーシャーク, 日本語, 英語, 表示, メニュー, Japanese, English

2016年7月31日日曜日

Raspberry Pi 3 (Ubuntu MATE) : USB シリアルコンソール端末にする

■ USB シリアル変換基板

Raspberry Pi 3 を USB シリアルコンソール端末に改造。
まずは、USB シリアル変換基板を調達。
変換基板は、SWITCH SCIENCE絶縁 USB シリアル変換基板 がオススメ。
USB の形状は、mini-B になります。
ちょっと高いけど、PC と Raspberry Pi の両方を不意の過電流から守れると考えれば安いもんです。
ジャンパワイヤ (メス-メス) も合わせて調達。

■ GPIO の割り当て確認

http://pinout.xyz/ で GPIO の割り当てを確認。

Pin #Name
025v Power
04Ground
06BCM 14 (UART Transmit) TXD
08BCM 15 (UART Receive) RXD

■ 仮組み

仮組みしてみる。配線は、こんな感じ。

■ 配線四つ編み

四つ編み開始~。
編んどいたほうが扱いやすい。

ピン配置と合わせないといけないので、ヨリ方は調整しながら進める。
5 回ぐらいやり直した (汗)。

よしよし。

■ ケース格納

蓋開けっ放しってのも使いづらいので、HDMI ケーブルの横を 5 mm 角ほど切り込み加工。
カッターナイフで、ちょっとずつ削ればいけます。
一気にやろうとすると、汚くなる可能性あり ( ツゲを彫るより簡単 )。

HDMI コネクタとフレキのコネクタの間を通す。

横のカバーを付ける。

上蓋をはめて完成。

■ UART 設定

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

■ 2016/11/07 追記

UART コンソールで vi 等を起動した場合、画面サイズが 80x24 ぐらいになってしまう。
stty コマンドで変更可能。
~/.bashrc とかに下記を書いておけば、104x40 とかに変更できる。
一時的に変更したければ、直接実行しても良い。

$ vi ~/.bashrc

(下記を追加)
stty rows 40 cols 104

■ 2017/09/13 追記

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

2016年6月30日木曜日

Raspberry Pi 3 (Ubuntu MATE) : 導入まで

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

2016年6月25日土曜日

ドコモ光 ルータ RT-500KI 設定メモ ( 玄人向け ) ユーザ名 パスワード

本日、ドコモ光開通。
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, 玄人

2016年6月15日水曜日

bash 依存コードをチェック ( checkbashisms )

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 サーバがいない時に起動が遅い (Waiting for network configuration...)

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..., イライラ, 起動, 遅い, 待たされる, 時間, かかる

2016年2月13日土曜日

parted の使い方メモ ( 2TB 以上は fdisk ではなく parted で )

8TB の RAID HDD を 1 つのパーティションにしようと思って fdisk 使おうとしたら、2TB までしかいけませんでした。
2TB 以上は parted でやる必要があります。

今回の例は /dev/sdc の HDD にパーティションを切ります。
とりあえず、ヘルプを表示。

# parted /dev/sdc
GNU Parted 2.3
/dev/sdc を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。

(parted) help
  align-check TYPE N            パーティション N のアライメント(TYPE: min|opt)をチェックする
  check NUMBER                  ファイルシステムの簡単なチェックする
  cp [転送元デバイス] 転送元NUMBER 転送先NUMBER
                    ファイルシステムを他のパーティションにコピーする
  help [コマンド]               ヘルプ表示。コマンド指定でそのヘルプを表示
  mklabel,mktable ラベルの種類  新しいラベル(パーティションテーブル)を作る
  mkfs NUMBER ファイルシステムの種類
                    指定した種類のファイルシステムを作る
  mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了
                    パーティションを作る
  mkpartfs パーティションの種類 ファイルシステムの種類 開始 終了
                    パーティションとファイルシステムを作る
  move NUMBER 開始 終了         パーティションを移動する
  name NUMBER 名前              パーティションに名前をつける
  print [devices|free|list,all|NUMBER]
                     パーティションテーブルや、利用可能なデバイス、空き領域、
                     見つかった全てのパーティション、あるいは特定のパーティションについて表示する
  quit                          プログラムを終了する
  rescue 開始 終了              開始、終了で指定した範囲付近にあるパーティションを復活させる
  resize NUMBER 開始 終了       パーティションとその中のファイルシステムをリサイズする
  rm NUMBER                     パーティションを削除する
  select デバイス               操作するデバイスを選択
  set NUMBER フラグ 状態        ファイルシステムのフラグと状態を設定する
  toggle [NUMBER [FLAG]]        パーティションのフラグの状態を反転する
  unit UNIT                     デフォルトの単位を UNIT にする
  version                       GNU Parted のバージョンと著作権情報を表示

現在の状況を確認。fdisk と同じ感じで p。

(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始  終了  サイズ  タイプ  ファイルシステム  フラグ

ラベルを gpt ( GPT: GUID partition table ) に設定。

(parted) mklabel gpt
警告: いま存在している /dev/sdc のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? y

ラベルが設定されていることを確認。

(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ

8TB を 1 パーティションで、ext4 FS に設定。

(parted) mkpart primary ext4 0% 100%

(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始    終了    サイズ  ファイルシステム  名前     フラグ
 1    1049kB  8001GB  8001GB                    primary

最初、0, -0 でパーティションを切ってたら、アライメントが正しくないとエラーになってしまいました。
開始が 17.4kB になってました。パフォーマンス的に良くないらしいので、0% 100% で指定したほうがよいです。

(parted) mkpart primary ext4 0 -0
警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? I
(parted) p
モデル: ATA H/W RAID10 (scsi)
ディスク /dev/sdc: 8001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号  開始    終了    サイズ  ファイルシステム  名前     フラグ
 1    17.4kB  8001GB  8001GB                    primary

q で終了。

(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

mkfs.ext4 コマンドで /dev/sdc1 をフォーマット。
time コマンドで実行時間を計測したところ、57 秒かかりました。

# time mkfs.ext4 /dev/sdc1
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244187136 inodes, 1953480695 blocks
97674034 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
59616 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done


real    0m57.858s
user    0m2.288s
sys     0m0.736s

マウントしてみる。よしよし。

# mount /dev/sdc1 /mnt/

# df
Filesystem      1K-blocks      Used  Available Use% Mounted on
/dev/sda1        95989516  31844624   59245772  35% /
udev             16434540         4   16434536   1% /dev
tmpfs             3288768       832    3287936   1% /run
none                 5120         8       5112   1% /run/lock
none             16443832       152   16443680   1% /run/shm
/dev/sdb1        61407392   6674084   51590840  12% /ssd
/dev/sda4       761367048 640958904   81709856  89% /home
/dev/sdc1      7752225032     51360 7361461152   1% /mnt

● fdisk, parted, 2TB, HDD, パーティション, partition, フォーマット, format, gparted, アライメント, 正しくない, パフォーマンス