20210109のMacに関する記事は9件です。

Excel 2019 for Mac VBAでAppleScriptをインストールする2

Excel 2019 for Mac VBAでAppleScriptをインストールする2

あけましておめでとうございます。新年もよろしくお願いします。

昨年、VBAでAppleScriptをインストールする方法を書きましたが、その時に2点問題点を上げました。

  1. AppleScriptコードのインラインがややこしい
  2. 作成したAppleScriptファイルを直接、ハイパーリンクで開けない

今回はその問題点を解決していきたいと思います。

AppleScriptコードのインラインがややこしい

AppleScriptをVBAインライン化するWEBアプリAppleScript2VBAを作成しました。

スクリーンショット 2021-01-09 21.43.55.png

UTF-8のAppleScriptファイルをアップロードし、変換するとFunctionの形でインライン化されます。

インライン化されたスクリプトをテキスト出力したものを実行することで自動的に ~/Library/Application Scripts/com.microsoft.Excel/ にインストールされるようになっています。

サンプルコード

Sub a2vcheck()

Dim root As String
Dim path1 As String
Dim appscript As String

root = "/Users/Shared"

path1 = root & Application.PathSeparator & "as2vbaTest3.applescript"

MsgBox (path1)

applescript = FormeA2V3()

Open path1 For Output As #2
    Print #2, applescript
Close #2

ActiveWorkbook.FollowHyperlink Address:=root

End Sub

'AppleScript2VBA変換コード

Function FormeA2V3() As String
Dim code As String

code = "set root to (path to home folder) as string" & vbNewLine & "set mkEdir to root & " & ChrW(34) & "Library:Application Scripts:" & ChrW(34) & vbNewLine _
& "set tgtpath to root & " & ChrW(34) & "Library:Application Scripts:com.microsoft.Excel:" & ChrW(34) & vbNewLine & "set mkas to tgtpath & " & ChrW(34) & "test.applescript" & ChrW(34) & vbNewLine & vbNewLine _
& "set asval to "

code = code & ChrW(34) & "on lt8(rpath)" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " try" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " set txt to read (rpath) as " & Chr(-32397) & "class utf8" & Chr(-32396) & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " on error number err_num" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " set txt to false" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " end try" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & " return txt as text" & ChrW(34) & "& linefeed & "
code = code & ChrW(34) & "end lt8" & ChrW(34)

code = code & vbNewLine & "tell application " & ChrW(34) & "Finder" & ChrW(34) & vbNewLine & "if not (exists tgtpath) then" & vbNewLine & "make new folder at mkEdir with properties {name:" & ChrW(34) & "com.microsoft.Excel" & ChrW(34) & "}" & vbNewLine & "end if" & vbNewLine & "end tell" & vbNewLine _
& vbNewLine & "try" & vbNewLine & "set tfile to open for access file mkas with write permission" & vbNewLine & "set eof of tfile to 0" & vbNewLine & " write asval to tfile" & vbNewLine & "end try" & vbNewLine & vbNewLine & "close access tfile" & vbNewLine & vbNewLine _
& "tell application " & ChrW(34) & "Finder" & ChrW(34) & vbNewLine & " open tgtpath" & vbNewLine & "end tell"

FormeA2V3 = code

End Function

作成したAppleScriptファイルを直接、ハイパーリンクで開けない

試行錯誤した結果、先に同名の空ファイルを作成した後に上書きすることでハイパーリンクで開けるようになりました。十分時間をあける必要があるようです。

これはあくまで想定ですが、OSがインデックスファイルを作成する前にハイパーリンクで開くとエラーが発生するように見受けられました。

実際の挙動

実際に実装したGIFがこちらです。

formeA2Vinstall.gif

実装する場合はユーザーに警告を表示したりとしっかり説明する必要があると思います。

