リリカルマジカル頑張るブログ

のんびり生きていて思った事とかを書いていくブログです

Manjaro Linuxのススメ〜Dell XPS 13 2-in-1 (7390)にManjaro Linuxをインストールした話〜

ほにゃにゃちはー

こんにちは,ででどんです.
もうAdvent Calenderの時期なんですね.論文...うっ頭が...

この記事は近畿大学Advent Calender2019の12日目の記事です.
内容はタイトルの通りです.
Manjaro Linuxのススメ記事です. Manjaro Linuxインスコした話(備忘録)について書きます.
そう,Linux Install Battleです.

作業時に写真を撮るのを忘れていました... すごっい分かりにくいですがご了承ください.

Manjaro Linuxの概要

Manjaro LinuxはArch Linuxベースの初心者にも優しいユーザフレンドリーな ディストリビューションとして開発されており,以下の特徴があります.

  • デスクトップ環境が公式で提供されている
  • GUIベースのインストーラー・マネージャーがある
  • マルチメディアのコーデックがプリインストールされている

また,Arch Linuxと違う独自のリポジトリを運用しており, 開発者側がテストしてから公開するという形を取っています.
つまり,安定動作が保証されているということです.

Manjaroはいいぞ...

manjaro.org

使用するPCについて

今回インストールに使用するPCはDell XPS 13 2-in-1 (7390)です.
第10世代Intel Coreシリーズプロセッサーを採用したモデルになっています.

thehikaku.net

買った理由としては第10世代の威力をいち早く体験したいという 好奇心と単にデザインが好みだったからです.
このベゼルレスのディスプレイとキーボードの詰め詰め感めっちゃ良くない???

f:id:bardiche25:20191212115721j:plain

DellアメリカではLinux搭載モデルのPCを販売しているので, ハードウェアドライバ周りで安心できます. 加えて,XPSはBest Linux laptopsのランキングで常に上位をキープしている 人気モデルなので,Linux Laptop試してみたい!!という人に強くお勧めします.

www.techradar.com

ISOダウンロード

Manjaroは公式では,デスクトップ環境としてXfce, KDE, GNOMEを提供しています.
また,公式とは別に有志が開発している(Community)エディションが複数あります.

徹底的に自分専用にカスタマイズしたい!!という方には, ウィンドウマネージャーしか入っていないエディションをお勧めします.

今回は一応ススメということで, 一番信頼性があるXfceエディションをインストールしていきます.
以下のリンクからISOをダウンロードしましょう.

manjaro.org

ISOの整合性チェック

SHAを用いてダウンロードしたISOファイルの整合性チェックを行いましょう. 先ほどのダウンロードリンクにあったハッシュ値と一致すれば正常なISOファイルです. 逆に違っていれば破損しているので,投げ捨てましょう.

## SHAでハッシュ値生成

## Linux
sha1sum [ISO]

## Mac
shasum -a 1 [ISO]

ライブメディア作成

ISOの整合性チェックが無事終わったら,ライブメディアを作成しましょう. 今回もUSBメモリに書き込んで作成します.

## ddで書き込み
sudo dd if=[ISO] of=[USBメモリのパス] bs=16m 

たぶん5分くらいかかります.

UEFI設定

Manjaroをインストールする為にPCのUEFIの設定をいじります.

デフォルトだとWindowsの高速スタートアップが有効になっているので, Windowsの設定で高速スタートアップをOFFにしましょう. これでUEFIに入れます.

デフォルトだとSATAコントローラーモードがRAIDになっています. ManjaroはRAIDでのインストールをサポートしていないので,
System Configration > SATA OperationをAHCImodeに変更しましょう.

ManjaroのライブメディアがSecure Bootに対応していないので,
Secure Boot > Enable Secure BootをOFFにしましょう.

ライブメディアから起動したいので,POST時の振る舞いを変更しましょう. デフォルトだとFastbootのモードが最小で外部デバイスから起動できないので, POST Behavior > FastbootをThoroughに変更しましょう.

インストール

作成したライブメディアから起動しましょう.

起動できたら,Welcome to Manjaro!というウィンドウが出るので, その下にある Launch installerを起動しましょう.

