Arch Linuxのインストール手順のこと その3
Customize Mate Desktop Environment
とりあえず、デスクトップが表示されたけれど、
まだ、機能が足りない。
というわけで、環境構築の続き。
GUIのフォントが文字化けしている場合なんかは、
外観の設定で好きなフォントを設定しておいてください。
IMEの設定
キーボードレイアウトの設定。
キーボードレイアウトが初期ではUSになっているので、
コントロールセンターからキーボード設定を呼び出して、
レイアウトの設定を行う。
日本語レイアウトを追加してUSレイアウトを削除する。
合わせてキーボードの型式も設定する。
インプットメソッドフレームワークのインストール
Ubuntu Mate 16.04でも採用されていたfcitx-mozcをインストールする。
$ sudo pacman -S fcitx-im fcitx-mozc fcitx-configtool
ホームディレクトリに.xprofileを作成し、下記を追加する。
$ nano ~/.xprolie …… export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx
一旦、ログオフし再ログインすると、fcitxが立ち上がる。
(通知スペースにキーボードのアイコンが出る)
fcitxの設定パネルからアドオンタブを開いて、advancedチェックをON。
Fcitx XIM Frontendを選択して、ダイアログのチェックボックスをONにする。
fcitxを再起動。
XDGユーザディレクトリの作成
XDGユーザディレクトリというのは、ユーザのホームディレクトリ配下にある
「デスクトップ」とか「ダウンロード」などのディレクトリのこと。
初期のMateではパッケージがインストールされていないので作られていない。
手順は以下の通り。
xdg-user-dirsパッケージのインストール
$ sudo packman -S xdg-user-dirs
xdg-user-dirs-updateの実行
デフォルトで良ければ、xdg-user-dirs-updateを実行する。
英語が良ければ、LC_ALL=C xdg-user-dirs-updateを実行する。
$ xdg-user-dirs-update or $ LC_ALL=C xdg-user-dirs-update
デフォルト以外のパスを使いたければ~/.config/user-dirs.dirsを作成し、
中身を記載してから、xdg-user-dirs-updateを実行する。
$ nano ~/.config/user-dirs.dirs …… XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOCUMENTS_DIR="$HOME/Documents" XDG_DOWNLOAD_DIR="$HOME/Downloads" XDG_MUSIC_DIR="$HOME/Music" XDG_PICTURES_DIR="$HOME/Pictures" XDG_PUBLICSHARE_DIR="$HOME/Public" XDG_TEMPLATES_DIR="$HOME/.Templates" XDG_VIDEOS_DIR="$HOME/Videos"
gvfsマウントルールの追加
ファイルマネージャでディスクをマウントする際、認証を求められることがある。
それを回避するために以下の設定を行う。
storageグループにユーザを追加
$ usermod -aG storage [user-name]
10-enable-mount.rulesの作成
/etc/polkit-1/rules.d/10-enable-mount.rules
$ nano /etc/polkit-1/rules.d/10-enable-mount.rules # 下記を追加 polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("storage")) { return polkit.Result.YES; } });
Congraturations!
日本語が入力できるようになれば、おめっとさん。
あとは自由にカスタマイズできるでしょう。
……って、ここで終わられても、まだAURを使ってない。
というわけで、その4へ続く。
Arch Linuxのインストール手順のこと その2
Install Mate Desktop on Arch Linux
その1の続き。
私はヘタレLinuxユーザーなのでGUIが無いと何もできません。
というわけで、GUI導入までの手順を残す。
LinuxデスクトップではダントツのMate推しなので、
Mate Desktopの導入となります。
CUI環境の整備
コンソールの文字化け対策
前回のインストール時にロケールをja_JP.UTF-8としたので、
今のコンソールではメッセージが化けまくっている。
そこで、tty環境(alt+ctrl+F1〜F6)ではLANG=Cとなるように、Bashの定義を追加する。
追加後、再度ログインすれば、メッセージは英語で表示される。
$ nano /etc/bash.bashrc …… #下記内容を末端に追加 # tty force LANG=C (tty|fgrep -q 'tty') && export LANG="C" ……
ちなみに、コンソールに日本語を表示する方法として、
fbtermとかKMSCONとかを導入するって方法があったけど、
どっちも試した結果、どちらもしっくり来なかった。
解像度とか、描画の美麗さ、反応速度とか色々。
で、結局、文字化けしなければ英語で十分、という判断になった。
タブ補完の強化
$ pacman -S bash-completion
multilibリポジトリの有効化
64bitOSなので32bitのライブラリは不要だけれど、
wineを使いたいので32bitライブラリもインストールできるように
multilibリポジトリを有効化しておく。
/etc/pacman.confの[multilib]の項目とパスを有効化
$ nano /etc/pacman.conf $ pacman -Syu
ユーザ追加
$ useradd -m -G wheel -s /bin/bash [username] $ passwd [username]
sudo設定の追加
sudoで権限委譲できるuserを追加する。
$ visudo …… # User privillege specificationの項に下記を追加((グループ全体を適用する方法もある。)) [username] ALL=(ALL) ALL ……
日本語フォントのインストール
これはお好みで。
$ pacman -S noto-fonts noto-fonts-cjk
GUI環境の構築
X Window Systemのインストール
$ pacman -S xorg-server xorg-apps xorg-server-xephyr
グラフィックドライバのインストール
$ lspci | grep -e VGA -e 3D
確認できたグラフィクカード(or チップ)に合わせてドライバをインストールする。
wikiのXorgの項目にインストールべきドライバについて記載がある。*1
うちのPCはnVidia GeForce GTS 250なのでnvidiaのレガシードライバをインストールした。
$ pacman -S nvidia-340xx nvidia-340xx-utils lib32-nvidia-340xx-utils
nvidia-settingsというツールでグラッフィクボードの状態を見たり、Xorgの設定が行えるのだが、
GUI表示させた場合、下記のパッケージが無いとエラーがでるので、
気になる場合はインストールしておく。
$ pacman -S gtk2 gtk-engines
nvidiaドライバが更新された時、initramfsのアップデートが必要となる。
ドライバ更新時のinitramfsの再作成を自動化するため、
/etc/pacman.d/hooks/nvidia.hookファイルを作成しておく。
$ nano /etc/pacman.d/hooks/nvidia-340xx.hook [Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=nvidia-340xx [Action] Depends=mkinitcpio When=PostTransaction Exec=/usr/bin/mkinitcpio -p linux
ディスプレイマネージャのインストール
ディスプレイマネージャにも色々あり、何を選ぶかは自由となっているが、
Ubuntu Mate 16.04で採用されていたLightDMを選んだ。
$ pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
あとで気づいたことだけど、Mate導入後にjournalログを見たらこんなエラーが出てた。
6月 20 11:04:19 catharina lightdm[479]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files
ここに少しやり取りがあり、accountsserviceパッケージが無いと発生するらしいが、
動作には問題が無い模様。*2
でも、気になるのでインストールをしておく。
$ pacman -S accountsservice
MATEデスクトップのインストール
$ pacman -S mate mate-extra
ディスプレイマネージャの自動起動On
$ systemctl enable lightdm
コンポジットマネージャのインストール
ウィンドウ装飾のことらしいんだけど、
Mateで採用されているウィンドウマネージャのMarcoには、
ソフトウェアコンポジットの機能があるので、なにもしなくてもウィンドウの装飾は行われる。
とはいえ、これはLinux。
実はこの装飾を行うプログラムであるコンポジットマネージャも好きに選べる。
ということで、comptonというコンポジットマネージャも入れてみた。
$ packman -S compton
起動するには自動起動するアプリケーションに下記のように追加するだけ。
ただし、起動する際はMarcoのコンポジット機能をOFFにしておく必要がある。
$ compton -b
起動時NumLock On
ディスプレイマネージャ起動時にNumLockをOnにする方法。
デフォルトOffでも構わないのだけれど、
NumLockがOnのままログオフするとNumLockのランプがついているけれど、
内部ではNumLockがOFFという奇妙な状態になるので、
デフォルトOnとなるようにしておいた。
当然、ディスプレイマネージャによってやり方は異なる。
LightDMの場合は、numlockxパッケージをインストール後、
/etc/lightdm/lightdm.confを編集する。
$ pacman -S numlockx $ nano /etc/lightdm/lightdm.conf …… # greeter-setup-scriptの行を有効にしてnumlockxのコマンドを記述する [Seat:*] greeter-setup-script=/usr/bin/numlockx on ……
ネットワークマネージャのインストール
dhcpcdが動いているので今のままGUIを起動してもネットワークには繫がる。
ただ、Mateの通知パネルに通知が上がってこないのでわかりにくい。
そこで、ネットワーク設定をNetworkManagerにやらせることにする。
インストール
$ pacman -S networkmanager network-manager-applet gnome-keyring
NetworkManagerの自動起動On
$ systemctl enable NetworkManager
dhcpcdの自動起動Off
# systemctl disable dhcpcd
Windows Network 共有
ファイルマネージャ(caja)で共有サーバを覗くだけなら
gvfs-smbパッケージをインストールするだけでOK。
だめだったらsamba smbclient cifs-utilパッケージもインストールする。
$ pacman -S gvfs-smb # だめだったら後からこれもインストール。 $ pacman -S samba smbclient cifs-util
再起動
$ reboot
Congraturations!
再起動後、ログイン画面が出たらおめっとさん。
新しく作ったユーザでログインできたらおつかれさん。
……って、ここで投げ出されても、まだツラい。
というわけで、その3へ続く。
Arch Linuxのインストール手順のこと その1
Install Arch Linux
Ubuntu Mate 18.04がいまいちだったのでArch Linuxに入れ替えた。
Arch Linux公式サイトにはインストール手順やドキュメントが充実しているので、
基本は手順通りに行えば良いのだが、それでも迷うところがちらほらあった。
念のために、以下に手順を残す。
今回はBIOSモード、MBRにGRUBをインストールするレガシーなパターンです。
パーティション
UbuntuのLive CDで予め作成した。
とはいえ、LVMを使うのでGUI操作よりコンソール操作が多かった。
デバイス | マウントポイント | フォーマット | サイズ | 用途 |
/dev/mapper/mate--vg-lvswap | - | SWAP | 16G | スワップ |
/dev/mapper/mate--vg-lvroot | / | ext4 | 100G | ルート領域 |
/dev/sdb1 | /boot | ext2(boot ON) | 1G | ブート領域 |
/dev/mapper/mate--vg-lvfile | /usr/files/ | ext4 | 残り全部 | ユーザデータ用 |
インストールの準備
PCをUSBブートしてArch Linuxインストールメディアを起動。
メニューからインストーラーを起動。
キーボードレイアウトの設定
$ loadkeys jp106
ルートパーティションのマウント
$ mount /dev/mapper/mate--vg-lvroot /mnt
マウントポイントを作成
$ mkdir /mnt/boot $ mkdir -p /mnt/usr/files
残りパーティションのマウント
$ mount /dev/sdb1 /mnt/boot $ mount /dev/mapper/mate--vg-lvfile /mnt/usr/files
スワップ有効化
$ swapon /dev/mapper/mate--vg-lvswap
ネット接続の確認
wifi接続の場合、接続設定を行う必要があるので、
有線接続での作業が楽です。
wifi設定はOSインストール後なら、NetworkManagerを使うなりなんなりで、
手軽にできるからです。
$ ping www.google.com
システムクロックの変更
$ timedatectl set-ntp true
OSのインストール
ミラーの選択
mirrorlistファイルを開いてリストから国内のサーバーを検索する。
見つかった国内サーバーのURLをファイルの上位にカット&ペーストする。
国内のサーバーもいくつかあるので、
どんな順番にするかは下のページを見ると参考になる。
https://www.archlinux.jp/mirrors/status/
とはいえ、Jaistと 筑波大学のサイトを上位にすればいいと思う。
$ nano /etc/pacman.d/mirrorlist
ベースシステムのインストール
### $ pacstrap /mnt base base-devel [old] ### $ pacstrap /mnt base linux linux-firmware
fstabの生成
$ genfstab -U /mnt >> /mnt/etc/fstab
システム設定
以降は、システムの基本設定を行う。
タイムゾーン、ロケール、ホスト名などなど。
タイムゾーン設定
$ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime $ hwclock --systohc --utc
ロケール設定
/etc/locale.genを編集してからlocale-genを設定する。
有効にするのはen_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8でOK
$ nano /etc/locale.gen $ locale-gen
/etc/locale.confにロケールを定義する
$ echo LANG=ja_JP.UTF-8 > /etc/locale.conf
キーマップの設定
$ echo KEYMAP=jp106 > /etc/vconsole.conf
ホスト名の設定
$ echo myhostname > /etc/hostname $ nano /etc/hosts
同じ名前を/etc/hostsにも記載。
127.0.0.1 localhost ::1 localhost 127.0.1.1 myhostname.localdomain myhostname
ネットワーク設定
baseシステムではdhcpcdを使い、
あとでNetworkManagerをインストールして使う算段なので、
ここではdhcpcdを有効化する。
$ systemctl enable dhcpcd@[network-interface-name].service もしくは $ systemctl enable dhcpcd
initramfsの生成
lvmを使っている場合(ルートパーティションが論理ボリュームの場合)
/etc/mkinitcpio.confを編集する。
$ nano /etc/mkinitcpio.conf …… # HOOKSの行に[lvm2]を追加する。 HOOKS=(base udev autodetect modconf block lvm2 filesystems keyboard fsck) …… # mkinitcpio -p linux
rootパスワード設定
$ passwd
ブートローダーの設定
最初に書いた通り、ここではBIOSモードでMBRにGRUBをインストールする。
exFatとNTFSのサポート
Windowsとのデュアルブートのために、exFatとNTFSを扱えるようにする。
デュアルブートでなくても入れておいたほうが無難か。
$ pacman -S exfat-utils ntfs-3g
再起動
exitで一旦抜けたあと、
ルートパーティションをアンマウントし再起動する。
ブート前にインストールメディアを抜いておくのを忘れずに。
$ exit $ umount -R /mnt $ reboot
Raspberry PiでDNLA Music Serverから曲を取得して再生するのこと。
うちの環境にはBuffaloのLinkStationというNASがあって、
こいつがDNLA Media Serverの機能を持っているので、
ミュージックライブラリとして使っていた。
VLCにはUPnP機能があったので、これで再生していた。
しかし、再生するにはパソコンを立ちあげなければいけない。
スマホにもUPnPメディアクライアントはあるけれど、
再生にはスマホを使わないといけない。
というわけで、
サーバーとして24h稼働しているRaspberry Piで
このような音楽の再生ができないかと考えた。
調査の結果、以下のことがわかった。
- DNLAはUPnPの仕様に基づいて作られている。
- UPnP Media Serverのコンテンツを再生するには、Media Rendererの実装が必要である。
- Media ServerとMedia Rendererの操作を行うためにクライアントが必要。
操作のための通信方式がSSPDだったり、SOAPだったりする。
ここまでわかるまで、SSPDやらSOAPやらを叩いて時間を使ってしまった。
これを踏まえて現状を見ると、以下が見えてきた。
- Media Serverはある。→ LinkStation
- Media Rendererはない。→ Raspberry Piに構築。
- Media Clientはない。→ さしあたり、Androidの『BubbleUPnP』が使えそう。
と、こんなことをすでにやっている人がおり、
下記の記述を参考にRaspberry PiにMedia Rendererを構築してみた。
Playing music on a Raspberry Pi using UPnP and DLNA (revisited)
ここの例にあるように、Raspberry PiにGMediaRenderをインストールした。
自動起動については、init.dではなく、systemdを使った。
スマホにインストールしてあるBubleUPnPのレンダラーを
Raspberry Pi上のレンダラーとすることで、
Raspberry Piから音を出すことができた。
しかし、Clientは自作したいな。
現状、スマホからしか操作できないのは不便だ。
参考文献:
http://blog.scphillips.com/posts/2013/07/playing-music-on-a-raspberry-pi-using-upnp-and-dlna-revisited
https://openconnectivity.org/developer/specifications/upnp-resources/upnp
http://www.upnp.org/specs/av/UPnP-av-AVArchitecture-v1.pdf.
Raspberry Piでラジオを鳴らすのこと
Raspberry Piにスピーカーをつけてラジオを鳴らす方法についてのメモ。
おおまかな仕掛けとしては、
Radikoのswfプレイヤーからストリーミングデータをぶっこ抜いて
メディアプレイヤーで再生する方式の模様。
(だから、いつまで使えるかわからんね)
音声を再生するアプリの導入*1
sudo apt-get install mplayer
ストリーミング関係のアプリの導入
sudo apt-get install rtmpdump swftools libxml2-utils
音声出力先の設定
デフォルトではイヤホンジャックかHDMIか自動判定となっている。
HDMIなり、イヤホンジャックなりどちらか固定としたい場合は
rasp-configから設定可能。
設定メニューの[Advance Options] -> [Audio]と追っていき、
[Auto], [Force 3.5mm ('Headphone') jack], [Force HDMI]から選択する。
sudo rasp-config
音量の設定
画面からできるけど、コマンドでやる場合。
下記でコマンドで現在の値を知る。
sudo amixir -M Simple mixer control 'PCM',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback -10239 - 400 Mono: Playback 400 [100%] [4.00dB] [on]
下記、コマンドで設定する。
sudo amixir sset PCM 100%
radikoを再生するスクリプトの取得
スクリプトをここから取得
play_nhk-radio.sh · GitHub
play_radiko.sh スクリプトの修正
radiko側の状態が変わっているのだろうが、
再生で使用するplay_radiko.shはそのままだと動かない。
以下の箇所を修正する。
行 | 修正前 | 修正後 |
---|---|---|
28 | playerurl=http://radiko.jp/player/swf/player_3.0.0.01.swf | playerurl=http://radiko.jp/apps/js/flash/myplayer-release.swf |
53 | swfextract -b 14 $playerfile -o $keyfile | swfextract -b 12 $playerfile -o $keyfile |
70 | --header="X-Radiko-App: pc_1" \ | --header="X-Radiko-App: pc_ts" \ |
71 | --header="X-Radiko-App-Version: 2.0.1" \ | --header="X-Radiko-App-Version: 4.0.1" \ |
108 | --header="X-Radiko-App: pc_1" \ | --header="X-Radiko-App: pc_ts" \ |
109 | --header="X-Radiko-App-Version: 2.0.1" \ | --header="X-Radiko-App-Version: 4.0.1" \ |
111 | --header="X-Radiko-Authtoken: ${authtoken}" \ | --header="X-Radiko-AuthToken: ${authtoken}" \ |
112 | --header="X-Radiko-Partialkey: ${partialkey}" \ | --header="X-Radiko-PartialKey: ${partialkey}" \ |
再生する
例えばTBSを再生する場合は以下のようにする。
play_radiko.sh TBS
参考文献:
http://radiko.jp/
http://www.nakatayuki.com/archives/1039468785.html
https://gist.github.com/ihsoy-s/5292735#file-play_radiko-sh-L28
https://qiita.com/komacchi/items/2db61b16c1c81967705f
Raspberry pi Model BでGW-900Dを使うのこと
RaspbianにはPlanexの無線Lan子機 GW-900Dのドライバは用意されていない。
幸いドライバはrtl8812auのオープンソースドライバが利用でき、
ビルドさえすればLinuxでも動作する。
Web上にはこの手の手順がかなりあるものの、
持っているRaspberry piが初期型のためか、
導入にかなり手こずったので自分なりの手順を書いておく。
以下の手順では有線Lanでインターネットに接続している事が前提となる。
rtl8812auドライバのインストール
Raspbianをインストールする
手っ取り早くNOOBSでインストールした。(JESSIE)
OSの最新化
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
rootパスワードの設定
$ sudo passwd root
ドライバのビルドに必要なもののインストール
rpi-sourceのインストール
Raspbianのソースを取得するためにこのツールをインストールする
$ sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source
rpi-sourceの実行で必要なもののインストール
sudo apt-get install bc
sudo apt-get install libncurses5-dev
rtl8812auドライバのダウンロード
保存場所へ適時移動してからダウンロードを実行
git clone https://github.com/gnab/rtl8812au.git
ドライバのビルド
ダウンロードしたドライバのディレクトリに移動
Makefileの編集。
ターゲットプラットフォームをPCからARM RPIに変更する。
...
CONFIG_PLATFORM_I386_PC = n
...
CONFIG_PLATFORM_ARM_RPI = y
...
ビルド
変更後、ビルド。
make
ドライバファイルの設置&カーネルモジュールの依存情報の更新
cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
depmod
再起動
sudo reboot
まだまだこれから
dmesg でドライバがロードされているか確認。
ネットワークインターフェイス名の固定化
なんだか知らないがネットワークインターフェイス名(eth0とかのアレ)が、
再起動するたびにコロコロ変更されるので、これを固定化する。
MACアドレスとNICのドライバ名の調査。
MACアドレスはifconfigで表示される、etherの値。
NICのドライバ名はethtoolで調べることができる。
ethtool -i ネットワークインターフェイス名
ネットワークインターフェイス名の設定
/etc/udev/rule.d/70-persistent-net.rules を作成
ファイルに以下の要領で定義を追加する。
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="(ドライバ名)", ATTR{address}=="AA:BB:CC:DD:EE:FF(MACアドレス)", NAME="eth0(インターフェイス名)"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="(ドライバ名)", ATTR{address}=="AA:BB:CC:DD:EE:FF(MACアドレス)", NAME="wlan0(インターフェイス名)"
再起動
sudo reboot
ifconfigで確認
ネットワークンターフェイス名が指定通りならOK。
wifiの有効化
アクセスポイントのscan
sudo iwlist wlan0 scan
wpa_supplicant.confの設定
sudo wpa_passphrase (SSID) (パスワード(平文)) >> /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicantの起動
sudo wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
接続の確認
ifconfigでIPアドレスが割り当てられていることを確認
wifi自動起動化
システム起動時にwlan0が有効になるようにsystemdに設定する。
# systemctl enable wpa_supplicant@wlan0(インターフェイス名)
Created symlink /etc/systemd/system/multi-user.target.wants/wpa_supplicant@wlan0.service → /lib/systemd/system/wpa_supplicant@.service.
wlan0用のwpa_supplicant.confを作成する。
sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
再起動
ifconfigでwifiが自動接続されていることを確認する。
IPアドレス固定設定
検索すると/etc/network/interfacesを編集するってのがよく見つかるけれど、
その方法はもう古い。
JESSIEでは/etc/dhcpcd.confに設定を記述する方式に変わっている。
ちなみにUbuntu 16.04だったらnmtuiを使って設定する。
/etc/dhcpcd.confを編集する。
interface eth0
static ip_address=192.168.10.32/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1
interface wlan0
static ip_address=192.168.10.33/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1
再起動
ifconfigでIPが固定化されていることを確認する。
以上
疲れた。
参考文献:
http://www.ckenko25.jp/wordpress/2016/06/raspberry-pi-rtl8812au-driver
http://my-web-site.iobb.net/~yuki/2017-03/raspberry-pi/kernel-modules/
https://github.com/notro/rpi-source/wiki
http://itpro.nikkeibp.co.jp/article/COLUMN/20130909/503314/
http://blog.livedoor.jp/noanoa07/archives/2062436.html
https://www.xmisao.com/2014/01/16/how-to-connect-wpa2-wireless-lan-using-wpa-supplicant.html
http://kreisel.fam.cx/webmaster/clog/2011-01-20-1.html
http://thatsdone-j.blogspot.jp/2012/12/linuxnic.html
http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=NIC%A4%CE%A5%C7%A5%D0%A5%A4%A5%B9%CC%BE%A4%F2%B8%C7%C4%EA%A4%B9%A4%EB
http://caad1229.hatenablog.com/entry/2015/04/23/180925
http://qiita.com/ykog/items/a6dbba1c09e870f8f702
https://wiki.archlinuxjp.org/index.php/WPA_supplicant
Djangoをやってみよう。 その8-管理サイトでの操作-
その7のつづき。
その6で作ったWarshipモデルを管理画面に登録してみる。
nagamitsu1976.hatenadiary.jp
作成したモデルを管理画面に登録するには、
アプリケーションディレクトリ配下にあるadmin.pyにモデル管理クラスを作成する必要がある。
warship/admin.pyを開いて下記を追加する。
from django.contrib import admin from warship.models import ShipClass, Warship # Register your models here. class ShipClassAdmin(admin.ModelAdmin): fields = [u"name"] class WarshipAdmin(admin.ModelAdmin): fields = [ u"ship_class", u"name"] list_display = [u"ship_class", u"name"] admin.site.register(ShipClass, ShipClassAdmin) admin.site.register(Warship, WarshipAdmin)
ここではAdminクラスのメンバにfieldsとlist_displayを定義した。
fieldsについてはモデルの編集画面に表示したい項目をリストで定義している。
つまり、ShipClassは"name"をWarshipは"ship_class"と"name"を表示したい、
ということになる。
list_displayについては、モデルの一覧画面で表示したい項目を定義していて、
ここでは仮にWarshipだけ"ship_class"と"name"を定義してみた。
最後に、admin.site.registerを使って管理画面にモデルと管理モデルのひも付けを行って
処理は完了。
サーバを再起動して管理画面を表示しなおしてみると、項目が増えているのがわかる。
Warshipをクリックして一覧を表示してみると、
list_displayで定義した項目が表示されるのがわかる。
一方、前画面に戻ってShipClassを開いてみると。。。
項目がnameになっておらず、__str__()の値がそのまま表示される。
「ADD Ship class」ボタンを押して、編集画面を見てみる。
こちらはfieldsに定義したnameが表示される。
ついでに「軽巡」を入力してSAVEボタンを押してみる。
正しく追加できているのがわかる。
同じように、Warshipの追加ボタンを押して、
編集画面を確認してみる。
項目の順序もfieldsの順番で表示されている。
ついでに登録も試してみる。
とまぁ、こんな感じで簡単にモデルの登録、編集画面ができたとさ。
使い方としてはマスタ編集画面だとかになるんだろうか。
製造時のデバッグデータ、試験データ作成にもいいかも。
なんせ、低コストだし。
といったところで、次回へ続く。