AppleScript2VBAはMIT Licenseなので自由にお使いください。バグが発生した場合は私のサイトから連絡していただければ幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【M1】MacにHomebrwがインストールできない「zsh: command not found: brew」

2020年11月11日以降に購入したボクのMacBookに、Homebrwがインストールできないといった問題が起きました。(エラー zsh: command not found: brew )調べたところ、最新のMacBookのCPUにはApple社が開発した「M1」と言うモノを使っているみたいで、この「M1」が原因でMacにHomebrwがインストールできないみたいです。同じように2020年11月11日以降に最新のMacBookを購入して、Homebrwがインストールできない方は以下の方法を試してみて下さい。

MacBookのCPU (プロセッサ)を調べる

ターミナルから調べる方法

ターミナルから以下のコマンドを実行して下さい。実行するとCPUの情報が取得できます。

terminal
$ sysctl -a machdep.cpu.brand_string

## 実行結果
machdep.cpu.brand_string: Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz

GUIから調べる方法

  1. PC左上の、「apple」のボタンをクリック
  2. 「このMacについて」をクリック
  3. macOSの下欄に書いてあるプロセッサの情報を見る

スクリーンショット 2021-01-09 18.26.35.png

ターミナルの設定を 「Rossetaを使用して開く」 に変更する

CPUがM1だった場合、ターミナルの設定を、Rosseta使用して開くに変更しないと、Homebrewはインストールができません。

  1. ファインダーの検索窓で 「ターミナル」 と検索
  2. 出てきたターミナルを右クリックして、 「情報を見る」 をクリック
  3. 「Rosseta使用して開く」 (またはRosseta2) 左横のチェックボックスにチェックを入れる
  4. ターミナルを再起動 スクリーンショット 2021-01-09 18.36.52.png

再度Homebrwをインストール

ターミナルを起動し、以下のコマンドを入力して Homebrew をインストールしてみて下さい。今度はうまくいくはずです。Homebrewホームページ

terminal
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

確認

terminal
brew -v

# 実行結果
Homebrew 2.6.2

これまでの設定でまだHomebrwが入らない方は、ターミナルのRossetaを使用して開くがうまく反映されていない可能性があるので、Macbookを再起動して、再度挑戦して下さい。
ありがとうございました。

参考
https://qiita.com/shira-shun/items/0f6213f4923cb5544367
https://freeheroblog.com/first-conf/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacBook Proが突然ブラックアウトした

前書き

タイトルにもあるように突然画面が消えた。なんだかこんな現象が前にもあった気がする。。
キーボードを押しても何しても反応がない。ただ調べてみるとあっけなく復活したので記事にする。(自分のマックだと何回も起こりそうだし、、)

結論

再起動をするためにタッチIDを押してみる。ここで反応がなければSMCリセットを実行する。

SMCリセットはマックの電源が落ちている状態で電源を繋ぎ「シフト」「コントロール」「オプション」「電源ボタン」の4つを10秒同時に長押しし、同時に離す。これにより完全に電源が落ちるので電源ボタン(タッチID)を押して再度起動させる。

以上です!

めちゃくちゃ簡単で特に何もつまることはないのですが定期的に落ちるのが謎で腹が立ちます笑
私は神戸市に住んでいるのですが大寒波の影響で-9度にまで冷え込んでいるのも原因だったのかもしれません。

PS 

開発環境を開いたままブラックアウトするとmysqlに必要なファイルが消えてしまうことがあるようです。以前にも消えたことがあったので冷静に対処しました笑
その時の記事です↓
https://qiita.com/soshiro/items/9f62632005f34af24248

スクリーンショット 2021-01-09 17.13.33.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacからWindowsへPC名でリモートデスクトップ接続

普段使いは Mac だが Windows の作業機会が増えてきたため、このたび Mac から Windows を操作できるようにしました。
リモートデスクトップ機能は Mac と Windows の端末を個別に持っており、用途によって頻繁に使い分ける必要がある人にオススメの機能です。

