Linux サポートアーキテクチャー (役割分担)†
- Linux code maintainor
- Linux master code maintainor
有名な ライナス氏、現在の2.6メンテナーのMarcelo氏が管理
- Archtecture code maintainor (Linux-SH Tree など)
Linux-SH は現在 Paul Mundt 氏が実質的なコードメンテナー
- Linux community
- 各開発プロジェクト ( Mozilla とか Apache とか)
- 個人の開発者 (会社での成果を個人名で寄付するケースも含む)
- Linux 標準化団体
- 一番有名なのは OSDL
- CE-Linux Forum もここの位置づけ ・・・・ 但し 新参ものです
- Distributor
- PC-Linux ディストリビューター ⇒ Redhat、Turbo、SUSIE など
- 組込みLinux ディストリビューター ⇒ Montavista、超L など、
- Integrator
- 半導体メーカー系インテグレータ ⇒ 超L、 RSO など
- 独立系インテグレータ ⇒ ELT、日立ソフト、東芝情報 など
一般的には [Community] の成果を [Code maintainor] が認証したものを
[Distributor] が再配布して [Integrator] が顧客サポートする.... という基本構造があり
[ 各種標準化団体 ]は[Community]の活動の方向付けをしています。
お客さんは (例外的に master code から直接ネタをもってくることもあるでしょうが)
一般には [Distributor] からLinux のコードを導入し、[Integrator] の有償サポートを
期待しているのですが、このためには 一般には [Code maintainor] に必要なものがサポートされている必要があります。
例外的に [Distributor] が先行して特定の機能、CPUをサポートすることはありえますが、
最終的に [Master code]まで還流していかないと 亜流となり 以降の Linux には含まれないことになります。
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
RTE での Linux support 体制†
RTE では 3rd パーティである MPC Data を通して顧客向けの Linux サポートに対応している。
MPC data は Web上に SH Linux Support site を運用して、(主として)RTE が開発したプラットフォーム用の Linux コードを公開している。
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
Direct Fb 性能比較 (CE Linux での検証)†
The DirectFB example suites include benchmark 'df_dok'. We have ran this benchmark on the following platform:
| Platform | CPU | clock | I/F | SYSTEM RAM | Graphics Card | Kernel Version |
| A | Renesas SH-4 | 240MHz | CPU | 64MB | SMI SM501 | 2.4.19 |
| B | Renesas SH-4 | 240MHz | PCI | 64MB | Matrox Millenium | 2.4.19 |
| C | Intel Celeron | 450MHz | PCI | 128MB | Matrox Mystique | 2.4.20 |
| D | Intel Celeron | 450MHz | PCI | 128MB | Matrox Millenium | 2.4.20 |
| E | Intel Pentium4 | 2.4GHz | AGP | 1GB | Matrox G450 | 2.4.20 |
| Benchmarks | Platform |
| A | B | C | D | E |
| Anti-aliased Text [KChars/sec] | N/A | 20.40 | 24.83 | 23.96 | 750.00 |
| Anti-aliased Text (blend) [KChars/sec] | N/A | 6.12 | 16.52 | 16.66 | 752.85 |
| Fill Rectangles [MPixel/sec] | N/A | 63.63 | 116.37 | 53.25 | 849.22 |
| Fill Rectangles (blend) [MPixel/sec] | N/A | 1.20 | 3.18 | 3.26 | 225.84 |
| Fill Triangles [MPixel/sec] | N/A | 62.26 | 108.79 | 50.51 | 730.24 |
| Fill Triangles (blend) [MPixel/sec] | N/A | 1.17 | 3.13 | 3.17 | 218.24 |
| Draw Rectangles [KRects/sec] | N/A | 10.67 | 12.95 | 8.57 | 36.27 |
| Draw Rectangles (blend) [KRects/sec] | N/A | 0.43 | 0.83 | 0.84 | 17.09 |
| Draw Lines [KLines/sec] | N/A | 61.33 | 62.60 | 48.84 | 162.40 |
| Draw Lines (blend) [KLines/sec] | N/A | 1.94 | 3.69 | 3.70 | 80.04 |
| Blit [MPixel/sec] | N/A | 38.68 | 53.75 | 32.56 | 398.84 |
| Blit colorkeyed [MPixel/sec] | N/A | 39.19 | 58.69 | 32.54 | 421.97 |
| Blit with format conversion [MPixel/sec] | N/A | 3.59 | 18.11 | 17.79 | 193.26 |
| Blit from 32bit (alphachannel blend) [MPixel/sec] | N/A | 0.82 | 2.71 | 2.71 | 158.10 |
| Blit from 8bit palette [MPixel/sec] | N/A | 3.20 | 17.40 | 17.38 | 95.17 |
| Blit from 8bit palette (alphachannel blend) [MPixel/sec] | N/A | 0.81 | 2.67 | 2.71 | 5.53 |
| Stretch Blit [MPixel/sec] | N/A | 7.06 | 46.69 | 47.61 | 220.77 |
| Stretch Blit colorkeyed [MPixel/sec] | N/A | 4.20 | 46.17 | 46.30 | 221.64 |
Direct Fb 性能比較2 (2008.1 最新CPUの性能比較)†
Direct Fb 性能比較 (R-CarE1 SGX/PVR2D での検証)†
[excel file]
Direct Fb 性能比較 (R-CarH1 R-GP2D での検証)†
[excel file]
Direct Fb 性能比較 (R-CarM1A R-GP2D での検証)†
[excel file]
R2R vs AP4 (Android performance 比較)†
Renesas Platform 共通項目†
lilo & boot.b (検証済みの組合せ) 2006.4 UP†
R2D 用 ipl+g マルチブートに関する補足†
- SH用セレクタ付ブートローダ(元ネタ) から R2D 用にリターゲットしたものである
- CF からのブートでは、複数の (当然名前を変えて登録した) kernel を起動時
に選択させることができる機能を持っています。
- このために 専用の boot.b を使っています。最大9個のカーネルを管理することができます。
- 複数の kernel image を持たせる場合、lilo.conf の image の登録の部分に下記
のように 複数の kernel image を列挙させます。 起動するカーネルの選択は出力された一覧から、そのインデックスを 1〜9 の1文字で入力する。
- タイムアウトは、lilo.conf の timeout= で指定可能。タイムアウトした場合は、一覧の先頭のカーネルを起動する。また、ask= の設定は無視されます。
- lilo.conf の内容を編集した場合には lilo -r コマンドを実行して設定を反映させる必要がある;
- mount /dev/sdb /mnt/CF ( 自動マウントを一端解除し、手動マウントしなおす )
- lilo -r /mnt/CF ( -C /etc/lilo.conf )
lilo.conf の内容†
linear
# You must appoint your CF mounting device name on following lines.
# Default CF mounting device is /dev/hdc.
boot = /dev/sda
disk = /dev/sda
bios = 0x80
#
delay = 30
timeout=100
#vga = normal
image = /boot/zImage-2.6.11.8
label = linux-2.6.11.8
root = /dev/hda1
read-only
append="mem=64M console=ttySC0,115200"
image = /boot/zImage-2.6.10
label = linux-2.6.10
root = /dev/hda1
read-only
append="mem=64M console=ttySC0,115200"
image = /boot/zImage-2.6.9
label = linux-2.6.9
root = /dev/hda1
read-only
append="mem=64M console=ttySC0,115200"
ipl 起動画面イメージ†
RTS7751R2D>b
Disk_drive detected: ScanDisk SDCFB-128 HDX 2.15 012004K2904K5933
Set Transfer Mode result: 50
Initialize Device Parameters result: 50
IDLE result: 50
LILO boot:
1 : linux-2.6.8.1
2 : linux-2.6.7
3 : linux-2.6.6
Select boot image -> 1
Loading linux-2.6.8.1 ..........................done.
R2D 用 ipl+g ネットワークブートに関する補足†
合田さん 作成手順書(日本語)
- Linux kernel を ネットワークからブートするための設定を、ネットワークサーバー
上に反映する
- sh-lilo は MAC アドレスを broadcast するだけ
- (現在の設定では)サーバー上の top directry 直下に /tftpboot という
ディレクトリーを作成し この中に kernel image を格納しておく。
- ネットワークブートに対応しているのは eth0 側(RTL8139)。
- MAC アドレスはボード上にシールで示されている。
- (現在の設定では)root file system もネットワーク上から NFS としてマウント
するようになっており、kernel 起動パラメータの中で NFS の mount point を
指定します。
- マウント前に root file system 上の lilo.conf を参照出来ないので .config の起動パラメータにIP アドレス、マウントポイント などを環境に合わせてハードコードして kernel を構築する。
- root file system 上のネットワーク関連設定でボードの IP アドレスなどを適切に設定する。
ネットワーク起動用の設定内容†
- nfsroot=192.168.10.191:/tftpboot/rts7751r2d
- RTS7751R2D 用 Rootfile system の場所を指定。
- この例では、NFS Server IP Address 192.168.10.191 の /tftpboot/rts7751r2d を指定。
- ip=192.168.10.200
- RTS7751R2D に割り当てる IP Address を指定。
- この例では、192.168.10.200
- 上記のコマンドは、例であり、各ネットワーク環境に合わせて IP Address 等を指定。
[Networking support] - [Network options] - [kernel level autoconfiguration (IP_PNP)]
上記の例では、MAC Address 00:00:87:6B:60:44 に対して、IP Address
192.168.10.200
を割り当て、boot するカーネルは、
/tftpboot/rts7751r2d/boot/zImage-2.6.8.1
を指定する。また、Root filesystem として、
/tftpboot/rts7751r2d
を指定する。
initramfs ramdisk による zImage の作成方法 (Kernel 2.6.16.2)†
- カーネルディレクトリ内にルートファイル展開先を作成
(例) #mkidr arch/sh/initram
- ルートファイルシステムを展開
#tar zxvf rootfs.tgz -C arch/sh/initram
- シンボリックリンク "init "を作成
#cd arch/sh/initram
#ln -s bin/busybox init
- .config 変更
CONFIG_INITRAMFS_SOURCE="arch/sh/initram"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
- カーネル起動パラメーターの設定
CONFIG_CMDLINE="mem=128M console=ttySC0,115200 root=/dev/ram0
- make zImage
- 出来た zImage を etherboot よりダウンロードし実行
date の設定†
date コマンドを使ってシステム時刻を変更する方法 (フォーマットに注意)
# date 041211402004
Mon Apr 12 11:40:00 UTC 2004
hwclock コマンドでRTC の時刻をシステム時刻にあわせる
# hwclock
Tue Apr 12 09:19:04 2016 -0.028194 seconds
# hwclock --systohc
# hwclock
Mon Apr 12 11:41:45 2004 -0.069402 seconds
再起動するとシステム時間がRTCから正しく読み込まれる
# halt
Reboot してから
# date
Mon Apr 12 11:49:38 UTC 2004
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
LAN の設定†
設定ファイル一覧†
| 場所・名前 | 目的 | ダウンロード |
| /etc/sysconfig/network-scripts/ifcfg-eth0 | eth0の設定ファイル | '&ref(ifcfg-eth0)' |
| /etc/sysconfig/network-scripts/ifcfg-eth1 | eth1の設定ファイル |
| /etc/sysconfig/network | networkの設定ファイル | |
| /etc/dhcpd.conf | DHCPサーバの設定ファイル | |
| /etc/rc.d/init.d/S20network | ネットワーク起動のスクリプトファイル | '&ref(S20network)' |
| /etc/rc.d/init.d/S40dhcpd | DHCPサーバ起動のスクリプトファイル | '&ref(S40dhcpd)' |
ネットワークの設定及び起動方法†
- /etc/sysconfig/network-scripts配下のifcfg-eth0、ifcfg-eth1を設定します。
- /etc/sysconfig配下のnetworkファイルに「FORWARD_IPV4=yes」行を追加します。
- /etc/rc.d/init.d/S20networkを起動します。
DHCPサーバの設定及び起動方法†
- dhcpサーバの設定ファイル(dhcpd.conf)を/etc配下に作成します。
- dhcpサーバは、インストールしてください。
- /etc/rc.d/init.d/S40dhcpdを起動します。
テスト方法及び結果†
eth1側に接続したパソコンがIPアドレスを取得することができます。
上記の機能を有効にするためにカーネルのコンフィグレーションで以下の項目を指定してください。
[Networking option]
[Socket Filtering]
[IP:Kernel level autoconfiguration]
[IP:DHCP support]
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
/etc/sysconfig/network-scripts/ifcfg-eth0 の例†
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.10.255
IPADDR=192.168.10.200
NETMASK=24
NETWORK=192.168.10.0
GATEWAY=192.168.10.5
ONBOOT=yes
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
/etc/sysconfig/network|network の例†
bios = 0x80
#
# Network configuration file
#
#
# NETWORKING : yes, no(yes is require)
# HOSTNAME : localhost
# NISDOMAIN : NIS domain name. "nisdomain" (none: "NISDOMAIN=")
# GATEWAYDEV : eth0, eth1, ... (none:"GATEWAYDEV=")
# GATEWAY : router address. (none:"GATEWAY=" )
#
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=sh7751rvoip
#NISDOMAIN=
#GATEWAYDEV=eth0
GATEWAY=192.168.10.5
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
/etc/dhcpd.conf の例†
server-identifier 192.168.10.200;
shared-network DHCP-NET {
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.197 192.168.10.199;
default-lease-time -1;
}
}
KnoweldgeBase トップページに戻る ![[heart]](image/face/heart.png)
Ether port 間のブリッジの設定(brctlコマンドの使用方法)†
- ここでbr0デバイスにIPアドレスを指定したい場合には⑦をそうでない場合は⑧を実行してください。⑦を実行するとR2DボードのIPアドレスが指定したIPアドレスになります。⑧を実行するとR2Dボードにはシリアル以外でのアクセスができなくなります。
- 下記の設定を行うとeth0、eth1デバイスに同一セグメントのマシンを接続して使用できます。
- eth0、eth1を起動停止します。
- brctl addbr br0
- brctl addif br0 eth0
- brctl addif br0 eth1
- ifconfig eth0 0.0.0.0
- ifconfig eth1 0.0.0.0
- ifconfig br0 xxx.xxx.xxx.xxx netmask 255.255.255.0(「xxx.xxx.xxx.xxx」は指定したいIPアドレス)
- ifconfig br0 up
kernel 2.6 における MMU レスのCPUサポート†
Kernel-2.6.x における、MMU のコンフィグレーションでSH-2 以外 (SH-3 or SH-4) の時、指定可能です。
SH-3 or SH-4 指定時、デフォルトでは、"y" になります。ヘルプとして下記の記述があります。
> Early SH processors (such as the SH7604) lack an MMU. In order to~
> boot on these systems, this option must not be set.
>
> On other systems (such as the SH-3 and 4) where an MMU exists,~
> turning this off will boot the kernel on these machines with the~
> MMU implicitly switched off.
従って、SH-3, SH-4 の時に、MMU の有効/無効が指定出来ますが、MMU を無効にした時の動作は検証していません。
RTS7751R2D Platform 関連情報†

