約 3,235,568 件
https://w.atwiki.jp/fiji/pages/57.html
u-bootのビルド手順の解析 各ソースをオブジェクト化 各オブジェクトから__u_boot_cmd_で始まる関数のシンボルを抽出 リンクしELFバイナリを生成 ELFからRAWバイナリに変換 ld -Bstatic 共有ライブラリをリンクをしない -T commandfile commandfileからリンクコマンドを読み込む -Ttext org textセグメントに対してorgを開始アドレスにする -u sym symを出力ファイルに未定義なシンボルとして挿入する --start-group archives --end-group 指定されたアーカイブに対し未定義参照がなくなるまで検索が行なわれる -Map mapfile mapfileにリンクマップを出力する -o output プログラムの名前をoutputに指定する objcopy --gap-fill=val セクション間のギャップを val で埋める -O srec S-record を生成する -O binary raw バイナリファイルを生成する 需要なファイル /u-boot/board/omap3430sdp/u-boot.lds /u-boot/cpu/omap3/start.S tftpd sudo apt-get install tftpd-hpa sudo vi /etc/default/tftpd-hpa # "no" - "yes" sudo /etc/init.d/tftpd-hpa start sudo chmod ugo+rw /var/lib/tftpboot http //pylone.jp/bishop/docs/u-boot-refman.html#u-boot-refman.ja-3-51
https://w.atwiki.jp/zaurus_squeeze/pages/17.html
解説 u-bootをザウルス向けに変更するにあたりネットで調べたりデバッグ中に分かったことなどを書いておきます。 元のソース SD対応まではpdaXromのソースコードを使っていてu-bootがSDHCに対応後はpdaXromのu-bootソースをマージして開発しました。 SDコントローラの初期化する部分はlinuxカーネルのソースを流用しています。 ザウルスのブートシーケンス ザウルスはP2ROMという1度しか書き換えられないROM(工場出荷時書き換えてあるので既に書換不可)よりブートし、NANDのangelbootloaderを実行、その後カーネル実行の手順でブートします。 詳細はこことかこことかここなど。 u-bootのブートシーケンス 通常u-bootは最初NANDなどのフラッシュデバイスで実行されリンク時決定された先頭アドレス(リンカースクリプトに記述したアドレスでリンクされる)とメモリ上の先頭アドレスを比べて差異があったら自分自身をリンク時決定された先頭アドレスにコピーしそのアドレスにジャンプします。 このようにu-bootは置かれる場所はどこでも構いません。 それなのでカーネルの置かれるNANDのアドレスにu-bootを置いても、 angelbootloaderがカーネル(実際にはu-boot)をカーネルサイズ分メモリにコピー後カーネル(実際にはu-boot)先頭アドレスにジャンプしu-bootはメモリから起動される となり動作します。 SCOOPデバイス カーネルソースを読むとSDに電源を入れるためSCOOPデバイスというものにアクセスしています。 ネットで調べてもこれだと言う情報は見つかりませんでしたがどうやらこのASICのようでSHARPスペシャルデバイスみたいです。 カーネルソースを読んだところではこのデバイスの機能はCFバスバッファ、SD、CF電源への接点出力、ザウルスの電源、メールのLED接点出力などがあるようです。 メモリマップ SDに電源を入れるためSCOOPデバイスにアクセスするとdata abort exceptionが発生、原因分からずNANDのangelbootloaderを逆アセンブルして追っかけてみました。 結局はangelbootloader内でMMU設定していたためSCOOPデバイスのアドレスが不正アドレスとなっていたのが原因でした。 MMU設定アドレスは0xa1ff0000で1レベル方式です。 詳しくはinterface2008年11月号に説明があります。 (サイトで見れる分では不十分で買わないと詳細は分かりませんが...) または改訂 ARMプロセッサ—32ビットRISCのシステム・アーキテクチャ参照 で、u-bootが動いている間のメモリマップは以下の様になります。 (カーネルが動き出すとまた新たにMMUを設定しなおすのでこれとは違ったものになります。) 物理アドレス MMU後アドレス 内容 サイズ 0xA0000000 0x00000000 メモリ 64MB 0x00000000 0x04000000 P2ROM 8MB 0x40000000 0x40000000 ペリフェラルレジスタ 64MB 0x44000000 0x44000000 LCDレジスタ 64MB 0x48000000 0x48000000 メモリコントローラレジスタ 1MB 0x4C000000 0x4C000000 USBホストレジスタ 1MB 0x5C000000 0x5C000000 SRAM 1MB 0xA0000000 0xA0000000 メモリ 64MB 0x20000000 0xB0000000 PC Card/CompactFlash Slot 0 256MB 0x30000000 0xC0000000 PC Card/CompactFlash Slot 1 256MB 0x00000000 0xD0000000 P2ROM 32MB 0x10800000 0xD2000000 SCOOPデバイス 1MB 0x0C000000 0xD4000000 NAND 1MB 0x10000000 0xD6000000 SCOOPデバイス 1MB 0x08800000 0xD8000000 不明 1MB (メモリとP2ROMは2箇所割り当てられていますが、どちらでもアクセスできます。この表はあくまでMMUでアクセスできる範囲を表しているので実際のサイズとは異なるものもあります) u-bootデバッグ方法 CE-170TS(シリアルケーブル)必須です。 このu-bootはシリアル経由でu-bootバイナリをメモリに転送後ジャンプすると暴走します。これはangelbootloaderがメモリコントローラや他のデバイスコントローラのレジスタに設定した値をそのまま流用するためCPUリセットを行っていないためです。NANDフラッシュに書き込まずにメモリに転送してu-bootをデバッグするにはCPUリセットを行うようにしてください。 ソース このソースにこのパッチをあてます。 このu-bootはNANDに書き込みができません。原因が分からず放置状態でした。今MMUメモリマップを見て気がつきましたがもしかしたらNAND書き込みアドレスがMMUで割り当てられていないかもしれないです。
https://w.atwiki.jp/wiki3_jjk/pages/18.html
環境変数は外部変数 char** environ に格納される。 環境変数を列挙するサンプル #include stdio.h extern char** environ; int main() { int i; printf("Content-type text/html\n\n"); for( i=0 ; environ[i] != NULL ; i++ ) printf("%s br \n", environ[i] ); return 0; } 参考: http //www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/environs.html
https://w.atwiki.jp/ityama/pages/17.html
Linux Java/TOMCAT環境変数 ① vi /etc/profile ②末尾に以下追加(例) export JAVA_HOME=/usr/java/jdk1.6.0_17 export PATH=$PATH $JAVA_HOME/bin export CLASSPATH=. $JAVA_HOME/jre/lib $JAVA_HOME/lib $JAVA_HOME/lib/tools.jar export CATALINA_HOME=/usr/local/tomcat export CATALINA_OPTS="-server -Xmx512M -Xms64M" ③反映 source /etc/profile
https://w.atwiki.jp/dai1357/pages/30.html
Oracleの環境変数 ORACLE_BASE OFAに対応した、Oracleディレクトリ構造のベース・ディレクトリを指定。複数のOracleバージョンをインストールする際に、全Oracleソフトウェアを包括するディレクトリを指定。 ORACLE_HOME 各Oracle製品をインストールするディレクトリ ORACLE_SID インスタンス名(作成するOracleデータベースを識別するための名前)を指定。8文字以内、英数字(英字ではじまる) NLS_LANG クライアントに表示する言語、地域情報、文字コードを指定。言語_地域.文字コードの書式。 LD_LIBRARY_PATH 共有ライブラリの検索ディレクトリのリストを指定。UNIXおよびLinuxでのみ使用。 /home/oracle ← ORACLE_BASE /home/oracle/product/9.0.1/ ← バージョン9.0.1のORACLE_HOME /home/oracle/product/10.2.0/ ← バージョン10.2.0のORACLE_HOME
https://w.atwiki.jp/tudlab/pages/18.html
環境変数に関する情報 環境変数を設定するには 環境変数"VAR"を"tmp"と設定する export VAR=tmp ex.環境変数"PAGER"を"less"と設定する export PAGER=less これで、PAGERを実行すると、lessが実行された場合と同じ結果が返る。 環境変数を確認する printenv
https://w.atwiki.jp/aster-infra/pages/113.html
変数をエクスポートすると、定義したシェルから起動したシェルや実行したコマンドから変数の値を参照できるようになります。 これを環境変数といいます。 値の設定 【書式】 export [変数名[=値]] 次の例では、環境変数VAR1と環境変数VAR2を定義しています。 $ VAR1=ubuntu $ export VAR1 $ export VAR2=centos シェル変数と環境変数 $ local=Ubuntu ←変数の設定 $ world=CentOS ←変数の設定 $ export world ←エクスポート $ bash ---------→ $ echo $local ←変数localは未定義 別のbashを起動 $ echo $world CentOS ←変数worldの内容 $ echo $local ←--------- $ exit ←このbashを終了 Ubuntu ←変数の内容は定義されている $ echo $world CentOS ←変数の内容は定義されている シェル変数localと環境変数worldを設定しています。 シェル変数localは新たに起動した別のシェルでは参照できませんが、環境変数worldは参照できます。 新しいシェルで書き換えた値は元のシェルで反映されません。 設定されている環境変数を表示するにはprintenvコマンド 設定されているシェル変数と環境変数を表示するにはsetコマンド
https://w.atwiki.jp/vmlinuz/pages/35.html
Linuxに関するあれこれ TOP linux OS CentOS Server サーバ、デーモン系 apache nginx samba mysql mongodb vsftpd 言語、プログラム系 php perl アプリケーション p7zip セキュリティ SSH システムライブラリ系 pcre curl zlib openssl cmake bison libxml2
https://w.atwiki.jp/aerocats/pages/19.html
/etcとは 別ページ「etcディレクトリとは」参照。 標準Linuxでも基本的に/etcディレクトリの役割は一般的なLinuxと変わりがない。 /etcの構成 実際に標準Linuxではどのような構成となっているか。 ファイルもしくはディレクトリ名 設定内容 BootFlag default/ 起動時に読み込まれる設定ファイル dhcpc/ DHCPクライアントの設定ファイルなどを保存するディレクトリ fan.prof Fandの設定ファイル(冷却ファンの回転数と温度の対応) first_boot fstab Linuxの起動の過程で自動的にマウントするデバイスの定義 group gshadow host.info 玄箱PROのネットワークで使う名前 hosts IPアドレスと名前の対応(一部はLinuxの起動の過程で書き込まれる) inetd.conf inetdの設定ファイル(非常駐型デーモンの起動) init.d/ デーモンの起動と終了の仕組みを保存するディレクトリ inittab Linuxの起動から終了の各段階で実行する処理 issue シリアルに接続した端末機に表示するメッセージ issue.net issueへのシンボリックリンク?。ネットワーク経由で接続した端末機に表示するメッセージ kurobox_release 標準Linuxのバージョン情報 ld.so.cache ld.so.conf 共有ライブラリ?が保存されているディレクトリの定義 localtime mtab /proc/mountsへのシンボリックリンク?。最新のマウントの状況 mtab~ netinfo 玄箱PROのIPアドレス(初期値はDHCPサーバから受け取る設定) nsswitch.conf IPアドレスと名前の対応を参照する場所の優先順位 ntp.conf ntp.conf.sv pam.d/ passwd profile 環境変数の初期値 resolv.conf resolv.conf.sv samba/ Sambaサーバーの設定ファイルなどを保存するディレクトリ services inetdの設定ファイル(ポート番号とサーバーの対応) shadow skel/ syslog.conf syslogdの設定ファイル(ログの種類と保存場所の対応) termcap 端末機の種類とエミュレーションの方法の対応 yp.conf yp.conf.sv ※参考「玄箱PROで遊ぼう!!(71ページ)」(ラトルズ)
https://w.atwiki.jp/chocolate1120/pages/35.html
環境変数の変更の仕方 $ export LANG=c ←表示を英語に変更 変数の種類 PATH, LANG, HOME, HOSTNAME, SHELL, LOGNAME(USER), MAIL, TERM などがある PATH コマンドを実行するプログラムのある場所を示す LANG 使う言語 HOME ホームディレクトリィの絶対パス などがある env 環境変数を確認するコマンド $ echo $LANG ja.JP_eucJP ←用いる言語がja.JP_eucJPだという意味