確認環境
・ macOS:macOS Catalina 10.15.5
・ Windows:Windows Pro 20H2 (OS ビルド 19042.685)
・ Microsoft Remote Desktop:10.5.0(1841)
注意 : リモートデスクトップ接続は Windows Pro のみの機能で Windows Home では利用できません。

以前は Windows の PC 名での接続設定は煩雑で IP 指定で接続するドキュメントが多かったようですが、今回試した Windows のバージョンではとても簡単に設定することができるようになっているようです。

事前準備

リモート接続までの事前準備は大きく6ステップ。最初に Windows 側の設定を行い、その後 Mac 側の設定を行います。

  1. 【Windows側作業】リモート接続の許可設定
  2. 【Windows側作業】PC名の確認
  3. 【Windows側作業】PC名で名前解決できることを確認
  4. 【Mac側作業】PC名.local で名前解決できることを確認
  5. 【Mac側作業】Microsoft Remote Desktop のインストール
  6. 【Mac側作業】Microsoft Remote Desktop の設定

Windows側作業

リモート接続の許可設定

Windows の検索フォームに リモート と入力し、表示された検索結果から リモート デスクトップの設定 を選択します。

「リモート デスクトップ」が表示されたら リモートデスクトップを有効にする の設定を オン に設定します。

次にリモート接続時に PC がスリープモードにならないように PCが電源に接続されている場合は.... の横 設定の表示 を押下し、 「電源とスリープ」からスリープの設定 なし を選択します。

PC名の確認

Windows の検索フォームに デバイス名 と入力し、表示された検索結果から PC 名を表示する を選択します。

デバイス仕様デバイス名 がリモート接続する際に利用する PC 名となります。変更したい場合には このPCの名前を変更 ボタンから行ってください。
注意 : PC 名は予期せぬトラブルを回避するため英数字を推奨します。

WindowsのPC名の名前解決の確認

Windows の検索フォームに Power と入力し、表示された検索結果から Windows PowerShell を選択します。

表示されたウィンドウに以下コマンドを入力します。

$ Resolve-DnsName PC名

以下のような表示がなされれば確認完了です。

PS C:¥> Resolve-DnsName PC名

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
...省略...
PC名                                            A      1200  Question   192.168.1.194

Mac 側作業

PC名.local で名前解決できることを確認

Spotlight検索で Terminalと入力し、Terminalを起動します。

表示されたウィンドウに以下コマンドを入力します。

$ dns-sd -G v4v6 PC名.local

以下のような表示がなされれば確認完了です。

$ dns-sd -G v4v6 PC名.local
DATE: ---Sat 09 Jan 2021---
11:52:04.339  ...STARTING...
Timestamp     A/R    Flags if Hostname                               Address                                      TTL
...省略...
11:52:04.541  Add        2  5 PC名.local.                            192.168.1.194                                60

Microsoft Remote Desktop のインストール

Mac の App Store で Microsoft Remote Desktop を検索して、インストールする。
app_store_image

Microsoft Remote Desktop の設定

Micro Remote Desktop を起動して、 + ボタンから Add PC を選択する。

PC name に PC名.local を入力し、Add ボタンを押下する。

リモートデスクトップ接続の実施

接続の開始は Microsoft Remote Desktop で右クリックをし、Connect を選択することで行う。接続の際に求められるユーザー名、パスワードはWindowsのものを指定する。

接続に成功すると Mac のウィンドウ上に Windows の画面が表示される。

参考情報

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PC名でMacからWindowsにリモートデスクトップ接続する

普段使いは Mac だが Windows の作業機会が増えてきたため、このたび Mac から Windows を操作できるようにしました。
リモートデスクトップ機能は Mac と Windows の端末を個別に持っており、用途によって頻繁に使い分ける必要がある人にオススメの機能です。

