デビアンな生活

デビアンな生活

日本語コンソールベースのDebianTIPS集として始めたが、結局LXDEになってしまった。

Nextcloud

NextCloudを使うのが,Arch再使用の理由なので,さっそくセットアップ。
Sqliteは,テスト,軽量,シングルユーザーとのことなので,今回はMariaDBを選択。
対象のサーバーのメモリが限られているので,ウエブサーバーはNginxを選択。
sudo -iでrootに移行し,pacman -S phpでphpのインストール
nextcloud 12で必要なphpのモジュールは,
ctype, dom, gd, iconv, json, libxml, mbstring, posix, SimpleXML, XMLReader, XMLWriter, zip,zlib
pdo_mysql, curl, fileinfo, bz2, intl, mcrypt, openssl, opcacheなど。
mysqliは不要。
php -mで確認後,/etc/php/php.iniのextensionsをコメントアウト。
pacman -Ss php-でインストールが必要なモジュールを確認して,
pacman -S php-gd php-intl php-mcryptをインスト。

pacman -S mariadbでmysqlをインストール
指示通り,mysql_install_db --user=mysql --basedir=/usr --datadir=/vat/lib/mysql
systemctl start mariadb
mysql_secure_installationでrootのパスワードなどを設定。
mysql -u root -p
CREATE database `nextcloud` default character set `utf8` collate `utf8_unicode_ci`;
CREATE USER `nextcloud`@'localhost' IDENTIFIED BY 'passwd';
GRANT ALL PRIVILEGES ON `nextcloud`.* TO `nextcloud`@`localhost`;
quit

pacman -S php-fpmをインスト
/etc/php/php-fpm.d/www.conf の env[PATH] = /usr/local/bin:/usr/bin:/bin をコメントアウト
/et/php/php.iniを編集し,open_basedir=を設定。後述。
systemctl start php-fpm

pacman -S nginxでインストール
mkdir /etc/nginx/conf.d/
vi /etc/nginx.confで,httpセクションの最後に以下を追加
server_names_hash_bucket_size 64;
include conf.d/*.conf;
/etc/nginx/conf.dにarch wikiのcloud-initial.confをコピーする。
Nextcloudの本家のconfだと,ドキュメントディレクトリが違うので,arch wikiのものを使用する。
https用のnextcloud.confは後で使用する。
nignx -tで設定を確認
ディレクトリの設定のスクリプトがないので,Arch Wikiのset-nc-permsを流用。
browserで確認すると

以上で,ドメインにアクセスするとnextcloudが動くはず。
Cannot write into config directory!のエラー。
原因は、/etc/php/php.iniのbasedirなので、
open_basedir = /usr/share/webapps/nextcloud/:/etc/webapps/nextcloud/:/usr/share/nginx/html/:/dev/urandom:/tmp/:/var/tmp/に変更して、systemctl restart php-fpm。
/tmpの追加が必要だと分かるまで、かなり悩んだ。uploadディレクトリを分けたので,/var/tmpも追加。

systemctl enabel nignx
systemctl enabel php-fpm
systemctl enabel mariadb
起動時の設定もしておく。

日本語とサウンド

x-windowsは、pacman -S xfce4で手っ取り早く導入。
機動は、startxfce4でOK。
ブラウザは、pacman -S midori flashpluginでやってみたが、ときに強制終了するので、
pacman -S seamonkey。
日本語フォントは,pacman -S otf-ipafontで簡単。
問題は,日本語入力の選択。インプットメソッドは,kinput2, SCIM, ibus, Fcitxと変遷してきたようだ。
いまは,Fcitxが素直な選択と思われるが,中国産なのでなんとなくいや。
ウテナとアンシーが忘れられないので、昔ながらのuimにしてみる。
まだ公式リポジトリにあるので、pacman -S uim anthyでよい。
ターミナルで、uim-toolbar-gtk &を動かすと、言語ツールバーが起動するので、Preference-Global settings-Input method deploymentでDefault input methodでanthy-utf8を選択しておく。
日本語のオンとオフはShift+Spaceなので、そのまま使える。
Spaceで変換、Enterで確定、Escapeで取消、Ctrl+pで前候補。
次回以降もツールバーが必要であれば、自動起動のために、Applications-Settings-Settings Manegerで
Session and Startup-Applicaiton Autostart-Addで設定しておく。
uim-fep -u anthyでコンソールでも使えるはずだが、フレームバッファのターミナルが公式ではないようなので、残念。
つぎにサウンド。pacman -S alsa-utils導入後、alsamixerを起動して、F6で確認するとデフォルトがHDMIになってるため。cat /proc/asound/modulesで確認すると、HDMIもPCHも同じモジュールを使用しているので、順番を入れ替える
echo options snd_hda_intel index=1,0 > /etc/modprobe.d/alsa-base.conf
再起動したら、音が出た。
念のため、cat /proc/asound/cardsで確認したら、alsamixerで音量調節。

pacman -S xarchiverは必要。
Applications-Settings-Power Manegerで、Status notificationsとSystem tray iconをONにしておく。
Web browserを複数インストールした時は、Applications-Settings-Preferred Applicationsで選んでおくと、Panelで起動するものを選択できる。
【“日本語とサウンド”の続きを読む】

Arch linuxの更新というか再インストール

2年ほど放置していたarchを更新しようとしたが流石に上手くいかない。share libraryのリンク切れは、ln -sでリンクを作成。
PGP signatureのエラーは、pacman-keyring -uで更新しようとしたが、
libcryptoが古すぎてエラーになるので、別システムからpacstrap /mnt libcrtptoで送りこみ。
最後は,pacman -S --force packageで,conflictがあるパッケージを無理やり更新。
形は整ったが,systemd関連がおかしい。
結局,再インストールしてしまった。
かなり前から,更新を続けた挙句の2年放置がとどめをさしてしまった。
思えば,4年の付き合いであった。新規一新,クリーンインストールだ。

Arch Linux MBR+BIOS編

ARCHを久々にインストール。今回は、MBRのパーティションにセットアップ。
インストールガイドどおりで問題ないのだが、ブートローダーにsyslinuxを使用したので、嵌ってしまった。
ISOをダウンロードしたら、DDWinでUSBに書込み。
USBから起動したら、インストールするパーティションを、"fdisk -l"で確認したら、ext4でフォーマット。
mkfs.ext4 -O \^64bin /dev/sdxx
ここで、64bitオプションを無効にしておかないと、syslinuxの起動の時に、"Failed to load ldlinux.c32"でエラー終了する。
あとは簡単。
"wifi-menu"で無線LANに接続したら、"ping www.yahoo.com"でインターネットアクセスを確認。
mount /dev/sdxx /mnt
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
"vi /etc/locale.gen"で、en_US.UTF-8とja_JP.UTF-8をコメントアウトして
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
echo hostxxx > /etc/hostname,反映されるのは再起動後。
vi /etc/hosts
pacman -S syslinux
syslinux-install_update -ima
vi /boot/syslinux/syslinux.cfg
wifi-menuのために、"pacman -S dialog wpa_supplicant"を導入しておく。
exit
reboot
wifi-menuで無線LANに接続したら、次回から自動化のために
pacman -S wpa_actiondを導入。
ip linkでポートの確認
systemctl enable netctl-auto@wlp3s0でセット。

vi /etc/pacman.confで,Colorのコメントを外すと表示がわかりやすい。
その他、pacman -S pkgfileを導入して、pkgfile -uで更新。
その後、pkffile arch-chrootで検索して、pacman -S arh-install-scriptsをレスキュー用に導入しておく。
pacman -S sudoも入れたら、visudoで、%wheel ALL=(ALL) ALLを追加(コメントアウト)。
useradd -m -G wheel xxxで常用アカウントを追加するが,固有のグループを作らないときは,-g wheel。
pacman -S bind-toolsで,digとhostをインストール。
【“Arch Linux MBR+BIOS編”の続きを読む】

Nuttx

nuttxを使って、stm32f4discoveryをいじり始めることにしたので、久々にサイトをチェックすると、順調にバージョンアップを続けている。

1.ホスト環境
手元にある仮想環境のubuntu 10.04 LTSを使う。当然、とっくにサポートが終了しているいるので、/etc/apt/sources.listを編集して、リポジトリをold-releases.ubuntu.comに変更したあと、Synapticでpackage update。

2.Gnu ARM Embedded Toolchain
https://developer.arm.com/open-source/gnu-toolchain/gnu-rmからダウンロードすればよいのだが、linux版のバイナリは64bitしかない。手元のubuntuは32bitなので、仕方なくソースをダウンロードして自力でビルド。
ファイルを展開した後に、srcのサブディレクトリにあるアーカイブも全部展開。
ビルドに不足しているパッケージを追加。
sudo apt-get install p7zip-full gawk gzip perl autoconf m4 automake libtool libncurses5-dev gettext gperf dejagnu expect tcl autogen flex flip bison tofrodos texinfo gcc-multilib libgmp3-dev libmpfr-dev debhelper texlive texlive-extra-utils g++
実際のコンパイルは以下のスクリプトで行うが、かなり時間がかかる上、容量も15GB以上必要なので要注意。
./build-prerequisites.sh --skip_steps=mingw32
./build-toolchain.sh --skip_steps=mingw32
結局、ドキュメントの作成で異常終了したが、バイナリはできたのでよしとした。
install-nativeにバイナリがあるので、
mv install-native $HOME
cd
ln -s install-native/bin bin
一度log outすれば、.profileのスクリプトでPATHが設定される。

3.nuttxビルドと書込み
http://nuttx.org/から、nuttx-7.19, appa-7.19、toolsをダウンロード。
toolsを展開したら、必要なパッケージを導入して、kconfig-frontendsをコンパイル。
sudo apt-get install libncurses5-dev
cd kconfig-frontends
./configure --enable-mconf --disable-nconf --disable-gconf --disable-qconf --prefix=/usr
make
sudo make install
nuttx-7.19とappa-7.19を展開して、リンク作成。
ln -s nuttx-7.19 nuttx
ln -s apps-7.19 apps

4.nshビルドと実行
UART2コンソールのnshに加えて、USBコンソールのusbnshがあるので、今回こちらをビルド。
cd nuttx/tools
./configure.sh stm32f4discovery/usbnsh
標準のホストはwindowsなので、Linuxに変更して、ビルド。
make menuconfig
Build Host Platform: Linux
make
nuttx.binをWindows環境に移す。
http://www.st.com/ja/embedded-software/stsw-link004.htmから、ST-Link Utilityをダウンロードして導入。
ST-Link Utilityを実行して、stm32f4discoveryをUSBでCN1(Mini B)に繋ぎ、データを書き込む。
Target/Connect
File/open file - nuttx.bin
Target/Program & Verify

5.起動
一度CN1(Mini B)を抜いて電源を切った後、USBでCN5(Micro B)を繋ぐ。
CN1(Mini B)を再度繋いで起動すると、CN5側に仮想COMポートができるので、tera termで、115200bps 8bin 1stop bitで接続する。
数回ENTERを入力すると起動メッセージが表示される。
NuttShell (NSH) NuttX-7.19
nsh> ?
help usage: help [-v] []

[ cmp false mkdir rm true
? dirname free mh rmdir uname
basename dd help mount set umount
break df hexdump mv sh unset
cat echo kill mw sleep usleep
cd exec ls ps test xd
cp exit mb pwd time

Builtin Apps:
nsh>
上記のように表示され、めでたし、めでたし。




STM32F4 Discoveryの拡張ボード

nuttxは昔のlinuxを思わせ、STM32F4 Discoveryをいろいろ触ってみる気にさせる。でも、LANポートがほしい。
Etherportを付けるためは、LAN9820AやDP83848などのPHY ICを接続することが必要だ。
自作は難しそうだが、拡張ボードSTM32F4DIS-BBが発売されている。これはnuttxでサポートされているうえに、microSDカードスロットやシリアルのコネクタもあるので便利がよさそうだが、element14で25.54ポンド(約4700円)と少し高い。
alibabaのaliexpressを見てみると、LCD付きで50ドルの拡張ボードがあるので、人柱でこれに挑戦してみるのも良いかもしれない。
前のページ 次のページ

FC2Ad