HP ChromebooksをLinux環境に設定する方法

HP ChromebookをLinux環境に設定する方法

別サイトでプライベートPCとしまして、Chromebooksを使用していることを書いております。

所有しているChromebookは、HPのChromebookで、Google I/OでLinuxが簡単に設定できるという話でしたが、対応外機種でしたので、一応、ご参考までに記事にしてみました。

本業は、不動産業ですので、本業や専門家の方で、「全然ダメ」というところもあるかと存じますが、ご容赦くださいませ。

Chromebookの公式ヘルプサイトは、こちらです。→ support.google.com/chromebook

ちなみに上記URLからchromebookを外せば、Google関連プロダクツサポートリストの一覧が出てくるかと存じます。
support.google.com

一応、機種が対応していれば、Chromebookヘルプサイトに下記記載の通り、そこまで手間を掛けずにLinux環境にできるかと思います。

ChromebookでLinux(ベータ版)をセットアップする
ChromebookにLinuxツール、エディタ、IDE をインストールして、コーディングやアプリの開発などを行うことができます、

注: Linux のサポートはまだベータ版の段階で、問題が発生する可能性があります。

右下の時刻を選択します。
設定 設定 を選択します。
[Linux(ベータ版)] で [オンにする] を選択します。
画面に表示される手順を行います。セットアップには 10 分以上かかります。
ターミナル ウィンドウが開きます。Linux コマンドを実行したり、APTパッケージ管理システムを使用してツールをインストールしたり、シェルをカスタマイズしたりできます。

ちなみにChromebooksに関しましては、低価格帯のPCですが、充電は長持ちし、動作もサクサク動きます。一応教育用として海外では、Chromebooksが使われているようですが、サードパティーアプリなどは、Google縛りがすごいように感じる方もいるかもしれませんし、マイナスに感じる方には、マイナスに感じるかもしれません。しかし、うまくつかいこなせば、Chromebooksは伸びそうな気がします。とりあえず、古いPCのためGoogle純正のPixel Chromebooksは、確か、なかったか、高額だったため避けたような記憶があります。

Linuxカーネル公式サイトや、Chromiumなどの公式ドキュメントやWikiみたいなものなどを一部引用参照させて頂きまして、公式サイトのリンクをいくつか貼り付けさせていただきます。基本的には英語ですが、日本語ドキュメントが用意されているものもあります。エディタはChromiumは、GNU BashまたはPOSIXシェルと。一応、カーネルの方で、
The Linux Kernel Archives
kernel.org
Linux Kernelドキュメント英語
kernel.org/doc/html/latest

Linux カーネル開発のやり方
これは上のトピック( Linux カーネル開発のやり方)の重要な事柄を網羅した ドキュメントです。ここには Linux カーネル開発者になるための方法とLinux カーネル開発コミュニティと共に活動するやり方を学ぶ方法が含まれています。 カーネルプログラミングに関する技術的な項目に関することは何も含めないよ うにしていますが、カーネル開発者となるための正しい方向に向かう手助けに なります。

もし、このドキュメントのどこかが古くなっていた場合には、このドキュメント の最後にリストしたメンテナにパッチを送ってください。

はじめに
あなたは Linux カーネルの開発者になる方法を学びたいのでしょうか? そ れとも上司から「このデバイスの Linux ドライバを書くように」と言われた のかもしれません。この文書の目的は、あなたが踏むべき手順と、コミュニティ と一緒にうまく働くヒントを書き下すことで、あなたが知るべき全てのことを 教えることです。また、このコミュニティがなぜ今うまくまわっているのかと いう理由も説明しようと試みています。

カーネルは少量のアーキテクチャ依存部分がアセンブリ言語で書かれている以 外の大部分は C 言語で書かれています。C言語をよく理解していることはカー ネル開発に必要です。低レベルのアーキテクチャ開発をするのでなければ、 (どんなアーキテクチャでも)アセンブリ(訳注: 言語)は必要ありません。以下 の本は、C 言語の十分な知識や何年もの経験に取って代わるものではありませ んが、少なくともリファレンスとしては良い本です。

