Chinaunix首页 | 论坛 | 博客

TGL

  • 博客访问: 44229
  • 博文数量: 12
  • 博客积分: 490
  • 博客等级: 下士
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-12 17:07
文章分类
文章存档

2010年(2)

2009年(10)

我的朋友

分类: LINUX

2009-11-11 15:54:59



Ubuntu 8.04安装scratchbox交叉编译环境

1.添加软件源到apt包管理器
编辑/etc/apt/sources.list 最后面增加下面一行:
deb http://scratchbox.org/debian/ stable main

2.更新软件源
sudo apt-get update

3.安装软件包
sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-cputransp scratchbox-devkit-debian
sudo apt-get install scratchbox-devkit-perl scratchbox-toolchain-cs2007q3-glibc2.5-arm7

4.禁止Ubuntu 8.04以后的vdso功能
编辑/etc/sysctl.conf, 最后面增加下面两行:
vm.vdso_enabled = 0
vm.mmap_min_addr = 4096

使结果生效,运行
sudo sysctl -p
为了长期生效,编辑/etc/rc.local,在最后一行(exit 0)前面, 增加:sysctl -p

5.增加用户到scratchbox
假设你的登录用户名是your_user
sudo /scratchbox/sbin/sbox_adduser your_user

6.添加用户到sbox组中
编辑/etc/group文件,下面一行:
sbox:x:1001:
改为:
sbox:x:1001:your_name

7.退出当前用户,your_user重新登陆,确认your_user用户已经在sbox组里面,运行
groups
可以看到最后的组名:sbox

8.进入scratchbox环境,运行:
/scrathbox/login

9.配置编译目标
运行:
sb-menu
出现交互式配置菜单,选择:
setup -> new --> 输入target名字:arm-dev
选择编译器: cs2007q3-glibc2.5-arm7
选择cputransp:
选择:Done
选择:qemu-arm-cvs-m
Do you wish extract a rootstrap on the target ? --> no
Do you wish install files to the target ? --> no
Do you wish to select the target --> yes
此时sb-menu会退出。

重新运行:
sb-menu
出现交互式配置菜单,选择:
install
选择目标平台:arm-dev --> OK
选择要安装的文件(空格反选),默认选择 --> ok
exit
参照网址:scratchbox.org/wiki/ScratchboxTargetConfiguration

10.编译测试
编辑 hello.c
编译,生成 hello 可执行程序,运行:
gcc hello.c -o hello

测试文件类型,确认程序是arm平台可执行的,运行:
file hello
可以看到文件的运行平台为 ARM

11.用透明虚拟机运行程序
打入:
./hello
可以看到程序运行后的输出,

12.下载到开发板上运行
主机环境下,新打开终端,运行(确认不是在scratchbox提示下):
cd /scratchbox/users/your_user/home/your_user/
python -m CGIHTTPServer

上述命令在本机的8000端口建立一个webserver

开发板可以通过wget命令下载可执行程序,运行:
wget http://主机IP:8000/hello

hello 文件下载到开发板当前目录,但不是可执行的。运行:
chmod a+x hello
hello程序变为可执行程序,运行:
./hello
可以在开发板上看到程序的运行输出结果。



阅读(1349) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~