確認環境
・ macOS:macOS Catalina 10.15.5
・ Windows:Windows Pro 20H2 (OS ビルド 19042.685)
・ Microsoft Remote Desktop:10.5.0(1841)
注意 : リモートデスクトップ接続は Windows Pro のみの機能で Windows Home では利用できません。

以前は Windows の PC 名での接続設定は煩雑で IP 指定で接続するドキュメントが多かったようですが、今回試した Windows のバージョンではとても簡単に設定することができるようになっているようです。

事前準備

リモート接続までの事前準備は大きく6ステップ。最初に Windows 側の設定を行い、その後 Mac 側の設定を行います。

  1. 【Windows側作業】リモート接続の許可設定
  2. 【Windows側作業】PC名の確認
  3. 【Windows側作業】PC名で名前解決できることを確認
  4. 【Mac側作業】PC名.local で名前解決できることを確認
  5. 【Mac側作業】Microsoft Remote Desktop のインストール
  6. 【Mac側作業】Microsoft Remote Desktop の設定

Windows側作業

リモート接続の許可設定

Windows の検索フォームに リモート と入力し、表示された検索結果から リモート デスクトップの設定 を選択します。

「リモート デスクトップ」が表示されたら リモートデスクトップを有効にする の設定を オン に設定します。

次にリモート接続時に PC がスリープモードにならないように PCが電源に接続されている場合は.... の横 設定の表示 を押下し、 「電源とスリープ」からスリープの設定 なし を選択します。

PC名の確認

Windows の検索フォームに デバイス名 と入力し、表示された検索結果から PC 名を表示する を選択します。

デバイス仕様デバイス名 がリモート接続する際に利用する PC 名となります。変更したい場合には このPCの名前を変更 ボタンから行ってください。
注意 : PC 名は予期せぬトラブルを回避するため英数字を推奨します。

WindowsのPC名の名前解決の確認

Windows の検索フォームに Power と入力し、表示された検索結果から Windows PowerShell を選択します。

表示されたウィンドウに以下コマンドを入力します。

$ Resolve-DnsName PC名

以下のような表示がなされれば確認完了です。

PS C:¥> Resolve-DnsName PC名

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
...省略...
PC名                                            A      1200  Question   192.168.1.194

Mac 側作業

PC名.local で名前解決できることを確認

Spotlight検索で Terminalと入力し、Terminalを起動します。

表示されたウィンドウに以下コマンドを入力します。

$ dns-sd -G v4v6 PC名.local

以下のような表示がなされれば確認完了です。

$ dns-sd -G v4v6 PC名.local
DATE: ---Sat 09 Jan 2021---
11:52:04.339  ...STARTING...
Timestamp     A/R    Flags if Hostname                               Address                                      TTL
...省略...
11:52:04.541  Add        2  5 PC名.local.                            192.168.1.194                                60

Microsoft Remote Desktop のインストール

Mac の App Store で Microsoft Remote Desktop を検索して、インストールする。
app_store_image

Microsoft Remote Desktop の設定

Micro Remote Desktop を起動して、 + ボタンから Add PC を選択する。

PC name に PC名.local を入力し、Add ボタンを押下する。

リモートデスクトップ接続の実施

接続の開始は Microsoft Remote Desktop で右クリックをし、Connect を選択することで行う。接続の際に求められるユーザー名、パスワードはWindowsのものを指定する。

接続に成功すると Mac のウィンドウ上に Windows の画面が表示される。

参考情報

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ローカル環境でDrupalを起動するなら、quick-startコマンドが便利

Mac OSのローカル環境でDrupalを起動する最速の方法が見つかりました。

要件

PHP 7.3 以上

ダウンロード

まずComposer経由でDrupalをダウンロードし、作業ディレクトリに移動します。Composerはバージョン1でも2でもどちらでも可能です。

$ composer create-project drupal/recommended-project my-drupal
$ cd my-drupal

インストール&ログイン

作業ディレクトリに移動したら、以下のコマンドを打ちます。

