ラベル インターネット の投稿を表示しています。 すべての投稿を表示
ラベル インターネット の投稿を表示しています。 すべての投稿を表示

2023年10月18日水曜日

プロバイダーを変えた。

スピードテスト

20世紀の終わりくらい、初めて一人暮らしをする時に、家に「フレッツISDN」を引いた。

当時はまだ定額インターネット回線などはなく、NTTのテレホーダイを使い、23時から翌8時までの固定料金制度でネット接続をしていた時代で、ちょっと高いがISDN機器を使ってフレッツISDNにすると24時間テレホーダイになり、専用線みたいな使い方をする事が出来た。なぜ24時間接続が必要かというと、自宅サーバーを運用するためだった。自宅サーバーにするためには固定IPアドレスが必要だが、DDNSとかは使いたくなかったので、当時では珍しく固定IPアドレスを付与してくれる「インターリンク」というプロバイダと契約した。

それから25年ほど、何回か引っ越しなどもしたがインターリンクを使い続けてきたが、いろんな動画配信サービスを見るようになり、一ヶ月のデータ転送量で警告が来るようになった。これはインターリンクの上流が行っているらしく、インターリンクではどうしようもないということだった(インターリンクは安さがウリなので、そういう縛りがあるんだと理解することにした)。

ある程度の転送量を越えると、次月は速度制限がかかるということなので、そうなると仕事も出来なくなるのでプロバイダを変えることにした。あちこちで話を聞いてみると、ベストエフォートで1Gbpsのサービスと、10Gbpsのサービスをしている「enひかり」というのが良いらしいという噂を聞いた。いろいろ調べてみたところ、よさそうなので1Gbpsのほうで契約してみた。IPv4と、IPv6が選べるが、自前で用意しているDNSがIPv6にまだ移行出来ていないため、IPv4の契約にした。うちのマンションは、ラストワンマイルがVDSLなので、そのままだとベストエフォートで100Mbpsまでしか出ないので、1Gbpsの契約をしても宝の持ち腐れになってしまうということで、FTTHに交換して貰うことにした(工事費用21,000円くらい)。

今日、工事が終わり新しいプロバイダで接続し、速度計測をした結果がこれ。これで、ちょっとは快適なインターネット生活が出来るかな?

2023年7月17日月曜日

Mac+コンテナ+GitHubクローン’

 タイトルだけだとなんのこっちゃ分からないが、私の家のネットワーク環境で起きていた現象について、事の顛末をblogにして残しておこうと思います。

事の発端は、家で使っていたWi-Fiルーターを買い替えた事でした。

それまでも、ちょくちょくネットワークの調子が悪い時があり、ネットワークが切れる事が頻発していました。ちょうどその頃、Amazonがブラックフライデーセールを行っていたので、これはいい機会ということで、新しいWi-Fiルーターに買い替えました。

そして年が明け…。

Wi-Fiルーターを交換した当初は、仕事ではMacのコンテナ環境は使っておらず、SSHでサーバーに繋ぎ、その上で作業をしていたので、Macで建てたコンテナ内から、GitHubのリポジトリをSSHクローンしようとしても出来ないことに気付きませんでした。

ある時、Dockerコンテナのメンテナンスをしようと思い、久しぶりに仕事用Macの電源を入れ、新たにコンテナを作成しようとした時に異変に気づきました。

MacでDockerコンテナを起動する時は、macOSのコンソールから直接起動することはせず、一旦MultipassでUbuntuコンテナを起動し、その中から開発環境用コンテナを起動していたのですが、その時もMultipassでUbuntuを起動し、久しぶりに開発環境コンテナを起動するためにGitHubからリポジトリをクローンしようとしたところ…出来ない。権限などのエラーを吐くのではなくて、反応がない。エラーを吐かないので、tcpdumpをしたり、GitHubの設定を見直したり、Macの設定や、Multipassの設定を見直したり、ネットワークの設定などをいろいろ確認したが、結局原因は分からず。

その時は時間がなかったので、コンテナのメンテナンスはWindowsのWSL2で行い、それ以降はWSL2上で仕事をしていました。

しかし、ここで私が5年ぶりにプライベートでMacを買うことになり、Macのコンテナ上で最近ハマっている自作キーボードのファームウェア設計をしたいので、なんとかこのクローン出来ない現象を解決しないといけない事態が訪れました。とりあえず、Macが自宅に到着してからダメ元でMultipassでコンテナを起動し、GitHubからリポジトリをSSHクローンしてみようとするのですが、当然ダメ。

