Ubuntu 12.04 linux环境配置
tftp服务器的安装与配置
tftp主要用于嵌入式交叉开发环境的搭建,传输文件。
0、创建tftp的工作目录,并修改权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot
1、安装:
sudo apt-get install tftp tftpd openbsd-inetd
2、打开配置文件 /etc/inetd.conf :
sudo vim /etc/inetd.conf
3、添加以下内容:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
4、打开文件 /etc/default/tftpd-hpa ,
sudo vim /etc/default/tftpd-hpa
添加以下内容:
RUN_DAEMON="yes"
OPTIONS = "-l -s /tftpboot"
5、重启服务:
sudo /etc/init.d/openbsd-inetd restart
6、测试:
在用户主目录位置下载zImage
tftp 192.168.7.6 登陆tftp服务器
tftp> get hello.c 下载文件zImage
Received 95 bytes in 0.1 seconds
tftp> quit 退出tftp服务器
nfs服务器的安装配置和使用
1、将已经制作好的文件系统rootfs_fs210_audio.tgz 拷贝到 /opt,并解压
sudo tar -xvf rootfs_fs210_audio.tgz
2、安装nfs服务器:
1》安装NFSserver端口映射和服务
sudo apt-get install nfs-kernel-server
2》先重启portmap服务:
sudo /etc/init.d/portmap restart
3》编辑/etc/exports,添加目标系统的根文件系统映射目录,假
如目标系统的根文件系统最后映射到/opt/rootfs,则
----》打开文件/etc/exports,添加以下内容:
/opt/rootfs_fs210 *(subtree_check,rw,no_root_squash,async)
4》重启服务:
sudo /etc/init.d/nfs-kernel-server restart
sudo exportfs -a(最好每修改过/etc/exports 后需要执行一次)
3、测试:
1》在用户主目录中创建一个挂载点: mkdir ~/mnt
2》挂载文件系统:/opt/rootfs_fs210
sudo mount 192.168.7.5:/opt/rootfs_fs210 mnt
3》查看mnt下是否可以看到rootfs中的内容,如果可以看到,nfs OK
linux网络配置
在VMware下安装虚拟ubunt系统后网络的配置:
1、检查VMware中网络的设置:
按下图中设置
2、在命令行配置IP:
1》用ifconfig命令查看ip网络信息:
2》通过修改配置文件对网络进行修改:
1) 打开网络配置文件:
sudo vi /etc/network/interfaces
2)写入以下信息,然后保存退出
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.7.x //设置本机IP地址:x的值为每位同学的WindowsIP+60
gateway 192.168.7.1
netmask 255.255.255.0
3) 重启网络服务:
sudo /etc/init.d/networking restart
3》检查ip是否配置成功:
1) 先用ifconfig检查一下ip,
2) 用ping命令检查本机与windo系统是否连通:
ping 192.168.7.10 ,如下图:
3、配置DNS(域名解析)服务器
1》打开DNS服务器配置文件:
sudo vi /etc/resolvconf/resolv.conf.d/tail
2》写入以下信息:
nameserver 202.96.128.86
3》重启本地服务:
sudo /etc/init.d/resolvconf restart
4》ping网址,例如:
ping www.baidu.com ,如下图:
samba服务的安装及配置
一、安装:
sudo apt-get install samba
二、配置:
1、创建一个需要共享的目录,并修改权限:
[email protected]:~$ mkdir linux
[email protected]:~$ sudo chmod 777 1504/ -R (可选)
2、打开配置文件:
[email protected]:~$ sudo vim /etc/samba/smb.conf
3、对创建的共享目录进行配置并保存退出:
[linux](windows可见的目录)
path = /home/peter/1704/linux(Ubuntu共享目录的路径)
available = yes
browseable = yes
public = yes
writable = yes
三、重新samba服务:
[email protected]:~/1504$ sudo /etc/init.d/smbd restart
四、测试:
在windows中点击:
-->开始
--->运行
--->\\linux的IP (例如:\\192.168.7.5)
五、设置samba密码:
1》在配置文件/etc/samba/smb.conf中加入以下内容:
[linux]
path = /home/peter/1704/linux
available = yes
browseable = yes
public = yes
writable = yes
valid users = peter
2》设置samba密码:
sudo smbpasswd -a peter
3》重启samba服务:
sudo /etc/init.d/smbd restart
交叉编译链创建
1.开发板中uboot参数配置
步骤如下:
1、接好各种线路:电源线,串口线,网线
2、打开putty,如下图中提示设置:
3、打开开发板电源开关
4、uboot参数设置:
4.1 x为ubuntu的IP地址[用ifconfig可以获取],设置tftp服务端的ip地址
set serverip 192.168.7.x
4.2 板子ip地址设置(注意,这里的y是由windows的ip地址x+100计算而来,每个人是不同的)
set ipaddr 192.168.7.y y = ubuntuIP + 60
4.3 网关设置
set gatewayip 192.168.7.1
4.4 设置MAC地址(N为用户座位编号,如果N<10,请前面加0,比如6号N就为06,11号N为11)
setenv ethaddr 11:22:33:44:55:N N = 座位号
4.5 内核镜像下载命令配置
set bootcmd tftp 40800000 zImage\;bootm 40800000
4.6 内核参数配置
set bootargs root=nfs nfsroot=192.168.7.5:/opt/rootfs ip=192.168.7.y init=/linuxrc console=ttySAC0,115200
4.7 保存设置:
save
注意:
可以用print命令查看参数设置,如下:
二:通过samba,将zImage拷贝到/tftpboot目录下
三.存放路径
1.将rootfs.tar.gz解压到/opt/目录下
sudo tar -xvf rootfs.tar.gz
编辑/etc/exports
2.添加目标系统的根文件系统映射目录,假如目标系统的根文件系统最后映射到/opt/rootfs,则sudo vi /etc/exports添加内容如下:
/opt/rootfs *(subtree_check,rw,no_root_squash,async)
保存退出,执行$sudo exportfs –a (最好每修改过/etc/exports 后需要执行一次)
3.重启nfs服务$sudo /etc/init.d/nfs-kernel-server restart
四.工具链
1、将工具链拷贝到/opt下,解压
sudo tar -xvf toolchain-4.5.1-farsight.tar.bz2
2、进入目录:toolchain-4.5.1-farsight/bin
cd toolchain-4.5.1-farsight/bin
3、执行pwd后,复制下面的路径
/opt/toolchain-4.5.1-farsight/bin
4、在环境变量中增加工具链路径
sudo vi /etc/environment
加入 :/opt/toolchain-4.5.1-farsight/bin(接在引号后面),保存退出
5、使生效:
source /etc/environment
查看效果: arm ,之后,双击TAB !
测试:
1、编写hello.c
#include <stdio.h>
int main(void)
{
printf("hello world\n");
return 0;
}
2、交叉编译:
arm-none-linux-gnueabi-gcc -o arm_hello hello.c
3、拷贝到/opt/rootfs
cp arm_hello /opt/rootfs
4、在开发板中执行:
[[email protected] /]# ./arm_hello
hello world
fs210内核配置
1. 内核下载路径
http://www.kernel.org/pub/linux/kernel/ 在上述路径中下载自己需要的内核,如:linux-3.0.8.tar.bz2 |
2. 拷贝并解压内核,注意最好拷贝到ubutun的家目录下:避免出现权限问题
cp linux-3.0.8.tar.bz2 /home/farsight/linux_source |
3. 解压内核,解压后会生成linux-3.0.8目录
cd /home/farsight/linux_source tar –xvf linux-3.0.8.tar.bz2 |
4. 修改内核源码顶层目录的Makefile。说明:其中黑色部分位修改前的,红色不部分位修改后的
cd linux-3.0.8 vi Makefile 修改前的代码: 191 ARCH ?= $(SUBARCH) 192 CROSS_COMPILE ?= 修改后的代码: 191 ARCH ?=arm 192 CROSS_COMPILE ?= arm-none-linux-gnueabi- |
5. 生成默认配置 //注意生成的.config文件是隐藏的
make s5pv210_defconfig |
6. 配置内核,以支持tcp/ip及nfs协议
执行make menuconfig 将如下选项选上 General setup ---> [*] Configure standard kernel features (for small systems) System Type ---> (0) S3C UART to use for low-level messages Kernel Features ---> Memory split (3G/1G user/kernel split) ---> [ * ] Networking support ---> Networking options ---> <*>Packet sockets [*] TCP/IP networking [*] IP: multicasting [*]IP: kernel level autoconfiguration [*] IP: BOOTP support |
|
7. 编译内核
make zImage -j2 //双线程编译内核 |
说明:编译内核时,可以生成uImage,也可以生成zImage。对于uImage与zImage的几点说明如下:
在此,以生成uImage镜像为例,因此需要在ubutun的终端上执行make uImage命令。 注意:如果你的内核是第一次编译,则在执行make uImage命令之前,需要先执行make menuconfig命令。 |
8. 拷贝内核镜像到tftp目录下
根据你所编译的内核镜像的不同,可以分别执行以下两条命令之一。 cp arch/arm/boot/uImage /tftpboot 或者: cp arch/arm/boot/zImage /tftpboot |
9. 将新内核下载到开发板并启动,出现如下现象(没成功哦,继续努力!):
Fs210之网卡驱动添加
1. 平台代码修改:(下面的代码在拷贝的时候千万注意中文状态哦)
vi arch/arm/mach-s5pv210/mach-smdkv210.c 修改网卡的mac地址: static struct dm9000_plat_data smdkv210_dm9000_platdata = { .flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM, .dev_addr = { 0x00, 0x09, 0xc0, 0xff, 0xec, 0xee }, // 设置为座位号码 };
修改结构体数组smdkv210_dm9000_resources为: static struct resource smdkv210_dm9000_resources[] = { [0] = { .start = 0x88000000, //地址端口 .end = 0x88000000 + 0x3, .flags = IORESOURCE_MEM, }, [1] = { .start = 0x88000000 + 0x4, //数据端口 .end = 0x88000000 + 0x4 + 0x3, .flags = IORESOURCE_MEM, }, [2] = { .start = IRQ_EINT(10), //中断号 .end = IRQ_EINT(10), .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, }, }; |
- 修改函数smdkv210_dm9000_init为:
static void __init smdkv210_dm9000_init(void) { /*时序配置:需要技术支持*/ unsigned int tmp; gpio_request(S5PV210_MP01(1), "nCS1"); s3c_gpio_cfgpin(S5PV210_MP01(1), S3C_GPIO_SFN(2)); gpio_free(S5PV210_MP01(1)); tmp = (5 << S5P_SROM_BCX__TACC__SHIFT); __raw_writel(tmp, S5P_SROM_BC1); tmp = __raw_readl(S5P_SROM_BW); tmp &= (S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS1__SHIFT); tmp |= (1 << S5P_SROM_BW__NCS1__SHIFT); __raw_writel(tmp, S5P_SROM_BW); } |
- 配置内核:
make menuconfig [*] Networking support ---> Networking options ---> <*> Packet socket <*> Unix domain sockets [*] TCP/IP networking [*] IP: kernel level autoconfiguration Device Drivers ---> [*] Network device support ---> [*] Ethernet (10 or 100Mbit) ---> <*> DM9000 support File systems ---> [*] Network File Systems (NEW) ---> <*> NFS client support [*] NFS client support for NFS version 3 [*] NFS client support for the NFSv3 ACL protocol extension [*] Root file system on NFS |
2.12 再次编译内核,并将新内核镜像拷贝到/tftpboot目录下,启动开发板
make uImage cp arch/arm/boot/zImage /tftpboot 出现如下现象表示,dm9000网卡驱动移植成功
成功!!!!! |
文件系统挂载
3.1 拷贝文件系统到/opt目录下
cp rootfs.tar.bz /opt |
3.2 解压文件系统,解压完成后会生成rootfs文件夹目录
tar –xvf rootfs.tar.bz2 |
3.3 修改nfs的挂载目录,
sudo vi /etc/exportfs 在其中添加如下语句: /opt/rootfs *(subtree_check,rw,no_root_squash,async) |
3.4 重启nfs
sudo /etc/init.d/nfs-kernel-server restart sudo exportfs –a |
此文转载侵权立删