$ php web/core/scripts/drupal quick-start standard     # composer未使用の方は→ php core/scripts/drupal quick-start standard

他に引数に指定できるのは demo_umami(フードマガジンのデモサイト)、minimal(最低限のモジュールがインストールされたもの)があります。

ブラウザで自動的に http://localhost:8888 にアクセスされます。これで気軽にDrupalを色々いじれますよ!

Screen Shot 2021-01-09 at 13.32.14.png

Composerが未インストールの方は、Drupal.orgからZipファイルをダウンロードすることで同様のことが実現できます。Composer経由でダウンロードする場合とZipファイルではドキュメントルートが異なるので、quick-startコマンドを実行するパスにご注意ください。

$ mkdir my-drupal
$ cd my-drupal
$ curl -sSL https://www.drupal.org/download-latest/tar.gz | tar -xz --strip-components=1
$ php core/scripts/drupal quick-start standard

今までローカルで簡易的にDrupalを起動するのにPHPのビルドインの簡易サーバー(php -S)を直接実行していたのですが、うまくいかない部分があったので、やはりコンテナ(DDEVやLandoなど)使うしかないのか・・でも少し立ち上げに時間がかかるしなぁ・・と感じていていて色々ググったところ、quick-startコマンドを見つけました。と言っても、このコマンドが紹介されているEvaluator Guideは前から知っていたのですが、Umamiデモサイト以外のインストールプロファイルを選択できるのは知りませんでした!

web/core/scripts/drupal ファイルから、web/core/lib/Drupal/Core/Command/ ディレクトリのQuickStartCommand.phpファイル、InstallCommand.phpファイルが順で呼び出されます。
インストールプロファイルは、 web/core/profiles/ ディレクトリと web/profiles/ ディレクトリ(ディストリビューションのプロファイルはこちらのディレクトリに格納される)内から探索され、隠しプロファイル(xx.info.ymlのhidden値がtrueとなっているもの)を除いたインストールプロファイルが選択可能と見なされます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

QEMU on M1 Mac

QEMU on M1 Macの話を独立(2021/01/09)

動いたOS(とその一部感想)

  • Windows ARM (aarch64 + hvf)
    • 速い(特に起動と終了)。普段の動作もIntel Mac上のエミュで動かしてたWindowsとは桁違いに速い。
    • x86_64エミュレーションも動くのでかなりのソフトが動く(Office とか Git とか Pythonとか)
  • Ubuntu 20.04LTS (aarch64 + hvf)
  • CentOS 7 (aarch64 + hvf)
    • どちらも下手な Intel マシンに入れてるより速い。
  • Raspberry Pi OS 64bit (aarch64 + tcg)
    • 実機(Raspberry Pi 3B)より速い…
  • Raspberry Pi OS 32bit (arm + tcg)
    • 画面の描画が遅い。起動時にはフリーズしたかと思うぐらい黒い画面で待たされる。
  • Lubuntu 20.04LTS (x86_64)
    • 画面の描画が遅いが,デスクトップ環境を使わないなら x86_64 のエミュレーションも十分使える感じ。
  • Windows 98SE (i386)
    • 昔使ってたi386マシンで動かしてた時より速い。
  • MacOS X 10.5 Leopard (PPC)
    • 遅い・・・

ビルド+インストールの話

全般的に niw さんの Gist が参考になる。ARM 版 Windows 10 を試すだけならこれで十分。Raspberry Pi OSを動かしたり,x86_64やi386ののエミュレーションを動かしたい場合は,UTM.app または UTM.app が公開しているパッチを当てた QEMU がおすすめ。

