「LXC」を含む日記 RSS

はてなキーワード: LXCとは

2022-05-08

ギークためのChromebook入門

エントリ目的

ライトコンピュータユーザ一切合切無視してギークギークのため情報共有するためのエントリ
感想はてブへ、質問トラバに投げれば誰かが答えるんじゃないか?(他力本願)

開発者は初手でデベロッパーモードにするべし

セキュリティ懸念があるけれど通常モードはセキュアを維持するため機能制限があるので制限開放のため開発者は初手でデベロッパーモードにするしかない。
用途中でデベロッパーモードにするとストレージファクトリリセットされるので注意。

ハードウェア選択

Webで完結するのであれば低性能機で問題ない

Webエンタメを楽しんだりWebツールを中心に利用するのであれば、5万円未満の低性能機で必要十分。
この用途では実質的タブレットPCのような運用へなりやすいのでフリップする2 in 1機やタブレット機がオススメ

ただし、Webベースゲームは楽しめるがAndroid Appレイヤーを用いたゲームは非常に厳しいので諦めたほうが良く、そこそこの負荷の掛かるAndroid Appツールも鈍足でストレスになるのでWeb版があるならそっちを使ったほうが良い。

ChromeOSハードウェアスペックで殴ると快適なのは変わらない

Core i7クラスCPUや16GB以上のワーキングメモリSSDストレージなど高性能機でChromeOSを使うとその分だけ快適になる。
Android Appレイヤーを用いたゲームも快適に動き、ウマ娘クラス3DCGAndroid Appゲームも高速に動く。
しかし、高性能機は空冷ファンを搭載していることが多く、高負荷を掛ければファンは唸るしウルサイ。

Android Appレイヤーを中心に運用したいと考えてるならばx86_64機は非効率

Google Play StoreにてAABパッケージがほぼ強制になったとは言え、開発段階でx86_64を意識しないと処理が非効率になりがちのようなので、Android Appレイヤーを中心に運用したいと思っているのであれば素直にARM機を探してきたほうが良い。

1つのIDEで開発をしクロスプラットフォーム対応することが流行っている昨今、自動でガベコレに頼っていてリソース管理経験に乏しい開発者マジで底辺しか漂流できないので覚えたほうが良いぞ。
それがWeb系のフロントエンドでもバックエンドでもそうだから底辺から脱したいのであれば覚えろ。

しっかりリソース管理できているChromebook向けビルドアーキテクチャによらずサクサクなのでクロスプラットフォームビルドマジで開発チームの腕が如実に反映される。

ちなみにSnapdragon 8 Gen1なChromebook公式発表は今のとこ無いのでAndroid Appレイヤーブンブン回すのは難しい。
メーカーはもうちょっと頑張れ。

Android Appレイヤー

macOSiOSレイヤーよりAndroid App数は多いし操作性は良い

Chromebookの大半はタッチスクリーンディスプレイを搭載しているし、Android StudioでAndroidManifest.xmlを何も考えずに生成すると勝手にChromeOSサポートするので結果的にChromeOSで動くAndroid App数が多くなるという現象が起きている。

Android Studioが雑なのかXcodeが厳密なのかは意見が分かれると思うけど、タッチパッドでiOS App操作というセンスがクソなのは万人が納得するところだと思う。

GPS事実上ほぼ機能しない

ARM系のSoCであればワンチャンいける可能性はあるものの、市場に出ているChromebookの大半はx86_64でGPSモジュールを積んでいないのでGPSを使おうと思うとBluetoothあたりでGPSレシーバ接続するしか無い。
当然A-GPSは使えないので精度がそこまでではないから期待し過ぎに注意。

USB over MIDIが使える

Android AppレイヤーではUSB over MIDIが使えるのでDTMあたりに活用することは可能ものの、iOS比較してレイテンシがそこそこ大きくDTM活用しようと思うユーザは不満を持ってしまうかも知れない(ハードにもよるけど0.5msecくらいズレる)。

そもそも既存Android AppなDAWVSTやLV2などの外部プラグイン対応していないのでAUプラグインが使えるiOSのほうがDTMへ向くんじゃないだろうか?
ただし、DAW単体でDTMを完結するとレイテンシほとんど気にならなくなるので絶対Android AppでDTM不可能というわけでもない。

