古いミニノートを10秒で起動!Archを使ったクラウド同期付きのポメラを作る!

ポメラがほしいけど変えないのでそれっぽいものをLinuxで作ってみた!

実際に環境を作っていた際にとっていたログをもとに書いています。
その時ちょっとテンションがおかしかったので、(できる限り編集はしますが)
読みづらい場所があるかと思います。ご了承ください。

まず、前提条件について
今回Archをインストールしたパソコンは、NECのLavie Light BL350CW6Wという機種です。
2010年発売のモデルです。めちゃくちゃ古い。
昔の記事でも書いていますが、オークションで結構お安くゲットしております。
SSDが高かったということもあり、メモリを揃えたりしていたら結構なお値段になったんですが…。
メモリは増設、というか取り替えですね。して2GB
ストレージはSSDの128GB(部屋に転がっていた)です。サムスンの850無印?です。
そんなBL350ちゃんですが、ちょっと困ったところがありまして。
Atomの、シングルコアなんです…。まともにWindows10が動く訳ありませんよね。
買った当初は実はぎりっぎり動作していました。
でも現在、インストールすらできない状態(半端な状態で止まる)
使おうと思ったらLinuxくらいしかないわけで、色々なディストリを試しました。
Lubuntuが一番軽いと感じたのですが、当時はもうこのパソコン使わないなぁと思いタンスの奥にしまっておしまいでした。
ところが最近、暇になる出来事がありまして。
失職しました。自分から、退職したいと申し出た形です。
どうしてもそりの合わない上司がいて、その人と取っ組み合いの喧嘩になる一歩手前まで行ってしまったのでこりゃあイカンと。
悪い人じゃないんですけどね。苦手でした。
その人と会いたくなくて、どんどん仕事に行きたくなくなって。悪循環でした。
仕事場も家から遠く…。もう行く理由が見つからない。
ササッとやめる手続きして、いま無職です。病院にすら行けない状態。
アルバイトでも適当にしようかなぁと考えるだけ考えて。
気がついたらパソコンいじって現実逃避しているという有様です。
まあ、僕のことはいいんです。古いパソコンを物書き専用、まさにポメラの用にしたい!という人と情報を共有できればと思い、今回ブログを更新することにしました。
時間つぶしも兼ねているので、できる限り丁寧に解説する予定です。
…。ですが、肝心なチューニングの部分は熱が入りすぎてしまい、リアルタイムでログを取ることができていません。
思い出しながら書いているのですが、実際に手順を追っていくとおかしなことになる部分があるかもしれません。これもまた、ご了承ください。
やっと本題に入れる。がんばります。

①Arch環境をインストールしていく

