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、创建一个需要共享的目录,并修改权限:

lpf@ubuntu:~$ mkdir linux

lpf@ubuntu:~$ sudo chmod 777 1504/ -R   (可选)

2、打开配置文件:

lpf@ubuntu:~$ sudo vim /etc/samba/smb.conf

3、对创建的共享目录进行配置并保存退出:

[linux](windows可见的目录)

path = /home/peter/1704/linux(Ubuntu共享目录的路径)

available = yes

browseable = yes

public = yes

writable = yes

三、重新samba服务:

lpf@ubuntu:~/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、在开发板中执行:

[root@farsight /]# ./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
                   <*> Unix domain sockets

           [*] TCP/IP networking

                  [*]   IP: multicasting  

                  [*]IP: kernel level autoconfiguration

                               [*]     IP: BOOTP support

 

 

 

7. 编译内核

make zImage -j2  //双线程编译内核

 

说明:编译内核时,可以生成uImage,也可以生成zImage。对于uImage与zImage的几点说明如下:

  1. uImage与zImage的区别:uImage比zImage多了一个头部信息。具体信息可以看内核启动信息。
  2. 如果执行make uImage命令,则会生成uImage镜像。
  3. 如果执行make zImage命令,则只会生成zImage镜像。
  4. 如果想生成uImage,mkimage这个工具,此工具是在编译uboot的时候生成的,是用来生成uImage的工具。在编译uboot生成mkimage工具后,需要将此工具拷贝到ubutun的/usr/bin目录下,并需要修改此文件的权限为可执行的。

 

在此,以生成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,

},

};

 

  1. 修改函数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);

}

 

  1. 配置内核:

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

 

此文转载侵权立删

 

 

                       

 

 

 

 

 

发布了38 篇原创文章 · 获赞 42 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_42471952/article/details/81780333