当前位置: 技术问答>linux和unix
PPP移植问题
来源: 互联网 发布时间:2016-05-07
本文导语: 硬件平台at91rm9200 linux-2.4.19 交差编译器arm-linux-gcc2.95.3 移植PPP版本2.4.1 用arm-linux-gcc2.95.3无法成功编译PPP2.4.1 用arm-linux-gcc3.4.1编译PPP2.4.1,则发现动态库不对 请高手帮忙,急呀! | PPP拨号在ARM2410平台上...
硬件平台at91rm9200
linux-2.4.19
交差编译器arm-linux-gcc2.95.3
移植PPP版本2.4.1
用arm-linux-gcc2.95.3无法成功编译PPP2.4.1
用arm-linux-gcc3.4.1编译PPP2.4.1,则发现动态库不对
请高手帮忙,急呀!
linux-2.4.19
交差编译器arm-linux-gcc2.95.3
移植PPP版本2.4.1
用arm-linux-gcc2.95.3无法成功编译PPP2.4.1
用arm-linux-gcc3.4.1编译PPP2.4.1,则发现动态库不对
请高手帮忙,急呀!
|
PPP拨号在ARM2410平台上的移植
本次PPP移植是在三星arm2410的平台上进行的,所用的工作环境为:
Kernel: 2.4.18
Sysvinit:2.86
Tinylogin:1.4
Glibc: 2.2.5
CC:3.3
PPP: 2.4.1
U-boot:1.1.3
一、具体操作步骤
首先编译内核支持 PPP:
$make menuconfig l
$make ARCH=arm CROSS_COMPILE=/../arm-linux- zImage
$./mkimage2410 uImage
其中mkimage2410文件来自u-boot1.1.1 需要根据你的路径修改mkimage2410的内容,指定mkimage文件的位置。
第二步,制作文件系统:
1. 编译Busybox
$make menuconfig
Build options ---->
[*] Build BusyBox as a static binary (no shared libs)
[*] Do you want to build BusyBox with a Cross Compiler?
(/usr/local/arm/3.3/bin/arm-linux-) Cross Compiler prefix
$make
$make PREFIX=/../rootfs/ install
注意:Busybox的README中说用make busybox 来编译busybox但是这样做好像有点问题,有时不能成功,其实直接用make就行了。
2. 编译System V init
$cd src
$make CROSS=/../arm-linux- PREFIX=/../rootfs/ all
$make PREFIX=/../rootfs install
3. 编译 Tinylogin
$make CROSS=/../arm-linux- PREFIX=/../rootfs/ all
$make PREFIX=/../rootfs install
4.交叉编译 PPP:
$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下得到了可执行程序pppd,pppdump,pppstats 和 chat.
将它们复制到 /../rootfs/usr/sbin 目录下
移到文件系统根目录
#mkdir etc dev
#cd dev
#mknod 600 console 5 1
#mknod ppp c 108 0
#cd ..
配制/etc目录下的文件和文件夹,如: inittab fstab host.conf rc.d以便内核参正确启动文件系统.
最后,从/../3.3/lib目录下选出所需要的库文件放到文件系统根目录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.bin
这样,就得到了我们所需要的uImage 和initrd.bin.将U-boot烧到板子上并设置好环境变量后就能通过tftp下载kernel 和ramdisk到目标板上运行了.
总结:嵌入式linux下应用程序的移植,实际上是一个系统平台转换的过程。最好能先在宿主机(X86)上对程序源文件进行从头到尾的编译、连接,让它首先在宿主机上跑起来。弄清每一个步骤及其工作的具体内容,在向目标板移植的过程中一定要保证交叉编译,其它文件配置和操作步骤跟宿主机上几乎完全一样。
本次PPP移植是在三星arm2410的平台上进行的,所用的工作环境为:
Kernel: 2.4.18
Sysvinit:2.86
Tinylogin:1.4
Glibc: 2.2.5
CC:3.3
PPP: 2.4.1
U-boot:1.1.3
一、具体操作步骤
首先编译内核支持 PPP:
$make menuconfig l
$make ARCH=arm CROSS_COMPILE=/../arm-linux- zImage
$./mkimage2410 uImage
其中mkimage2410文件来自u-boot1.1.1 需要根据你的路径修改mkimage2410的内容,指定mkimage文件的位置。
第二步,制作文件系统:
1. 编译Busybox
$make menuconfig
Build options ---->
[*] Build BusyBox as a static binary (no shared libs)
[*] Do you want to build BusyBox with a Cross Compiler?
(/usr/local/arm/3.3/bin/arm-linux-) Cross Compiler prefix
$make
$make PREFIX=/../rootfs/ install
注意:Busybox的README中说用make busybox 来编译busybox但是这样做好像有点问题,有时不能成功,其实直接用make就行了。
2. 编译System V init
$cd src
$make CROSS=/../arm-linux- PREFIX=/../rootfs/ all
$make PREFIX=/../rootfs install
3. 编译 Tinylogin
$make CROSS=/../arm-linux- PREFIX=/../rootfs/ all
$make PREFIX=/../rootfs install
4.交叉编译 PPP:
$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下得到了可执行程序pppd,pppdump,pppstats 和 chat.
将它们复制到 /../rootfs/usr/sbin 目录下
移到文件系统根目录
#mkdir etc dev
#cd dev
#mknod 600 console 5 1
#mknod ppp c 108 0
#cd ..
配制/etc目录下的文件和文件夹,如: inittab fstab host.conf rc.d以便内核参正确启动文件系统.
最后,从/../3.3/lib目录下选出所需要的库文件放到文件系统根目录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.bin
这样,就得到了我们所需要的uImage 和initrd.bin.将U-boot烧到板子上并设置好环境变量后就能通过tftp下载kernel 和ramdisk到目标板上运行了.
总结:嵌入式linux下应用程序的移植,实际上是一个系统平台转换的过程。最好能先在宿主机(X86)上对程序源文件进行从头到尾的编译、连接,让它首先在宿主机上跑起来。弄清每一个步骤及其工作的具体内容,在向目标板移植的过程中一定要保证交叉编译,其它文件配置和操作步骤跟宿主机上几乎完全一样。
|
更換PPP的版本再試一下
|
建议你看下这个,对你有帮助
http://blog.csdn.net/Gdatasheet/archive/2008/11/25/3371780.aspx
http://blog.csdn.net/Gdatasheet/archive/2008/11/25/3371780.aspx
|
不是好弄的东西。
好久前弄它在板子上上adsl的。
我建议你把学会
1)调试,不可能有人跟你一模一样的问题,你需要自己成长。
2)如果让大家能够很好的帮到你,你必须把你的问题,现象描述清楚。
好久前弄它在板子上上adsl的。
我建议你把学会
1)调试,不可能有人跟你一模一样的问题,你需要自己成长。
2)如果让大家能够很好的帮到你,你必须把你的问题,现象描述清楚。