技術討論區 > Embedded 討論版

內容 dump: SA@Taipei 五月份主題 - 客制化嵌入式linux(含Muti-Path整合)

(1/2) > >>

布瓜:
剛從台灣科技大學回來,將所聽到的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] 文章列表

[#] 下頁

前往完整版本