CH34x USB-UART macOS 10.12 Sierra対応ドライバ

ネットサーフィンしていたらなんか出てきた。

追記

  • スケッチの書き込みもできた

Run Makeblock hardware (and Arduino-compatible Boards with CH340/CH341) on Mac OS Sierra

  • CH34x_Install_V1.3.pkg

こいつがSierra対応のドライバらしい…が怖いので色々調べてみる。

CH34xの製造元のフォーラムにも同じような投稿とともに同じpkgが置かれていた。
CH340导致macOS 10.12 Sierra系统内核崩溃
どちらもCH34x_Install_V1.3.pkg

633b61bc44a3c68ee837f82ebe843d4c  CH34x_Install_V1.3.pkg
633b61bc44a3c68ee837f82ebe843d4c  CH34x_Install_V1.3.pkg
633b61bc44a3c68ee837f82ebe843d4c  CH34x_Install_V1.3 (1).pkg

sha256sum CH34x_Install_V1.3.pkg
33156fd45a10efd50bede069c2081687d65053c88320a7166e0e05841c8f9c5b  CH34x_Install_V1.3.pkg

全部同じやつでした。

中に入ってるusbserial.kextのスキャン結果 - Antivirus scan for b99509f8c1ca3e5167d376ddcf1734f9bc3b60ef9d57a3e1865874afd6648b25 at UTC - VirusTotal

sha256sum usbserial(実行ファイル単体) 067f2665f5874b5da52751bd9f85e79a655c7db975102b8665098a8eac0baa59 usbserial
Antivirus scan for 067f2665f5874b5da52751bd9f85e79a655c7db975102b8665098a8eac0baa59 at UTC - VirusTotal

どれもシグネチャヒットせず。現状は安全なものと思われる。

と言うわけでインストールしてみた。
テスト対象はch340gをのせてる300円ぐらいのNano互換ボードと、USB-UART変換アダプタ

f:id:tsuttsu305:20160927172004j:plain f:id:tsuttsu305:20160927172011p:plain

無事認識されたみたいです。

macOS Sierraにphpbrewのインストール

phpbrewインストールメモ

必要なもの

  • homebrew

インストール

$ brew install automake autoconf curl pcre bison re2c mhash libtool icu4c gettext jpeg openssl libxml2 mcrypt gmp libevent
$ brew install homebrew/php/phpbrew
$ phpbrew init
$ vim ~/.bashrc
source /Users/<Username>/.phpbrew/bashrc #追記する

$ which php
/usr/local/bin/php

$ phpbrew lookup-prefix homebrew
/usr/local/Cellar:/usr/local

$ brew link icu4c --force

$ phpbrew install 7.0.11 +default +intl +openssl=/usr/local/opt/openssl


$ which php
/usr/local/bin/php

$ phpbrew switch php-7.0.1
$ which php
/Users/<Username>/.phpbrew/php/php-7.0.11/bin/php1

macOS Sierra 10.12でCH34Xが使えない

MacBookProをSierraにアップデートしたらCH340GのUART - Serialのドライバが動作しなくなっていた…
El Capitanのときに使っていたドライバをインストールして接続するとkernel panicで死亡。
ドライバ消し去ったらkernel panicはしなくなるのでVMのWindows10(こっちはPnPで普通に使える)にパススルー接続して書き込むしかない模様。

IOUSBDeviceがIOUSBHostDeviceとか色々変わっているみたいなのでそこら辺が原因かもしれない。XcodeでIOKitのヘッダーファイルのコメントを見ると移行方法とか書いてあるし。

LVM(Logical Volume Management)メモ

ディスクの中身について整理

  • MBR (Master Boot Record)
  • GPT (GUID Partition Table)
    • HDDとかの大容量化に伴い登場。
    • 最大8ZBまで管理できるらしい(何年後になるんだ)
    • EFIと一緒に使われること前提で作られてるっぽい
    • Windows(VistaのSP1…ぐらいから64bit)でも起動ディスクとして使用できるが、BIOS経由でGPTからのbootはできない。EFI経由のみ可能
    • MBRには保護用のデータが書き込まれる。(要するにディスクいっぱいだから使えないよ〜みたいなやつかな。ハイブリッドMBRとかあるらしいが諦めてGPTつかえよ…)
      • BIOSと違ってEFIEFIプログラムをロードして実行できるから色々できるようになったんだろう。たぶん

LVM(Logical Volume Management)

  • 日本語だと論理ボリュームマネージャ
  • 最近までLVMのLはLinuxのLだと思ってたよ!! あくまで技術の名前で特定のソフトウェアの名前とかではないらしい
  • LVM領域はWindowsからはアクセス不可(まぁどうせ何らかの方法はあるんだろうけど)
  • 柔軟な領域の割り当てが可能らしい。
  • GRUBはLVMをサポートしているので特に問題もなさそう。(GRUB Legacyはしてないけど)
  • 物理ディスクをまたいだ構成とかも可能

用語的なの

  • 物理ボリューム (PV)
    • LVM用のパーティション
    • 中身は物理エクステント(PE)でスライスチーズみたいに分割されてる。(特に意識することはないのかな)
  • ボリュームグループ (VG)
    • PVをまとめたもの。まとめるPVは同一ドライブの必要はない
  • 論理ボリューム (LV)
    • VGの中に作成する。まぁ要するに論理パーティションと似たようなものっぽい

Linux Mintインストール記録

  1. RufusでUSBにLinuxMintのisoを書き込む(EFI-GPT用の設定で書き込まないとGPTとか使えないと思うよ)
  2. LiveBootしてとりあえずTerminalを開く
  3. 今まであったパーティションぶっ飛ばしてパーティションテーブルをGPTで再構築
  4. ESP(EFI System Partition)つくる
  5. LVM用に色々やる。
# /dev/sdaはUSBメモリに割り当てられていた。心配なときはlsblkでもすればいいんじゃね
(root)# fdisk /dev/sdb

#fdiskでパーティションをGPT用に再構築
(fdisk)> g
新しくパーティション作成
(fdisk)> n
(パーティション番号どうするか聞かれるのでdefaultの1)>1
(パーティションの最初の位置どうするか聞いてくるが、とりあえずEnter)>[Enter]
(パーティションの終わりを聞いてくるので適当に300M)>+300M
#EFI用にType変更
(fdisk)>t
(fdisk) Type >1(EFI System) #正しいかどうかは忘れたのでlで確認してから打ってね(

#LVM用にパーティション作成。
(fdisk)>n
#Partition番号
(fdisk)>[Enter]
#開始セクタ
(fdisk)>[Enter]
#最終セクタ(全部使うので何も入れずEnter)
(fdisk)>[Enter]
#タイプをLVMに変更
(fdisk)>t
(fdisk)>わすれたのでlで確認してlvm2のコード入力
(fdisk)>w

#多分これで出来てる。
#ESPをフォーマット
(root)# mkfs.fat -F32 /dev/sdb1

#LVMのPVを作成
(root)# pvcreate /dev/sdb2
#VG作成
(root)# vgcreate <好きな名前> /dev/sdb2
#LV作成
(root)# lvcreate -L 20G <好きな名前> -n LinuxMint(これも好きな名前)
#あとは/dev/mapper/以下にできているのでそいつをmkfsで適当に好きなようにする。
#/dev/sdb2を指定しないように