ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2015年3月20日金曜日

Grub のブートメニューををシリアルポート経由で出力する


1 Grub のブートメニューををシリアルポート経由で出力する




1.1 動作環境




  • $ uname -a

    Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux


  • $ sudo grub-install -v

    grub-install (GRUB) 1.99-27+deb7u2






1.2 設定方法



注) コマンドはあとで思い出しながら書いたところがあるので,コピペしても動かないかも



/etc/default/grub に以下を追記



GRUB_TERMINAL_INPUT='serial console'
GRUB_TERMINAL_OUTPUT='serial console'
GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1'


grub-mkconfig で設定ファイルを更新.



# grub-mkconfig -o /boot/grub/grub.cfg


出力された /boot/grub/grub.cfg を確認する.




# grep 'serial' /boot/grub/grub.cfg
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal_input serial console
terminal_output serial console


これで再起動すれば,GRUB のメニューがシリアルポート経由で出力される.






--
My Emacs Files At GitHub

2014年3月30日日曜日

Raspberry Pi で Radikorec を使ってみる.


家で目的もなく動いてるRaspberry Pi さんにラジオを録音してもらいたくなった.
そこで, Raspberry Pi に radikorec をインストールしてみた.
Raspberry Pi に限らず,たいていのUnix 系OSならほぼ同じ手順でインストールできそうだった.




環境




<マシン>
Raspberry Pi

<OS>
Raspbian 7.1

<カーネル>
Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l GNU/Linux







radikorec のソースコードをダウンロード




radikorec のリポジトリは akiradeveloper/radikorec · GitHub にある.
ここから,クローンする.




git clone https://github.com/akiradeveloper/radikorec.git








setuptools distribute をインストール

(2015/08/22 更新: setuptools を使うように内容を変更)

radikorec のインストールのために、python のパッケージ管理ツールであるsetuptools を使うため、これをインストールする.

(この記事ではもともとdistribute を使うように書いていたが、distribute は2013年にsetuptools に取り込まれているらしいので、setuptools を使うほうがよいらしい
また、元々この記事で紹介していた distribute インストール用のスクリプトへのリンクが切れてしまっている.
このため、setuptools を使うように内容を変更した.)


distributete というpython のライブラリ? をインストール.
因みに,何のためのライブラリかはよくわかってない.

昔は distributete でなはく setuptools というライブラリが主流だったらしい.
現在は, setuptools の開発は止まっており,それを引き継いで開発されているのが distribute ということらしい.
というわけで,今回は distribute をインストールする.
(このことに関連して,あとでradikorecのインストールスクリプトを修正する必要がある.)

参考URL: Pythonパッケージ管理ツールまとめ | サイト運営の私的メモ




$ curl -O http://python-distribute.org/distribute_setup.py
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
$ sudo python distribute_setup.py








その他必要なものをインストール




以下のコマンド(Debian 系)



sudo apt-get update
sudo apt-get install libssl-dev 
sudo apt-get install ffmpeg







インストールスクリプトの編集

(2015/08/22 更新: setuptools を使うように内容を変更)



compilesetup.py ファイルを編集.
compile の方は rtmpdump のソースコードをgitリポジトリからクローンしてくるのだが,このリポジトリの指定先が参照できないので,変更.
setup.pysetuptools ではなく distributete をインストールしたための変更.


編集内容は以下の通り.



$ git --no-pager diff
diff --git a/compile b/compile
index ef82607..8cf921e 100755
--- a/compile
+++ b/compile
@@ -6,7 +6,8 @@ pwd
 make
 cd -

-git clone https://github.com/svnpenn/rtmpdump.git
+git clone git://git.ffmpeg.org/rtmpdump
+# git clone https://github.com/svnpenn/rtmpdump.git
 cd rtmpdump
 pwd
 make SYS=posix      