そこで、去年まで使っていた調子の悪くなったWi-Fiルーターに交換してみると、なんと!SSHクローン出来るではありませんか。

そこで、これまたちょうど、AmazonプライムセールをやっていたのでNETGEARのIPv6に対応していないWi-Fiルーターが叩き売っていたので購入。先行セールだったので次の日にサクっと届きセットアップして繋いでみました。

クローン出来ない。

ブラックフライデーで購入したWi-Fiルーターだけの、特殊な現象ではなかったようです。このルーターは元が3万円以上するビジネス向けのルーターで、ポートフォワードなども一回設定した内容を後から編集出来たりして、かなり高性能だったのですが、GitHubからクローン出来ないのではそんな高機能はまったく霞んでしまっていました。

ここで、もうどうにも積んでしまったので、別の話題として某キーボード系Discordに「うちの使っているプロバイダは、一ヶ月のパケット使用量に1.2TBという上限があって、越えそうになると警告がくる」と呟いたところ、今のGb(ギガビット)対応プロバイダとかだと上限はもっと全然上だとのことで、プロバイダ変更を考え始めます。

そこでオススメされた「enひかり」というところに変えようと思い、IOデータのIPv6対応Wi-FiルーターをAmazonのプライムセールぎりぎりで注文しました(これは通常のセールが始まっていたので、配送がかなり遅くなった)。

と、そこでIOデータのWi-Fiルーターが到着するまでの間に脳裏を過ぎった、

PPPoE接続をWi-Fiルーターではなく、NTTからレンタルしているモデムでやったらどうだろう?

をやってみたところ………なんと、クローン出来てしまうではありませんか(2回目)。

なので、しばらくはモデムでPPPoE接続は行って、Wi-FiルーターはWANからLANへのルーティングと、Wi-Fi接続だけの用途として使うことにしました。

で、プライムセールで買った激安ルーターはWi-Fiが不安定なので、Wi-Fi接続は去年買ったルーターに戻しました。 

2021年10月7日木曜日

XiaomiのスマホでMVNOを使う

 最近流行りの中華スマホ。ちょっと前だとHUAWEI、最近の流行りはXiaomi、OPPO、OnePlus、などなど。日本国内でキャリアが販売していたり、日本法人があるメーカーとかであれば直販などで購入することが出来ます。この、日本国内で取り扱いのある機種であれば、端末の設定にはあらかじめ日本国内の主要通信会社のAPNが登録されているのですが、日本国内で売っていない、海外から通販などで個人輸入した端末では、このあたりの通信するための設定が入っていません。

そこで、いろいろ検索するのですが、中華スマホを使うための手順として、電話アプリでオマジナイをダイヤルするというのはちょくちょく出てくるのですが、私が使っているXiaomiのスマホではそれだけでは通信/通話が出来ませんでした。

なので備忘録がてら、日本国内で販売されていないXiaomiのスマホを使うための方法を書いておきます。

APN設定

DSDS/DSDV端末の場合は、とりあえず必要なSIMのAPN設定をデバイスに登録しておいてください。
理由は後で楽なので。

項目
APN名、アクセスポイント名uqmobile.jp
APN、APN設定uqmobile.jp
ID、ユーザーID、ユーザー名uq@uqmobile.jp
Password、パスワードuq
認証タイプ、PPP認証タイプ、暗号タイプCHAP
APNプロトコルIPv4v6、IPv4/IPv6
APNタイプdefault,mms,supl,hipri

VoLTE通話用のAPN(IMS)の追加

APNの追加設定で、

項目
NAMEims
APNims
MCC440
MNC51
TYPEims
APNプロトコルIPv4v6

を追加。
追加してもAPN一覧には出てきません。
ここで、一旦端末を再起動します。

VoLTE Carrier Checkの停止

通話アプリを起動し、ダイヤルパッドから、

*#*#86583#*#*

とタップします。
最後に通話を押す必要はありません。
最後のアスタリスクを押した途端に「VoLTE carrier check was disabled」と出ます。

これで、最初に登録しておいたAPNを選択することで、通信と通話が出来るようになります。私の環境ではUQmobileと、楽天UN-LIMIT VIが使えることを確認しています。