色々パッチを当てた最新版

  • UTM.app版は色々手が入ってていいんだけど,Hypervisor.frameworkパッチが少し古かったり,ベースが最新じゃなかったりするので,最新の QEMU のソースに色々パッチを当てて作るといい感じ。
  • 最新のQEMUのソースに色々とTCG周りの修正が取り込まれ,2番目の手順がちょっとややこしくなった。(2021/01/09追記)
  1. QEMUのソースを本家からとってくる。

    shell
      $ git clone https://git.qemu.org/git/qemu.git                                  
    
  2. パッチを当てる(2021/01/09更新)

    1. パッチを当てる準備(ディレクトリの移動と新しいブランチの作成)

      shell
        $ cd qemu
        $ git checkout master -b wip/hvf
      
    2. まずHypervisor.framework周りのパッチを当てる。これで qemu-system-aarch64 で -accel hvf オプションが使えるようになる。

      shell
        $ curl 'https://patchew.org/QEMU/20201211151300.85322-1-agraf@csgraf.de/mbox' | git am -3
      
    3. 次に iOS/macOS 周りのパッチを当てる。ただし,途中2つほどパッチが当たらない。当たらないパッチは以下の2つだが,当てなくても動作に支障ない(多分)ので,その都度 git am --skip をしてパッチを飛ばす。

      • configure: option to disable host block devices
      • coroutine: add libucontext as external library
      shell
        $ curl 'https://patchew.org/QEMU/20210105022055.12113-1-j@getutm.app/mbox' | git am -3
      
    4. (Optional)ARM周りのパッチを当てる。特に必要ないけど気分で…

      shell
        $ curl 'https://patchew.org/QEMU/20210108153621.3868-1-peter.maydell@linaro.org/mbox' | git am -3
      
    5. 最後に Big Sur の openFile: が deprecate になってることに対応するパッチを当てる。当てなくても特に問題はない。

      shell
        $ curl 'https://patchew.org/QEMU/20210102150718.47618-1-r.bolshakov@yadro.com/mbox' | git am -3
      
  3. ビルドしてインストール(下の例では /opt/QEMU に入れるようにしている。このディレクトリを作成し,書き込み許可を与えておくこと)

    shell
     $ cd qemu
     $ mkdir build
     $ cd build
     $ ../configure --prefix=/opt/QEMU --target-list=aarch64-softmmu,arm-softmmu,x86_64-softmmu,i386-softmmu,ppc-softmmu --enable-cocoa
     $ make -j
     (途中の出力略)
     $ make install
    
  4. Hypervisor.framework を利用できるように署名をする。

    1. まず以下のような内容のファイルを作成する(ファイル名はここでは entitlements.plist とする)

      entitlements.plist
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>com.apple.security.hypervisor</key>
          <true/>
      </dict>
      </plist>        
      
    2. これを指定して署名をする。

      shell
       $ codesign --entitlements entitlements.plist --force -s - /opt/QEMU/bin/qemu-system-aarch64
      

UTM.app版

  • Hypervisor.frameworkパッチは最新ではないけど,パッチを当てたりするのが手間ならこちら。
  1. QEMUのソースを GitHub からクローンする。

    shell
     $ git clone https://github.com/utmapp/qemu.git
    
  2. ビルドしてインストール(下の例では /opt/QEMU に入れるようにしている。このディレクトリを作成し,書き込み許可を与えておくこと)

    shell
     $ cd qemu
     $ mkdir build
     $ cd build
     $ ../configure --prefix=/opt/QEMU --target-list=aarch64-softmmu,arm-softmmu,x86_64-softmmu --enable-cocoa
     $ make -j
     (途中の出力略)
     $ make install
    
  3. Hypervisor.framework を利用できるように署名をする。

    1. まず以下のような内容のファイルを作成する(ファイル名はここでは entitlements.plist とする)

      entitlements.plist
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>com.apple.security.hypervisor</key>
          <true/>
      </dict>
      </plist>        
      
    2. これを指定して署名をする。

      shell
       $ codesign --entitlements entitlements.plist --force -s - /opt/QEMU/bin/qemu-system-aarch64
      