Linuxレイヤー側でDTMをするのはレイテンシが大きすぎるしJackも上手く動作しないのでオススメできない。

ChromeOS向けマルチタスク対応していないとAndroid Appはスリープする

ChromeOS向けマルチタスク対応していないとAndroid Appはフロントエンド(プライマリ)からフォーカスが外れてバックエンドへ行くとスリープする。
Android Appがスリープされることを考慮しておらず例外処理がされていないとAndroid Appはそのまま落ちる。

まぁAndroid Appがスリープされることを考慮しておらず例外処理がされていないとAndroid Appはそのまま落ちるっていう部分はAndroidスマホで実行しても同じなので正直に言ってスリープされることを考慮しないデバックってAndroid App開発者は何やってんの?とは思う。

ICT教育日本中学生がChromeOSを使うようになっているので、ゲームであれツールであれ何であれChromeOS向けのマルチタスク考慮しておくとスリープしたり落ちたりするAndroid Appよりも支持されるのは間違いないのではないか

Linuxレイヤー

実体LXC/LXD

LXC/LXDなのでDockerに慣れ親しんでる人にはわかりやすいかも?

デフォルトイメージはChromeOS向けにカスタムされたDebian
別のLinuxディストリビューションへ置き換えることも出来るが一部機能制限される可能性がある。

IMLinuxレイヤー側で用意する必要がある

ChromeOS動作するGoogle日本語入力とは別にLinuxレイヤー側で日本語入力を用意する必要がある。
選択できるIMは幅広いのでMozcだろうがSKKだろうが漢直だろうが何でもイケる。
ただ特殊ものを選ぶとChromeOS側と齟齬が発生するのでfcitx-mozcあたりが無難っちゃ無難

USB Pass Throughが使えない

ChromeOSマウントされたUSB機器、というかシリアル接続された機器Linuxレイヤーから認識しない。
見掛け上で接続されているハードのすべてはソフト仮想接続されているだけなので、一部経路から上手く認識しなかったりする。

まりLinuxレイヤーではUSB Pass Throughが使えないが、Android AppレイヤーではUSB Pass Throughが使えるということ。
Linuxレイヤーゲームやろうと思ってもUSBゲームパッド動かないのでマウスキーボードで完結できるFPSみたいなゲームしか上手くプレイできないぞ。

それぞれが独立しているLinuxレイヤーAndroid Appレイヤー相互認識しない

言うなればAndroid Appレイヤースクリーンキャプチャ系のアプリによってLinuxレイヤーで動くGUIアプリキャプチャしようと思ってもキャプチャできず撮像は暗転している。

ChromeOSホストLinuxレイヤーAndroid Appレイヤーゲストなのでそりゃそうなんだけど気付かないとハマる。

LinuxレイヤーDockerを構築するのはやめておけ

LXC/LXD on LXC/LXDになるので面倒くさくなること請け合いだ。
どうしても仮想環境Chromebookに欲しいのであればKVMとかのほうが安定している。
ただしゲストOS上へ仮想環境を構築しているという前提は認識しておくべき。
まりゲストOS制限KVMも引き継ぐ。

ただしこれはDockerが導入できないという意味ではない。
自分解決する気概があるのならばDockerは便利に使える。

Web開発であれば必要十分

CLIツール系は普通に動くのでWeb開発であれば何も意識しないで普通にできる。
ただ、PSD形式みたいなもんは扱いにくいのでWebデザイナーは悲しい思いをするかも知れない。

GIMPInkscapeなども動くけれどデザイナーAdobe使いたいんじゃなかろうか?

Chrome OS向けAndroid Studioが存在する

Android App向けIDEAndroid StudioはChromeOSけが存在するのでAndorid App開発が可能
しかデベロッパーモードでなければエミュレータや実機デバック制限が発生するので注意。

3DCGゲームを作りたいのであればGodot

UnityやUEを使いたいところだけれど、Linux版のUnityやUEは不安定なのでゲーム向けIDEが欲しいのであればGodotがオススメだ。
ライセンスMITなので商用利用だってイケる。

3Dのほか2Dゲームもいける上に、最近IDEよろしくマウスポチポチUIを作れるし、軽量動作物理演算日本語ドキュメントまで揃っているので中高生ガンガン使える素晴らしいIDEだ。