2014年9月22日月曜日

iPhone6 plus と、MVNO SIM

 iPhone6/6plusが発売されて一週間が経った。キャリアと契約していない私は、アップルストア心斎橋店でSIMフリーで予約し、金曜の発売日に受け取ってきた。


店舗で受け取る時に初期設定をお願いすることが出来るらしいのだが、APNを設定してくれるのかとか、MVNOのSIMを使ってると言っても「は?」と言われたので、そのまま未開封のまま受け取ってきた。


 受け取った後にスタバでドヤ顔をしながら開封した。そのままiCloudから復元しようと思ったが、やはりb-mobileのAPN設定を「iPhone構成ユーティリティ」でインストールしないと通信出来ないようなので、ドヤ顔をする前にスタバを後にした。


 そしてWi-Fiのある場所に戻り、iCloudから復元しアプリを同期しつつ、Macの「iPhone構成ユーティリティ」からb-mobileのAPN設定ファイルをインストールしたところ無事にLTE/3G通信出来るようになった。


 「モバイルデータ通信」の設定を見ると、テザリングが出来るようになっているのはiPhone5s+iOS8の時と同じだが、ほんのりと嬉しい。


これでテザリングのためだけに契約してたIIJmioのSIMを解約することが出来る。今まではテザリングしないので、2GB/月にしていたb-mobileのプランを8GB/月のプランに変更した。


これからボチボチと使用感を投稿していこうと思う。


2014年9月12日金曜日

iPhone5でのMVNOテザリング

 登場したばかりの頃のiPhone5は3Gしか使えず、がっかりしていた。当時は(現在もだが)日本通信b-mobileが提供しているSIMを使っていた。


しかし、ここでネット上にとある情報が出回る。


 



docomoのSIMならばiOS6.0.2を上書きインストールすると、なんとLTEが有効になる」 



 


 検証しているサイトもいくつか現れたので、これはかなり信憑性が高い。というわけで、日本通信からMNPdocomoへ端末を持ち込みまったく縛りの無いプランで契約した(基本料だけで毎月6500円くらい)。


契約が終わったら速攻でiOS6.0.2を上書きインストールしてみると…LTEが有効になった。まだLTEで繋がるところは少なかったが、LTEで繋がるとサクサクで高速Webブラウザを堪能していた。iOS6.1が出てもLTEが無効になることをβ版で確認していたので、正式リリースされてもアップデートせずiOS6.0.2のまま使い続けた。


 ところが、iOS7βを入れてみたところ、すでにSHSHの発行が終了している6.0.2には戻せなくなり、LTEも有効に出来なくなり、快適LTE生活が終了。iPhone5sLTEが使えるようになるまで約10ヶ月、テザリングは使えるので、なんとか我慢しながら使っていた。


そして、iPhone5sが発売されたが、LTEは使えるがテザリングが使えない状態だった。なので、データ専用のSIMを契約しAndroidスマートフォンテザリングルーターとして使っていた。


 


しかーし。


 


iPhone5に、iOS8ベータを入れてみた。すると、なんと、「LTE」の文字が。ネットワーク設定を見てみるとインターネット共有がっっ。


f:id:digitarhythm:20140913091638j:plain


設定してみるとLTEな速度が出ているし、インターネット共有(テザリング)も使える。なんと!最強のアンロックiOS端末になってしまった。もしかして、iPhone5sにもiOS8を入れたらテザリングが出来るようになるかもっっ?


2014年8月30日土曜日

JavaScriptでゲームパッド

もともとは「GamePad API」としてW3Cが制定しているものだが、なぜかブラウザー毎に実装がマチマチで、これまたブラウザー毎に処理を分けないといけない。
そして、2014年現在は、Chrome37と、Firefox31でしかゲームパッドは使用出来ない(SafariIEでは未実装)。


なので、実行しているブラウザを自動判別し、ChromeFirefoxの両方でほぼ同じデータの取れるものだけを配列で返すライブラリを作ってみた。


 


両方のブラウザでほぼ同じデータが取れるものは下記になる。


f:id:digitarhythm:20140830224336p:plain


 


ボタン1〜4に関しては各ゲームパッドによって違いはあるが、ボタンが4つあればボタン1〜4になっていると思われる。


