Closed10

MacBook Pro 2009 を Puppy Linux で NAS 化

komenzarkomenzar

Puppy Linux をインストールしてNASを作れるのか

やりたいこと

  • ✅Puppy Linx のインストール
  • ✅日本語入力
  • ✅macキーボード対応
  • ✅Nvidia グラフィックドライバをインストール
  • SMB, WebDAV, FTP の設定
  • ふたを閉じてもスリープしない(ディスプレイはオフに)
  • 各種 Fn キーを動作させる
  • バックライトの明るさ調整できるように

詰まったところ

  • パーティションの分け方
  • パッケージ管理ツール
  • Nvidia ドライバのコンパイル&インストール
komenzarkomenzar

Natural Scrolling

macのようにナチュラルスクロールを使いたい
Trackpad Natural Scrolling - Puppy Linux Discussion Forum このフォーラムを参考に ~/.config/psynclient.conf を書き換える。しかし、vimコマンドが使えないことが発覚!vimすらも入っていないのか、と驚く。

vim をインストール

How to install vim in puppy? - Puppy Linux Discussion Forum
このフォーラムを参考に

Open Puppy Package Manager (via Menu > Setup)
Update the package database (config button top left of PPM)
Use the Search field in PPM to search for vim
Select vim from the list and allow PPM to display the details
Click the Do It button to install vim plus dependencies
Open a terminal and use the command vim.basic to start vim

komenzarkomenzar

Nvidia グラフィックドライバー

MacBook Pro 2009 のグラフィックボードは GeForce 9400M

ハードウェア情報を調べる

lshwコマンドを先ほどと同じようにインストール。

$ sudo lshw -c video
  *-display
      (略)
      product: C79 [GeForce 9400M]
      vendor: NVIDIA Corporation
      (略)

Nvidia グラフィックドライバー

基本的に参考にしたもの:How to install a Nvidia driver run package - Puppy Linux Discussion Forum
nvidiaのサイトからダウンロード

  • Product Type: GeForce
  • Product Series: GeForce 9M Series (Notebook)
  • GeForce 9400M

ダウンロードしたファイル NVIDIA-Linux-x86_64-340.108.run/mnt/homeにおく、と上のサイトには書いてあるのだが、自分の環境では/mnt/homeinitrd/mnt/dev_saveへのシンボリックリンクになっていた。大丈夫なのか?

ファイルを置いたらターミナルを開き

sfsget