ハードウエアマニュアル†
- ハードウエアマニュアル(和文)
RTS7751R2D_HW.doc
- ハードウエアマニュアル(英文)
RTS7751R2D-e.pdf
- Lineo BSP サポートパッケージ一覧(kernel 2.6.8-1)
BSP_list_detail_RTS7751R2D_BE.pdf
ソフトウエアリリースノート†
- ソフトウエアリリースノート(和文)・・・
- ルネサス販売のWeb公開情報 (和文) ・・・ ルネサス販売 公開Web へのリンク
- CE Linux Forum 公開ページ(英文)・・・ CELF_Web page へのリンク
PCI スロットから供給可能な電源容量†
- 共通仕様
- コネクタスペックは、5V/8A、3.3V/12A、12V/2Aが流せます (1端子あたり1Aで電源の割り振り本数倍になります)
- R2D : 5V/8A、3.3V/12A
- ATX電源から持ってきています
- R2D ボード標準添付の ATX電源は3.3V/17A、5.0V/21Aです
- ボード上他デバイスを考慮しても5V/8A、3.3V/12Aは流せる仕様です
- R2D+ : 5V/8A、3.3V/4.0A
- PCIデバイスへの電源供給は、レギュレータから3.3Vを作っています
- レギュレータの仕様がmax5A出力です
- PCIに流せる電流は、余裕見て3.3V/4.0A程度
- PCカード未使用であれば 5Vについては、DCDCコンバータからの出力なので16Aで他のデバイスで使用していても8Aは使用可能
- 他PCIデバイスの消費電流 (想定実力値)
- RTL8139(150mA x 2)
- RTL8305(195mA)
- PCI1520(不明、50mA程度と仮定)
- PCカード(未使用条件)
R2D+ (R0P751RLC0011RL) 関連情報†
- ハードウエアマニュアル(和文)
R2D_hw_manual_00_jl.pdf
- ハードウエアマニュアル(英文)
R2D_hw_manual_00_e.pdf
- ハードウエアマニュアル(英文)
rej10j1322_r0p751rlc0011rl.pdf
- 回路図(メイン)
R0P751RLC0011RL-MAIN_SCH.pdf
- 回路図(FROM ボード)
R0P751RLC0011RL-FROM_SCH.pdf
HS7751VoIP-2 Platform 関連情報†

