一、安装ubuntu
1.Request CDs 官网索取光盘 https://shipit.ubuntu.com,寄过来时间较长,建议用iso镜像刻录光盘。
2.下载iso镜像 http://www.ubuntu.com/getubuntu/download
3.本人使用ubuntu最新版本ubuntu10.04,软件方式安装。保留windows文件。
4.安装中文语言包和中文输入法(推荐fcitx),具体过程见日志"ubuntu之系统初建"。
二、安装交叉编译环境
为了简单起见,直接使用网上制作好的工具链。下面给出安装步骤:
1.arm-linux-gcc(使用linux系统)
终端下输入命令:
$ wget http://arm9download.cncncn.com/linux/arm-linux-gcc-4.3.2.tgz
$ tar zxvf arm-linux-gcc-4.3.2.tgz -C /
$ sudo apt-get install vim
$ vim ~/.profile
末行添加 export PATH=$PATH:/usr/local/arm/4.3.2/bin
$ source ~/.profile
$ arm-linux-gcc -v
2.arm-elf-gcc(使用uClinux系统)
链接:悲剧,没有找到可用的,谁用src包通知下我,我更新下。
安装步骤同上。
3.ncurses库(ubuntu默认是未安装的)
编译内核时make menuconfig动态配置内核时需要curses库。
终端下输入命令:
$ sudo apt-get install build-essential
$ wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
$ tar zxvf ncurses-5.6.tar.gz
$ cd ncurses-5.6
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
进入内核代码根目录下make menuconfig,正常出现菜单则ok
三、安装烧写工具,文件传输工具
1.串口工具(推荐C-kermit)
安装C-kermit
$ sudo apt-get install ckermit
$ gedit ~/.kermrc
将下面配置信息复制到.kermrc
set line /dev/ttyS0 //如果为USB转串口,为/dev/ttyUSB0,linux内核本身提供了usb转串口的支持
set speed 115200 //设置波特率
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
$ sudo kermit -c
从norfalsh启动mini2440就可以看到supervivi的启动画面
退出串口,先同时按下”Ctrl”和”/”,再按c键,然后输入exit
2.编译安装linux下的烧写工具dnw
(1)安装libusb-dev
$ sudo apt-get install libusb-dev
(2)安装dnw
$ wget http://c8051f320dev.googlecode.com/files/dnw2_linux_latest.tgz
$ tar zxvf dnw2_linux_latest.tgz
$ cd dnw2
$ gedit dnw2.c
$ gcc dnw2.c -o dnw -lusb
$ sudo cp dnw /usr/sbin
$ sudo dnw $你的文件
即可完成烧写
四、源码查看工具(推荐kscope)
将以下内容复制到文件中保存为脚本并执行就可以成功下载kscope.
#!/bin/bash
# This script helps you install Kscope on Ubuntu10.04.
# You can also use it to fix "Kscope doesn't run in KDE4" bug.
echo "Determining machine hardware name... "
MACHINE=`uname -m`
case "$MACHINE" in
i386 | i586 | i686)
ARCH="i386"
;;
x86_64)
ARCH="amd64"
;;
*)
ARCH="i386"
;;
esac
# If Kscope is not installed, install it.
which kscope &> /dev/null
if [ $? -ne 0 ]; then
echo "Installing kscope..."
sudo apt-get install kscope || /
wget http://archive.ubuntu.com/ubuntu/pool/universe/k/kscope/kscope_1.6.0-1_${ARCH}.deb && /
sudo dpkg -i kscope_*.deb || /
sudo apt-get -fy install || /
echo "Oops, some error happens..."
fi
kscope -v &> /dev/null
if [ $? -eq 0 ]; then
echo "Kscope works fine."
exit
fi
echo "Downloading KDE3 libraries needed by kscope..."
wget http://ftp.debian.org/debian/pool/main/k/kdebase/kate_3.5.9.dfsg.1-6+lenny1_${ARCH}.deb
dpkg -x kate_3*.deb kate
echo "Installing KDE3 libraries..."
sudo cp kate/usr/lib/libkateinterfaces.so.0.0.0 /usr/local/lib/
sudo cp kate/usr/lib/libkateutils.so.0.0.0 /usr/local/lib
sudo ln -s /usr/local/lib/libkateinterfaces.so.0.0.0 /usr/local/lib/libkateinterfaces.so.0
sudo ln -s /usr/local/lib/libkateutils.so.0.0.0 /usr/local/lib/libkateutils.so.0
sudo ldconfig
echo "Finished."
五、DIY,打造自己的应用程序
安装GTK/GNOME开发环境
安装GTK环境只要安装一个libgtk2.0-dev就可以了,而安装gnome开发环境的话,需要装gnome-core-devel,它包含GTK开发包。
但在一般情况下,我们需要有一个ide开发环境,需要帮助文件,于是我们安装:
sudo apt-get install gnome-devel gnome-dev-doc
安装完,写个程序gtkhello.c测试一下:
#include<gtk/gtk.h>
void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello Ubuntu!/n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred/n");
return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT(window),"delete_event",
GTK_SIGNAL_FUNC(delete_event),NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello Ubuntu!");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window); /*显示一个窗口*/
gtk_main(); /*进入主循环*/
return(0);
}
编译
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
注:以上是`(和~一个键位)而不是单引号,否则编译出错。