総評

浅い部分は気軽だが深い部分は非常に難解、それがChromebook

浅い部分を触っているうちはYoutubeを観たり、プリインストールされているGoogle Play StoreからAndoird Appをインストールして使うみたいな気軽な運用ができる。
言ってしまえばライトユーザ視点ではノートパソコンの形をしたAndorid機がChromebookだと言える。

しかし一度Linuxレイヤーへ手を出すとUbuntuという何でもできるようになったLinuxディストリビューションが存在する中で、昔懐かしい複雑怪奇Linuxディストリビューションを体験することとなってしまう。
ただ、Chromebookで何でもやろうとするからそうなるだけで、APTからIDEインストールしてちょっとした開発をするなんて使い方であるならば業務利用でも意外となんとかなる・・・というか何も意識しないで使える。

そもそもHTTP使えるなら今どきの開発は何とかなるので、Chromebookへ対してギークがゴチャゴチャ言うのはほぼ間違いなく不満を言いつつDIYを楽しんでる。
Ubuhtuならばアレができるコレができると言うならば最初からUbuntu使えよって話。

ギークとは不便を見つけてゴチャゴチャ言う、そういう鳴き声の動物なのだ

追記

少なくともGoogleエコシステムとしてのChromeOSは非常に完成度が高くなりつつある。
Googleアシスタントは元よりAndoridスマホとの連携もよく、ハードウェアへもそこそこの投資ができるのであれば多くのChromebookではUSIペンが使えるし、USBポートUSB-Cだ。
そこそこのChromebookは多くの場合HiDPIIPS液晶でありグレアなのは気に食わないが美しい。
デベロッパーモードにするとセキュアさは下がるが普通に使えばローリングリリースアップデート無償で得られ、Gentoo LinuxベースなChromeOS潜在的マルウェア絶対数がそもそもWindowsMacよりも少ないという利点がある。
Bluetoothイヤホンヘッドフォンヘッドセットも使えるし、NestスピーカーNest HubNest Camを持っているのであればGoogleアシスタントからコントロールが容易なのは想像が付くだろう。Android AppレイヤーGoogleホームマネジメントアプリであるGoogle Homeも動く。
大胆にも憎きCapsLockキーデフォルトで殺し、Everything Buttonキーとして独自キーバインドを与えたのも面白い
もちろんこれは選択するハードによるもの指紋認証ロックを解除することまでできる。

Googleエコシステムへ浸かっていてGoogle個人情報を捧げられるのであればChromebookはアリな選択肢だと断言できる。
敢えて欠点を挙げるのならば、たった一言欠点表現することが可能だ。


Chromebookじゃなくても別に良くね?」


そう、ギークLinuxを使いたいのであれば別にChromebookじゃなくても良い。
というかギーク別にLinuxじゃなくともHaikuであろうが超漢字Ⅴだろうが喜ぶ生き物だ。OS別になんだって良い。
このエントリは単にChromebookという新しい沼ギークの皆さんをご案内しているに過ぎないのだ。

2021-07-05

anond:20210705122257

とはいえWindowsはServer Coreミニマム構成にしても2GBはメモリ消費するしな・・

LXC + Dockerという構成にすればディスク500MB、メモリ300MBとかありえんフットプリントになる

そこは明らかに優位だよ

2021-05-22

突然、解説されるChromeOS環境構築

はじめに

エントリはある程度の情報技術リテラシー必須であり、一部の情報PC初心者および初級者に推奨できるものではない。
しかPC初心者および初級者はシステムを壊す、大事データを失うなどの手痛い失敗をして成長するのもまた事実であり、もしもプログラミングなどに興味のあるPC初心者および初級者がこの情報活用する場合システムを壊す、大事データを失うことを覚悟して実行するように

教訓「大事データバックアップ重要である

初期セットアップ

チュートリアルに指示通りに進めれば大きな問題はほぼ発生しません。

開発者向けの注意点

Chrome OSは初期状態デフォルトで「ノーマルモード」と呼ばれる一般ユーザーモードですが開発者向けに「デベロッパーモード」が用意されています
ノーマルモードChrome OSの様々な制限があり、デベロッパーモードによって制限の解除が可能です。