Hypervisor.frameworkパッチv5版

  • 最新の Hypervisor.framework パッチ(2020/12/18時点で v5)を当てたQEMUを作成するには以下の手順で行う。
  • これで作成したQEMUではTCGがうまく動かないので ARM(32bit)や i386,x86_64 などのエミュレーションは動かない。
  1. QEMUのソースを patchew プロジェクトからクローンする。

    shell
     $ git clone https://github.com/patchew-project/qemu
    
  2. 最新の Hypervisor.framework パッチ当てたブランチを fetch してこれに変更。

    shell
     $ cd qemu
     $ git fetch https://github.com/patchew-project/qemu tags/patchew/20201211151300.85322-1-agraf@csgraf.de
     $ git checkout patchew/20201211151300.85322-1-agraf@csgraf.de
    
  3. ビルドしてインストール(ここではインストール場所を /opt/QEMU にしている。標準では /usr/local)。

    shell
     $ mkdir build
     $ ../configure --prefix=/opt/QEMU --target-list=aarch64-softmmu --enable-cocoa
     $ make -j
     (経過中略)
     $ make install
    
  4. このままでは署名の問題で /opt/QEMU/bin にインストールされた qemu-system-aarch64 が動かないので,署名し直す。

    shell
     $ ../scripts/entitlement.sh ./qemu-system-aarch64-unsigned /opt/QEMU/bin/qemu-system-aarch64 ../accel/hvf/entitlements.plist
    

いろんなOSを動かしてみる

Ubuntu 20.04.1 LTS on QEMU

  1. EFIイメージからpflashイメージを作成する。

    shell
     $ dd if=/dev/zero of=pflash0.img bs=1m count=64
     $ dd if=/dev/zero of=pflash1.img bs=1m count=64
     $ dd if=QEMU_EFI.fd of=pflash0.img conv=notrunc
     $ dd if=QEMU_VARS.fd of=pflash1.img conv=notrunc
    
  2. Ubuntuをインストールするイメージを作成する(サイズは10GB)。

    shell
     $ qemu-img create -f qcow2 Ubuntu.qcow2 10G
    
  3. 以下の手順でISOイメージから起動してインストール。

    • イメージへのパスなどは適宜変更する。
    • ブート時に TianoCore のロゴが出ているところで ESC を押して Device Manager → OVMF Platform Configuration でブート時の解像度を変更できる(手元では 1440x900 と 1680x1050 は確認している)。
    • インストール後は Ubuntu の設定で変更するのでここで変更しなくても良い。
    shell
     $ qemu-system-aarch64 \
         -monitor stdio \
         -M virt,highmem=off \
         -accel hvf \
         -display default,show-cursor=on \
         -cpu host \
         -smp 4 \
         -m 4096 \
         -drive file=./Ubuntu/pflash0.img,format=raw,if=pflash,readonly=on \
         -drive file=./Ubuntu/pflash1.img,format=raw,if=pflash \
         -device virtio-gpu-pci \
         -device nec-usb-xhci \
         -device usb-kbd \
         -device usb-tablet \
         -device intel-hda -device hda-duplex \
         -nic user,model=virtio \
         -hda ./Ubuntu/Ubuntu.qcow2 \
         -cdrom ./images/focal-desktop-arm64.iso \
         -boot order=d
    
  4. インストール後に設定で Ubuntu の解像度を変更できる。

Windows 10 ARM on QEMU

高解像度版EFIイメージの作成

  1. OVMF EDK2のソースコードを GitHub から取ってくる。

    shell
     $ git clone https://github.com/tianocore/edk2.git
     $ cd edk2
     $ git checkout edk2-stable202011
     $ git submodule update --init
    
  2. Windows 10 で利用する ramfb ドライバにパッチを当てる。ここでは 1440x900 と 1680x1050 の解像度を追加している。

    edk2.diff
    diff --git a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c
    index 0d49d8bbab..d1f1892631 100644
    --- a/OvmfPkg/QemuRamfbDxe/QemuRamfb.c
    +++ b/OvmfPkg/QemuRamfbDxe/QemuRamfb.c
    @@ -54,6 +54,14 @@ STATIC EFI_GRAPHICS_OUTPUT_MODE_INFORMATION mQemuRamfbModeInfo[] = {
         0,    // Version
         1024, // HorizontalResolution
         768,  // VerticalResolution
    +  },{^M
    +    0,    // Version^M
    +    1440, // HorizontalResolution^M
    +    900,  // VerticalResolution^M
    +  },{^M
    +    0,    // Version^M
    +    1680, // HorizontalResolution^M
    +    1050, // VerticalResolution^M
       }
     };
    
  3. 必要なツールをインストールする。

    shell
     $ sudo apt install build-essential # gccのインストール
     $ sudo apt install iasl python3 python3-distutils uuid-dev
    
  4. ビルドする。

    shell
     $ source edksetup.sh
     $ make -C BaseTools
     $ build -a AARCH64 -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc
    
  • Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV に QEMU_EFI.fd と QEMU_VARS.fd ができているのでこれをネット経由などでホストの Mac にコピーする。
  • 以降はこれを使って,Windows 10 ARMを実行すると高解像度で利用できるようになる。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac の隠し設定ファイルで設定すること

前提

railsでの開発を想定。

.bash_profile

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

.bashrc

# rbenv
[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

# git
alias g='git'

# rails
alias bgen='bundle exec rails generate'
alias bmg='./bin/rails db:migrate'
alias bbk='./bin/rails db:rollback'
alias bmgre='./bin/rails db:migrate:reset'
alias bseed='./bin/rails db:seed'
alias brs='./bin/rails server'
alias brc='./bin/rails console'
alias broutes='./bin/rails routes'

# bundler
alias be='bundle exec'

# rspec
alias brspec='bin/rspec'

# rubocop
alias brcop='bundle exec rubocop'

# bundle install
alias bi='bundle install --path vendor/bundle'

# mysql2
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/

# ghq
function get_target_repo() {
  if [ $# -eq 1 ]; then
    echo $1
  else
    echo $(repos)
  fi
}
function subl() {
  open -a Sublime\ Text $(get_target_repo $1)
}
alias repos='ghq list -p | peco'
alias cdrepo='cd $(repos)'

# peco
peco_search_history() {
    local l=$(HISTTIMEFORMAT= history | \
    sed -E s/^\ *[0-9]\+\ \+// | \
    sort | uniq | \
    peco)
    READLINE_LINE="$l"
    READLINE_POINT=${#l}
}
bind -x '"\C-r": peco_search_history'

.gitconfig

[user]
    name = xxx
    email = xxx
[ghq]
    root = /Users/tomita/Desktop/work/src
[alias]
    co = checkout
    ci = commit
    cia = commit -a
    cm = commit --amend --no-edit
    cam = commit -a --amend --no-edit
    s = status
    st = stash
    stp = stash pop
    a = add
    un = reset HEAD
    cb = checkout -b
    d = diff
    dc = diff --cached
    b = branch
    ba = branch -a
    lo = log
    la = log --oneline
    l = log -10 --oneline
    f = fetch --prune
    pl = !git pull origin `git rev-parse --abbrev-ref HEAD`
    plo = pull origin
    plom = pull origin master
    ps = push
    pso = push origin
    psfo = push -f origin
    psom = push origin master
    r = rebase
    ta = log --oneline --all --decorate --graph
    t = log -10 --oneline --all --decorate --graph
    p = !git push origin `git rev-parse --abbrev-ref HEAD`
    delete-merged-branch = !git branch --merged | grep -v \\* | grep -v master | xargs -I % git branch -d %
[core]
    excludesfile = /Users/tomita/.gitignore_global
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[wip] Mac で入れるアプリ

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む