を実行してみる。実行環境のPuppyにあうSFSパッケージマネージャ?をインストール。
32bit-compatibilty-fossa64.sfsを選んだ。こっちのリンクを読むと、最近のバージョンのPuppyだとSFSははじめからインストールされているらしい(sfs_load - SFS load/unload on-the-fly - Puppy Linux 日本語 フォーラム

getnvidia というコマンドツールをダウンロード。ダウンロードした.petファイルをクリックするとインストールできた。

getnvidiaを実行するとなにが足りてないか教えてくれるので、これを参考にしたらいいかも。整理すると、

  • getnvidiaをインストール ここから
  • ターミナルでgetnvidiaを実行して、足りない設定を確認
  • sfsgetコマンドでインストール
    • devx package
    • Kernel source package
  • 下のRestartボタンを押して、nouveauを無効化するために再起動
  • ダウンロードしたドライバファイルを指定

Exit to Prompt ボタンを押すと、Xウィンドウが消えてCUI画面になる。指示通りgetnvidiaとコマンドを入力しEnter。

(略)
You can remove the kernel source and devx. But keep the nvidia-glx SFS.
Type 'xwin' to get back the desktop.

最後にこのように表示されます。

NVIDIAドライバがX-Serverに読み込まれない1

/etc/modprobe.d以下に設定ファイルmy-nvidia.confを作り、以下のように書き込む。(ファイル名はなんでもいいようだ)

options nvidia NVreg_EnableMSI=0

→効果なし
参考
https://unix.stackexchange.com/questions/642576/nvidia-driver-on-puppy-linux-persistent-usb

NVIDIAドライバがX-Serverに読み込まれない2

Xを終了してプロンプトに移動すると、こんな言葉があった

If X failed to start, type "xorgwizard" to setup X

やってみる→変化なし

NVIDIAドライバがX-Serverに読み込まれない3

http://shinobar.net/linux/puppy_nvidia.html
このページを読んでいると、/usr/bin/nvidia-settingsを起動して設定するとあった。やってみると、「NVIDIAドライバを使ってないよ。nvidia-xconfigをルートユーザで起動してね」と出てきた。

ターミナルからnvidia-xconfigコマンドを実行すると/etc/X11/xorg.confが書き換えられたようだ。
→動いたあああぁぁぁぁ!

komenzarkomenzar

MacBook Pro の日本語キーボード

nvidiaドライバを入れる際にxorg.conf を作り直してしまったことで、キーボードの設定がすべて飛んだようだ(?)
https://wiki.archlinux.jp/index.php/Xorg_でのキーボード設定
Archi Linuxのwikiを見つけた。

setxkbmap コマンド

X keyboard を設定するコマンド。XkbRules, XkbModel, XkbLayout, XkbVariant, XkbOptions 5つのパラメータを設定する。

Model

xkeyboard-config(7) — Arch manual pages
このページからMacBook Pro 2009で使えそうなモデルを探すと、

macbook78 MacBook/MacBook Pro
macbook79 MacBook/MacBook Pro (intl.)
apple Apple
apple_laptop Apple laptop
applealu_ansi Apple Aluminium (ANSI)
applealu_iso Apple Aluminium (ISO)
applealu_jis Apple Aluminium (JIS)

このどれかだろう。まずmacbook79を試してみる。

Layouts

ここの表から探すと、いくつか候補がある。

jp Japanese
jp(kana) Japanese (Kana)
jp(kana86) Japanese (Kana 86)
jp(OADG109A) Japanese (OADG 109A)
jp(mac) Japanese (Macintosh)
jp(dvorak) Japanese (Dvorak)

以前ubuntuを同じMacBookにインストールしたとき jp(mac)は動作しなかった記憶があるので、jpにする。

Rules

設定可能な値のリストのこと。
これは設定していない例も多い。
xfree86.lstxorg.lstを比べてみると(diffコマンド)違いはなかったので、とりあえずxfree86としておく。

Option

とりあえずなし。

実行コマンド

$ setxkbmap -rules xfree86 -model macbook79 -layout "jp"  -option ""

参考
https://github.com/freedesktop/xkeyboard-config/tree/master/docs

komenzarkomenzar

キーボード設定 つづき

setxkbmapでうまくいったが、これだとXサーバのセッションが切れるとリセットされるらしい。設定ファイルを作ることにする。ファイル名はArchi Linux Wikiにのっとって00-keyboard.confとする。

00-keyboard.conf
Section "InputClass"
        Identifier "my-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "jp,us"
        Option "XkbModel" "macbook79"
        Option "XkbVariant" ""
        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

これでXサーバを再起動してもキーボード設定が反映された。

キーボード ウィザードから読み込めない

どうやら /etc/X11/xorg.confに設定を書かないといけないのか?やってみよう

xorg.conf
...
Section "InputDevice"
        # generated from default
        Identifier     "Keyboard0"
        Driver          "kbd"

+  # my keyboard setting
+        Option "XkbLayout" "jp,us"
+        Option "XkbModel" "macbook79"
+        Option "XkbVariant" ""
+        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

これでXサーバを再起動すると設定が反映されなかった。一方、ウィザードは動くようになった。

Sectionを新しく作ってみる

Sectionを分離するとXサーバーにも設定が反映されるかな?とやってみた。結果、Xサーバが起動しなくなった。元に戻す。

komenzarkomenzar

SMB サーバ セットアップ

デフォルトでSMBサーバを有効にするためのアプリ "Samba Simple Management" が入っています。
Menu > Network > Samba Simple Management

ユーザーとパスワードを設定

samba はLinuxに登録されているユーザーしか登録できません。このことを知らずに新しいユーザーを追加しようとして苦戦してました。

そして、Puppy Linuxではユーザーはrootひとりだけがデフォルト。finnというユーザーが試験的に導入されています。Puppy LinuxはあまりSMBサーバ向きではないかもしれませんね。

$ sudo smbpasswd -a (上で作ったユーザー名)

参考
https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/125newsmbpasswd.html

ディレクトリの権限を設定

SMBで他デバイスからアクセスしてみたが、ファイルのアップロードができなかった。これはディレクトリの書き込み権限がなかったためと考えられる。

chmod -R 766 (共有するフォルダ)
komenzarkomenzar

SMB でファイルをアップロードすると豆腐化

日本語ファイル名が表記されない。ターミナル上では表記されるので、システムに日本語フォントが反映されていないようだ。

komenzarkomenzar

ふたを閉じてもサスペンドしないように

NASとして使うためにふたを閉じた時の動作を設定したい。

  • サスペンドしない
  • 画面はオフに

サスペンドしない

/etc/acpi/acpi.confDISABLE_SUSPEND=yes がコメントアウトされているので外す。これでサスペンドしなくなったが、ふたを閉じてもスクリーンが消えなくなった。

画面をオフに

このスクラップは2022/08/19にクローズされました