ボタン5と6は、人差し指で押すボタンが返ってくる。
垂直軸と水平軸は−1、0、1の3つの値を返す。


さらに、Xbox360コントローラーでは2つのアナログスティックの値を−1〜1の範囲で返すようにしている。


しかし、アナログスティック1の値は垂直軸、水平軸の値とリンクしているので、アナログスティック1の値が振り切る(1、もしくは-1になる)と、十字キーを押したのと同じ状態になる。


Xbox360ではボタンは16個あるのだが、ファミコンもどきコントローラーとXbox360コントローラーで同じような値を返すのがボタン1〜6までなので、このライブラリではボタン6までしか値を返さない。


Xbox360コントローラーでは十字キーの値はボタンとして返ってくるのだが、ライブラリのほうで水平軸、垂直軸の値として返るように違いを吸収している。


 


ライブラリはgithubにあるので、普通にクローンすると使えるようになる。


 


digitarhythm/gamepadprocedure · GitHub


 


ファイル自体はCoffeeScriptなので使用する時はコンパイルしてご使用ください。


 


コンパイルしたファイル「gamepadprocedure.js」を読み込むと、「gamepadProcedure()」という関数が使用出来るようになるので、ゲームなどのループ処理内でこれを呼ぶことでゲームパッドの状態が配列として返ってくる。


SafariIEの場合は空の配列が返される。


 


GAMEPADINFO = gamepadProcedure()


 


上記のようにした場合、ゲームパッドがひとつの場合はGAMEPADINFO[0]ゲームパッド情報が格納されている(ゲームパッド番号=0)。



  • GAMEPADINFO[0].padbuttons

  • GAMEPADINFO[0].padaxes

  • GAMEPADINFO[0].analogstick


上記3つのオブジェクトはさらに配列になっていて、GAMEPADINFO[0].padbuttons[0]〜[5]にボタン情報が入っている。


GAMEPADINFO[0].padaxes[0]には、十字キーの水平軸情報が入っている(-1、0、1)。


GAMEPADINFO[0].padaxes[1]には、十字キーの垂直軸情報が入っている(-1、0、1)。


GAMEPADINFO[0].analogstick[0]には、アナログスティック1の情報が配列として入っている。


GAMEPADINFO[0].analogstick[0][0]には、アナログスティック1の水平軸情報が入っている(-1〜1)。


GAMEPADINFO[0].analogstick[0][1]には、アナログスティック1の垂直軸情報が入っている(-1〜1)。


GAMEPADINFO[0].analogstick[1]には、アナログスティック2の情報が配列として入っている。


GAMEPADINFO[0].analogstick[1][0]には、アナログスティック2の水平軸情報が入っている(-1〜1)。


GAMEPADINFO[0].analogstick[1][1]には、アナログスティック2の垂直軸情報が入っている(-1〜1)。


 


ChromeFirefoxではコントローラーの認識されるタイミングが違う。


FirefoxではファミコンもどきコントローラーでもXbox360コントローラーでも、Webアプリを起動した時には認識しておらず、ゲームパッドをなにかしら操作した時に認識される。


しかし、ChromeはどちらのゲームパッドでもWeb起動時に認識している。


動作的にはChromeのほうが好ましいのだが、一回認識してしまうとその後にUSBコネクタを何回抜き差ししても、最初に認識したゲームパッド番号がリセットされない。


例えば、Xbox360コントローラーを挿した状態でWebアプリを実行するとXbox360コントローラーがゲームパッド番号0として認識される。


その後にXbox360コントローラーを抜いてからファミコンもどきコントローラーを挿しても、ファミコンもどきコントローラーはゲームパッド番号1となりChromeを再起動するまでこの情報はリセットされない。


どちらにせよ、今の状態では複数ゲームパッドを使用したり、ゲームパッドの抜き差しなどはオススメしない。


2014年6月6日金曜日

OpenSSLの「CCSメッセージ脆弱性」への対処

redhat系では「openssl-1.0.1e」へアップデートしろと言う記事はあちこちで見られるが、Ubuntu系では情報があまりない。
lepidumからの情報によると、



Ubuntuの14.04 LTS → libssl1.0.0 1.0.1f-1ubuntu2.2
Ubuntuの13.10 → libssl1.0.0の 1.0.1e-3ubuntu1.4
Ubuntuの12.04 LTS → libssl1.0.0 1.0.1-4ubuntu5.14
Ubuntuの10.04 LTS → のlibssl0.9.8 0.9.8k-7ubuntu8.18



 に更新すればいいらしい。


 


