技術討論區 > Embedded 討論版
內容 dump: SA@Taipei 五月份主題 - 客制化嵌入式linux(含Muti-Path整合)
布瓜:
剛從台灣科技大學回來,將所聽到的dump出來,如果有不對的請v-ezlinux 兄多多指教: ^ _ ^
使用到套件: iptables, iproute2, snmp(監看是否斷線), cbq|htb, dns, gnugk-2.0.7-linux-x86.tgz(語音影像傳送代理伺服器)
實作embedded linux Lab SOP:
0. 將ip_conntrack_h323 的source code 放到 source 裡
1. shrink source code:
1.1: #make menuconfig ????如何使得看見ip_conntrack_h323的選項
1.2: #make dep
1.3: #make clean
1.4: #make bzImage 1>/dev/null
1.5: #make modules 1>/dev/null
1.6: #make modules_install
2. 確認網卡及h323的module有包含進來
2.1: #modprobe e1000
2.2: #modprobe ip_conntrack_h323
2.3: #modprobe ip_nat_h323
3. 製作initrd ramdisk
3.-2: 查看 /etc/rc.sysinit 去了解需要哪些程式去起始os
#vi /etc/rc.sysinit
3.-1: 使用ldd 查出所需的程式需要哪些 xxx.so檔
#ldd /sbin/iptables
#ldd /sbin/ls
#ldd /sbin/* /bin/* /usr/sbin/* /usr/bin/*
#ldd /usr/bin/perl
#ldd /sbin/lilo ##很重要,一定要include進來
3.0: 將所需的xxx.so 放進folder, 使用 busybox 將之縮小 ???哪個folder
3.1: #gunzip ramdisk.gz
3.2: #mkdir /mnt/loop
3.3: #mount -o loop ramdisk /mnt/loop
3.4: #touch myinitrd
3.5: #dd if=/dev/zero of=myinitrd bs=2048k count=4
3.6: #losetup /dev/loop0 myinitrd
3.7: #mke2fs /dev/loop0
3.8: #mkdir /mnt/initrd
3.9: #mount /dev/loop0 /mnt/initrd
3.10: #cd /mnt/initrd
3.11: #mkdir etc dev lib bin proc new
3.12: #touch linuxrc
3.13: #chmod +x linuxrc
3.14: #mknod /mnt/initrd/dev/console c 5 1
3.15: #mknod /mnt/initrd/dev/null c 1 3
3.16: #mknod /mnt/initrd/dev/hda2 b 3 2
3.17: #mknod /mnt/initrd/dev/tty c 4 0
(資料待補: 可參考/usr/src/linux-2.4/Documentation/ramdisk.txt)
4. 將DOM 可以調jump,插在硬碟插槽:hda (slot 1 master) hdb (slot 1 slave)
5. 建立mount 目錄,將DOM mount上去
5.1: #mkdir /mnt/dom
5.2: #mount /mnt/dom /dev/hdc (假設dom插在slot 2,dom的jump設在master)
6. 將製作好的 kernel image 及ramdisk initrd 檔寫到 dom
7. 更改root目錄在DOM中
7.1: #chroot /mnt/dom ???不確定
8. 更改dom 中的lilo.conf :主要欄位像
8.1: boot=/dev/hdc
8.2: bios=0x81
........
9. 使用lilo將此boot 選項寫進DOM 的super block中
9.1: lilo
醬就大功告成了!!
注意事項:
1.盡量使用uc library來coding,不要用glibrary
2.關於busybox相關資料請上Opensource.lineo.com, 在project list上就有busybox,与busybox相關的有
TinyLogin
uClibc
udhcp
3.疑??
Rpm –qa
Rpm –ql
Mkdir /tmp/testdb
Rpm –initdb –dbpath /tmp/testdb
Rpm –initdb –dbpath /tmp/testdb – Uvh *.rpm ??還是不暸這是要幹嘛的
Ldd /sbin bin /usr/sbin /usr/bin
小徒兒:
蝦米蝦米是DOM?聽都沒聽過耶 > _ <
ericshei:
Disk On Module
Pail:
補遺~
黃先生的 embedded 做法, 是從 secure boot disk 作為起點, 不失為另種好方法; 對於初次接觸 embedded linux 的人來說, 建議先看一下這兩篇文章..
http://www.study-area.org/tips/floppylinux.htm
http://www.study-area.org/tips/floppy-linux.htm
應該可以更清楚的了解到...
linux 開機流程, 以及必要的 Directory tree, 以及它的基本架構.
之後, 如果是以 X86 的系列繼續探討 embedded linux 的話, 可考量採 黃先生的作法, 或是繼續從 floppy linux 往上架構起~
在此架構下, 植入套件的方式有兩種..
一種是 由上而下的瘦身, 一種是由下而上的re-compile
這兩種各有利弊, 請自行實驗後再取捨~~
glibc 與 uclibc 的差異在哪兒, 請洽 google 神~
H323 的套件,黃先生有一份 patch 檔, 若要測試這一部份,
等黃先生有新的 release 或是到 TnLUG 網站抓~
ericshei:
patch檔己經放到tnlug上了,感謝V-ezlinux兄的分享!! ^^
導覽
[0] 文章列表
[#] 下頁
前往完整版本