ハードウエアマニュアル†
RTS7751RVoip-2_HW.pdf
ソフトウエアリリースノート†
ネットワークの設定†
- IPアドレスは、/etc/sysconfig/network-scripts/ifcfg-eth0、ifcfg-eth1ファイルで設定してください。
- デフォルトのIPアドレスは、以下のようになっています。
| eth0 | 192.168.10.200 |
| eth1 | 192.168.20.200 |
- ネットワークの立ち上げシェルは、/etc/rc.d/init.d/S20networkです。
- ホスト名は、/etc/sysconfig/networkファイルの「HOSTNAME」で設定してください。
- デフォルトのホスト名は、「HS7751RVoIP」となっています。
- ホスト名を変更した場合は、リブートをして再度立ち上げ直してください。
- ホスト名の設定は、/etc/rc.d/rcSファイルで行っています。
- GATEWAYは、/etc/sysconfig/networkファイルの「GATEWAY」で設定してください。
- pppoeでの接続を考慮してデフォルトではGATEWAYを有効にしていません。
DHCPの設定†
- DHCPの設定は、/etc/dhcpd.confファイルで行ってください。
- 起動ファイルは、/etc/rc.d/init.d/S30dhcpdです。
- デフォルトで起動させる場合は9行目の「exit 0」をコメントにしてください。
NTPの設定†
- NTPでの時間の設定は、立ち上げ時に1度だけ行っています。
- NTP設定のシェルは、/etc/rc.d/init.d/S60ntp_daemonです。
デフォルトでは、起動しないようにしています。
起動する場合は、上記ファイルの3行目の「exit 0」をコメントにしてください。
PPPoEの設定†
- [adsl-setup]コマンドを使用してpppoeの設定を行ってください。
このコマンドでプロバイダーに接続するためのユーザーIDやパスワードなどを設定します。
- 設定を行うと/etc/ppp配下のファイルに設定情報を書き込むために、ルート部分(/dev/hda1)を書き込み可能にするためにリマウントし直してください。
- 起動ファイルは、/etc/rc.d/init.d/S64firewall、S65adslです。
- S64firewallファイルは、インターネットに接続できる最低限のセキュリティを確保するためのファイアウォールです。設定したスクリプトは、以下の通りです。
| S64 Firewall のセキュリティポリシー |
| ルータからインターネットへの接続はすべて許可 |
| LANからルータへの接続を許可 |
| インターネットからの接続要求のうち、コネクションが確立済みのTCPで短命ポート宛(1024以上)を許可 |
| LANからの接続要求をIPマスカレード |
| DNSが利用するudpを許可 |
| これ以外の接続はすべて拒否 |
- S65adslファイルは、実際に接続を行うものです。
その他†
- syslogの起動ファイルは、/etc/rc.d/init.d/S05syslogです。デフォルトで起動しています。
- 立ち上げ時に起動をしたくない場合には、上記ファイルの15行目の「#exit 0」のコメントをはずしてください。
- pcmciaの起動ファイルは、/etc/rc.d/init.d/S06pcmciaです。デフォルトで起動しています。
立ち上げ時に起動をしたくない場合には、上記ファイルの20行目の「#exit 0」のコメントをはずしてください。
- inetdの起動ファイルは、/etc/rc.d/init.d/S15inetです。
デフォルトで起動しいます。
立ち上げ時に起動をしたくない場合には、上記ファイルの20行目の「#exit 0」のコメントをはずしてください。
- デフォルトでftp、telnetが使用可能にしてあります。
ログインは、ユーザ名、パスワードともに「guest」です。接続先は、/home/guestです。
- 宗像さんが作成したiptablesは、/etc/rc.d/init.d/S50iptablesのままです。
デフォルトでは、起動しないようにしてあります。
立ち上げ時に起動する場合は、16行目の「exit 0」をコメントにしてください。
ルーティング性能のベンチマーク (Smartbit による計測)†
Gigabit LAN での限界ベンチマークデータ ⇒
gigabit_benchmark.xls
Intel IXP-425 との性能比較データ ⇒
SH7751RvsIXP425.xls


