2009年9月23日水曜日

DELL製ノートパソコンのACアダプタ

常用しているノートパソコンが調子悪い。

調子が悪いというか電源が全く入らない。

本体の故障かとも思ったが、どうもACアダプタ自体が壊れているよう。



純正アダプタ1万円以上、サードパーティでも5000円くらい。

た、高い・・・。

別の機種用のならヤフオクで1000円~2000円くらいでいくつかあるんだけど、コネクタ形状が違ってささらなかったりしたら最悪やし。



色々調べてみるとDELL製ノートパソコン用のACアダプタは数種類しかない??

http://support.ap.dell.com/support/topics/global.aspx/support/dsn/en/document?c=hk&cs=hkbsd1&dl=false&l=zh&s=bsd&docid=358E1DBD3B7F4BCDE040A68F5B2877AE&doclang=en#2



しかもそれぞれPA-12の上位互換があるみたいで、うちのはPA-12対応機種なのでどれ買ってもいけそうな雰囲気。

過電流で劣化するかもしれないんで、一応PA-12で探してみる。

玄箱PROにdebian lennyをインストール

http://miy.dtiblog.com/blog-entry-16.htmlを参考に玄箱PROにDebian lennyをインストール。

lennyから玄箱PROに正式対応したので、何の問題もなくさらっとインストール完了。

カーネルも新しくなりました。



自分用のまとめメモは後日うp予定。

u-boot設定 ブート領域の変更

フラッシュメモリから起動

Marvell>> setenv bootargs_root root=/dev/mtdblock2 rw panic=5
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset);bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot yes
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> boot


HDDから起動

Marvell>> setenv bootargs_root 'root=/dev/sda2 rw panic=5'
Marvell>> setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot no
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> boot

名前解決の優先度 - /etc/nsswitch.conf

名前解決の方法
1. ファイルで名前解決(/etc/hosts)
2. DNSで名前解決(/etc/resolv.conf)
3. どちらを優先するかを/etc/nsswitch.confに記述

2009年9月22日火曜日

L2スイッチとL3スイッチの違い

仕事柄L2スイッチとL3スイッチの違いくらいは分かってるけど、L3スイッチとルータにそんな定義の違いがあったんですね。



リピータハブ
送信先をあるホストが送信したデータを他の端末すべてに送信する。



L2スイッチ
宛先のMACアドレスを見てフレームの転送先ポートを判断する。



L3スイッチ
異なるネットワークを接続し、ルーティングを行う。
ルータも一種のL3スイッチと見ることもできるが、一般にパケット転送をソフトウェアで行うものをルータ、ハードウェアで行うものをL3スイッチと分類する。

ハードウェアで処理しているL3スイッチの方がパケット転送の能力が高いといえる。

しかしL3スイッチにはルータのように特殊なルーティングプロトコルや複雑な処理は実装されていないことが多い。

2009年9月21日月曜日

nvramコマンド(u-bootの設定変更)

玄箱PROでは、ブート領域をフラッシュメモリとHDDで切り替えることができます。

切り替え方法としては

1. シリアルコンソールで接続してu-boot設定を書き換える

2. nvramコマンドでu-boot設定を書き換える

の2種類があります。



nvramコマンドは、フラッシュメモリ上のLinuxに格納されています。

当然HDD領域でブートしている場合でも、以下のようにHDDにコピーすれば使用できます。

# mount /dev/mtdblock2 /mnt/flash
# cp /mnt/flash/usr/local/sbin/nvram /usr/local/sbin
# umount /mnt/flash/


HDD→Flash

# nvram -c set bootargs 'console=ttyS0,115200 root=/dev/sdb1 rootdelay=15 rw panic=5 BOOTVER=1.09'


Flash→HDD

# nvram -c set bootargs 'console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09'

2009年9月20日日曜日

玄箱PROのカーネル再構築(2.6.31)

玄箱PROカーネルを再構築する。

1. 開発環境の準備

# apt-get install gcc make libc6-dev patch libncurses5-dev devio git


2. カーネルソースの入手

Kernel v2.6から最新のカーネルをダウンロードする。



3. カーネルソースの展開

# LANG=c #tar zxvf linux-2.6.31.tar.gz -C /usr/src/



4. カーネルソースのリンク作成

/usr/src/linuxにカーネルソースがあると仮定しているアプリケーションがあるため、以下のようにカーネルソースへのリンクを作成する。

# ln -s /usr/src/linux-2.6.31 /usr/src/linux


5. パッチを当てる

玄箱PROのフラッシュメモリに書き込まれたu-bootでは、パッチを当てないと起動できないらしい。

Kernel 2.6.25以降は玄箱に対応しているようなので、パッチは必要ないかも??

force_match-type.patchを当てる。

# cat force_match-type.patch | patch -p1


6. モジュール設定

組み込むモジュールを選択する。

# make mecuconfig


[File System]
  [DOS/FAT/NT Filesystems]

[Networking supporting]
  [Networking options]
    [TCP/IP Networking]
      [IP: tunneling]
    [Network packet filtering framework (Netfilter) ]
      [Network packet filtering debugging]
        [Advanced netfilter configuration]
        [Core Netfilter Configuration]以下全部
         [IP: Netfilter Configuration]以下全部


7. カーネルのコンパイル

# make uImage #make modules


u-boot用のカーネルイメージを作成するためには、mkImageが必要なので、なければ入手しておく。

玄箱PROのCD-ROMにもソースファイルが収録されている模様。

今回はDebianパッケージでmkImageがあったのでそちらを使用。

# dpkg -i uboot-mkimage_0.4_arm.deb


ライブラリが古いとのエラーが出たので先にtzdatalibc6をインストール。

⇒libc6を2.7-18にしたらmake menuconfigで怒られたので、mkimageのコンパイル後に2.6.31に戻した。