f:id:bardiche25:20191212114429p:plain
Welcome to Manjaro!

あとはインストーラの指示に従っていけば問題なくインストールできるはずです.

さようならWindowsくん...
プロダクトキーだけもらってくね.

起動する

そして,お待ちかねの起動ですが, ここで問題発生.
カーネルモジュールロードのところでこける...(写真忘れ)

は〜〜〜〜〜〜 NVIDIA Fuck You!! (これほんとすき)

https://i.gzn.jp/img/2012/06/18/linus-nvidia-f-word/linus09_m.jpg

出典: Linux開発者リーナス・トーバルズ氏がNVIDIAに対し中指を突き立てFワード発言
https://gigazine.net/news/20120618-linus-nvidia-f-word/

なんでや!!ヴィディア関係ないやろ!!

冗談はさておき, Redditなどでいろいろと調査したところ, どうやらINTEL_LTSSというのが悪さをしているとのこと.

https://wiki.archlinux.org/index.php/Dell_XPS_13_2-in-1_(7390)wiki.archlinux.org

moduleをblacklistに登録

パッチ当てるのも面倒なので,とりあえずモジュールをブラックリストに登録しましょう.

もう一度ライブメディアから起動した後, ターミナルを起動し,PCのドライブをマウントしましょう.

## デバイス一覧を見る
lsblk

## 該当デバイスをマウント
mount [device] /mnt/

インストールされた Manjaroのファイルシステムをマウントできたら, /etc/modprobe.d以下にconfファイルを作成しましょう.

##vi etc/modprobe.d/intel_lpss_pci.conf
##confの内容

blacklist intel_lpss_pci

これでこのモジュールは起動時に読み込まれないはずです.

ブラックリストに登録したら,再起動しましょう.

(なお,現在のカーネルバージョン5.4では,この問題は解決したようです)

この後,問題なく起動できました.

セットアップ~環境構築に入る前にやっておいたほうがいいこと~

インストール完了後は、各々好きなようにカスタマイズしていけば良いのですが, その前にやっておいた方がいいことを紹介します.

pacmanミラーサーバリストの更新

pacmanデフォルトのミラーサーバのままだと遅いので(確かドイツとかになってる), リポジトリの同期に時間がかかります. なので,ミラーサーバリストの更新を行いましょう 以下のコマンドで世界中のミラーサーバがテストされた後,ランキング化され, それに従って,/etc/pacman.d/mirrorlistが書き換えられます.

## ランキング順にmirrorlistを更新
sudo pacman-mirrors --fasttrack && sudo pacman -Syy 

更新が終わった後, システムのデータベースとManjaroリポジトリを同期しましょう.

sudo pacman -Syyu

これでmirrorlistとシステムのデータベースが同期され, 速度が改善されたと思います.

日本語入力環境の構築

日本人なら,日本語入力環境が欲しいはずです(たぶん).
fcitx-mozcを導入して日本語入力環境を構築しましょう.

## pacmanで必要なモジュールをインストール
sudo pacman -S fcitx-configtool fcitx-mozc fcitx-gtk2 fcitx-gtk3 fcitx-qt4

ホームディレクトリの.xprofileを 以下のように編集.

## .xprofileの中身
export LANG="ja_JP.UTF-8"
export XMODIFIERS="@im=fcitx"
export XMODIFIER="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export DefaultIMModule=fcitx

これで再起動すると,fcitxが自動的に起動し, fcitx-configtoolを起動すると,mozcがfcitxの入力メソッドの中に入っているはずです.

Arch User Repositoryの利用

Archには,Auch User Repository(AUR)という, 公式とは別にコミュニティが運用しているリポジトリが存在します. ありとあらゆるソフトウェアが揃っているので, 非常に有用です. Manjaroでも,もちろん利用できます.

利用するには,AUR helperソフトウェアが必要です. 以前はyaourtというhelperがユーザ間でよく使われていましたが, こちらはすでに開発・メンテナンスが止まってしまっているので, yayというhelperを使いましょう.

sudo pacman -S yay

yayを導入した後,AURと同期しましょう. yayの使い方はpacmanと同様なので非常に楽です.

yay -Syyu

