玄箱PROとかLinuxとか
http://w.atwiki.jp/aerocats/
玄箱PROとかLinuxとか
ja
2013-05-06T22:34:54+09:00
1367847294
-
玄箱PROとは
https://w.atwiki.jp/aerocats/pages/12.html
「玄箱PRO」とは「くろばこプロ」と読み、[[玄人志向>http://www.kuroutoshikou.com/]]というメーカーから販売されている「組込LinuxBOX」というジャンルの製品。
玄箱PROは通称で、玄人志向の正式な商品名は KURO-BOX/PRO。
2007年2月から発売されている。2013年現在は流通在庫のみとなっている。
#ref(kbp.jpg)
&bold(){製品紹介サイトは[[こちら>http://www.kuroutoshikou.com/products/kuro_box_pro/]]。}
Linuxベースで起動する[[NAS]]だが、最初から[[telnet]]接続が可能となっており、ユーザーが個々にハックすることが前提となっているような商品でもある。
また、[[CPU]]に[[ARM]]を採用しており、Linuxを熟知している人たちからすれば適度な難易度がありハック意欲をそそる。
*様々な用途
玄箱PROは、特別な設定も特に必要なく、購入してすぐに[[NAS]]として使用できる(ただし、HDDは別売りなので、未装着の場合の記録先は内蔵フラッシュメモリ)。
また、書籍やネット上で様々な拡張方法が紹介されており、web、ftp、メール、iTunes、DLNA(メディア)などの各種サーバーに仕立てることも可能だ。
あとは現実的にはふさわしくはないだろうが、ARMアーキテクチャー用のプログラム開発に使うこともできる。
とにかく、スペックが低めだが静音で省電力なプラスワンPCとして使用することに優れている。
*扱いやすいHDD装着方法
玄箱PROに装着可能なHDDは[[SATA]]方式で、特別なケーブルやケースも当然不要。
たちまちの拡張を考えていないのならば玄箱PROとHDDを同時に買っていればあとは何もいらない。
HDDの装着もドライバー1本あれば可能であり、電子工作などに不慣れでも購入してすぐに作業できる。
*拡張のためのハードル
純粋に[[NAS]]として使用するのであればLinuxの知識はほぼ不要だが、ひとたび拡張を目指すのであればLinux初心者には恐ろしく高いハードルが待っている。
しかしそれも発売当初、まだ先人たちのハック記録が充実していない頃の状況であり、今現在は初心者でも比較的安心して目的の拡張ができるようになっている。
しかし「シリアルコンソールの半田付け」という点だけは(愚直に行けば)避けては通れない。
----
2013-05-06T22:34:54+09:00
1367847294
-
BusyBox
https://w.atwiki.jp/aerocats/pages/65.html
*BusyBoxとは
BusyBoxは多くの標準的なLinuxユーティリティ(コマンド群)を1つの実行可能プログラムとして実装したもの。
それぞれのコマンドが共有する多くの共通要素をまとめることで、数多くのコマンドを備えながら小さな容量におさえることのできた非常に優れたPOSIX準拠プログラム。
なお、BusyBoxにはランレベルの概念はない。
*BusyBoxの仕組み
BusyBoxが動作する仕組みは比較的簡単で、自分を呼び出した時のプログラム名が動作すべきコマンドだと判断する。
例として「kurobox」という名前でBusyBoxにシンボリックリンクを貼り、PATHの通った場所に置き実行すると、BusyBoxは「kuroboxというコマンドを実行しろ」と命令されたものだと認識する。
main関数のargv[0]が「呼び出したコマンド名」だ。
豊富なコマンド群もほとんどがシンボリックリンクなのでサイズも節約でき、導入も簡単だ。
----
2008-07-02T17:01:58+09:00
1214985718
-
NANDフラッシュ
https://w.atwiki.jp/aerocats/pages/67.html
玄箱PROはHDDを取り付けなくても、内蔵されたフラッシュメモリである程度はNASとして作動する。
しかし、その構造上メモリへの書き込み回数に制限があるのでNANDフラッシュを酷使することは推奨できない。
*構造
STMicroelectronics社のデータシートより。
玄箱PROからストレージとして扱う分には不要な項目もあるが、デバイスそのものの仕組みを知るには有用だと判断して掲載している。
**基本データ
|メーカー|STMicroelectronics|
|製品名|NAND02GW3B2C|
|容量|2Gb(256MB)|
|バス|x8|
|ページサイズ|2048+64バイト|
|ブロックサイズ|128K+4Kバイト|
|メモリ配列|64ページx2048ブロック|
ECC(Error Correct Code)用に各ページに64バイトのOOB(Out Of Band)が含まれている。
OOBの合計は8Mバイトになり、NAND02GW3B2Cの実質容量は264Mバイトとなる。
**信号種別
|信号名|概要|
|Inputs/Outputs(I/O0-I/O7)|選択されたアドレスを入力するか、出力モード時にデータを出力するか、または入力モード時にコマンドかデータを入力するのに使用される。入力はWrite Enableの立ち上がりでラッチされる。デバイスの選択が解除されるか、または出力に障害があるとき、I/O0-I/O7は浮いたままの状態になる。|
|Address Latch Enable(AL)|Command Interfaceのアドレス入力のラッチを有効にする。ALがHighの場合、アドレス入力はWrite Enableの立ち上がりでラッチされる。|
|Command Latch Enable(CL)|Command Interfaceのコマンド入力のラッチを有効にする。CLがHighの場合、コマンド入力はWrite Enableの立ち上がりでラッチされる。|
|Chip Enable(E)|メモリコントロールロジック、入力バッファ、デコーダ、およびセンスアンプを活性化する。EがLowの場合に、デバイスは選択される。EがHighになっても、デバイスは選択されたままで残っていて、待ち受け状態を調べても、デバイスはbusyを示さない。|
|Read Enable(R)|出力モード時にシーケンシャルなデータ出力を制御する。データはRの立ち下がり後に有効となる。また、Rの立ち下がりは内部の列アドレス・カウンタを1つ増加する。|
|Write Enable(W)|Command Interfaceへの入力と、アドレスおよびデータ入力のラッチを制御する。アドレスとデータの両方がWの立ち上がりでラッチされる。電源オン・オフ時、Command Interfaceがコマンドを受け入れる準備が完了するまでに10マイクロ秒の回復時間が必要となる。この間、WをHighに保つことをお勧めする。|
|Write Protect(WP)|求められていない書き込みか消去操作に対してハードウェア保護を与える入力ピン。WPがLowの場合は、デバイスはどんな書き込みや消去操作も受け入れない。電源オン・オフ時、WPをLowに保つことをお勧めする。|
|Ready/Busy(RB)|P/E/Rコントローラーが現在アクティブであるかどうか特定するのに使用することができる開放型ドレイン。RBが、Lowである(読み込み)時は書き込みもしくは消去操作が進行している。操作が完了した時、Ready/BusyはHighになる。開放型ドレイン出力の使用にあたって、いくつかのメモリから単一のプルアップレジスタに接続することもできる。するとLowは、メモリの1つ(または以上)がbusyだと示すようになる。電源オン・オフ時、Command Interfaceがコマンドを受け入れる準備が完了するまでに10マイクロ秒の最小の回復時間が必要となる。この間、RBはLow。|
**モード操作
上記信号種別の相関関係を表にする。
EとRBはモード操作そのものに関係しないので省いた。
|モード操作|E|AL|CL|R|W|WP|I/O0-7|
|コマンド入力|Low|Low|High|High|立ち上がり|X|コマンド|
|アドレス入力|Low|High|Low|High|立ち上がり|X|アドレス|
|データ入力|Low|Low|Low|High|立ち上がり|High|データ入力|
|データ出力|Low|Low|Low|立ち下がり|High|X|データ出力|
**アドレス入力
|バスサイクル|I/O7|I/O6|I/O5|I/O4|I/O3|I/O2|I/O1|I/O0|
|1st|A7|A6|A5|A4|A3|A2|A1|A0|
|2nd|Low|Low|Low|Low|A11|A10|A9|A8|
|3rd|A19|A18|A17|A16|A15|A14|A13|A12|
|4th|A27|A26|A25|A24|A23|A22|A21|A20|
|5th|Low|Low|Low|Low|Low|Low|Low|A28|
8ビットの幅で5回のサイクルを費やすことでアドレスを入力している。
**アドレス定義
|アドレス|定義|
|A0-A11|列アドレス|
|A12-A17|ページアドレス|
|A18-A28|ブロックアドレス|
11ビットで2048ブロックの1ブロックを指定する「ブロックアドレス」、6ビットで64ページの1ページを指定する「ページアドレス」、12ビットで2112バイトの1バイトを指定する「列アドレス」で、256Mバイト中の1バイトを指定している。
*動作
NANDフラッシュメモリの基本動作とは以下のものがある。
+読み書きはページ単位
+消去はブロック単位
+読み込みはシリアル
+ECC(Error Correct Code)格納用にOOB(Out Of Band)を持つ
#image(nand1.jpg)
----
2008-02-28T11:57:07+09:00
1204167427
-
玄箱PROのスペック
https://w.atwiki.jp/aerocats/pages/11.html
玄箱PROのスペックを、ハード・ソフト両面で検証する。
#contents()
*ハードウェア
「KUROBOX/PRO製品仕様書」から抜粋。
**コントロール部
|&bold(){項目}|&bold(){内容}|
|CPU|Marvell 88F5182 (400MHz)|
|メモリ|128MB (32Mbits × 16bits × 2)|
|データストレージ|NOR Flash 256KiB - Buswidth 8bit(u-boot 格納用)|
||NAND Flash 256MiB - Buswidth 8bit(rootfs用)|
|インターフェイス|-|
**ネットワークインターフェイス部
|&bold(){項目}|&bold(){内容}|
|インターフェイス|(10BASE-T) IEEE802.3|
||(100BASE-TX) IEEE802.3u|
||(1000BASE-T) IEEE802.3ab準拠|
|コネクタ形状|RJ-45型8極コネクタ(NICモード)×1|
|結線図||
|伝送路符号化方式|(10BASE-T) マンチェスターコーディング|
||(100BASE-TX) 4B5B + MLT-3|
||(1000BASE-T) 8B1Q4 + PAM5|
|アクセス方式|CSMA/CD|
|伝送速度|(オートセンス、オートMDIX)|
||10Mbps 半二重/全二重|
||100Mbps 半二重/全二重|
||1000Mbps 全二重|
|ケーブル形状|(10BASE-T) カテゴリ3、4、5の2対又は4対UTPケーブル|
||(100BASE-TX) カテゴリ5 2対又は4対UTPケーブル|
||(1000BASE-T) エンハンストカテゴリ5の4対UTPケーブル|
**SATAインターフェイス部
|&bold(){項目}|&bold(){内容}|
|インターフェイス|[[SATA]]1.0準拠|
|データ転送速度|最大転送速度 3Gbps|
**HDD
|&bold(){項目}|&bold(){内容}|
|ユニット|なし(3.5inch [[SATA]] HDD 取り付け可能)|
**USBインターフェイス部
|&bold(){項目}|&bold(){内容}|
|インターフェイス|USB2.0/1.1|
|データ転送速度|480Mbps|
|コネクタ形状|シリーズA リア×2|
**LED部
|&bold(){項目}|&bold(){内容}|
|PowerLED|緑色|
|LINK/ACT LED|緑色(100Mbps接続時),青(1000Mbps接続時)|
|INFORMATION|黄色|
|ERROR|赤色|
**その他I/F
|&bold(){項目}|&bold(){内容}|
|SATA(フロント)|×1(CN1)|
|I2C|×1(CN2)|
|PCI Express ×1|×1(CN5)|
|UART|×1(CN6)|
|GPIO(09、10)|×1(CN7)|
|マイコンポート|×1(SW3)|
*ソフトウェア
主要ソフトウェアバージョン。「KUROBOX/PRO製品仕様書」から抜粋。
|カーネルバージョン|2.6.12.6|
|gccバージョン|3.4.4(CodeSourcery ARM 2005q3-2)|
|glibc|2.3.6|
||但し、インストールされているのは下記のライブラリのみ|
||ld-2.3.6.so|
||libBrokenLocale-2.3.6.so|
||libSegFault.so|
||libanl-2.3.6.so|
||libc-2.3.6.so|
||libcidn-2.3.6.so|
||libcrypt-2.3.6.so|
||libdl-2.3.6.so|
||libm-2.3.6.so|
||libnsl-2.3.6.so|
||libnss_compat-2.3.6.so|
||libnss_dns-2.3.6.so|
||libnss_files-2.3.6.so|
||libnss_hesiod-2.3.6.so|
||libnss_nis-2.3.6.so|
||libnss_nisplus-2.3.6.so|
||libpthread-2.3.6.so|
||libresolv-2.3.6.so|
||librt-2.3.6.so|
||libutil-2.3.6.so|
|[[busybox>BusyBox]]|1.4.1|
||下記appletが有効になっている。|
||・archival utilities|
||ar、buzip2、cpio、gunzip、gzip、rpm2cpio、rpm、tar、uncompress、unlzma、unzip|
||・coreutils|
||basename、cal、cat、catv、chgrp、chmod、chown、chroot、cksum、cmp、comm、cp、cut、date、[[dd>ddコマンド]]、df、diff、dirname、dos2unix、du、echo、env、expr、false、fold、head、hostid、id、install、length、ln、logname、ls、md5sum、mkdir、mkfifo、mknod、mv、nice、nohup、od、printenv、printf、pwd、realpath、rm、rmdir、seq、shalsum、sleep、sort、stat、stty、sum、sync、tail、tee、test、touch、tr、true、tty、uname、uniq、usleep、uudecode、uuencode、watch、wc、who、whoami、yes|
||・console utilities|
||chvt、clear、deallocvt、dumpkmap、loadfont、loadkmap、openvt、reset、resize、setconsole、setlogcons|
||・debian utilities|
||mktemp、pipe_progress、readlink、run_prrts、start_stop_daemon、which|
||・editors|
||awk、ed、patch、sed、vi|
||・finding utilities|
||find、grep、xargs|
||・init utilities|
||init、reboot、halt|
||・login/password management utilities|
||addgroup、delgroup、adduser、deluser、getty、login、passwd、su、sulogin、vlock|
||・ext2 fs progs|
||chattr、fsck、lsattr|
||・linux system utilities|
||dmesg、fbset、fdflush、fdformat、fdisk、freeramdisk、fsck.minix、mkfs.minix|
||・minix filesystem support|
||getopt、exdump、hwclock、ipcrm、ipcs、losetup、mdev、mkswap、more、[[mount>mountコマンド]]、pivot_root、rdate、readprofile、setarch、swaponoff、switch_root、umount|
||・miscellaneous utilities|
||adjtimex、bbconfig、crond、crontab、dc、eject、last、less、hdparm、makedevs、mountpoint、mt、nmeter、raidautorun、readahead、runlevel、rx、strings、setsid、taskset、time、watchdog|
||・networking utilities|
||arp、arping、dnsd、ether-wake、fakeidented、ftpget、ftpput、hostname、httpd、ifconfig、ifupdown、inetd、ipaddr、iplink、iproute、iptunnel、iprule、ipcalc、nameif、nc、netstat、nsloohup、ping、route、telnet、telnetd、tftp、traceroute、vconfig、wget、zcip|
||・process utilities|
||free、fuser、kill、killall、killall5、pidof、ps、renice、bb_sysctl、top、uptime|
||・shells|
||ash|
||・runit utilities|
||chpst、setuidgid、envuidgid、envdir、softlimit|
|mtd-utils|1.00|
|bash|2.05b|
|xfs-progs|2.5.6|
|e2fsprogs|1.27|
|samba|3.0.21c|
|libtermcap|2.0.8|
|libncurses|5.2|
|sl|--|
----
2008-02-08T13:40:42+09:00
1202445642
-
(標準Linux)ルート直下のディレクトリツリー一覧
https://w.atwiki.jp/aerocats/pages/14.html
/以下にあるディレクトリやファイル群を列記する。
*ls -al
[[lsコマンド]]での出力は以下。
/ # ls -al
drwxr-xr-x 18 root root 0 Dec 24 14:28 .
drwxr-xr-x 18 root root 0 Dec 24 14:28 ..
drwxr-xr-x 2 root root 0 Apr 10 2007 bin
drwxr-xr-x 2 root root 0 Jan 17 2007 boot
drwxr-xr-x 3 root root 0 Jun 17 2004 dev
drwxr-xr-x 8 root root 0 Dec 24 14:28 etc
drwxrwxrwx 2 root root 0 Oct 24 1983 home
drwxr-xr-x 2 root root 0 Oct 24 1983 initrd
drwxr-xr-x 4 root root 0 Oct 24 1983 lib
drwxr-xr-x 10 root root 0 Dec 24 14:28 mnt
dr-xr-xr-x 45 root root 0 Jan 1 1970 proc
drwx------ 3 root root 0 Oct 24 1983 root
drwxr-xr-x 2 root root 0 Dec 21 2006 rootfs
drwxr-xr-x 2 root root 0 Apr 10 2007 sbin
drwxr-xr-x 9 root root 0 Jan 1 1970 sys
lrwxrwxrwx 1 root root 12 Dec 24 14:28 tmp -> /mnt/ram/tmp
drwxr-xr-x 8 root root 0 Feb 3 2007 usr
lrwxrwxrwx 1 root root 12 Dec 24 14:28 var -> /mnt/ram/var
drw-r--r-- 3 root root 0 Feb 9 2007 www
/tmpと/varはそれぞれ/mnt/ram/tmpと/mnt/ram/varの[[シンボリックリンク]]となっている模様。
*/直下のディレクトリ
/直下のディレクトリは[[lsコマンド]]で示したが、各役割は次の通り。
|[[bin/>(標準Linux)binディレクトリ]]|一般ユーザー権限で実行できる基本コマンド|
|boot/|Linux起動時に必要なファイル|
|[[dev/>(標準Linux)devディレクトリ]]|デバイス・ファイル|
|[[etc/>(標準Linux)etcディレクトリ]]|原則、システム管理用のファイルの保存先。システムや各種ソフトウェアの設定はこの中のテキストファイルを編集することで実現する|
|home/|ユーザーのホーム・ディレクトリ|
|initrd/||
|lib/|/binや/sbinに置かれた実行ファイルの[[共有ライブラリ]]。lib.so.*など|
|mnt/|[[ファイルシステム]]の一時的なマウントポイント|
|[[proc/>(標準Linux)procディレクトリ]]|カーネルに関わるさまざまな情報を取得できる[[ファイルシステム]]。/procディレクトリ以下にはさまざまなディレクトリ、ファイルがあり、それらファイルを参照することで、[[カーネル]]の情報を見ることができる。/proc[[ファイルシステム]]は、[[カーネル]]情報をファイルとして扱えるようにするもので、ファイルの実体はない。[[カーネル]]が認識したハードウェア情報もここから参照できる。&link_anchor(A){※1}|
|root/|rootユーザーのホーム・ディレクトリ|
|rootfs/||
|[[sbin/>(標準Linux)sbinディレクトリ]]|システム管理用の基本コマンド|
|sys/||
|tmp/|/mnt/ram/tmpの[[シンボリックリンク]]。作業用の一時的なディレクトリ|
|[[usr/>(標準Linux)usrディレクトリ]]|ユーザーが共有する読み出し専用データを置く|
|[[var/>(標準Linux)varディレクトリ]]|/mnt/ram/varの[[シンボリックリンク]]。いくつかの例外を除き、基本的に設定ファイルは存在しない。ユーザーよりもシステムやソフトウェア自身が書き込むファイルが数多くある。中でも/var/logディレクトリ以下に作成されるファイルの内容を定期的にチェックすることは管理者として重要な作業となる|
|www/||
#right(){※引用「日経Linux2007年5月号(58ページ)」(日経BP社)}
*FHS
玄箱PROの標準LinuxはFHSの定めた規格には従っていない。
|FHS3.2|Fedora7|Debian GNU/Linux 4.0|&bold(){玄箱PRO(標準Linux)}|
|bin|bin|bin|[[bin>(標準Linux)binディレクトリ]]|
|boot|boot|boot|boot|
|dev|dev|dev|[[dev>(標準Linux)devディレクトリ]]|
|[[etc>etcディレクトリとは]]|etc|etc|[[etc>(標準Linux)etcディレクトリ]]|
|(home)|home|home|home|
|-|-|initrd|initrd|
|lib|lib|lib|lib|
|-|lost+found|lost+found|-|
|media|media|media|-|
|-|misc|-|-|
|mnt|mnt|mnt|mnt|
|-|net|-|-|
|opt|opt|opt|opt|
|-|proc|proc|proc|
|(root)|root|root|root|
|sbin|sbin|sbin|[[sbin>(標準Linux)sbinディレクトリ]]|
|-|selinux|-|-|
|srv|srv|srv|-|
|-|sys|sys|sys|
|tmp|tmp|tmp|tmp|
|usr|usr|usr|[[usr>(標準Linux)usrディレクトリ]]|
|var|var|var|[[var>(標準Linux)binディレクトリ]]|
#right(){※引用「日経Linux2007年5月号(58ページ)」(日経BP社)}
----
&aname(A,option=nolink){※1}引用:「[[ITmedia エンタープライズ:Linuxハードウェア認識の基礎 (1/3)>http://www.itmedia.co.jp/enterprise/0405/18/epn06.html]]」より
----
2008-02-07T22:32:34+09:00
1202391154
-
玄箱PROのwiki
https://w.atwiki.jp/aerocats/pages/1.html
Linux初心者が玄箱PROで勉強しています。
日々の細かい内容は[[「玄箱Pro、直します。」>http://aerocats.blog100.fc2.com/]]というブログで綴っていますが、ここではブログでは表現の難しい「修正したまとめ」を書きためていこうかと思います。
基本的にはLinux、玄箱PROが中心ですが、WindowsPCでのデュアルブート環境、仮想化等の内容にも触れたいと思っています。
あくまでも備忘録であり、自分自身(もしくは同じような初心者の方)が学習するためのメモです。
>凍結ページはありませんが、&bold(){&color(red){全ページが編集途中}}ですので、間違いを正していただける方、エラー報告していただける方からの編集は大歓迎です。ご自由に編集してください。
#contents()
*玄箱PROのこと
玄箱PROに関するページは以下。
**玄箱PROの概要
玄箱PROの説明。玄箱PROは通称で、玄人志向の正式な商品名は KURO-BOX/PRO。
あわせて採用されているカーネルについても触れる。
-[[玄箱PROとは]]
-[[玄箱PROのスペック]]
***Marvell 88F5182
-CPUとMPU
-ARMとは
***各種メモリ
玄箱PROには2種3品の「メモリ」が搭載されている。
メインメモリとしてDDR2-SDRAM、記憶装置としてフラッシュメモリを搭載している。
特にフラッシュメモリは扱いに様々な制限やルールがあるので注意が必要。
****DDR2メモリ
-DDR2メモリとは
****フラッシュメモリ
-[[フラッシュメモリとは]]
-[[NORフラッシュ]]
-[[NANDフラッシュ]]
***カーネル
OSの核を成すカーネルについて。
Linux全体の理解と玄箱PROでの振舞いを検証する。
-[[カーネルとは]]
-uImage.buffalo
**U-Boot
シリアルコンソールを接続しなければ縁のない(とは言い切れないが)U-Bootという機能について。
LinuxOSとして玄箱PROが起動できるための「玄箱PRO版BIOS」だ。
-U-Bootとは
-環境変数について
-U-Bootでのコマンド
**玄箱PRO固有
玄箱PROには様々な固有コントローラーが搭載されているが、それらを動作させるには汎用的なプログラムではなく、標準Linux(NANDメモリというべきか)にあらかじめインストールされている機能を流用した方がスムーズだ。
そのシステムを検証する。
-シリアルコンソールとは
-[[miconaplコマンド]]
-nvramコマンド
-[[RESETボタン]]
**標準Linux
もっとも基本的で誰もが最初にお世話になるモード。
特別に何かに優れているわけではないが、コンパクトで過不足なくまとまっているがクセのあるMontavistaLinuxを検証する。
-[[(標準Linux)標準Linuxとは]]
***標準Linuxの構造
-[[(標準Linux)起動メッセージ]]
-[[(標準Linux)各種情報]]
-[[(標準Linux)ルート直下のディレクトリツリー一覧]]
--[[(標準Linux)binディレクトリ]]
--[[(標準Linux)sbinディレクトリ]]
--[[(標準Linux)usrディレクトリ]]
--[[(標準Linux)devディレクトリ]]
--[[(標準Linux)procディレクトリ]]
--[[(標準Linux)etcディレクトリ]]
--[[(標準Linux)varディレクトリ]]
-[[(標準Linux)終了メッセージ]]
***標準Linuxを使って各種プログラムを作動
**開発用Linux
新しいプラグラムを導入するなら添付CD-ROMに収められている開発用Linuxを使えばいい。
必ずしも「標準Linux<開発用Linux」ではないところがおそらく楽しくさせるポイントだろう。
-(開発用Linux)開発用Linuxとは
***開発用Linuxの構造
-[[(開発用Linux)起動メッセージ]]
-(開発用Linux)ルート直下のディレクトリツリー一覧
***開発用Linuxを使って各種プログラムを作動
***開発用Linuxへ各種ソースをビルド
-(開発用Linux)lighttpdの導入
**外部との接続設定
-[[外部と接続する仕組み]]
-[[外部と接続する]]
*Linuxのこと
玄箱PRO上でのLinux全般に関するページは以下。
**Linuxとは
書籍やネットでたびたび耳にする「Linux」。
初心者にはなじみの薄い「ルール」や「しきたり」などにも触れつつ検証する。
-Linuxとは
-[[ディストリビューションとは]]
**Linuxの仕組み
-[[ファイルシステム]]
***各ディレクトリの意味
-[[etcディレクトリとは]]
**Debian GNU/Linux 4.0
玄箱PROへの導入ディストリビューション実績は間違いなくNo.1だろう。
そもそもなぜDebianでなければいけないのか、また、Debianにすることでどのような恩恵にあずかれるのかを検証する。
-[[Debianとは]]
-Debian化する理由
-Debian化の方法
***Debianの構造
***Debian特有のコマンド群
-dpkgコマンド
-apt-getコマンド
***Debian環境を整える
****開発環境を万全にする
****日本語環境の構築
-(Debian玄箱PRO)日本語環境とは
-(Debian玄箱PRO)localesの導入
****玄箱PROの時計を合わせる
***Debian玄箱PROで各種プログラムを動かす
****リモートログイン環境の構築
-(Debian玄箱PRO)リモートログインとは
-(Debian玄箱PRO)telnetdの導入
-(Debian玄箱PRO)sshdの導入
****webサーバの構築
-(Debian玄箱PRO)webサーバとは
-(Debian玄箱PRO)apatchの導入
****ftpサーバの構築
-(Debian玄箱PRO)ftpサーバとは
-(Debian玄箱PRO)proftpdの導入
****iTunesサーバの構築
-(Debian玄箱PRO)iTunesサーバとは
-(Debian玄箱PRO)mt-daapdの導入
****DLNAサーバの構築
-(Debian玄箱PRO)DLNAサーバとは
-(Debian玄箱PRO)mediatombの導入
**FedoraCore6
**コマンド
WindowsPCでのGUIに慣れている人たちには敷居の高いコマンドを用いたCUI環境。
そのCUI環境を驚くほど便利に感じることができるのも、優れたコマンド群とそれをCPUに仲介するシェルのおかげだろう。
-シェルとは
-[[コマンドとは]]
-[[BusyBoxとは>BusyBox]]
***コマンド一覧
#list_by_tagsearch(sort2=asc,コマンド,Linux全般)
*シェルスクリプト
-[[シェルスクリプトとは]]
**シェルスクリプト一覧
#list_by_tagsearch(sort2=asc,シェルスクリプト,一覧)
*エラー事例集
-[[(エラー)960BA8C0.img]]
-[[(エラー)disk is already mounted!]]
-[[(エラー)disk is already formatted!]]
-[[(エラー)RESETボタンでの初期化中、INFO LEDが点滅して作業が中断する]]
-[[(エラー)wget: SITE NAME : Unknown host]]
-[[(エラー)Invalid tar magic]]
-(エラー)configure: error: C preprocessor "/lib/cpp" fails sanity check
#hr
2008-02-07T22:31:39+09:00
1202391099
-
(標準Linux)procディレクトリ
https://w.atwiki.jp/aerocats/pages/66.html
*/procとは
*/procの構成
実際に標準Linuxではどのような構成となっているか。
|ファイルもしくはディレクトリ名|設定内容|
|buddyinfo||
|buffalo/||
|bus/||
|cmdline||
|cpu/||
|cpuinfo||
|devices||
|diskstats||
|driver/||
|execdomains||
|filesystems||
|fs/||
|interrupts||
|iomem||
|ioports||
|kallsyms||
|kmsg||
|loadavg||
|locks||
|mdstat||
|meminfo||
|misc||
|modules||
|mounts|self/mountsのシンボリックリンク|
|mtd||
|mv_xor||
|net/||
|partitions||
|resource_dump||
|scsi/||
|self|1405のシンボリックリンク|
|slabinfo||
|stat||
|swaps||
|sys/||
|sysvipc/||
|tty/||
|uptime||
|version||
|vmstat||
----
2008-02-07T22:23:48+09:00
1202390628
-
(標準Linux)起動メッセージ
https://w.atwiki.jp/aerocats/pages/15.html
#contents()
*起動メッセージ
Orion1 CPU = Low
=== KURO U-Boot. ===
** LOADER **
** KUROBOX BOARD: KURO_BOX LE (CFG_ENV_ADDR=fffff000)
U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
NAND: 256 MB
Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 500Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz
USB 0: host mode
USB 1: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net: egiga0 [PRIME]
Using 88E1118 phy
Found boot image
hit any key to switch tftp boot.
Hit any key to stop autoboot: 2 1 0
<<system_bootend>>
Hit any key to stop autoboot: 3 2 1 0
Loading from device 0: <NULL> at 0xfa000000 (offset 0x20000)
Image Name: Linux-2.6.12.6-arm1
Created: 2007-04-10 13:45:13 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1736548 Bytes = 1.7 MB
Load Address: 00008000
Entry Point: 00008000
<<stop_sound>>
## Booting image at 00100000 ...
Image Name: Linux-2.6.12.6-arm1
Created: 2007-04-10 13:45:13 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1736548 Bytes = 1.7 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
Starting kernel ...
arg:console=ttyS0,115200 root=/dev/mtdblock2 rw panic=5 BOOTVER=1.09
CONFIG_KUROBOX_PLATFORM CONFIG_KUROBOX_KUROBOX ---
Uncompressing Linux................................................................................................................. done, booting the kernel.
Linux version 2.6.12.6-arm1 (root@dev-hara) (gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-2)) #27 Tue Apr 10 22:47:16 JST 2007
CPU: ARM926EJ-Sid(wb) [41069260] revision 0 (ARMv5TEJ)
CPU0: D VIVT write-back cache
CPU0: I cache: 32768 bytes, associativity 1, 32 byte lines, 1024 sets
CPU0: D cache: 32768 bytes, associativity 1, 32 byte lines, 1024 sets
Machine: MV-88fxx81
Using UBoot passing parameters structure
Sys Clk = 250000000, Tclk = 166664740
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 rw panic=5 BOOTVER=1.09
PID hash table entries: 1024 (order: 10, 16384 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 128MB 0MB 0MB 0MB = 128MB total
Memory: 126208KB available (3037K code, 426K data, 112K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
serial_initialize_ttyS1 (Debug): ttyS1 is initialized.
config_device_cs Error : Unknown board
CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size 128MB
SDRAM_CS1 ....disable
SDRAM_CS2 ....disable
SDRAM_CS3 ....disable
PEX0_MEM ....base e0000000, size 128MB
PEX0_IO ....base f2000000, size 1MB
PCI0_MEM ....base e8000000, size 128MB
PCI0_IO ....base f2100000, size 1MB
INTER_REGS ....base f1000000, size 1MB
DEVICE_CS0 ....base fa000000, size 2MB
DEVICE_CS1 ....base f4000000, size 32MB
DEVICE_CS2 ....base fa800000, size 1MB
DEV_BOOCS ....base ff800000, size 8MB
CRYPTO ENG ....no such
Flash bankwidth 1, base ff800000, size 400000
KUROBOX FLASH size 4096[KB]
Marvell Development Board (LSP Version 1.10.3.patch5_DB_NAS)-- KUROBOX_BOARD_KUROBOX Soc: 88F5182 A2
Detected Tclk 166664740 and SysClk 250000000
Marvell USB EHCI Host controller #0: c04e4b00
Marvell USB EHCI Host controller #1: c04e4a40
pexBarOverlapDetect: winNum 2 overlap current 0
mvPexInit:Warning :Bar 2 size is illigal
it will be disabled
please check Pex and CPU windows configuration
PCI: bus0: Fast back to back transfers enabled
PCI: bus1: Fast back to back transfers enabled
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Use the XOR engines (offloading) for enhancing the following functions:
o RAID 5 Xor calculation
o kernel memcpy
o kenrel memzero
o copy user to/from kernel buffers
Number of XOR engines to use: 2
cesadev_init(c00122e4)
Fast Floating Point Emulator V0.9 (c) Peter Teichmann.
inotify device minor=63
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
SGI XFS with no debug enabled
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
ttyS0 at MMIO 0x0 (irq = 3) is a 16550A
ttyS1 at MMIO 0x0 (irq = 4) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 3 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
Marvell Gigabit Ethernet Driver 'egiga':
o Ethernet descriptors in DRAM
o DRAM SW cache-coherency
o Checksum offload enabled
o Loading network interface ** egiga_init_module (10)
'eth0'
Intergrated Sata device found
scsi0 : Marvell SCSI to SATA adapter
scsi1 : Marvell SCSI to SATA adapter
Vendor: Seagate Model: ST380815AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 03
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
SCSI device sda: drive cache: write back
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
SCSI device sda: drive cache: write back
sda: unknown partition table
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
physmap flash device: 400000 at ff800000
Found: SST 39LF020
phys_mapped_flash: Found 1 x8 devices at 0x0 in 8-bit bank
number of JEDEC chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Debug nand_scan : nand_flash_ids[i].pagesize is exist
Debug nand_scan : mtd->erasesize=0x00020000
Debug nand_scan : mtd->oobblock=0x00000800
Debug nand_scan : mtd->oobsize=0x00000040
NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Using static partition definition
Creating 3 MTD partitions on "nand_mtd":
0x00000000-0x00400000 : "uImage"
0x00400000-0x04400000 : "rootfs"
0x04400000-0x10000000 : "extra"
usbmon: debugs is not available
ehci_platform ehci_platform.4523: EHCI Host Controller
ehci_platform ehci_platform.4523: new USB bus registered, assigned bus number 1
ehci_platform ehci_platform.4523: irq 17, io mem 0x00000000
ehci_platform ehci_platform.4523: park 0
ehci_platform ehci_platform.4523: USB 0.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ehci_platform ehci_platform.16781: EHCI Host Controller
ehci_platform ehci_platform.16781: new USB bus registered, assigned bus number 2
ehci_platform ehci_platform.16781: irq 12, io mem 0x00000000
ehci_platform ehci_platform.16781: park 0
ehci_platform ehci_platform.16781: USB 0.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
USB Universal Host Controller Interface driver v2.2
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.01:USB HID core driver
mice: PS/2 mouse device common for all mice
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: measuring checksumming speed
arm4regs : 304.000 MB/sec
8regs : 215.200 MB/sec
32regs : 249.200 MB/sec
raid5: using function: arm4regs (304.000 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
Buffalo Platform Linux Driver(Light) 0.01 installed.
MICON ctrl (C) BUFFALO INC. V.1.00 installed.
Kernel event proc (C) BUFFALO INC. V.1.00 installed.
MICON V2 (C) BUFFALO INC. V.1.00 installed.
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
NET: Registered protocol family 1
NET: Registered protocol family 17
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
Empty flash at 0x00df85f8 ends at 0x00df8800
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 112K
--- rcStart (NANDroot) ---
===== Starting MountSystemFolders =====
mounting procfs ... [Success]
mounting sysfs ... [Success]
mouting usbfs ... [Success]
remouting rootfs ... [Success]
mounting all devices ... [Success]
===== Starting checkroot.sh =====
rm: /var/lock/perfmon: is a directory
rm: /var/lock/printing: is a directory
rm: /var/lock/subsys: is a directory
[Success]
===== Starting Kevent.sh =====
[Success]
&bold(){HDD未フォーマットの場合}
===== Starting mount_share.sh =====
Mounting /dev/sda on /mnt/disk1 as a xfs file system.
XFS: bad magic number
XFS: SB validate failed
mount: Mounting /dev/sda on /mnt/disk1 failed: Invalid argument
Failed.
Mounting /dev/sda on /mnt/disk1 as a ext3 file system.
mount: Mounting /dev/sda on /mnt/disk1 failed: Invalid argument
Failed.
Mounting /dev/mtd3 on /mnt/mtd as a jffs2 file system.
Success.
[Success]
&bold(){HDDをフォーマットしている場合}
===== Starting mount_share.sh =====
Mounting /dev/sda1 on /mnt/disk1 as a xfs file system.
XFS mounting filesystem sda1
Starting XFS recovery on filesystem: sda1 (dev: sda1)
Ending XFS recovery on filesystem: sda1 (dev: sda1)
Success.
Mounting /dev/mtd3 on /mnt/mtd as a jffs2 file system.
Success.
[Success]
===== Starting sethostname.sh =====
hostname is setted to KUROBOX-PRO
[Success]
&bold(){LANに未接続の場合}
===== Starting networking.sh =====
create network files..
IP=[dhcp], netmask=[], dgw=[], dns1=[], dns2=[]
killall: dhcpcd: no process killed
route: SIOC[ADD|DEL]RT: No such process
Configuration network interface: lo eth0
requesting DHCP tout=30[s]
** dhcp fail
** setting default ip
route: SIOC[ADD|DEL]RT: No such process
/etc/dhcpc/dhcpcd.exe ::: down
dhcpcd.exe: interface eth0 has been brought down
add default if
hostname is setted to KUROBOX-PRO
[Success]
&bold(){LANに接続されている場合}
===== Starting networking.sh =====
create network files..
IP=[dhcp], netmask=[], dgw=[], dns1=[], dns2=[]
killall: dhcpcd: no process killed
route: SIOC[ADD|DEL]RT: No such process
Configuration network interface: lo eth0
requesting DHCP tout=30[s]
eth0: link down
eth0: link up<5>, full duplex<5>, speed 100 Mbps<5>
/etc/dhcpc/dhcpcd.exe ::: /etc/dhcpc/dhcpcd-eth0.info up
dhcpcd.exe: interface eth0 has been configured with old IP=192.168.1.9
hostname is setted to KUROBOX-PRO
[Success]
===== Starting httpd.sh =====
[Success]
===== Starting telnet.sh =====
[Success]
===== Starting inetd.sh =====
[Success]
===== Starting smb.sh =====
$Starting SMB services:
$Starting NMB services:
[Success]
===== Starting clientUtil_servd.sh =====
Starting clientUtil_server:starting on eth0
[Success]
===== Starting bootcomplete.sh =====
[Success]
===== Starting FanController.sh =====
[Success]
===== Starting boss.sh =====
(サングラス男AA)
[Success]
KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
KUROBOX-PRO login:
*メッセージを読む
**電源ON
玄箱PROの電源を入れると、まずCPUのプログラムカウンタにU-Bootのメモリアドレスが設定されU-Bootが実行される。
Orion1 CPU = Low
=== KURO U-Boot. ===
** LOADER **
** KUROBOX BOARD: KURO_BOX LE (CFG_ENV_ADDR=fffff000)
U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY
**周辺装置の初期化
U-Bootによる低レベルでの初期化を行い、カーネルイメージを見つける。
PCで言うBIOSのような働きをする。
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
NAND: 256 MB
Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 500Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz
USB 0: host mode
USB 1: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net: egiga0 [PRIME]
Using 88E1118 phy
Found boot image
hit any key to switch tftp boot.
Hit any key to stop autoboot: 2 1 0
<<system_bootend>>
Hit any key to stop autoboot: 3 2 1 0
**メインメモリ上にカーネルを読み込む
見つけたカーネルイメージをメインメモリへ読み込む。
PCで言うブートローダーの働きをする。
NANDフラッシュの0x20000番地(mtd1の128k以降)からロードする。
Loading from device 0: <NULL> at 0xfa000000 (offset 0x20000)
Image Name: Linux-2.6.12.6-arm1
Created: 2007-04-10 13:45:13 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1736548 Bytes = 1.7 MB
Load Address: 00008000
Entry Point: 00008000
<<stop_sound>>
カーネルイメージをメインメモリの0x00100000番地へロード。
## Booting image at 00100000 ...
Image Name: Linux-2.6.12.6-arm1
Created: 2007-04-10 13:45:13 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1736548 Bytes = 1.7 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
**カーネルの起動
読み込んだカーネルを実行する。
この時点でU-Bootからカーネルに制御が移される。
Starting kernel ...
arg:console=ttyS0,115200 root=/dev/mtdblock2 rw panic=5 BOOTVER=1.09
CONFIG_KUROBOX_PLATFORM CONFIG_KUROBOX_KUROBOX ---
カーネルが圧縮された自身の展開。
Uncompressing Linux................................................................................................................. done, booting the kernel.
カーネルの起動。
Linux version 2.6.12.6-arm1 (root@dev-hara) (gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-2)) #27 Tue Apr 10 22:47:16 JST 2007
CPU: ARM926EJ-Sid(wb) [41069260] revision 0 (ARMv5TEJ)
CPU0: D VIVT write-back cache
CPU0: I cache: 32768 bytes, associativity 1, 32 byte lines, 1024 sets
CPU0: D cache: 32768 bytes, associativity 1, 32 byte lines, 1024 sets
Machine: MV-88fxx81
Using UBoot passing parameters structure
Sys Clk = 250000000, Tclk = 166664740
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 rw panic=5 BOOTVER=1.09
PID hash table entries: 1024 (order: 10, 16384 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 128MB 0MB 0MB 0MB = 128MB total
Memory: 126208KB available (3037K code, 426K data, 112K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
serial_initialize_ttyS1 (Debug): ttyS1 is initialized.
config_device_cs Error : Unknown board
CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size 128MB
SDRAM_CS1 ....disable
SDRAM_CS2 ....disable
SDRAM_CS3 ....disable
PEX0_MEM ....base e0000000, size 128MB
PEX0_IO ....base f2000000, size 1MB
PCI0_MEM ....base e8000000, size 128MB
PCI0_IO ....base f2100000, size 1MB
INTER_REGS ....base f1000000, size 1MB
DEVICE_CS0 ....base fa000000, size 2MB
DEVICE_CS1 ....base f4000000, size 32MB
DEVICE_CS2 ....base fa800000, size 1MB
DEV_BOOCS ....base ff800000, size 8MB
CRYPTO ENG ....no such
Flash bankwidth 1, base ff800000, size 400000
KUROBOX FLASH size 4096[KB]
Marvell Development Board (LSP Version 1.10.3.patch5_DB_NAS)-- KUROBOX_BOARD_KUROBOX Soc: 88F5182 A2
Detected Tclk 166664740 and SysClk 250000000
Marvell USB EHCI Host controller #0: c04e4b00
Marvell USB EHCI Host controller #1: c04e4a40
pexBarOverlapDetect: winNum 2 overlap current 0
mvPexInit:Warning :Bar 2 size is illigal
it will be disabled
please check Pex and CPU windows configuration
PCI: bus0: Fast back to back transfers enabled
PCI: bus1: Fast back to back transfers enabled
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Use the XOR engines (offloading) for enhancing the following functions:
o RAID 5 Xor calculation
o kernel memcpy
o kenrel memzero
o copy user to/from kernel buffers
Number of XOR engines to use: 2
cesadev_init(c00122e4)
Fast Floating Point Emulator V0.9 (c) Peter Teichmann.
inotify device minor=63
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
SGI XFS with no debug enabled
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
ttyS0 at MMIO 0x0 (irq = 3) is a 16550A
ttyS1 at MMIO 0x0 (irq = 4) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 3 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
Marvell Gigabit Ethernet Driver 'egiga':
o Ethernet descriptors in DRAM
o DRAM SW cache-coherency
o Checksum offload enabled
o Loading network interface ** egiga_init_module (10)
'eth0'
***SATAデバイスドライバの読み込み
Intergrated Sata device found
scsi0 : Marvell SCSI to SATA adapter
scsi1 : Marvell SCSI to SATA adapter
Vendor: Seagate Model: ST380815AS Rev: 3.AA
Type: Direct-Access ANSI SCSI revision: 03
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
SCSI device sda: drive cache: write back
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
SCSI device sda: drive cache: write back
sda: unknown partition table
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
***NORフラッシュ
physmap flash device: 400000 at ff800000
Found: SST 39LF020
phys_mapped_flash: Found 1 x8 devices at 0x0 in 8-bit bank
number of JEDEC chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
***NANDフラッシュ
Debug nand_scan : nand_flash_ids[i].pagesize is exist
Debug nand_scan : mtd->erasesize=0x00020000
erasesizeとはNANDフラッシュの内容を消去する単位の大きさであり、それが0x00020000、つまり128KBだとなっている。
消去はブロック単位で行われるため、1ブロック128KBだということになる。
Debug nand_scan : mtd->oobblock=0x00000800
OOBとはOut Of Bandの略で、ECCと呼ばれるエラー訂正コードを格納する領域を意味する。
16進数で00000800は10進数で2048を意味し、これはOOBのブロック数を指している。
Debug nand_scan : mtd->oobsize=0x00000040
OOBのサイズが00000040だと意味する。
10進数で64となり、OOBのサイズは64バイトだとわかる。
NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Using static partition definition
Creating 3 MTD partitions on "nand_mtd":
0x00000000-0x00400000 : "uImage"
0x00400000-0x04400000 : "rootfs"
0x04400000-0x10000000 : "extra"
***USB
usbmon: debugs is not available
ehci_platform ehci_platform.4523: EHCI Host Controller
ehci_platform ehci_platform.4523: new USB bus registered, assigned bus number 1
ehci_platform ehci_platform.4523: irq 17, io mem 0x00000000
ehci_platform ehci_platform.4523: park 0
ehci_platform ehci_platform.4523: USB 0.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ehci_platform ehci_platform.16781: EHCI Host Controller
ehci_platform ehci_platform.16781: new USB bus registered, assigned bus number 2
ehci_platform ehci_platform.16781: irq 12, io mem 0x00000000
ehci_platform ehci_platform.16781: park 0
ehci_platform ehci_platform.16781: USB 0.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
USB Universal Host Controller Interface driver v2.2
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.01:USB HID core driver
mice: PS/2 mouse device common for all mice
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: measuring checksumming speed
arm4regs : 304.000 MB/sec
8regs : 215.200 MB/sec
32regs : 249.200 MB/sec
raid5: using function: arm4regs (304.000 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
Buffalo Platform Linux Driver(Light) 0.01 installed.
MICON ctrl (C) BUFFALO INC. V.1.00 installed.
Kernel event proc (C) BUFFALO INC. V.1.00 installed.
MICON V2 (C) BUFFALO INC. V.1.00 installed.
***ネットワーク
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
NET: Registered protocol family 1
NET: Registered protocol family 17
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
Empty flash at 0x00df85f8 ends at 0x00df8800
**rootfsのマウント
ルートファイルシステムのマウント。
bootargs_rootで設定されたデバイスがマウントされている。
VFS: Mounted root (jffs2 filesystem).
initで使用したメモリの解放。
Freeing init memory: 112K
**ルートファイルシステムによる初期化
/etc/init.d/[[rcS]]の実行。
ここからは実際にマウントされたルートファイルシステムによるシステムの初期化。
--- rcStart (NANDroot) ---
***MountSystemFolders関数
/etc/init.d/[[rcS]]内のMountSystemFolders関数の実行。
===== Starting MountSystemFolders =====
mounting procfs ... [Success]
mounting sysfs ... [Success]
mouting usbfs ... [Success]
remouting rootfs ... [Success]
mounting all devices ... [Success]
***checkroot.sh
/etc/init.d/checkroot.shの実行。
===== Starting checkroot.sh =====
rm: /var/lock/perfmon: is a directory
rm: /var/lock/printing: is a directory
rm: /var/lock/subsys: is a directory
[Success]
***Kevent.sh
/etc/init.d/[[Kevent.sh]]の実行。
===== Starting Kevent.sh =====
[Success]
***mount_share.sh
/etc/init.d/mount_share.shの実行。
&bold(){HDDが未フォーマットの場合}
===== Starting mount_share.sh =====
Mounting /dev/sda on /mnt/disk1 as a xfs file system.
XFS: bad magic number
XFS: SB validate failed
mount: Mounting /dev/sda on /mnt/disk1 failed: Invalid argument
Failed.
Mounting /dev/sda on /mnt/disk1 as a ext3 file system.
mount: Mounting /dev/sda on /mnt/disk1 failed: Invalid argument
Failed.
Mounting /dev/mtd3 on /mnt/mtd as a jffs2 file system.
Success.
[Success]
&bold(){HDDがフォーマット済みの場合}
===== Starting mount_share.sh =====
Mounting /dev/sda1 on /mnt/disk1 as a xfs file system.
XFS mounting filesystem sda1
Starting XFS recovery on filesystem: sda1 (dev: sda1)
Ending XFS recovery on filesystem: sda1 (dev: sda1)
Success.
Mounting /dev/mtd3 on /mnt/mtd as a jffs2 file system.
Success.
[Success]
***sethostname.sh
/etc/init.d/[[sethostname.sh]]の実行。
===== Starting sethostname.sh =====
hostname is setted to KUROBOX-PRO
[Success]
***networking.sh
/etc/init.d/[[networking.sh]]の実行。
&bold(){LANに未接続の場合}
===== Starting networking.sh =====
create network files..
IP=[dhcp], netmask=[], dgw=[], dns1=[], dns2=[]
killall: dhcpcd: no process killed
route: SIOC[ADD|DEL]RT: No such process
Configuration network interface: lo eth0
requesting DHCP tout=30[s]
** dhcp fail
** setting default ip
route: SIOC[ADD|DEL]RT: No such process
/etc/dhcpc/dhcpcd.exe ::: down
dhcpcd.exe: interface eth0 has been brought down
add default if
hostname is setted to KUROBOX-PRO
[Success]
&bold(){LANに接続済みの場合}
===== Starting networking.sh =====
create network files..
IP=[dhcp], netmask=[], dgw=[], dns1=[], dns2=[]
killall: dhcpcd: no process killed
route: SIOC[ADD|DEL]RT: No such process
Configuration network interface: lo eth0
requesting DHCP tout=30[s]
eth0: link down
eth0: link up<5>, full duplex<5>, speed 100 Mbps<5>
/etc/dhcpc/dhcpcd.exe ::: /etc/dhcpc/dhcpcd-eth0.info up
dhcpcd.exe: interface eth0 has been configured with old IP=192.168.1.9
hostname is setted to KUROBOX-PRO
[Success]
***httpd.sh
/etc/init.d/[[httpd.sh]]の実行。
===== Starting httpd.sh =====
[Success]
***telnet.sh
/etc/init.d/[[telnet.sh]]の実行。
===== Starting telnet.sh =====
[Success]
***inetd.sh
/etc/init.d/[[inetd.sh]]の実行。
===== Starting inetd.sh =====
[Success]
***smb.sh
/etc/init.d/[[smb.sh]]の実行。
===== Starting smb.sh =====
$Starting SMB services:
$Starting NMB services:
[Success]
***clientUtil_servd.sh
/etc/init.d/[[clientUtil_servd.sh]]の実行。
===== Starting clientUtil_servd.sh =====
Starting clientUtil_server:starting on eth0
[Success]
***bootcomplete.sh
/etc/init.d/[[bootcomplete.sh]]の実行。
===== Starting bootcomplete.sh =====
[Success]
***FanController.sh
/etc/init.d/[[FanController.sh]]の実行。
===== Starting FanController.sh =====
[Success]
***boss.sh
/etc/init.d/[[boss.sh]]の実行。
===== Starting boss.sh =====
(サングラス男AA)
[Success]
KUROUTOSHIKOU KUROBOX Series KUROBOX/PRO(KOSHO)
KUROBOX-PRO login:
----
2008-02-05T08:55:22+09:00
1202169322
-
(標準Linux)標準Linuxとは
https://w.atwiki.jp/aerocats/pages/20.html
玄箱PRO関連で「標準Linux」と言った場合、特に指定がないかぎりは工場出荷状態のままの状態を指す。
MontaVista Linuxという組み込みに特化したディストリビューションを採用している。
**標準Linuxの特長
玄箱PROの標準Linuxに見られるいくつかの特長とは
+NANDフラッシュ領域で作動し、HDD未装着でも問題はない。
+[[samba]]、[[swat]]、[[httpd]]、telnetdなどがインストールされている。
+gccなどの開発環境は整っていない。
+miconapl、nvramなどのBuffalo独自ソフトがインストールされている。
+BusyBoxのinitのためランレベルの概念はない。
などがある。
ハックを目的とせずNASとして使用する限り、この標準Linuxのままで支障はないが、何らかのビルドを必要とした場合、附属CD-ROMに収められた開発用LinuxをHDDに展開する必要がある。
**標準Linuxのメリット
HDDに依存しない動作のため、省電力で静音性の高い環境で作業ができる。
HDD未装着であれば、背面のファンを数えず「ゼロスピンドル」を実現している。
**標準Linuxのデメリット
現実にHDD未装着では大したことはなにもできない。
なおかつ、書き換え回数に制限(セクターあたり約10万回)のあるフラッシュメモリを頻繁に使用する、という点も好ましくない。
開発環境がないため、簡単なビルドにすら事欠く。
----
2008-02-03T14:15:03+09:00
1202015703
-
(標準Linux)sbinディレクトリ
https://w.atwiki.jp/aerocats/pages/62.html
*/sbinとは
*/sbinの構成
実際に標準Linuxの/sbinがどのようになっているのかを見てみる。
|コマンド|備考|説明|
|adjtimex|[[BusyBox]]のシンボリックリンク||
|depmod|||
|dhcpcd|||
|e2fsck|fsck.ext2のシンボリックリンク||
|fdisk|[[BusyBox]]のシンボリックリンク||
|freeramdisk|[[BusyBox]]のシンボリックリンク||
|fsck|[[BusyBox]]のシンボリックリンク||
|fsck.ext2|||
|fsck.ext3|fsck.ext2のシンボリックリンク||
|fsck.minix|[[BusyBox]]のシンボリックリンク||
|getty|[[BusyBox]]のシンボリックリンク||
|halt|[[BusyBox]]のシンボリックリンク||
|hdparm|[[BusyBox]]のシンボリックリンク||
|hwclock|[[BusyBox]]のシンボリックリンク||
|ifconfig|[[BusyBox]]のシンボリックリンク||
|ifdown|[[BusyBox]]のシンボリックリンク||
|ifup|[[BusyBox]]のシンボリックリンク||
|init|[[BusyBox]]のシンボリックリンク||
|insmod|[[BusyBox]]のシンボリックリンク||
|klogd|[[BusyBox]]のシンボリックリンク||
|ldconfig|||
|loadkmap|[[BusyBox]]のシンボリックリンク||
|logread|[[BusyBox]]のシンボリックリンク||
|losetup|[[BusyBox]]のシンボリックリンク||
|lsmod|[[BusyBox]]のシンボリックリンク||
|makedevs|[[BusyBox]]のシンボリックリンク||
|mdev|[[BusyBox]]のシンボリックリンク||
|mke2fs|mkfs.ext2のシンボリックリンク||
|mkfs.ext2|||
|mkfs.ext3|mkfs.ext2のシンボリックリンク||
|mkfs.minix|[[BusyBox]]のシンボリックリンク||
|mkswap|[[BusyBox]]のシンボリックリンク||
|modinfo|||
|modprobe|[[BusyBox]]のシンボリックリンク||
|nameif|[[BusyBox]]のシンボリックリンク||
|pivot_root|[[BusyBox]]のシンボリックリンク||
|poweroff|[[BusyBox]]のシンボリックリンク||
|reboot|[[BusyBox]]のシンボリックリンク||
|rmmod|[[BusyBox]]のシンボリックリンク||
|route|[[BusyBox]]のシンボリックリンク||
|runlevel|[[BusyBox]]のシンボリックリンク||
|setconsole|[[BusyBox]]のシンボリックリンク||
|shutdown|||
|start-stop-daemon|[[BusyBox]]のシンボリックリンク||
|sulogin|[[BusyBox]]のシンボリックリンク||
|swapoff|[[BusyBox]]のシンボリックリンク||
|swapon|[[BusyBox]]のシンボリックリンク||
|switch_root|[[BusyBox]]のシンボリックリンク||
|sysctl|[[BusyBox]]のシンボリックリンク||
|syslogd|[[BusyBox]]のシンボリックリンク||
|tune2fs|||
|vconfig|[[BusyBox]]のシンボリックリンク||
|watchdog|[[BusyBox]]のシンボリックリンク||
|zcip|[[BusyBox]]のシンボリックリンク||
----
2008-02-03T06:53:14+09:00
1201989194