diff --git a/setup.py b/setup.py
index ecba8a4..5b2df88 100644
--- a/setup.py
+++ b/setup.py
@@ -1,5 +1,5 @@
-#from distutils.core import setup
-from setuptools import setup
+from distutils.core import setup
+#from setuptools import setup

 setup(
     name = 'radikorec',








インストールスクリプトの実行




以下のコマンドを実行する.



sudo make install
./compile 
sudo ./setup 








試験的に動かしてみる.




以下のコマンドでradikorecを試してみることができる.



./runtest


これを実行すると. /tmp/ 以下にログや録音した音声ファイルができるはず.
ffmpeg のインストールを忘れてると,録音したのにエンコードできなくて音声ファイルが出力されない.
僕は,毎度この段階で ffmpeg がないことに気づくので,実際に ./runtest で音声ファイルを出力したことはなかったりする.








放送局コードについて




radikorec を使うときに,録音したい放送局を放送局コードで指定する.
これを知るためには,http://radiko.jp/v2/api/program/today?area_id=JP14 へアクセスして返ってきたxml を見ればいいっぽい.
<station io=hoge>hoge の部分が放送局コード
その放送局が何かはすぐしたの <name> に書いている.

参考URL: FreeBSD で radiko を録音する。






おまけ: mp3に変換して,コマンドラインから再生する.




raspberry pi イヤホン端子もあるので,再生して聞くこともできる.
m4a 形式を直接コマンドラインから再生する方法がよくわからなかったのでmp3に変換してから再生してみた.
以下のようにやればできた.

m4a → mp3 は以下のようにやればできる.



ffmpeg -i NHR-2014-03-30-04-20.m4a  hoge.mp3




再生は, mpg321 をインストールして使えばOKっぽい.
デバイスファイルへのアクセス権限の関係で,何も設定しないとユーザ権限では動作しない.
今回は面倒だったのでsudo を付けないと動かした.
sudo を付けたくない人は,ブログログ mpg321を一般ユーザーで再生できるようにする。 などを見て,デバイスファイルにアクセスできるように権限を設定しよう.
mpg321 のインストールおよび再生コマンドは以下の通り.



sudo apt-get install mpg321 
sudo mpg321 hoge.mp3 



ここに書いた方法で,Raspberry Pi から直接再生することができる.
しかし,上記のエンコード処理はRaspberry Pi でやると非常に遅い.
また,録音した音声ファイルのサイズは大きくなりがちなので,SDカードの容量も心配である.
なので,音声ファイルは聞くときに別のマシンに移してしまって,そのマシンでエンコードなり再生なりしたほうがいいと思ったのがやってみた感想である.

参考URL: ブログログ mpg321を一般ユーザーで再生できるようにする。






コマンドリスト







git clone https://github.com/akiradeveloper/radikorec.git
cd radikorec/
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py 
vi ./compile 
vi ./setup.py 
sudo make install
./compile  #失敗
sudo apt-get update
sudo apt-get install libssl-dev 
./compile 
sudo ./setup 
sudo apt-get install ffmpeg
./runtest 
vi my_script.sh
chmod +x my_script.sh 
mkdir ../radiko_data
./my_script.sh 
ffmpeg -i NHR-2014-03-30-04-20.m4a  hoge.mp3
sudo apt-get install mpg321 
sudo mpg321 hoge.mp3 








my_script.sh の中身







#!/bin/sh
radikorec \
 --channel=LFR \
 --duration=1 \
 --prefix=NHR \
 --directory=/home/deep/radiko_data





--
My Emacs Files At GitHub

2013年8月21日水曜日

Linux の コンソール(非GUI) をEmacsのキーバインドにする.




動作確認環境




OS: Fedora 18

キーボード: 英字配列キーボード

この方法では,英字配列で,Emacsバインドになると思われる.

(日本語配列のキーボードでは試してない.)







方法




結論だけ言うと,カーネルのブートオプションに KEYTABLE=emacs を追加するだけでOK.

以下は,その具体的な設定方法を書く.







具体的な設定方法




grub2の場合は, /etc/default/grub



GRUB_CMDLINE_LINUX=""


の行を




GRUB_CMDLINE_LINUX="KEYTABLE=emacs"


に書き換えて,ターミナルから,




$ grub2-mkconfig /boot/grub/grub.cfg 


を実行すればいい.




最終的には,grub.cfgには,以下のようなエントリーが追加されればOK.

カーネルを指定する. linux から始まる行の最後に KEYTABLE=emacs が入っていればよい.



menuentry 'Linux Mint 14 MATE 64-bit, 3.5.0-27-generic (/dev/sda1)' --class linuxmint --class gnu-linux --class gnu --class os {
      recordfail
      gfxmode $linux_gfx_mode
      insmod gzio
      insmod part_msdos
      insmod ext2
      set root='hd0,msdos1'
      if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  <UUID>
      else
        search --no-floppy --fs-uuid --set=root <UUID>
      fi
      linux   /boot/vmlinuz-3.5.0-27-generic root=UUID=<UUID> KEYTABLE=emacs
      initrd  /boot/initrd.img-3.5.0-27-generic
}


これは,Grub(2でないもの)にも同様に使える技である.








おまけ




起動してから,emacsバインドに変えたい時は,



$ loadkeys emacs


で,簡単に変わる.

よく,keymapの圧縮ファイルを展開して,CpasLockの部分を書き換えて… みたいは方法があるが,あれよりずっと簡単.

ただし,日本語配列でEmacsバインドに変えたい場合は,やはり,keymapの圧縮ファイルを展開して…しないといけない.



--
My Emacs Files At GitHub

2013年6月30日日曜日

Linuxのコンソールの文字サイズを調整する方法.


Linuxをテキストモードで起動するときの文字サイズを調整する方法.

文字サイズを調整するために,コンソールの解像度を変更する.

解像度の変更方法は,ブートオプションに




video=800x600


のように,解像度を指定するオプションを追加する.




コンソールの文字を大きくしたい時は解像度を下げればよい.

逆に,コンソールの文字を小さくしたい時は解像度を上げればよい.








--
My Emacs Files At GitHub

2013年4月28日日曜日

Brasero が起動しない問題への対処


動作環境(ディストリビューション)




Linux Mint 14 Mate(64bit版)






本題




UbuntuやLinux Mint上でisoイメージをCDやDVDに焼くときに,Braseroというアプリケーションを使う時があります.

しかし,これが起動しなくなる時があります.

Terminalから起動しようとすると以下のようにメッセージが出力されます.




$ brasero &
** (brasero:14601): WARNING **: An instance of Brasero is already running, exiting





どうやら,すでにBraseroが裏で動いてるから起動できない,ということらしいです.

なので,システムモニタなどを使って裏で動いてるBraseroのプロセスを終了して,再度,起動を試みると,ちゃんと起動しました.










--
My Emacs Files At GitHub