加えて,内部でpacmanを実行し,公式のManjaroリポジトリも同期をおこなってくれるので, 毎日上のコマンドをうっとくだけで システムとソフトウェアが最新の状態になります.

完走した感想

ススメ記事としては非常に簡単なものになってしまいましたが,これで終わります.

さて,完走した感想ですが,周りが技術系の記事が多いので, こんなのでよかったのか?感は否めないです.
自分としては,ちょうど温めていたネタなのでこの際に放出できてよかったと思います.

次の記事ですが,できればLinuxセキュリティの話をしたいと思います(現在勉強中).
インフラ周りは楽しいな〜

参考

honobono-ahiru.hatenablog.com
https://wiki.archlinux.jp/index.php/カーネルモジュール https://wiki.archlinux.jp/index.php/Fcitx https://wiki.manjaro.org/index.php?title=Pacman-mirrorsコマンドによるミラーサーバーリストの更新

CoreOSインストールしましょ

2019/10/30 追記

FedoraCoreOSの話を追記しました

ちなみにCoreOSはUEFIブートできませんでした
最近のPCだとインスコできないじゃん...()

なのでそういう方はFedoraCoreOS使ってください(投げやり)

にゃんぱすー

おひさしぶりです
前回の記事から半年以上経ってしまったので, とりあえずなんか書きました
CoreOSをインストールしたいと思いまーす

CoreOSって??

CoreOSっていうのは簡単に言うとDockerなどのコンテナ利用に特化したOSです

なぜCoreOSをインストールするかと言うと
「コンテナオーケストレーション実験したいから この子達にOS入れといて」
とお願いされたからです

これからCoreOSインストールしようと思っている人は参考にしてください

CoreOSのISOの入手

CoreOS
https://coreos.com/os/docs/latest/booting-with-iso.html
公式から入手
ひとまずStableでいきましょ

追記:Container Linux(CoreOS)は2020年に終了して, 後継はFedoraCoreOSになるらしい

FedoraCoreOS
https://getfedora.org/en/coreos/download/

bootable mediaの作成

bootable mediaを作るんじゃ!

ISOをUSBフラッシュドライブとかのデバイスに書き込む

当方の環境はMacだが,一応Linuxの場合も書いておく

## デバイスのリストを取得

## Mac
diskutil list

## Linux
lsblk

## デバイスのフォーマット
## ラベルは大文字で

## Mac
diskutil eraseDisk FAT32 [LABEL] /dev/disk? 

## Linux
mkfs.vfat -v -F 32 -n [LABEL] /dev/sda?

## デバイスのアンマウント

## Mac
diskutil unmountDisk /dev/disk?

## Linux
umount /dev/sda?

## デバイスに書き込む
## わざとrdiskにしてある
## bsを設定するなら16mとか
sudo dd if=[PATH_ISO] of=/dev/rdisk?? 

CoreOSのインストール

公式ではignition.jsonを用いてインストールするのが推奨だが,
cloud-config.ymlから 設定を読み出してインストールすることも可能である(非推奨)

今回は めんどくさいので 後者で行う

cloud-config

設定ファイルを書く

設定する項目はいろいろあるんですけど, ここでは説明を割愛する(etcd, etcd2, fleet, flannel)

とりあえず etcdとetcd2はdeprecatedだったので使わなかった

詳細な設定に関しては聞いていないのでこれで大丈夫だと思う(適当)
必要最低限には使えるはず

以下,cloud-config.ymlの例

#cloud-config
#sudo coreos-install -d /dev/sda -C stable -c cloud-config.yml

hostname: core-01

coreos: 
  update:
    reboot-strategy: 'off'
  manage_etc_hosts: localhost

  # etcd2: deprecated
  # name: core-01
  # discovery: 192.168.32.???/v2/keys/machines
  # addr: $public_ipv4:4001
  # peer-addr: $private_ipv4:7001

  units: 

    - name: coreos-setup-environment.service
      command: restart

    - name: systemd-networkd.service
      command: restart

    - name: timezone.service
      command: start
      content: |
        [Unit]
        Description=timezone
        [Service]
        Type=oneshot
        RemainAfterExit=yes
        ExecStart=/usr/bin/ln -sf ../usr/share/zoneinfo/Japan /etc/localtime

    - name: etcd2.service
      command: start

    - name: fleet.service
      command: start

    - name: docker.service
      command: start