しかノーマルモードからデベロッパーモードへ移行するとPowerwash(初期化)されてしまい、システムユーザー領域へ追加された情報はすべて削除されます
もしデベロッパーモード必要場合デベロッパーモードの詳細を調べ、現在情報は削除されてしまうことを念頭に実行しましょう。

ちなみにProject CrostiniのLinuxレイヤーDebianリポジトリからパッケージを導入するなどにはデベロッパーモード必要ありませんので多くの場合ノーマルモードのままの運用で十分でしょう。
Android OSアプリChrome OSアプリを開発したい場合最初からデベロッパーモードにしたほうが後悔が少ないです。

キーボードショートカットの一覧を表示する

Chrome OSでは一部のキーがほかのOSでは見慣れないものが並んでいます
迷いがちなので一番最初に覚えるべきキーボードショートカットは「Ctrl+Alt+?」です。
「Ctrl+Alt+?」でいつでもキーボードショートカット確認できることだけは覚えておきましょう。

Google Play Store

多くの場合アプリ開発者意図していない

多くのChrome OSデバイスGoogle Play Storeへ対応しており、Google Play Store経由でAndroid OSアプリ導入が可能です。
しかしながらGoogle Play Storeへ公開されているAndroid OSアプリが必ずしもChrome OS最適化しているのか?と言えばそうではなく、Android OSアプリの開発環境であるAndroid StudioがデフォルトChrome OSでの実行を許可していることもあり開発者意図せずChrome OSインストールできてしまうことが大半です。
したがってChrome OSへ導入するAndoirdアプリ動作へ何らかの不具合があったとしても脊髄反射酷評せず、やんわりと丁寧に博愛精神をもってChrome OSではこうだとアプリ開発者情報共有することをオススメします。

CPUアーキテクチャーの違い

多くのAndroidスマートフォンタブレットARMアーキテクチャーと呼ばれるもの採用していますが、現在Chrome OSデバイスは高性能な製品になるほどx86(x86_64)アーキテクチャーを採用している傾向があります
本来コンピューターアプリケーションというものアーキテクチャーが異なると実行起動動作不可能ですが、Android OSアプリは異なるアーキテクチャー間でもアプリの実行起動動作が極力可能となるように互換性をだいたい確保しています
しかしながら例えばARMアーキテクチャー向けのAndoird OSアプリx86アーキテクチャーなデバイスで実行するとアプリ動作パフォーマンスが著しく落ることが多いです。

これは高度なグラフィックス機能必要とするゲームなどで顕著に現れる傾向にあり、Chrome OSでは期待したほどAndroid OSアプリが軽快に動かない可能性を理解しておく必要があるのです。

高性能なChrome OSデバイスしかインストール許可していないアプリ存在する

コロナ禍によって多くのChrome OSデバイス販売することが出来ましたが、それによってChrome OSデバイス間の性能差が問題視される機会も増えました。
具体的には「インターネット上でChrome OSでの動作報告がなされているAndroidアプリ自身Chrome OSデバイスではインストールできない」といった報告です。
これは一部のAndroidアプリ開発者デバイス性能によってインストール許可許可を決めているために起こることで解決方法基本的にありませんので諦めましょう。
これから導入するAndroidアプリのためにChrome OSを購入する際は価格につられて低性能すぎるデバイスを購入してしまうと失敗する確率が高まりますので注意が必要です。

ただし、Google提供するアプリなどは基本的にそのようなことは無いようです。

Project Crostini Linuxレイヤー

Linuxを利用する

設定からLinuxベータ版)」で「オンにする」とLinuxインストールが開始されます

Crostini GPU Support

現在Chrome OS v90ではLinuxレイヤーを実現するProject CrostiniではデフォルトGPUによる支援機能を実行できません。
Chrome Webブラウザを起動し、URL欄へ「chrome:flags」と入力アクセスして「Crostini GPU Support」を「Enabled」とし再起動してください。
この変更で動作不具合確認した際は設定を元に戻してください。

GUIパッケージマネージャーを導入する

LinuxにもGoogle Play Storeのような簡単Linuxアプリを導入できる環境存在します。
GUIパッケージマネージャーを導入する場合「ターミナル」を起動し下記を実行してください。

sudo apt install synaptic gnome-software

パッケージダウンロードを速くする