2009年2月20日金曜日

spamassassin

先日の日記にも書いたが、サーバーのOSが新しくなったのでspamassassinをしかけてみたのだが、これが驚くぐらいにスパムメールを弾いてくれる。

��実際はスパムメールと思われるもののヘッダに「X-Spam-Flag: YES」を追加してくれるのでそれで振り分ける)

これでGoogleに頼らなくても自宅サーバーのメールを管理出来る。

ちょっと感動した。



2009年2月19日木曜日

Linuxサーバー

うちのサーバーを、Ubuntu Server8.10にした関係でいろんなサービスを提供するデーモンがガラっと変わっている。

その中でもメール関係が、



sendmailpostfix

Courier-IMAPdovecot



となっているが、この組み合わせでびっくりしたことがある。

うちはメールをIMAP4で運用してるんだけど、サーバーリプレイスしたらどうもメールが「プッシュ配信」されてくるっぽい。

おそらくThunderbirdがIMAP4の「通知」に対応してて、通知を受け取ったら該当メールをフェッチしてくるって仕組みだと思うけど、これにはびっくりした。

うちのクライアントはMACアドレス指定でDHCPから固定IPアドレスを割り振っているので出来るんだとは思うけど、パソコンのインターネットメールでプッシュって需要あるのかなぁ? (笑)

前職で、カスタマーサービスの人に「メールって届いたらすぐ送られてこないの?」って言われて「ハァ?」って返答した記憶はあるけどね (笑)



で、これってiPhoneで使えるんじゃね?と思って、家のメールサーバーをiPhone見にいったがなぜか設定が出来ない。

iPhoneもうちのMacBookと同じ無線LANに繋がっているのでネットワーク環境は同じ。

��あ、固定IPアドレスにはしてないな)

うちのメールサーバーでプッシュ配信出来るならiPhoneのメールアドレスをまた変えなきゃ? (笑)



2009年2月17日火曜日

E-MOBILE

昨日、E-MOBILEから電話がかかってきた。

なんでも、契約した11月から今月2月までE-MOBILEの手違いで料金の請求をし忘れていたそうだ。

んで、来月一斉に請求とかほざいたら、フザけんなゴルァ!って言おうと思ったら「3月から正規の請求を行ってもよろしいでしょうか」と来たもんだ (笑)

「11月〜2月の分は?」と訊いたら「こちらの手違いですので、よろしいです」だそうだ。

なんか顧客対応があまりよくないという噂をよく聞くE-MOBILEだけど、これはいいんじゃないの?

なんかiPhone買って解約しようかと思ってたけど、解約しづらくなってもうた (笑)



2009年2月14日土曜日

サーバーリプレイス顛末

まず事の始まりは、サーバーのどこかのファンがものすごい轟音をあげ始めたこと。

今までもうるさくなったことはあったけど、今回は尋常じゃない音がしてるのでちょっと危険を感じ、引っ越して来て以来のサーバー停止。

その日はそのまま寝た(2/13の日記の画像の状態にして寝た)。

とりあえず、それまでのサーバーのスペックは、

CPU:Celeron 300MHz

メモリ:384MB

HDD:起動用40GB+データ用60GB+バックアップ用外付け200GB

という貧弱(マシンを組んだ10年前はそうでもなかったけど)さだったので、以前使っていたAthlonXP 2600+が刺さりっぱなしのマザーを代用として使うことにする。

メモリは1GBが刺さってるのでそのまま使うことにする。

騒音の原因は電源のファンだと思っていたのだが、どうもフロントの空調ファンもうるさかった。

電源を交換してもこのフロントファンを廻すと前と変わらないくらいの騒音が! (笑)

夏に辛そうだけど、まぁそうなったらそうなった時ということでファンは止めて、電源だけ交換した。

あと足りないのはHDDなんだが、Windowsのビデオ編集用に使ってたRAID0の640GB-HDDがなんか死んだみたいなのでバラしてみたら、RAIDコントローラーが死んでるだけでHDDは生きていたので320GB×2のHDDとして使うことにする。

UltraATA133かなんかなのでまぁ使えるでしょう(っていうか使ってる)。