users: 

  - name: core
    passwd: passwdのハッシュ値
    groups:
    - sudo
    - docker

write_files: 

  - path : /etc/environment
    permissions: 0644
    content: |
      COREOS_PUBLIC_IPV4=192.168.32.??? 
      COREOS_PRIVATE_IPV4=192.168.32.??? 

  - path: /etc/systemd/network/10-static.network
    content: |
      [Match]
      Name=e*

      [Network]
      Address=192.168.32.???/24
      Gateway=192.168.32.1
      DNS=???.???.???.???

passwdのハッシュ値はopensslコマンドで出力した

## -1はMD5ハッシュ化
openssl passwd -1

さっき作ったbootable mediaを
インストールするマシンのUSBに挿してCoreOSを起動
ここで起動しない場合,書き込みに失敗してるのでやり直してください
また,UEFIでBoot Priorityいじるかはマシンとお話して判断してください

追記:どうやらUEFIブートできないっぽい()
「助けて〜LegacyBIOS〜」という方は, FedoraCoreOSを入れてください
そっちはちゃんとUEFI対応してました.

## cloud-configはisoに埋め込むか
## どっかのサーバにおいてscpとかで取ってきたらいいと思う

## cloud-configを用いてinstall
## たぶんsdaとかでしょ...()
sudo coreos-install -c cloud-config.yml -d /dev/sda -C stable

## ignition.jsonの場合
sudo coreos-install -i ignition.json -d /dev/sda -C stable

## FedoraCoreOSの場合
/usr/libexec/coreos-installer -d sda -i ignition.json -b image.iso

インストール!!

最後にSSH接続できるかdocker使えるか確認して終わり!!

参考URL

公式のドキュメント

https://coreos.com/os/docs/latest/installing-to-disk.html
https://coreos.com/os/docs/latest/provisioning.html
https://coreos.com/os/docs/latest/cloud-config.html

終わりに

今回はCoreOSのインストールについて書きました

設定に関して全然説明してないけど
公式のDocumentsに全部書いてるので そっち見てください

近々,Linuxの記事書くと思います
あと自作PC界隈の話とか

近畿大学理工学部情報学科情報システムコースを卒業しました+α

最初の記事です. 退職エントリが流行っているので,卒業エントリ?的なものを書いてみました. タイトルにもある通り,私はこの春に近畿大学理工学部情報学科情報システムコースを卒業しました.

この記事は主に在学中に学科の実習で思ったことを超簡単に書きます. これから理工学部情報学科に入学する方は雰囲気で理解して参考にしてください.

私について

この界隈とりあえず趣味を書いておけばどんな人間かわかると思うので. 趣味だけ書きます.

私には大きく分けて二つの趣味があります.

  • アニメ鑑賞

まあ俗に言うアニメオタクと言うやつです. 初めて見たアニメがカードキャプターさくら, 好きなアニメが魔法少女リリカルなのはです. はい,見事に人生をブレイクしていますね. 小中高と同類の友人とつるんで来ました.

f:id:bardiche25:20190328081017j:plain
オタク特有の部屋晒し

小学生の頃,父に自作PCの知識を与えられ, 休日は基本父が持ってきたまたは買ってきたPCをいじくり回していました. それが続いて,今の趣味になりました. 今では毎週大阪日本橋に行ってパーツを物色するくらいです. ちなみにCPUはAMD派です. この記事はRyzenが載っているPCで書いています.

f:id:bardiche25:20190328080005j:plain
Ryzen 5くん

情報学科を選んだ理由には,上に書いた二つの趣味が関係しています.

  • 私と同類の人間が多く在籍してそうな学科である事

  • PCに関係しそうな学科である事

が当てはまれば正直どこでもよかったです.

一年次

情報学科生は 学科指定のMacBook Airの購入を促されます. 個人でApple Storeから購入してもいいですが, 4年間の保証がついてくるので,学科指定のものを買う事を推奨します.

情報実習1

前半は端末操作などの情報系における基礎知識やLatexでのレポートの書き方を学び, 後半はJavaでの簡単なプログラミングとレポートの作成を行いました. 最初の実習なので先生の言う事をしっかりと聞いておきましょう. 最終レポート提出なんて忘れた日には目も当てられません.