Chrome OSLinuxレイヤーではパッケージの導入先がデフォルト海外サーバーになっており少々遅いです。
日本国内サーバーへ変更することで速度を改善できる可能性があります。その際は「ターミナル」を起動し下記を実行してください。

  1. sudo apt edit-sources
  2. 下記を最上段へ追記
    deb http://ftp.jp.debian.org/debian/ stretch main contrib non-free
    deb http://ftp.jp.debian.org/debian/ stretch-updates main contrib
    deb http://ftp.jp.debian.org/debian/ stretch-backports main contrib non-free
    deb-src http://ftp.jp.debian.org/debian/ stretch main contrib non-free
    deb-src http://ftp.jp.debian.org/debian/ stretch-updates main contrib
    deb-src http://ftp.jp.debian.org/debian/ stretch-backports main contrib non-free
  3. sudo apt-get update && sudo apt-get dist-upgrade
日本語入力Chrome OSLinuxレイヤーで共有できない

現在Chrome OS v90ではChrome OSLinuxレイヤーを実現するProject Crostiniで日本語入力を共有できず、キーボード入力しても英字しか印字されません。
日本語入力をするには別途に日本語インプットメソッド日本語フォント必要です。
日本語インプットメソッド日本語フォントを導入する場合「ターミナル」を起動し下記を実行してください。

  1. sudo apt install fonts-ipafont fonts-ipaexfont fonts-takao fonts-takao-gothic fonts-takao-mincho fonts-noto-cjk fonts-noto-cjk-extra
  2. sudo apt install fcitx-mozc
  3. export XMODIFIERS=@im=fcitx
  4. fcitx-autostart
  5. fcitx-configtool
    1. 左下+をクリック
    2. Only Show Input Languageのチェックを外す
    3. Search Input Methodからmozc検索
    4. mozc選択してOK
    5. 下部の∧でmozcを上位にする
      1. sudo nano /etc/systemd/user/cros-garcon.service.d/cros-garcon-override.conf
      2. 下記を追記
        Environment="GTK_IM_MODULE=fcitx"
        Environment="QT_IM_MODULE=fcitx"
        Environment="XMODIFIERS=@im=fcitx"
        Environment="GDK_BACKEND=x11"
  6. 再起動

Linuxへ詳しい方はfcitx5のほうが何かと問題が少ないでしょう。
しかし一部のfcitx5向けパッケージDebian公式リポジトリ存在しない可能性があるのでご注意ください。

Chrome OSLinuxレイヤーディスクを共有する/マイクを共有する

設定→デベロッパーLinux開発環境

Linuxレイヤー仮想環境構築は推奨できない

KVMLXCDockerなどの仮想環境を幾度か試しましたが、仮想環境を構築したProject CrostiniのLinuxレイヤー再起動するなどによってProject CrostiniのLinuxレイヤーシステムへ致命的な破壊が起きることがあるのを何度か確認しています
Project CrostiniのLinuxレイヤー自体仮想環境のため、Chrome OSシステム破壊されるわけではないですが業務利用時にLinuxレイヤーシステム破壊が起きてしまうと困ってしまうので仮想環境構築は推奨できません。
仮想環境によって開発環境統一を計っている現場では開発デバイスとしてChrome OSデバイスは利用しないほうが良いでしょう。

ただし、Chrome OSデバイス実質的Android OSデバイスタッチスクリーンデバイスキーボード付きデバイスタブレットデバイスノートPCデバイスコンバーチブルデバイス(いわゆる2in1)、マルチタスクデバイスウィンドウ可変デバイスタッチスタイラスペン付きデバイスとして機能する可能性を秘めていますので実機デバッグデバイスとしては非常に価値があります
昨今はアスペクト比16:9でないどころかリアルタイムに可変してしまデバイスが物凄く増えていますのでスマートデバイス向けアプリを開発する現場ではデバッグ用として1台持っていても全く損しないデバイスかと思われます
さらに言えばティーン層はGIGAスクール構想によりChrome OSプログラミング学習をしているわけですからティーン層取り込みのためのUI開発にも使えるのではないかと考えます

長くなってしまいましたが、質問があれば気付いたときに随時回答したいと思います

 
ログイン ユーザー登録
ようこそ ゲスト さん