Partner を利用した Linux 開発†
- Partner-J Linux 開発環境説明 ・・・・ &ref(): File not found: "kmc_linux_j.pdf" at page "Board_info";
- Partner-Jet Linux 開発環境説明 ・・・・ &ref(): File not found: "kmc_linux_jet.pdf" at page "Board_info";
アイオーデータ LAN Disk ベース mobile-server 関連情報†
pukiwiki の接続、起動方法 (2004.7 菊武氏作成 readme)†
- ルータにLANDISKを接続し電源を入れます。
- LANDISKのIPアドレスを確認します。
- ルータに接続します。
IPアドレス : 192.168.0.1
ユーザ名 : admin
パスワード : なし
- 接続できたら「ステータス」−「DHCPサーバの状態表示」メニューでマシン名「cyber_disk」があることを確認し、そこに表記されているIPアドレスが割り振られたIPアドレスです。
- DNSサーバへの設定を行います。
- 検索したIPアドレスで「ping」を行います。(逆引きレコードの設定)
「ping 192.168.0.xxx」(xxxは、調べた値)
- 次に「cyber_disk」で「ping」を行い「ping」が通ることを確認します。
(正引きレコードの設定)
「ping cyber_disk」
- LANDISKが立ち上がったらapacheが接続できることを確認します。
- LANDISKの設定画面表示
http://cyber_disk」と入力します。
管理者を選択する場合は、ユーザ名「admin」と入力してください。
パスワードは、ありません。
- pukiwikiの画面表示
- 「https://cyber_disk」と入力します。
このときユーザ名、パスワードを聞かれてきますがともに「guest」です。
- telnetでログインする場合は、確認したIPアドレスで接続します。
そのときのユーザ名、パスワードはともに「guest」です。
- namazu検索を行う場合には、以下の手順で行ってください。
(namazu検索用のインデックスは、以前に宗像様からいただいたsample_docを使用
しています)
- 「http://cyber_disk/search.html」と入力し検索画面を表示します。
- そこで検索をしたい文字列を入力し「search」ボタンを押します。
Highlander†