情報実習2

終始Javaでプログラミングをしていました. 基本的なプログラミング力が身につくと思います. この時点でオブジェクト指向設計を学びました. 数回のレポート提出は重要です.必ず出しましょう.

二年次

ここから情報システムコースと情報メディアコースで分かれます. コースの違いは前者がJABEE認定のコースであると言うことぐらいです. この時点では受ける講義にほとんど差はありません.

プログラミング実習1

オブジェクト指向プログラミングを行いました. 課題によって担当の教員が変わるので, プログラムの難易度も変わります. ほぼ毎週レポート提出があります.

プログラミング実習2

デザインパターン(ソフトウェア開発におけるよく出会う問題とそれに対処する良い設計)を学びました. 毎週違うパターンを学び,それに沿った課題をこなしました. 最終課題では様々なパターンを組み合わせてアプリケーションを作りました. 志願者限定の特別コースがあります.

三年次

実習がコースで分かれ, コースによって受ける授業がだいぶ変わります. 他コースの授業を受けてもいいですが, 取った単位は他コース履修になり,選択科目に充当されるので, そこだけ気をつけてください. 私は情報システムコースだったので,そちらの実習しかわかりません. 6月になると,研究室配属の季節になり,様々な噂が飛び交います. お勧めは自分で研究室に訪問して,研究室の先輩と話すことです. 現在どんな研究をしているのか,担当教員がどんな人なのか,研究室の裏話などなど聞くことができます. 教員と話しても良いですが,教員と学生ではかなり意識の差があると思うので, 実際知りたい話はあまり聞けないかもしれません.

情報システムプロジェクト1

15週かけてJavaでオリジナルの言語のコンパイラを作りました. 同じセメスターに必修でコンパイラの基礎を学ぶ授業があるので, その授業の内容をしっかり頭に入れて実習に挑みましょう. 内容を理解できていれば,さほど苦労はしないはずです.

情報システムプロジェクト2

前半はWebアプリケーションの基礎を学び, 後半はチームでWebアプリケーション開発を行いました. チームでの開発の際,設計書を書きます. ゲームなどを作る場合,開発する目的の記述などで苦労するかもしれないので, それ以外のものを作ることをお勧めします.

四年次

ここまで頑張って単位修得してきた人は, 就職活動と卒業研究に集中できます. 就職活動に関しては,(私はやっていないので)具体的なアドバイスは出来ませんが, 自己分析とインターンシップ会社説明会にいくことが大事だと思います.

卒業研究

卒業研究に関しては,(ほとんどの学生が)配属された研究室によって研究内容が決まります. 担当教員によって面倒見がよかったりなど,指導の違いが出るので, やはり本人の頑張りが一番重要になります. レジュメと論文をきっちりと書式通りに書いて提出し, 卒業研究発表の日に発表すれば(相当ひどい出来でない限りは)卒業できます.

卒業して

f:id:bardiche25:20190328075018j:plain
卒業式での記念撮影

この学生生活で,素晴らしい先生や友人,先輩に恵まれました. この場を借りて,感謝申し上げます. 皆様のおかげで様々なスキルを磨くことができたと思います.

反省すべき点を一つ言わせてもらうと, 授業以外はバイトばかりで 自分に投資(勉強,趣味)する時間を作ってこなかった事です. せっかくの時間を無駄にしてしまった過去の自分が恨めしいです. (時間は有限なのになぜ無駄にしてしまうのか,コレガワカラナイ) 物凄く後悔しています.

総合理工学研究科エレクトロニクス系工学専攻博士前期課程に進学します

そのまま近畿大学の大学院に進学する事にしました. 目的としては,大学生活で後悔してしまった分を取り返す事, 社会に出ても恥ずかしくない人材になる事です. せっかく進学させてもらったので,必ず成し遂げようと思います. (モチベーションが続いてるうちにいろいろ始めないと...)

私と同じようにせっかくの大学生活で後悔してしまった人, 頑張って勉強したけど,まだ勉強したりないと思っている人, まだ就職したくない!と言う人, 大学院に進学してみませんか?