PPP撥號在三星ARM2410平臺上的嫁接
3. 編譯 Tinylogin
$make CROSS=//arm-linux- PREFIX=//rootfs/ all
$make PREFIX=//rootfs install
4.交叉編譯 PPP:
交叉編譯呢,簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。這里需要注意的是所謂 平臺,實際上包含兩個概念:體系結構(Architecture)、操作系統(tǒng)(Operating System)。同一個體系結構可以運行不同的操作系統(tǒng);同樣,同一個操作系統(tǒng)也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平臺實際上是Intel x86體系結構和Linux for x86操作系統(tǒng)的統(tǒng)稱;而x86 WinNT平臺實際上是Intel x86體系結構和Windows NT for x86操作系統(tǒng)的簡稱。
$export CROSS_COMPILE=//arm-linux-
$export CC=//arm-linux-gcc
$make
這樣就在目錄: //ppp-2.4.1/pppd,//ppp-2.4.1/pppdump,//ppp-2.4.1/pppstats and //ppp-2.4.1/chat下得到了可執(zhí)行程序pppd,pppdump,pppstats 和 chat.
將它們復制到 //rootfs/usr/sbin 目錄下
移到文件系統(tǒng)根目錄
#mkdir etc dev
#cd dev
#mknod 600 console 5 1
#mknod ppp c 108 0
#cd
配制/etc目錄下的文件和文件夾,如: inittab fstab host.conf rc.d以便內核參正確啟動文件系統(tǒng)。
最后,從//3.3/lib目錄下選出所需要的庫文件放到文件系統(tǒng)根目錄rootfs/lib下面。
$su
#mkdir tmp/initrd
#dd if=/dev/zero of=images/initrd.img bs=1k count=8192
#/sbin/mke2fs –F –v –m0 images/initrd.img
#mount –o loop images/initrd.img tmp/initrd
#cp –av rootfs/* tmp/initrd
#umount tmp/initrd
#exit
$gzip –9 images/initrd.img > images/initrd.bin
這樣,就得到了我們所需要的uImage 和initrd.bin.將U-boot燒到板子上并設置好環(huán)境變量后就能通過tftp下載kernel 和ramdisk到目標板上運行了。
總結:嵌入式linux下 應用程序的移植,實際上是一個系統(tǒng)平臺轉換的過程。最好能先在宿主機(X86)上對程序源文件進行從頭到尾的編譯、連接,讓它首先在宿主機上跑起來。弄清 每一個步驟及其工作的具體內容,在向目標板移植的過程中一定要保證交叉編譯,其它文件配置和操作步驟跟宿主機上幾乎完全一樣。
評論