“The C Programming Language” by Kernighan and Ritchie [Prentice Hall]
『プログラミング言語C第2版』(B.W. カーニハン/D.M. リッチー著 石田晴久訳) [共立出版]
“Practical C Programming” by Steve Oualline [O’Reilly]
『C実践プログラミング第3版』(Steve Oualline著 望月康司監訳 谷口功訳) [オライリージャパン]
“C: A Reference Manual” by Harbison and Steele [Prentice Hall]
『新・詳説 C 言語 H&S リファレンス』 (サミュエル P ハービソン/ガイ L スティール共著 斉藤 信男監訳)[ソフトバンク]
カーネルは GNU C と GNU ツールチェインを使って書かれています。カーネル は ISO C89 仕様に準拠して書く一方で、標準には無い言語拡張を多く使って います。カーネルは標準 C ライブラリに依存しない、C 言語非依存環境です。 そのため、C の標準の中で使えないものもあります。特に任意の long long の除算や浮動小数点は使えません。カーネルがツールチェインや C 言語拡張 に置いている前提がどうなっているのかわかりにくいことが時々あり、また、 残念なことに決定的なリファレンスは存在しません。情報を得るには、gcc の info ページ( info gcc )を見てください。

あなたは既存の開発コミュニティと一緒に作業する方法を学ぼうとしているこ とに思い出してください。そのコミュニティは、コーディング、スタイル、開 発手順について高度な標準を持つ、多様な人の集まりです。地理的に分散した 大規模なチームに対してもっともうまくいくとわかったことをベースにしなが ら、これらの標準は長い時間をかけて築かれてきました。これらはきちんと文 書化されていますから、事前にこれらの標準について事前にできるだけたくさ ん学んでください。また皆があなたやあなたの会社のやり方に合わせてくれる と思わないでください。

Linuxカーネル日本語ドキュメント
kernel.org/doc/html/latest/translations/ja_JP

Chromiumより一部引用参照。

Standard Selection
There are two standards that are permissible: GNU Bash and POSIX shell. When writing code that is used on developer systems or dev/test Chromium OS images, always use bash. For scripts that are used on the release Chromium OS image, you should be using POSIX shell.

Upstart jobs (.conf files in /etc/init/) require the POSIX shell standard.

The shebang (the first line of the file) should always reflect the language. GNU Bash scripts must use #!/bin/bash; POSIX shell scripts must use #!/bin/sh.

POSIX Shell Restrictions
Various bash constructs can’t be used in POSIX-conforming shell scripts. If a construct isn’t described in the POSIX shell standard, it isn’t allowed in POSIX shell scripts. Below is a list of bash-specific constructs that have been sources of trouble in the past:

Tests using the double-bracket test operator, e.g. [[ “${SOMEVAR}” == “test value” ]]
Arrays, e.g. foo=( 1 2 3 )
The declare built-in command
Using the function keyword to define a shell function (you should never use this though, even with bash)
Brace expansion, e.g. echo {a,b}{c,d}
The list above isn’t comprehensive; to be sure, you must consult the POSIX standard.

chromium.org/chromium-os/shell-style-guidelines

uname -r

最新の安定版カーネルのバージョンで。これはバージョン「gnu/bash/bash-GNUバージョン」。

$ mkdir bash_tmp
$ cd bash_tmp
$ wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
$ wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
$ tar zxvf bash-4.3.tar.gz
$ cd bash-4.3
$ ./configure ...
$ sudo make install
$ sudo rm -r src
$ bash --version
Linux Foundation member Black Duck Software provides this Linux Training video on the Software Data Exchange standard and project, which helps address open source software compliance. For more information on SPDX, please visit: spdx.org

どこまでかわかりませんが、Chromebooksで、すでに簡単にLinux環境へ変更対応している機種以外も、Linux環境に簡単にスムーズにできるとの情報ですが。

いろいろとやってもできない場合

UbuntuやLXDEやXfceなどで代用の手を使う。恐らくこれまでもUbuntuでLinux環境にされていた方も多いかと思いますが・・・。コマンドなどをUbuntu公式サイトより参照引用させて頂きます。英語です。
デベロッパーモードに切り替え。

