2020年5月15日金曜日

Linux 使いがみんな Linux に詳しい訳では無いという話。

初夏ですねえ。本当はコロナで休みが多い間にやらないといけない事をメモしていたのですが、全部終わる前に自粛期間が終わりそうで焦ってます。贅沢な悩みなんですかね…

そんな訳でこのタイトル。
事の発端は Linux でうまく動かないデバイスがありまして、ドライバーをダウンロードしてきたのですが、展開や使用方法を調べてみると、「 Linux 使いなら当然」とばかりのコマンドが並んでいましてですね。
そもそも論、お金が無いので中古パソコンと無料のOS、ソフトで大体の事柄を処理したいという私のような層はどうしたら良いのだという訳で、自分向けの備忘録です。


  • Linux 用ドライバーの圧縮ファイルをダウンロードしてきた、展開するぞ

端末を開いてダウンロードフォルダに移動し、展開コマンドを…
で、tar やら unzip やらでいろいろオプションの付いたコマンドを打ち込めってページが散見されるのですが…
別に「アイコンを右クリック→ここに展開する」でも問題ない。
グラフィカル(GUI)処理をする事を恥だと思ってる玄人様多すぎませんかね?


  • 端末を開けってナニよ?

いや、流石にコレは私でも判るのですが備忘録なんで。
私も生まれて間もない頃の話なので、聞きかじった程度の話なのですが、昔のコンピュータはとても高価なシロモノでした。
今の「パーソナル」コンピュータのように一人一台とはいかなかったわけです。
そこで、一台のコンピュータに複数のモニタやキーボード、つまり入出力端末を繋げて共有して使っていました。
この頃の名前が残って「端末」と呼ぶと聞いたことがあります。

ちなみに、パソコンが現在のようにグラフィカルになるのは今から約35年程前の時代でして、それまでは文字で入力して答えが文字で返ってくるという世界でした。
ファミコンなどはグラフィカルに見せていましたが、実際の所大半は「絵のように見えるように文字を変形させて」画面に敷き詰めて絵に見せていて、どうしても動きを出したい所は、スプライトという特殊な描画バッファを使った画像処理をしていました…といっても自分はファミコンのソフトは作った事が無くMSXの知識で知っているだけなんですけどね(MSXはマップ画像用のVRAM及び画像処理チップを積んでいますが)。

そんな訳で、端末と言われたら「文字を入力したら文字が返ってくるアレ」です…いや、それだと他にもいろいろありますが。
ウィンドウズならコマンドプロンプト(DOS窓)、Mac ならターミナル、Linux だとディストリビューションによって呼び方は変わりますが、大方こんなアイコン
で、こんな奴
※ちなみに shin はユーザー名で一般的には(セキュリティ面で)隠すべき情報ですが、面倒なので隠していません。当然個人名ではありません。
なんで似た機能が各OSにあるのか?と言われたら各OSの元ネタがざっくり Unix だから…という話になるのですが、歴史書ができるようなお話なので割愛。


  • 端末は文字しか受け付けないし

端末を開いたらキーボードで文字を打って命令(コマンド入力)しなければなりません。とは言え、全てのコマンドを覚えろってのは無理です。もちろん私も知りません。
そもそも端末というソフトは「自分がどこかのディレクトリに居て、そのディレクトリから命令を発するソフト」なのですが…
そんなわけで、知らないと困るコマンドは2個。 ls (エルエス)と cd です。

ls はリストの略でそのまま打ち込めば、自分の居るディレクトリ内のファイルリストを表示するハズです。
結果がコレですから…
ココですね

cd は Change Directory の略です。詳細は省きますが、 cd xxxx と現ディレクトリ内にある子ディレクトリ名を指定すれば、子ディレクトリ内に移動、cd ../ と入力すれば、親ディレクトリに移動する事だけ知っていれば多分どうにかなります。


  • ココは日本だ

良くあるドライバーインストール解説に「ダウンロードしたディレクトリに移動して…」という説明と共に download というディレクトリの下で作業している話がヒットしますが…日本語環境でのダウンロードディレクトリ名は「ダウンロード(全角)」
最初に端末を開いた時に(デフォルトの開始ディレクトリが /home/ユーザー名 の為)見えていましたが、全角の日本語です。
なので cd ダ(全角)と打ち込みまして
タブキーを押してみる。同ディレクトリの中に「ダ」から始まるディレクトリが無ければ、候補が確定するので「ダウンロード」と自動で予測してくれるハズ。
後はエンターキーを押してして「ダウンロード」ディレクトリの中へ。
そして展開したディレクトリの中へ
冒頭でダウンロードし、展開したディレクトリの中へ移動。(ディレクトリ名は一例なので、ダウンロードした圧縮ファイルにより異なる)


  • スクリプトを実行したい

大抵のドライバーは、適用時に展開用のシェルスクリプトを走らせる。拡張子は .sh で、setup.sh か install.sh の場合が多い。

良くあるミス集
1.拡張子を忘れる
setup なんてコマンドは無いと言われる。スクリプトファイルを指定するのであって、命令として登録されていなければ動かないのは当然。

2.指定方法を間違える
頭の ./ を忘れている。まあ、私もイマイチ理解していないのですが、「ココの奴」的な明示の為に書くらしい。

3.実行権限が無い
で、ようやくスクリプトを実行してみる訳ですが…
windows と linux の最大の違いである、ファイル毎の権限ですね(windowsにもあるにはありますが)。細かい話は「パーミッション」「chmod」辺りでググってください。ざっくり書けば、「誰に」「何を」許可しているかのフラグの事で、コレを確認するには ls に -l(エル) オプションをつけてリスト表示。
雑に解説すると rwx の3文字が3個のフラグ(何を)に対応しており、r = 読み込み権限、w = 書き換え権限、x = 実行権限。
各3文字づつは対象(誰に)に対応していて左から
といった具合に分かれています。
最初のリスト結果では自分に実行権限がなかったので、実行できなかった訳です。
ならフラグを書き換えればよいだろ?という訳なのですが、コレを行うコマンドが chmod 。一般に管理者に実行権限を渡す場合は
sudo chmod 755 xxxx.sh
というコマンドを打ったりします。なぜ 755 ?という話は2進数―8進数変換とかの話になるのですが、割愛。又、sudo は後述します。

4.私は管理者では無い
今度こそと実行してみると…
あなたは管理者じゃないでしょ?
管理者( SuperUser ) で実行しなさい、との事。
※この返答は、このスクリプト固有のものですが、割と一般的な警告です。
端末で命令を入力する際に sudo (Super User Do) と頭につける事で、管理者として実行できますが、管理者の証明としてパスワードの入力を求められます。
これでやっと動いた…


  • なんでこんな文書いたの?

すっかり操作を忘れていた。
数年前にやったハズなのに毎回忘れるし、調べると1日かかったりする。という訳で備忘録をつけました。
もう少し linux のドライバ追加は楽にならんものだろうか? windows10 のドライバ追加も改悪されたけど(インストールした最新のものが優先されるため、それが誤認識であっても入れ直しし辛い)もう少しフレンドリーなドライバー追加手段が出来て欲しいものです。

0 件のコメント:

コメントを投稿