この方の方法をほぼまるぱく…。参考に初期インストールをしています。
めちゃくちゃわかりやすくて、設定もシンプルで良きでした。
内容はほぼ一緒なので、読みづらいと思ったらというかぜひにこちらの記事を見て見てください。
勝手に宣伝とかリンク貼ったりして怒られないかな…。でも書かないよりはマシかと思いまして…。
だめだったら言っていただければすぐにリンク削除、内容も変更しますので!
こういうブログの基本的なマナーってどこらへんで勉強すればいいんでしょうか。
当たって砕けろの精神なのか?(絶対使い方違う)
さて、ArchのISOを公式からダウンロード、USBなんかにDDとかrufusとかで焼いていきます。
ここらへんは、こういう記事見ている方ならわかると思うので、飛ばしていきます。
と思ったけど、キーマップの変更から説明していくならここも必要か?
Windows10ならrufusっていうソフトがあって、とても簡単にUSBへISOを焼くことができます。
Linux系を使っているのなら
sudo dd if=isofile.iso of/dev/sdx(USBに割り振られたアルファベット)
で焼けます。
lsblk
とか
df -h
などでどれがどれかは判別ができるはずです。
ちなみに、今回使っているBL350CW6Wは当時32bitのWindows7が積まれて売られていたそうですが、CPUのAtom N475は64bitに対応しています。
WindowsはBios絡みの制限でインストール出来ないと書いてある記事もありましたが、Linuxなら大丈夫です。
なので、Archのisoは公式から落とします。もし32bitにしか対応してない…。というパソコンをお持ちの方は…。
Arch32という派生なんですかね?のプロジェクトもあるので、そちらからisoもらってくるのも手です。
ただあんまりメンテナンスがばしばしされている感じでもないので、廃れてしまっているのかもです。
できたら64bit対応のパソコンがいいです。
対応か非対応かイマイチわからないっていう方は、パソコン名を検索→公式サイトや価格.comなどでCPU名を確認→CPU名だけで検索→Intelの公式ページの命令セットという欄で確認することができます。
インストールを試みて、できたら対応!でもいいかもしれないです。
やっと進みます。USBをインストールしたいパソコンにさして。
F2とか、F10とか。パソコンによって違うのでそこは調べてみてください。
とりあえず、Bios画面を開いてください。
ここもパソコンによって違うのですが、デバイスの起動順を変更します。
USB HDDとか、USBとか、そんな感じのデバイスを一番上に指定します。
移動のさせ方は大体右横とかに書いてあります。
なかったらパソコン名 biosで検索!
変更できたら、保存して再起動します。
うまくできていれば、起動画面が表示されるはずです。
そのままEnterで大丈夫です。
少しするとroot状態でArchが起動します。
このまま設定に移ってもいいのですが、キーマップがUSなので記号が打ちなれない。
なので、日本語のキーマップに変えます。
loadkeys jp106
これでよし。
続いて無線の設定。有線で使う予定の方は飛ばして大丈夫です。
ip addで無線のデバイス名を確認。
wlp9s0でした。
以下の通りコマンドを打つ。
wpa_supplicant -B -i wlp9s0 -c <(wpa_passphrase JIBUNNSSID SORENOPASSWD)
dhclient wlp9s0
ping 8.8.8.8とかで外部とつながっているか確認。できていたらよし!
ちょっと名前とかいじっただけでURL貼ってある先の方の方法そのままです。
こんなに短く無線につなげるのかぁと感動しました。
時間の設定もするらしい。ここらへんいっつもやってなかったです。
timedatectl set-ntp true
fdiskでパーティションを作っていきます。
fdisk /dev/sda
o
n
Enterを何度か打つ。
このとき、すでにデータが入っていた場合はほんとに上書きしていいの?と出てきます。
よければ
Y
w
これでパーティションが1つだけのディスクができました。
今回は1つで行きます。分けていて早いなぁとか、助かったなぁとか感じたことがないものでして。
もしもUEFIとかの新し目のパソコンを使っていたなら、Boot用のパーティションも作る必要があります。
上の方のを参考にしてください…。
フォーマットします。ssdなので脳死でxfsにしています。どこかでこれが一番いいと見て鵜呑みにしている…。
mkfs.xfs /dev/sda1
できました。
ダウンロードしてくるミラーを選択します。
vim /etc/pacman.d/mirrorlist
でjpとかついているサイトを上に持ってくればいいと思います。
最悪しなくても海外のサーバーからとってくるだけで、普通にインストールできます。ちょっと遅いだけで。
僕はjaistっていうところを最初にしておきました。
ddで切り取ってpで貼り付けると楽ちんですよ。
:wq or ZZ
で保存してVimを抜ける事ができます。
マウントして
mount /dev/sda1 /mnt
この人の解説で特にためになったのが、この先のインストールのところ。
ちょっと前まではbaseとbase-develを入れておけばとりあえずOKみたいな感じだったのですが、最近はカーネルとエディタも入れないとだめだそうです。
知らなかった…。この人の解説見てよかった…。
今回は少しでも早くしたいので、新しいものやカスタムされたものを打ち込んでいきます。
pacstrap /mnt base base-devel linux-zen neovim git
これでディスクへのインストールが始まります。しばし待ちます。
fstabの設定。UUIDとかを移すためにするんでしょうか?未だに意味がわかっていない。
genfstab -U /mnt >> /mnt/etc/fstab
chrootしてインストールした環境に入ります。
arch-chroot /mnt
時間の設定
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
nvim /etc/locale.gen
US.UTF8とja_JP.UTF8のコメントを外す。
xで簡単に消せます。
locale-gen
ちょっと時間掛かります。
echo LANG=en_US.UTF-8 > /etc/locale.conf
ホストネームを設定。小文字しか使えないこと知りませんでした…。
echo writer > /etc/hostname
writerが名前です。お好きなのを設定してください。
wifiの設定
pacman -S wpa_supplicant networkmanager dhcpcd
systemctl enable NetworkManager
これでよし。
ユーザー関係の設定
rootのパスを決める。
passwd
二回同じ文字列を入れる。
これから使うユーザーを作る。
useradd -mG wheel hako
passwd hako
hakoがユーザー名です。お好きなのを。
このままだとsudo使おうとすると弾かれちゃうので、設定します。
nvim /etc/sudoers
#wheel All=(ALL) ALLのところのコメントを消してください
保存して良し!
grub(ブートローダー)をいれる。
pacman -S grub
grub-install --target=i386-pc /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
これで、再起動後はディスクから起動するようになったはずです。
exit
でchrootから抜けて
shutdown -h now
で終了です。
終了後はUSBを抜いて、再起動してください
wifiの設定をしたら初期設定は終了です。
sudo nmtui
青い画面が出てきます。
Activete~を選択。矢印で動いて、Enterで選択です。
周りを漂っているwifiが表示されるので、自分のwifiを選択。
パスワードを入れて、左側に※がついたらOK!
Esc x2で閉じられます。
ping 8.8.8.8とかでネットに繋がっているか確認して終了です。

起動の設定~高速化~

※この設定は最悪パソコンが起動しなくなったり、逆に遅くなったりする可能性もあります。
また、セキュリティに関する軽量化もしているので、よく読んでリスクを理解した上で設定してください。
grubの設定をいじっていきます。
sudo nvim /etc/dafault/grub
GRUB_TIMEOUT=5→0
に変更
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB~(省略)="quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3 video=SVIDEO-1:d libahci.ignore_sss=1 mitigations=off"
基本的にはログを表示しないでくださいという設定です。速度的には関係ないですが、起動時にダラーっとエラーが出てきたりする際には効果的です。
致命的なエラーも見えなくしてしまうので、そこらへんが気になる人はよく調べて値を調整してください。気にしない人はこれでいいと思います。
~sss=1っていう設定はHDDを見守る?設定をオフにするものだったと思います(曖昧)
SSDなら関係ないですから、起動させるだけ損ですよね。
最後のやつがセキュリティに関するやつです。
cpuの脆弱性をどうこうしているところを、無効化するという設定です…。
こんなこと簡単にできるんだから、やっぱすげぇよ。Linuxは。
なんでこれを無効化すると早くなるというか、パッチによって遅くなっていたCPUの速度がもとに戻る。といったほうが正しいみたい?
古ければ古いほど効く!ってどこかで見たような。
もちろん怪しいファイルやサイトを開けばウイルスに感染したり、乗っ取られたり?する確率は上がると思いますが、まあDropboxとだけつなぐ予定なので多分大丈夫。
この中で唯一高速化に貢献している設定でもあります。
嫌だったら追加しないだけで良しです。お好みで。
vimから抜けたら
grub-mkconfig -o /boot/grub/grub.cfg
とすれば、更新完了です。
もうひと工夫。
起動時にvzlinux読込中…みたいな表記が出るんですが、それを消したい。
神経質なのです。こういうところに限って。
sudo sed -i 's/echo/#ech~o/g' /boot/grub/grub.cfg
はい。これで大丈夫。
echoで表示されている文章を、echo自体を置換してしまうことで表示させなくするという荒業。
海外のフォーラムで見つけました。感謝。
でもまだHello grub!みたいな最初に出てくる表記だけは消せてないんですけどね。
最後に消す方法も紹介しておきます。
優先度は低めなのです。
最後に、これが一番効果的!っていう設定を。
これも人によっては不具合が出るかもしれない設定なので、気になる人はよく調べて見てください。
initial ramdiskとかいうやつの設定です。
これのudevというHOOKを削除することで、高速化を図ります。
ArchのInitramfsの最小化という記事が詳しいです。僕は半分もわかりませんでしたが…。
要するに重たい割には使われていない機能を無効化しよう。ということだと解釈しています。
sudo nvim /etc/mkinitcpio.conf
HOOKS()
の中身のudevっていうのを消してみてください。
保存。
sudo mkinitcpio -P
で更新できます。いろいろWarning!って出てきますが、起動できる(はず)なので気にしない。
これを設定したら起動時間が3秒!短縮できました。結構な速度です。
ちなみに起動までの大まかな速度は
systemd-analyze time
で見ることができます。
細かく見たければ
systemd-analyze blame
でどの機能がどれだけ時間を使っているか見ることができます。
僕の環境だと最初は31秒だったのがこのチューニングをすることで25秒まで高速化できました。
…。ある致命的なミスが発覚して、後に10秒まで縮まるのはまた後半におまけで書いておきます。
設定的な話ではないです。BIOSの話です。なので安心して(?)設定してみてください。
不利益を被られてもなにもしてあげられませんがね!

X(GUI)の導入

今回は馴染み深くて軽いi3wmを入れていきます。
タイル型はちょっと…。という方はxfceとかlxdeとかでも全然いいと思います。
ただ、シンプルにエディタだけを使う前提ならタイル型はとても理にかなっていると思います。
勝手に最大面積で表示してくれますから、ウィンドウを動かしたり、大きさを整えたりする手間がないんですよね。やっぱりタイルっていいなぁ。
と、設定設定。
sudo pacman -S xorg-server xorg-apps xorg-xinit
sudo pacman -S xf86-intel
sudo pacman -S i3-wm lightdm
分ける意味はないと思います。僕のやったとおりに書いているだけなので。
真ん中のビデオドライバーは環境によって変わります。ArchのXorgの記事が詳しいです。
i3wmはgapでもいいのですが、僕のノーパソは画面もちっちゃいし、分割して更にgapも入ると表示面積が大変なことになりそうなので、無印です。
あとLightdmですが、今回はオートログインでしか使わない予定なのでGreeter入れていません。slimとかでもいいですが、まだメンテナンスされている方がなんとなくいいかなと思ってこちらにしてみました。
オートログインの設定をしていきます。
sudo nvim /etc/lightdm/lightdm.conf
~
[Seat:*]
~
autologin-user=hako
autologin-session=i3
と設定してください。hakoは設定したユーザー名、i3は使いたい環境名です。
#外すのも忘れずに。
これだけだとまだうまく起動しないので、自分をオートログインユーザーに入れてあげます。
sudo groupadd -r autologin
sudo gpasswd -a hako autologin
最後にLightdmを有効化して
sudo systemctl enable lightdm
起動!と行きたいのですが、このまま行くとfontが一つもなくて積みます。
先に最低限の環境も入れていきます。
sudo pacman -S noto-fonts
でもこれだとNoto Sans Mono CJK JPが入らない(と思う。
ので、wgetで入れる。
noto-fonts-cjkでもいいけど、中国語とかいらんのが入ってしまうので。
sudo pacman -S wget unzip
mkdir .local/share/fonts
cd .local/share/fonts
wget https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
unzip NotoSansCJKjp-hinted.zip
fc-cache -v
これでよし。
最後にターミナルを入れていきます。
色々試してみた結果、Terminatorがいいんじゃないかと。
軽さと表示面でのバランスが取れております。多分。
もっといいのあったら教えて…。
sudo pacman -S terminator
で、
mkdir .config/terminator/config
に以下の内容をコピペする。手打ちでもいいし、SSHでもいい。
[global_config]
borderless = True
tab_position = hidden
hide_from_taskbar = True
title_hide_sizetext = True
enabled_plugins = CjkWidthWide,
title_use_system_font = False
title_font = Noto Sans CJK JP Semi-Light 18
[keybindings]
[profiles]

  [[default]]
    allow_bold = False
    icon_bell = False
    background_color = "#2e3436"
    background_darkness = 0.7
    background_type = transparent
    cursor_shape = ibeam
    cursor_color = "#aaaaaa"
    font = Noto Sans Mono CJK JP 18
    foreground_color = "#f3f3f3"
    show_titlebar = False
    scrollbar_position = hidden
    use_system_font = False
    rewrap_on_resize = False
[layouts]
  [[default]]
    [[[window0]]]
      type = Window
      parent = ""

    [[[child1]]]
      type = Terminal
      parent = window0
      profile = default
[plugins]
こんな感じ。現状まだ動かない設定があるから、それが動くように設定していきます。
まずはプラグイン。
有志の方が作ってくださっていた全幅対応っていうのかな?幅が広い文字もちゃんと表示できるようにするプラグインを導入します。
gnome-terminalとかなら設定オプションから変更できるみたいなんですが、Terminatorにはないので。
この方です。ありがたやぁ。
書いてあるとおりにすれば問題なく追加できると思います。
python3でも動作を確認したので、もしうまくいかんって人はcjkwidthwide.pyの戦闘業をpython3とかにしてもいいかもしれません。
あとは地味に透過設定を使っているので、picomを入れていきます。
いや、透過はいらないって方は飛ばしてもらって、Terminatorのguiから透過の設定を切ってもらえれば大丈夫です。acpiは入れるの忘れてました。どレくらいバッテリーが持つかとか教えてくれるやつです。
sudo pacman -S picom acpi
最後に、i3wmの設定ですね。
X起動させるまでにいろいろしすぎですね…。途中で起動しても特に問題ないので、ご安心を。
nvim .config/i3/config
を以下の内容を追記。お好みで変更してみてください
#Altをmodキーに追加します
set $altl Mod1
#fontを変更。しなくても別にいいです。
font pango:Noto Sans Mono CJK JP Reguler 8
#window枠を消します
for_window [class="^.*"] border pixel 0
#feh使って壁紙表示します。いらない人は#外さないで大丈夫です
#exec --no-startup-id feh --bg-scale $HOME/Dropbox/tmp/wallpaper.png;
#picom使って透過処理です。いらなかったら#か削除です
exec --no-startup-id picom -b;

#IME。まだインストールしていないのでこのまま。
#exec --no-startup-id fcitx;
#Dropbox。まだインストールしていないのでこのまま。
#exec --no-startup-id python $HOME/dropbox.py start;
#winキーとenterキーでターミナルが起動するという設定です
bindsym $mod+Return exec terminator

#altとf4で画面を閉じるという設定です
bindsym $altl+F4 kill

#polybarというステータスバーを起動します。まだ入れてないのでこのまま
#exec --no-startup-id $HOME/.config/polybar/launch.sh
#起動時にTerminatorを起動します
exec terminator
以上。
ここからは時間がかかる作業が山積みです。時間があるときにどうぞ。
もしくはArch環境がある方ならコンパイルしてあげて終わったのを渡すのもいいかも?
うまくいくはわかりません。調べてみて下さい(まるなげ)
僕は1日使ってコンパイルしました…。
最初にpolybar行きましょう。
かっこいいステータスバーができます。おすすめです。
いや、別にかっこよくなくていいんだけど。という方はi3statusやi3blocksでもいいです。
これ入れるためにはaurとわちゃわちゃしなくちゃなので、aurヘルパーを入れます。
git clone https://aur.archlinux.org/yay
cd yay && makepkg -si --noconfirm && cd .. && rm -rf yay
これでよし
yay -S polybar
と入力します。sudoなしで!
いろいろ聞いてきますが、yとIで乗り切れます。多分。
結構な時間かかるので、動画見たりして時間つぶしましょう。
終わったらテーマをダウンロードしていきます。
本来は自分でカスタムして楽しむものだと思うんですが、難しすぎてですね。
公開してくださっている方がいるので、この方から拝借します。
感謝、圧倒的感謝…!
git https://github.com/adi1090x/polybar-themes.git
設定をコピーしていきます。12種類あります。サイトにサンプルおいてくれてるからそれ見て決めてください。
僕は8にしました。シンプルでかっこいい。
mkdir .config/polybar
cp -r polybar-theme/polybar-8/* .config/polybar
cp -r polybar-theme/polybar-8/fonts/* .local/share/fonts
fc-cache -v
X環境で起動できるか試してみましょう。
Terminator起動させて
chmod +x .config/polybar/launch.sh
エラーでなければOK!かっこいいのが表示されているかと思います。
カスタムするときにいじるのは、config.ini modules.ini user-modules.ini bar.iniです。
みればわかるか。
config.iniでleftとかcenterとかの表記をいじって表示するものを決めていく感じです。
僕も詳しくは理解できていないので、あまり説明できず。申し訳ないです。
うまくできたらi3設定内のpolybar部分の#を消して有効化しておいてください。
続いて、Dropbox。
CUIで作業します。CUI用なので。GUI上でするとうまく行かないです。
ctrl+alt+F2でCUIに移ります。SSHがおすすめですが、今回Openssh入れてないので、脳筋で行きます。
ログインして
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
と入力。ダウンロードされるはずです。
chmod +x .dropboxdist/dropboxd
./dropboxdist/dorpboxd
で起動。ちょっと待つとURLをはられるようになります。
そのURLをブラウザが使える環境のパソコンもしくはスマホで入力。Dropboxの登録サイトに飛びます。
持っているアカウントでログインしてURLの連投が終われば成功です。
Ctrl+cで抜けます。
起動とかを楽にしてくれるスクリプトを持ってきます。
wget https://www.dropbox.com/download?dl=packages/dropbox.py
chmod +x dropbox.py
binとかにdropboxとして入れればそのまま起動できるようになります。
とりあえず起動。
python dropbox.py start
しばらく待てば同期が終わるはずです。
どれくらい同期が進んでいるかは
python dropbox.py status
で確認できます。
i3のconfigのDropbox部分の#を外しておいてください。
最後に…。fcitxです。
普通にpacmanから入れてもいいんですが、賢いIMEがいいですよね?
なんだかよくわかりませんが、いろいろとカスタムされたMozcがあるんです!
おすすめです。
ただし覚悟してください。めちゃくちゃコンパイルに時間がかかります。特に低スペックだと。
半日くらいじゃないですかね。寝て起きたら終わっていたくらいなので。
yay -S mozc-ut-unified
もしいつの間にか終わっていてパスワード入力が打ち切られていたら
cd .cache/yay/mozc-ut-unified
makepkg -si
とするとインストール可能です。
できたら
sudo pacman -S fcitx-configtool
設定ソフトをインストールして
キー配列をJapaneseが一番上、その下にMozcが来るように設定。
もし全角半角が効かなかったら右上くらいにその設定があるのでそこ押して、全角半角押せばOK。
急に雑になってきたな。
コンパイル直後はMozcが見当たらないかも。
その場合は一旦再起動するといいかもしれません。
fcitxの#を外してあげれば、完成です。

おまけ

壁紙が欲しい人は各自壁紙をダウンロードしてきて
sudo pacman -S feh
としたあとに、i3設定のfehの部分の#を外して、持ってきた壁紙のパスを入れてあげてください。
polybarにDropboxが起動しているかどうかを表示することもできます。
参考までに。
nvim .config/polybar/user_modules.ini
[module/dropboxstatus_i]
type = custom/text
content = (unicodeでアイコン)
content-background = ${color.cyan}
content-foreground = ${color.fg}
content-padding = 1
[module/dropboxstatus]
type = custom/script
format-background = ${color.mf}
format-foreground = ${color.fg}
format-padding = 1
exec = $HOME/.config/polybar/scripts/dropboxstatus
interval = 10

nvim .config/polybar/dropboxstatus
 ここにscript
調べたのをちょちょっといじった(というかよくわからん部分を削った)だけなので、
変な動作したらごめんなさい。多分大丈夫です。

今の僕の環境がこれです!
こんな感じ。前よりもかっこいい(自画自賛)
動作も軽快そのもので、文字打っているときにカクつくこともありません。
いい感じです。おすすめの設定です。
ちなみに後ろにうっすら見えている壁紙はSimpledesktopというサイトから貰ってきています。
Dropboxとかで共有して、気分で変えても楽しいかもしれませんね。

おまけのおまけ

やっぱり起動時にGrubなんちゃらってでてくるのうざいわ…。という方向け。
yay -S grub-silent
かなり時間掛かります。ボーッとしておいてください。
sudo grub-install --target=i386-pc /dev/sda
sudo grub-mkconfig -o /boot/grub/grub.cfg
これでよし!起動しなくなるかもしれないということは頭に入れておいてください。

おわり

コメント

このブログの人気の投稿

NextCloudすごいいいよって話

i3wmの環境構築、i3wm、dunstの日本語解説(もどき)あるよ!