ビデオカードもGeForce7300GTが刺さってたけど、サーバーにそれを使うのはもったいないのでオンボードのを使うことにする。

で、いざOSインストール

しかし、HDDのパーティション切りでつまづく。

320GB×2のHDDをLVMで640GBのHDDとして使いたいのだが、Ubuntu Server 8.10のパーティションエディタではうまいこといかない。

一旦、作ってしまったLogical Volumeはインストーラツールでは削除することが出来ない。

いざ、なんとか640GBのパーティションが出来たのだが、なぜか/boot領域を300MB確保すると残りが「使用不可」になる。

/bootのサイズを変えてもダメ。

しょうがないので、デスクトップ版Ubuntu 8.10で起動して、コマンドラインを使って手動でLVMを構築する。

しかしデスクトップ版を使っても、手動で作成した論理ボリュームはインストーラが認識してくれないので、パーティションの切り方を変える。

まず、プライマリーの320GB-HDDに、「/boot」300MB、「スワップ領域」1GB、「/」40GBをすべてXFSで確保する。

この3つがあればインストーラは先に進めるので、インストールが終わってからLVMの設定が出来るのだ。

プライマリのほうは残りを全部LVMの物理ボリュームにしてしまう。

セカンダリの320GBのほうは丸ごと全部LVMの物理ボリュームにする。

そしてインストールが終わったら、プライマリHDDとセカンダリHDDのLVM領域を合わせて570GBくらいのボリュームグループを作成する。

その上に「/www」用に100GB、「/home」用に残りの470GBで論理ボリュームを作成する。

570GBの論理ボリュームを確保して、その論理ボリュームに対してfdiskで、100GBと470GBのパーティションを作成すればいいように思えるが、なぜか論理ボリューム上に複数パーティションを切っても「/dev」にパーティションのデバイスファイルが作成されないのでフォーマットする事が出来ない。

ひとつの論理ボリューム上にはひとつのパーティションで使用するらしい。

それぞれの論理ボリュームを確保したら、fdiskでそれぞれパーティションをひとつ確保して、mkfs.xfsでそれぞれフォーマットして、「/www」、「/home」にマウントするように「/etc/fstab」に記述する。

これでサーバーの初期セットアップは完了。

次に環境を戻さないといけない。

まずは元々使ってたHDDをUltraATAケーブルで接続して起動してみる。

しかしHDDチェックで止まってしまい起動しない。

しょうがないので外付けHDDキットを使って、USB接続する。

そこの「/www」と「/home」配下をrsyncミラーリングする。

そして、postfixSMTP)とdovecot(pop3とimap4)を設定するとメールは受信出来るようになった。

��送信は出来るけど、なぜか届かない)

次に、apache2.2.9の設定。

apacheは2.2からガラリと設定方法が変わっているので戸惑うが、以前仕事でいじっていたのでちょっとマシだった。

設定で、ユーザーディレクトリ(public_html)の公開や、仮想ドメインの設定やらを行う。

するとなぜか、あるディレクトリだけが開こうとすると「application/x-trash」などというMIMEタイプとみなされてPHPスクリプトファイルをダウンロードしようとする。

これはもうなにをやっても解決しなくて、ためしにiPhoneで見てみたらなんと!見れてる。

もしや・・・と思いSafariで見てみたら、これまた見れる・・・。

Firefoxがおかしいんかいな。

Lzyc(Minefield)3.0.1を使っていたので、3.0.6にアップデートしてみたけど変わらず。

これは結局未だにわからず仕舞い。

これからsambaの設定をしてクライアントにマウント出来るようにするところ。

←今ここ

これが終わったら、SMTPの設定を見直して、apacheの設定とかでおかしいとこがないかチェックだな。

あと、HDDがデカくなったから200GBのHDDにバックアップ取れなくなったので1TBくらいのNAS買ってきてバックアップ環境を作らないとなぁ。



2009年2月5日木曜日

UQコミュニケーション

2/26からWiMAXサービス開始か。

これ使えるようならE-MOBILEいらないなぁ。

でも、MacOS対応してないみたいなんだよなぁ。



QMK開発環境構築メモ

## Ubuntuコンテナイメージ取得 ```bash docker pull ubuntu:24.04 ``` --- ## コンテナ作成 ```bash docker run -it --name qmk_dev -v [マウント元ディレクトリ]:[マウント先ディレクトリ]...