To get to Developer Mode, we need to first reboot into Recovery Mode. On most Chromebooks, you do so by turning the device off, then holding down the 「ESC」 and 「Refresh」 keys while you press the Power button.
Once in this mode, press 「Ctrl-D」. You will be prompted with an opportunity to “turn OS verification OFF”. Press Enter to do so.
When you boot up your Chromebook, it will begin with a warning screen noting that “OS verification is OFF”. You will need to press 「Ctrl-D」 to continue. Your device will now transition to Developer Mode.
Every boot thereafter will also begin with that warning screen, and a need to press 「Ctrl-D」 to continue. Do not follow the onscreen instructions to turn OS verification on, or you risk wiping your machine’s data and turning Developer Mode off.

bash shellを使えるように。Croutonを使います。https://goo.gl/fd3zcかGitHubから入手してください。github.com/dnschneid/crouton

Then we will open up a shell by pressing 「Ctrl-Alt-T」, and then typing shell. Now we have a full bash shell at our fingertips.

こんな感じで、すでに慣れている方も多いかと思いますが。

・Installing Ubuntu with crouton

For a simple setup, we’re going to type 「sudo sh ~/Downloads/crouton -t unity」. This will download the Ubuntu 16.04 packages with the default Unity desktop environment.
You’ll see your terminal processing these packages one by one. This will take some time, so feel free to browse the web on ChromeOS, have a snack, or browse the web while having a snack.

Alternative Installation Options
Depending on the specification of your device, the Unity desktop may be too demanding to work well for you. If you want a more lightweight system, you can install LXDE or XFCE by replacing 「-t unity」 with 「-t lxde」 or 「-t xfce」. GNOME fans can also try -t gnome instead.
You can also encrypt your chroot with a passphrase by adding -e to the end of the installation command before excuting it. This will require that you type in the encryption password you’ve chosen each time you enter the chroot environment.

・Switching between OSes

With the installation complete, you will be prompted to enter a username and a password. You will then be brought into a bare-bones Ubuntu setup.
Pressing 「Ctrl-Alt-Shift-Back」 and 「Ctrl-Alt-Shift-Forward」 will rotate you between ChromeOS and Ubuntu. Logging out of Ubuntu will drop you back into the ChromeOS terminal tab that ran the system.
You can get back to Ubuntu in future sessions by typing 「sudo startunity」 into your bash shell.

・Practical and fun uses for your system

Like playing games? 「sudo apt install steam」 in a terminal gets you Valve’s Steam gaming client for Linux-based desktop gaming on your Chromebook. If you’re not a previous Steam user, you’ll need to register an account.
Enjoy irony? 「sudo apt install firefox」. Have fun running Firefox on ChromeOS!
Want to browse for other ideas? 「sudo apt install gnome-software ubuntu-software」 gets you the Software tool for access to a wide variety of useful applications. Install LibreOffice for full office productivity, GIMP for desktop image editing, Audacity for audio editng, or Kodi for your multimedia enjoyment. If you’re a developer, install your IDE of choice and hack away!
Really, practically anything you could run on a “real Ubuntu laptop” could be run here. Have fun!

・Conclusion

Next steps
The crouton project is active on GitHub. More documentation is available there to use the tool in additional ways.
If you need support, Reddit’s ChromeOS community at r/chromeos is helpful, with many crouton users active there.

Linux環境OSでも他のディストリビューションでも良いとか、いろいろ試してみたいという方など、ご興味のある方は、よろしければご参考にしてください。デュアルブートができるかとかもいろいろと行ってみてください。

この後Google I/Oでやっておりましたので、公式動画追加しておきます。
Linux for Chromebooks: Secure Development (Google I/O ’19)

Learn how Linux for Chromebooks (Crostini) gives you a secure sandbox for development. Through a variety of demos, this talk will explain the architecture underlying Linux for Chromebooks and the design decisions that keep it easy to use.

GNU
gnu.org/software/bash
Free Software Foundation Wiki
directory.fsf.org/wiki
Linus Torvalds torvalds GitHub
github.com/torvalds
Ubuntu
Ubuntu