SH7780 PCI 空間マッピング†
- SH-4 (7751R) の PCI 空間は 16MB の制約があった
- SH-4A (7780) は 16M、64M、512M が条件により使い分けられる
- 16M 空間 と 64M 空間は非連続、従って選択的に使うことになる
- 512M 空間は real 32bit mode アドレス設定時のみ使用できる

SH7724 MS7724 関連†
- 合法ではないと思いますが、下記のサイトにmovie trailerが転がっています。
http://www.movie-list.com/forum/archive/index.php/f-16.html
- ffmpeg/libx264は、動作時に設定ファイルを読み込む機能がありますので、添付の設定ファイル(libx264-shvpu.ffpreset)を適切な場所(/usr/share/ffmpeg)等においてください。
# gzip -d libx264-shvpu.ffpreset.gz
# cp libx264-shvpu.ffpreset /usr/share/ffmpeg/
- ffmpegでビデオストリームだけ変換します。
$ ffmpeg -i _input_file_ -vcodec libx264 -vpre shvpu \
(options) _output_file.mp4
このとき、(options)にビットレートやサイズを変更できます。ビットレート: -b 500000 (500 kbpsの場合、デフォルトは200kbps)サイズ: -s 640x480 (640x480の場合、デフォルトはinputと同じ)
- 作成したファイルはmplayerで再生できます。
$ mplayer _output_file.mp4
- 作成したファイルはmediainfoで設定を確認できます。
$ mediainfo _output_file.mp4
RAMを1Gつむと起動しない件†
- 1GBのRAMでは vmalloc= を指定しないと起動しない件。一度に三か所でひっかかったのを見て、つたない書き物送ります。
- 一般向けの説明として、わかりきったことも書いてあります。
- この現象は、RAMへの単純なマッピングが要求されるいわゆる lowmem 空間と、機種依存のハードウェアにマップされるiotableとが重なることによって発生します。
- 後者は、機種依存部のソースコード上で、仮想と物理の両方のアドレスを明示的に指定してマップを作るので、ぶつけることができてしまいます。
- 残念ながら、チェックや警告はないようです(バージョンによって若干挙動は違うようです)。
- ARMのメモリマップはここ Documentation/arm/memory.txt に説明があります。
- 今の現象をもたらした、カーネルの変更はこれです。v3.2-rc2 ぐらいで入ったようです。
0536bdf ARM: move iotable mappings within the vmalloc region
- これは、機種依存の静的マップを vmalloc 領域の中にもてるようにして、今までは iotable とともに機種依存だったVMALLOC_END を ff000000 に統一するものです。今度は iotableがvmalloc 領域の中にないと問題がでるので、そこはちょっと考えてあって、
コミットのメッセージのとおり、vmalloc領域を広げるという対応とともに導入されています。
> To accommodate all static mappings on machines with possible highmem usage,
> the default vmalloc area size is changed to 240 MB so that VMALLOC_START
> is no higher than 0xf0000000 by default.
- ですが、残念ながら、sh-mobileの iotableはもっと前 0xe6000000 とかにあるので、救済されません。そこ、つまり lowmem の後ろから160MBほどのところに、カーネルはRAMを期待しているのにレジスタがマッピングされている領域がきて、カーネルが誤動作して起動しません。
- 一番簡単な解は vmalloc= を大きめに指定すること。408M 以上なら引っかからないはずです。
- 僕らがこのアドレスにiotableを持つ理由は単に「仮想==物理 だと簡単だ」という事だと理解しています。そもそも iotableは簡単だから使っているのです。
- デフォルトで動かないのは現在多少不便なところではありますが、開発の方向は
- デフォルトを 400MB に変更する議論をするのではなく、
- iotable を後ろに移動するのではなく
- iotable を使わないようにする
というものです。最新のバージョンでは大体この問題は過去のものになっているはず。
- 単にみための問題なら、1 をローカルにやってしまえば隠せます。
lowmemが広くないとだめ、という制約なら、2 もできると思います。iotable を移動するのは
定数を書き換える工数の多い作業ですが、難しくはないし、危険も少ないと思います。
(G4では 物理 e* のレジスタを 仮想 f* にマップしたりしました。そこまで面倒ではない)
/よしい