MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
PinePhoneの初期設定のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
PinePhoneの初期設定
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == eMMCへのインストール == ==== JumpDrive ==== 内蔵のeMMCは、postmarketOSのDanct12とMartijnによるJumpDriveユーティリティを使用してOSを書き込むことができる。<br> <br> JumpDriveはMicroSDから起動して、PinePhoneがコンピュータに接続されると内蔵のeMMCを公開する。<br> マウントされたeMMCにOSをフラッシュする手順は、他のストレージの場合と同様である。<br> <br> <code>dd</code>コマンド、balenaEtcher、Gnome Disks等のソフトウェアを使用してOSを書き込むことができる。<br> <br> JumpDriveは、以下の公式Webサイトからダウンロードできる。<br> (PinePhoneの場合は、pine64-pinephone.img.xzをダウンロードする)<br> https://github.com/dreemurrs-embedded/Jumpdrive/releases/<br> <br> # JumpDriveのイメージをダウンロードして解凍する。 # balenaEtcher等を使用して、MicroSDにJumpDriveのイメージを書き込む。 # MicroSDをPinePhoneに挿入して、PinePhoneを起動する。 # PCとPinePhoneをUSBケーブルで接続する。 # PinePhoneのストレージ(例: /dev/mm〜、dmesg、GNOME disks等でデバイス名およびアンマウントされていることを確認する)に、選択したOSのイメージファイルを書き込む。 # 書き込みが完了した後、PinePhoneをPCから外して、PinePhoneをシャットダウンする。<br>この時、MicroSDを取り出す。 # PinePhoneの電源を投入して、eMMCから起動する。 <br> <u>※備考</u><br> <u>JumpDriveは、インストールに失敗した場合のレスキューイメージとしても機能する。</u><br> <u>レスキューイメージとして使用するには、172.16.42.1にTelnetで接続した後、rootfsをマウントして修正すればよい。</u><br> <br> ==== MicroSDのOSからインストール ==== # MicroSDに任意のOSを書き込みした後、PinePhoneにMicroSDを挿入して、PinePhoneを起動する。 # Webブラウザを起動して、任意のOSのイメージをダウンロードする。<br>または、ターミナルを起動して、OSのプロジェクトをgit clone <OSのプロジェクトのURL>する。<br>Gitを使用する場合は、OSをビルドする必要がある。 # 以下のコマンドを実行して、ダウンロードまたはビルドしたOSのイメージをeMMCに書き込む。<br>通常、現在のカーネルでは、<u>MicroSDは/dev/mmcblk0</u>、<u>eMMCは/dev/mmcblk2</u>となる。 #: <code>sudo dd if=<インストールするOSのイメージ> of=/dev/mmcblk<span style="color:#C00000;">X</span> bs=1M status=progress</code> # <span style="color:#C00000;">X</span>はeMMCの番号ラベル # 書き込みが完了した後、PinePhoneをシャットダウンして、MicroSDを取り出す。 # PinePhoneの電源を投入して、eMMCから起動する。 <br><br> == Wi-FiのIPアドレスの設定 == ==== Phosh ==== [設定]を開いて、[Wi-Fi]を選択する。<br> 現在接続しているWi-FiのSSID名の右にある歯車ボタンをタップする。<br> [IPv4]項目において、IPアドレス、サブネットマスク、ゲートウェイ、DNSの設定を行う。<br> <br><br> == SSHの設定 == まず。OpenSSHサーバをインストールする。<br> sudo apt-get install openssh-server <br> OpenSSHを自動起動および開始する。<br> sudo systemctl enable ssh sudo systemctl restart ssh <br><br> == 日本語フォントのインストール == 日本語フォントをインストールするために、以下のコマンドを実行する。<br> sudo apt-get install fonts-dejavu fonts-noto-cjk fonts-vlgothic fonts-takao fonts-vlgothic fonts-ipafont xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname <br><br> == ディスプレイ関連の調整 == ==== 画面の拡大 1 ==== ソフトウェアが画面に収まらない場合、画面を拡大して表示したい場合がある。<br> <br> [設定]にある[ディスプレイ]には、100[%]または200[%]のスケーリングを選択する設定がある。<br> 他の値を使用する場合やターミナルから操作する場合は、wlr-randrパッケージをインストールする。<br> sudo zpt install wlr-randr <br> # スケーリングを1.5にする場合 wlr-randr --output DSI-1 -scale 1.5 <br> この方法では、スケーリングは再起動するまで適用される。<br> 小数点の数値を選択することもできるが、パフォーマンスに影響する可能性があることに注意すること。<br> puri.smのブログには、スケーリングをその場で簡単に変更できるソフトウェアを作成する方法についての記事がある。<br> <br> ==== 画面の拡大 2 ==== スケーリングの設定を永続的に適用する方法がある。<br> <br> 標準の設定は、/usr/share/phosh/phoc.iniファイルにある。<br> 標準の画面のスケーリングを変更するには、/usr/share/phosh/phoc.iniファイルを/etc/phosh/phoc.iniファイルにコピーして、以下の箇所を変更する。<br> [出力:DSI-1]. # scale = 2 scale = 1.5 <br><br> == 日本語入力 == 現在(2021/4/24)、この設定が有効な環境は、Mobianのみである。<br> <br> まず、以下のFcitxとそのライブラリをインストールする。<br> sudo apt install fcitx fcitx5 fcitx5-config-qt fcitx5-data fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 \ fcitx5-frontend-qt5 fcitx5-table gir1.2-fcitxg-1.0 fcitx5-module-wayland fcitx5-modules \ fcitx5-module-ibus fcitx5-module-fullwidth fcitx5-module-dbus fcitx5-module-emoji fcitx-mozc \ ibus-mozc mozc-data mozc-server mozc-utils-gui <br> /etc/environmentファイルまたは~/.profileファイルの最下行に、以下の内容を追記する。<br> export XMODIFIERS=@im=fcitx export QT_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx <br> 次に、/usr/share/fcitx5/addon/fcitx-mozc.confファイルを、以下の内容で作成する。<br> [Addon] Type=SharedLibrary Name=fcitx-mozc GeneralName=Mozc Comment=Mozc support for Fcitx Library=fcitx-mozc.so Category=InputMethod Enabled=True SubConfig= IMRegisterMethod=ConfigFile LoadLocal=True <br> さらに、/usr/share/fcitx5/inputmethod/mozc.confファイルを、以下の内容で作成する。<br> [InputMethod] UniqueName=mozc Name=Mozc IconName=/usr/share/fcitx5/mozc/icon/mozc.png Priority=1 LangCode=ja Parent=fcitx-mozc <br> /usr/share/fcitx/mozcディレクトリを/usr/share/fcitx5ディレクトリにコピーする。<br> sudo cp -rf /usr/share/fcitx/mozc/ /usr/share/fcitx5/ <br> Mobianを再起動する。<br> sudo shutdown -r now <br> 再起動後、Fcitx5を有効にする。<br> 有効にするには、ターミナルで以下のコマンドを実行する。(~/.profileファイルに、以下のコマンドを記述してもよい)<br> <u>この時、エラーメッセージが出力されて処理が止まるが、気にせずに[Ctrl] + [C]キーを同時押下する。</u><br> fcitx -r <br> 日本語入力と英語入力の切り替えは、PCと同様に、[Ctrl] + [Space]キーを同時押下することで切り替えができる。<br> <br><br> == 電話帳 == ==== Evolutionの使用 ==== Evolutionをインストールする。<br> sudo apt-get insatll evolution <br> Evolutionをディスプレイにフィットさせる。<br> この設定を行わない場合、インポート画面が大きくなりすぎるため、表示できない。<br> scale-to-fit evolution on <br> ファイルマネージャから電話帳のファイル(.vcf拡張子)を開く。<br> [データのインポート]画面が起動して、インポートする連絡先が表示される。<br> 画面下の[進む]ボタンを押下して、電話帳をインポートする。<br> <br> インポート完了後は、Evolutionをアンインストールする。<br> sudo apt-get remove evolution sudo apt-get autoremove <br> ==== Pythonスクリプトの使用 ==== Githubから、以下のツールをダウンロードする。<br> sudo apt-get install git git clone https://github.com/pine-clover/Clontacts.git <br> 以下のコマンドを実行して、電話帳のファイル(vcf拡張子)をインポートする。<br> python3 main.py <電話帳のファイルのパス> <br><br> == スクリーンショット == 必要な依存関係をインストールする。 sudo apt-get install grim libnotify-bin yad <br> 以下のURLからscreenshot2appスクリプトをダウンロードして、任意のディレクトリに保存する。<br> https://matrix-client.matrix.org/_matrix/media/r0/download/matrix.org/rGMszhcjGTIQeZwCCaXMGMvw<br> chmod 755 screenshot2app mkdir -p ~/InstallSoftware/ScreenShot2app mv screenshot2app ~/InstallSfotware/ScreenShot2app <br> 以下のURLからscreenshot2appスクリプトのデスクトップエントリファイルをダウンロードして、~/.local/share/applicationsディレクトリに保存する。<br> https://matrix-client.matrix.org/_matrix/media/r0/download/matrix.org/CMaVegElpdiMbiChKaqPRgAW<br> mv screenshot.desktop ~/.local/share/applications <br> また、screenshot.desktopファイルを以下のように編集する。<br> <br><br> == PinePhoneがSMSを受信しない場合 == SMSメッセージの受信ができない場合でも、SMSの送信、電話、データ通信は正常に行われている場合がある。<br> 原因として、モデムのキューに残っているSMSメッセージが考えられる。<br> <br> モデムのキューは、OSを再起動しても、OSを再インストールしても持続する時がある。<br> MobianおよびManjaroでは、電話、データ通信、GPS、SMS等のモデムとの全ての通信をModemManagerが行う。(他のOSではこの限りではない)<br> <br> ModemManagerには、<code>mmcli</code>コマンドでアクセスできる。<br> * Mobian sudo mmcli -m 0 --messaging-list-sms # SMSメッセージが無い場合 No sms messages were found # SMSメッセージが10件ある場合 Found 10 SMS messages: /org/freedesktop/ModemManager1/SMS/0 (received) <br> * Manjaro sudo mmcli -m 3 --messaging-list-sms # SMSメッセージが無い場合 No sms messages were found # SMSメッセージがある場合 /org/freedesktop/ModemManager1/SMS/77 (受信) <br> Mobianの場合は、全てのSMSメッセージを削除する場合、以下のコマンドを実行する。<br> sudo mmcli -m 0 --messaging-delete-sms=1 # 10件削除する場合、--messaging-delete-smsオプションの値において、 # 1~10を設定して、全てのメッセージを削除する <br> Manjaroの場合は、全てのSMSメッセージを削除する場合、以下のコマンドを実行する。<br> sudo mmcli -m 3 --messaging-delete-sms=77 # リストアップされた全てのSMSメッセージで繰り返す <br> なお、<code>-m 0</code>または<code>-m 3</code>とは、モデム0またはモデム3(PinePhoneに搭載されているモデム)を指す。<br> <br> mmcliコマンドで利用できるメッセージ関連のアクションの詳細は、<code>sudo mmcli --help-messaging</code>コマンドを実行することで確認できる。<br> また、https://electronproton.com/mmcli-command-examples も参考になる。<br> <br> 特定の構成では、-m 2や-m 4等、様々な-m <数値>の組み合わせを試す必要があるかもしれない。<br> <br> 最近のMobianやPostmarketOSには、eg25-managerというユーザスペースのデーモンが含まれており、モデムを管理して適切な動作を確保している。<br> <br><br> == スリープ / サスペンド == ==== Phosh ==== ===== カスタムサスペンドタイムアウトの設定 ===== [設定]ソフトウェアの[電源]項目では、限られた種類のタイムアウトのみ用意されている。<br> <br> 以下の例では、サスペンドのタイムアウトを30秒に設定している。<br> gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 30 <br> また、現在のタイムアウトを確認するには、以下のコマンドを実行する。<br> gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout <br> ===== サスペンドを防いで画面を表示し続ける ===== ソフトウェアの中には、スクリーンセーバーまたはサスペンドが作動するものがある。(mpv、aptでのアップグレード等)<br> このような場合、gnome-session-inhibitツールが役に立つ。<br> <br> gnome-session-inhibitツールには、様々なレベルの抑制機能がある。<br> inhibit LEVELオプションを使用すると、サスペンド(別名:クラストスリープ)やアイドルでのスクリーンロックを防ぐことができる。<br> <br> 例えば、PinePhoneがスリープ状態になるのを防ぎ、システムをアップグレードするには、以下のコマンドを実行する。<br> gnome-session-inhibit -inhibit suspend sudo apt upgrade <br> また、以下のコマンドを.bashrcファイルのエイリアスに追記すると便利である。<br> # ターミナルでsudoコマンドを使用する場合はサスペンドを禁止する alias sudo='gnome-session-inhibit sudo' <br> 上記のコマンドを自動化するには、/usr/share/applications/*.desktop にある任意のデスクトップランチャーのexec項目に対して、<br> gnome-session-inhibitを付加することができる。<br> <br> ===== SSHセッションでのスリープ防止 ===== Phoshの[電源]項目にあるインアクティビティは、画面とのインタラクションのみを考慮しているため、SSH接続中にPinePhoneがスリープモードに入ることがある。<br> これを防ぐためには、~/.bashrcファイルの最下行に以下の設定を追記する。<br> <syntaxhighlight lang="sh"> if [[ -n $SSH_CONNECTION ]]; then : $(gnome-session-inhibit --inhibit suspend \ --reason "SSH connection is active" \ --inhibit-only) & fi </syntaxhighlight> <br> 上記の設定は、環境変数SSH_CONNECTIONが現在設定されているかどうかを確認する。(これはPinePhoneにSSH接続した場合に確認される)<br> 設定されている場合は、現在のシェルはSSHセッションを介して生成されているので、gnome-session-inhibitを使用してPinePhoneのサスペンド / スリープを防ぐ。<br> <br> ssh-connectionやbash-sessionがkillされる時、gnome-session-inhibitもkillされて、PinePhoneはサスペンドできるようになる。<br> <br> ===== Mediaplayback作動中のスリープ防止 ===== [https://src.jayvii.de/Hobby/PinePhoneScripts/src/branch/main/sguard Suspend-Guardスクリプト]を使用して、メディア(音楽や動画等)が再生されている間はサスペンドしないようにすることができる。<br> <br> このスクリプトは、pulseaudioでオーディオを出力しているソフトウェアがあるかどうかを確認して、再度確認するまでの間、サスペンドを防止する。<br> これにより、メディアが再生されない場合は、サスペンドできるようになる。<br> <br> このスクリプトには、自動的に設定を有効にするsystemd-unitが付属しており、ソースコードは[https://src.jayvii.de/Hobby/PinePhoneScripts/src/branch/main/sguard Git]で閲覧することができる。<br> <br><br> == 起動時にコンソール出力を表示する == ==== Mobian ==== 標準では、ブートコンソールはシリアルインターフェースである。<br> ブートコンソールにターミナルを追加することにより、コンソール出力が可能になる。<br> <br> この設定では、/etc/default/u-bootファイルを編集する。<br> もし、ファイルが存在しない場合は、以下のコマンドを実行する。<br> sudo u-boot-update <br> /etc/default/u-bootファイルの<code>U_BOOT_PARAMETERS</code>パラメータに対して、<code>splash</code>項目を削除して、<code>console=tty1</code>を追記する。<br> これは、2つの異なるコンソール(シリアルとtty1)を有効にするためのものである。<br> sudo vi /etc/default/u-boot # /etc/default/u-bootファイル U_BOOT_PARAMETERS="console=ttyS0,115200 consoleblank=0 loglevel=7 rw plymouth.ignore-serial-consoles vt.global_cursor_default=0 console=tty1" <br> 設定を適用するため、ブートローダをアップデートする。<br> sudo u-boot-update <br><br> == FlatPackのインストール == ==== Mobian ==== ターミナルを起動して、以下のコマンドを実行する。<br> sudo apt-get install gnome-software-plugin-flatpak flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo <br> FlatPakからChromiumをインストールする。<br> flatpak install flathub org.chromium.Chromium scale-to-fit chromium on flatpak run org.chromium.Chromium <br> FlatPakからChromiumをアンインストールする場合は、以下のコマンドを実行する。<br> flatpak uninstall org.chromium.Chromium <br> また、FlatPakからChromiumをアップデートする場合は、以下のコマンドを実行する。<br> flatpack update org.chromium.Chromium <br> Chromiumを使用する前に、以下の設定を行うことが重要である。<br> Webブラウザのユーザエージェントが漏洩する時、サービスプロバイダがデバイスを特定した場合、アカウントを無効にする可能性がある。<br> <br> # Chromiumのアドレスバーに<code>chrome://flags</code>と入力して、"Freeze User-Agent request header"をインストールおよび有効にして、Chromiumを終了する。 # 再度、Chromiumを起動して、[その他のツール] - [拡張機能]から"Use-Agent Switcher"をインストールする。 # この拡張機能を開いて、[Android] - [Android Kitkat]を選択する。 # 最後に、Chromiumを再起動する。<br>これにより、Chromiumがモバイルで起動する。 <br><br> == Chromiumブラウザのインストール == まず、Chromiumブラウザをインストールする。<br> sudo apt-get install chromium chromium-common chromium-sandbox fonts-liberation gir1.2-notify-0.7 gir1.2-packagekitglib-1.0 gir1.2-polkit-1.0 libfile-basedir-perl \ libfile-desktopentry-perl libfile-mimeinfo-perl libio-stringy-perl libipc-system-simple-perl libjsoncpp24 libnet-dbus-perl libre2-9 \ libtie-ixhash-perl libu2f-udev libx11-protocol-perl libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxxf86dga1 python3-certifi \ python3-cups python3-cupshelpers python3-requests python3-six python3-smbc python3-urllib3 system-config-printer system-config-printer-common \ system-config-printer-udev termit x11-utils x11-xserver-utils xdg-utils <br> 次に、/etc/chromium/local.confファイルを作成して、以下のように編集する。<br> unset GDK_BACKEND <br> Chromiumブラウザが実行できるかどうか確認する。<br> <br><br> == JDimのインストール == 以下のパッケージをインストールする。<br> sudo apt-get install cmigemo-common jdim libatkmm-1.6-1v5 libcairomm-1.0-1v5 libglibmm-2.4-1v5 libgtkmm-3.0-1v5 libmigemo1 libonig5 libpangomm-1.4-1v5 \ libsigc++-2.0-0v5 nkf skkdic <br><br> == .profileファイルの編集 == .profileファイルを、以下のような内容を追記する。<br> <syntaxhighlight lang="sh"> # User Add # Add Library Path export LD_LIBRARY_PATH="/home/mobian/InstallSoftware/Qt_5_15_2/lib:$LD_LIBRARY_PATH" # Display Scaling #wlr-randr --output DSI-1 --scale 1.5 # Enable Qt Debug export QT_QPA_PLATFORMTHEME="qt5ct" export DISPLAY=":0" export XAUTHORITY="/home/mobian/.Xauthrity" export XDG_SESSION_TYPE="wayland" # Enable Qt Quick Debug export QML2_IMPORT_PATH="/home/mobian/InstallSoftware/Qt_5_15_2_Library/qml" export QML_IMPORT_PATH="/home/mobian/InstallSoftware/Qt_5_15_2_Library/qml" export QT_PLUGIN_PATH="/home/mobian/InstallSoftware/Qt_5_15_2_Library/plugins" #export XDG_RUNTIME_DIR="/home/mobian/XDG_RUNTIME" # Not Enable (Display will be Black Screen) # Fcitx for Japanese export XMODIFIERS=@im=fcitx export QT_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx </syntaxhighlight> <br><br> == .bashrcファイルの編集 == .bashrcファイルを、以下のような内容を追記する。<br> <syntaxhighlight lang="sh"> # User Add # エイリアスを追加 alias cd='cd -P' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias ls='ls -hlvF --group-directories-first --color=auto' alias cat='cat -n' alias less='less -n' alias grep='grep -i' alias en='LANG=C LANGUAGE=C LC_ALL=C' alias jp='LANG=ja_JP.UTF-8' alias igrep='sudo dpkg -l | grep' alias asearch='sudo apt-cache search' alias nano='nano -lmS' alias snano='sudo nano -lmS' alias scale='wlr-randr --output DSI-1 --scale' alias poff='sudo shutdown -h now' alias preboot='sudo shutdown -r now' #alias sudo='gnome-session-inhibit sudo' # コマンドの重複を履歴に残さない export HISTCONTROL=ignoredups # 空白から始めたコマンドを無視 export HISTCONTROL=ignorespace # コマンド履歴に残さないコマンド群 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:scale*:which*:clear:man*:startx*:exit*:poff*:preboot*" HISTTIMEFORMAT='%Y%m%d %T '; export HISTTIMEFORMA # プロンプトの表示形式 PS1='\e[0;31m\u\e[0m@\e[0;32m\h\e[0m(\t) [Path \w] \n> ' # mkdirとcdを同時実行 function mkcd() { if [ "$#" -eq 0 ]; then echo "Too few arguments!" elif [ "$#" -eq 1 ]; then if [ -d $1 ]; then echo "$1 already exists!" cd $1 else mkdir -p $1 && cd $1 fi else echo "Too many arguments!" fi } # ディレクトリに存在するディレクトリとファイルの検索 function lgrep() { if [ "$#" -eq 1 ]; then local IFS_BACKUP=$IFS IFS=$'\n\t' for OBJECT in $(\ls -aA --group-directories-first | \grep -iE "${1}") do \ls -AdhlF --color "${OBJECT}" done echo "" IFS=$IFS_BACKUP elif [ "$#" -eq 2 ]; then # 第1引数で指定したディレクトリが存在するか確認する if [ ! -d "$1" ]; then echo "Not Exist Directory $1" 1>&2 return 1 fi local IFS_BACKUP=$IFS IFS=$'\n\t' # 現在のカレントディレクトリを一時的に保存する local CURRENTDIR=$(\pwd) # 第1引数で指定したディレクトリに移動する cd "${1}"; # 第2引数で指定したパターンを使用して検索する for OBJECT in $(\ls -aA --group-directories-first | \grep -iE "${2}") do \ls -AdhlF --color "${OBJECT}" done # カレントディレクトリに戻る cd "${CURRENTDIR}" echo "" IFS=$IFS_BACKUP unset -v OBJECT else echo "Specify Arguments." 1>&2 fi return 0 } # パターンにマッチするファイル内容を検索する function filegrep() { if [ "$#" -eq 2 ]; then local IFS_BACKUP=$IFS IFS=$'' for OBJECT in $(\find . -type f -name "${1}" -print0 | \xargs -0 \grep -inE "${2}") do echo "${OBJECT}" done echo "" IFS=$IFS_BACKUP elif [ "$#" -eq 3 ]; then # 第1引数で指定したディレクトリが存在するか確認する if [ ! -d "$1" ]; then echo "Not Exist Directory $1" 1>&2 return 1 fi local IFS_BACKUP=$IFS IFS=$'' # 現在のカレントディレクトリを一時的に保存する local CURRENTDIR=$(\pwd) # 第1引数で指定したディレクトリに移動する cd "${1}"; # 第2引数で指定したパターンを使用して検索する for OBJECT in $(\find . -type f -name "${2}" -print0 | \xargs -0 \grep -inE "${3}") do echo "${OBJECT}" done # カレントディレクトリに戻る cd "${CURRENTDIR}" echo "" IFS=$IFS_BACKUP unset -v OBJECT else echo "Specify Arguments." 1>&2 fi return 0 } # 環境変数PATHの設定 function SetPATH() { OLDIFS=${IFS} IFS=$':' BEFORE_HOME='$HOME' AFTER_HOME=${HOME} PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}}) SLASH=$(echo ${PATH_NAME: -1:1}) if [ ${SLASH} = "/" ]; then LENGTH="${#PATH_NAME}" let LENGTH=${LENGTH}-1 PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}}) fi if [ ! -d ${PATH_NAME} ]; then echo "No Exist Directory" return 1 fi EXIST_FLAG=0 for VALUE in ${PATH} do if [ ${VALUE} = ${PATH_NAME} ]; then EXIST_FLAG=1 break fi done if [ ${EXIST_FLAG} -eq 0 ]; then export PATH="$PATH_NAME:$PATH" elif [ ${EXIST_FLAG} -eq 1 ]; then echo "Already Exist ${PATH_NAME} in PATH " 1>&2 fi unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE IFS=${OLDIFS} return 0 } function SetLIBRARY() { OLDIFS=${IFS} IFS=$':' BEFORE_HOME='$HOME' AFTER_HOME="$HOME" PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}}) SLASH=$(echo ${PATH_NAME: -1:1}) if [ ${SLASH} = "/" ]; then LENGTH="${#PATH_NAME}" let LENGTH=${LENGTH}-1 PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}}) fi if [ ! -d ${PATH_NAME} ]; then echo "No Exist Directory" return 1 fi EXIST_FLAG=0 for VALUE in ${PATH} do if [ ${VALUE} = ${PATH_NAME} ]; then EXIST_FLAG=1 break fi done if [ ${EXIST_FLAG} -eq 0 ]; then export LD_LIBRARY_PATH="$PATH_NAME:$LD_LIBRARY_PATH" elif [ ${EXIST_FLAG} -eq 1 ]; then echo "Already Exist ${PATH_NAME} in PATH " 1>&2 fi unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE IFS=${OLDIFS} } # 環境変数PATHの重複を削除する function DeleteDuplicate() { if typeset -A &>/dev/null; then # 連想配列が使用できるか確認する # 使える場合 typeset -A _paths typeset _results while read -r _p do if [[ -n ${_p} ]] && (( ${_paths["${_p}"]:-1} )); then _paths["${_p}"]=0 _results=${_results}:${_p} fi done <<<"${PATH//:/$'\n'}" PATH=${_results/:/} unset -v _p _paths _results else # 使えない場合はawkを使用する typeset _p=$(awk 'BEGIN{RS=":";ORS=":"} !x[$0]++' <<<"${PATH}:") PATH=${_p%:*:} unset -v _p fi } if [[ -n $SSH_CONNECTION ]]; then : $(gnome-session-inhibit --inhibit suspend \ --reason "SSH connection is active" \ --inhibit-only) & fi </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:PinePhone]]
PinePhoneの初期設定
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse