快速移植Linux到S3C6410详解流程 Ubuntu12.04

来源:互联网 发布:数据录入 app 编辑:程序博客网 时间:2024/04/27 23:58


建议开发板:

     XXX6410

开发板接口简介

 

     UT6410开发板的内存地址范围:0x50000000-0x58000000

 

 

1.1版本特性:

     1、内核版本:linux2.6.28

     2、图形界面:Qtpia 2.2.0

     3、根文件系统:yaffs2

     3Bootloader版本:u-boot-1.1.6

     4、交叉编译器:cross-4.3.2  

 

1.2功能特性:

     1、支持MPEG4/H264/H263/VC-1多媒体硬件编解码

     2、多重解码,四分屏硬件解码视频

     3、支持 JPEG硬件编解码

     4、支持摄像头采集、回显、视频编码、JPEG编码

     5、支持 2D/3D硬件加速

     6、支持 2.8~10.4多种不同尺寸液晶屏

     7、支持 TVOUT输出

     8、支持 VGA输出

     9、支持 USB鼠标、键盘

     10、支持触摸屏校正

     11、支持 mediaplayer播放视频

     12、支持图片浏览器、文件管理、日历、时钟、计算器

     13、支持手写输入、键盘输入、终端

     14、支持插件管理

     15、支持多款内置游戏

     16、支持NANDFLASHUSBSD/HSMMCAUDIOETHERNET

     UARTLCDTOUCHCAMERASPIIICDMAKEYPAD

     RTCMFCJPEG等驱动

 

 1.3UT-S3C6410开发板

     1、交叉串口线(双母头)

     2、用于连接开发板 COM0 PC COM 口进行调试用

     3、网线:用于网络功能测试

     4USB数据线:用于下载镜像

     512V/2A DC电源适配器:用于给开发板供电

     6SD:用于初次烧写时, SD启动(请选用 2G 以内的标准 SD)

     7USB接口 SD 读卡器:用于在 PC端烧写启动代码至 SD卡中

 

 

 

 

arm-linux-source开发包简介

     u-boot-sd.binu-boot-nand.bin zImage  rootfs2010*

 

 

1u-boot-sd介绍

     u-boot-sd是用于开发板从 SD卡启动的引导镜像,主要用于开发板第一次烧写时使用,也就是 nand flash是空的时候,通过SD卡来启动 u-boot-sd,u-boot-sd支持通过 USB OTG接口高速下载并烧写镜像至 nand flashu-boot-sd仅适用于第一次烧写,如果nand flash中已经烧写有 u-boot-nand,则不需要 u-boot-sd启动了。

 

2u-boot-nand介绍

     u-boot-nand是烧写于 nand flash,用于从 nand flash启动的引导镜像,u-boot-nand支持 USB OTG下载镜像、nand flash读、写、擦除等。u-boot-nand基于 u-boot-1.1.6版本。

 

3zImage介绍

zImage是内核镜像文件,基于 urbetter-linux2.6.28-v1.0版本源码。

 

4rootfs介绍

Rootfs是根文件系统,我们提供的根文件系统类型为 YAFFS2,支持两种方式启动:

1NFS网络根文件系统

2、从 nand flash启动 YAFFS2文件系统

 

u-boot-sd启动模式 0111 1100

u-boot-nand启动模式: 0110 0100

 

 

一、搭建嵌入式开发环境

 

移植简述方法:

     PCUbuntu12.04上通过minicom串口终端,将ubootzImage通过tftp服务器下载到S3C6410nand flash里面,通过网络NFS挂载根文件系统rootfs,最终完成移植工作。

 

1步:

     硬件连接

     电源线电流大于1A以上(内正外负),网线连接,USB转串口线连接。

      u-boot-sd.bin写到 SD

      a)SD卡插入 pc

      b)fdisk -l查看SD卡对应的设备文件

      c)./write_sd /dev/sdb  ~/ut6410/tools/u-boot-sd.bin

2步:  

安装Ubuntu12.04系统,在里面安装minicom2.5,并配置环境。操作如下:

成功登录Ubuntu以后,按Ctrl+Alt+T,在弹出的终端界面输入

 

toshiba@ubuntu:~$ sudo apt-get installminicom

[sudo] password for toshiba: 

 

     根据下载提示,输入 y ,等待下载安装完成。

 

 

 toshiba@ubuntu:~$ sudo minicom -s

[sudo] password for toshiba:

 

           +-----[configuration]------+

           | Filenames and paths     |

           | File transfer protocols |

           | Serial port setup        |

           | Modem and dialing       |

           | Screen and keyboard     |

           | Save setup as dfl       |

           | Save setup as..         |

           | Exit                    |

           | Exit from Minicom       |

           +--------------------------+

 

选择Serialport setup

 

 +-----------------------------------------------------------------------+

   | A -   Serial Device     :/dev/ttyUSB0                 |

   |B - Lockfile Location    :/var/lock                      |

   |C -  Callin Program     :                                     |

   |D - Callout Program     :                                    |

   |E -   Bps/Par/Bits      : 115200 8N1                   |

   | F- Hardware Flow Control :No                         |

   |G - Software Flow Control : No                           |

   |                                                                             |

   |   Change which setting?                                    |

   +-----------------------------------------------------------------------+

 

输入a ,修改Serial Device :/dev/ttyUSB0

输入f,修改Hardware Flow Control : NO

….

修改成如图所示,按Enter键保存,退到前一界面

 

选择 Save setup as dflEnter键保存

 

选择选择Exit

 

 

     以上基本完成minicom的配置,退出后会进入到Initializing Modem界面

 

                           +-----------------------+-------

                           |                                  |

                           | Initializing Modem  |

                           |                                  |

                           +-----------------------+-------

     

     然后就会进入下面的SDboot启动界面

 

U-Boot 1.1.6 (Sep 17 2014 - 15:02:21) forSMDK6410  

****************************************

**   UT-S3C6410 SD boot v0.18     **

**   ShenZhen Urbetter Technology   **

**   Http://www.urbetter.com        **

****************************************

CPU:    S3C6410@532MHz

        Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mod

Board:  SMDK6410

DRAM:   128 MB

Flash:  0 kB                                                                  

NAND:   256 MB                                                                

In:     serial                                                                

Out:    serial                                                                

Err:    serial                                                                

Hit any key to stop autoboot: 0                                               

[u-boot-sd]#

 

查看uboot开发板输出信息,uboot命令和环境变量简介

     Sav保存环境变量

     Pri打印环境变量

     Set修改或者删除环境变量

 

输入pri,显示

 

     bootdelay=3                                                                    

     baudrate=115200                                                                

     ethaddr=00:40:5c:26:0a:5b                                                      

     ipaddr=192.168.1.20                                                            

     erverip=192.168.1.32                                                          

     gatewayip=192.168.1.1                                                          

     netmask=255.255.255.0                                                          

     bootargs=root=/dev/mtdblock2console=ttySAC0                                   

     bootcmd=nandread 50008000 40000 300000;bootm 50008000                         

     stdin=serial                                                                   

     stdout=serial                                                                  

     stderr=serial                                                                  

                                                                               

     Environmentsize: 281/16380 bytes

 

 

3步:

      完成上面两步以后,只是简单的通过串口,查看开发板的一些信息。

现在需要使开发板与PC机之间进行简单的通讯,然后通过tftp服务器,下载u-boot-nand.bin(使开发板转为nand启动方式)zImage(内核镜像文件,启动内核),所以先要配置tftp服务器

 

配置tftp服务器     

 

(1).安装tftp所需的软件。首先需要安装tftp-hpatftpd-hpa,前者是客户端,后者是服务程序,在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpatftpd-hpa。然后还需要安装xinetd,在终端下输入 sudoapt-get install xinetd,安装好xinetd

 

 

(2).配置相关服务文件。进入根目录下的etc文件夹(cd /etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:

sudo vim /etc/xinetd.conf

 

 #Simple configuration file for xinetd

 #

 #Some defaults, and include /etc/xinetd.d/

  

 defaults

 {

  #Please note that you need a log_type line to be able to use log_on_success

  #and log_on_failure. The default is the following :

  #log_type = SYSLOG daemon info

 }

 

 includedir /etc/xinetd.d

 

(3).配置tftp服务器

 命令:

  sudo vim /etc/default/tftpd-hpa (使用vim先安装包,sudo apt-getinstall vim)

 将内容修改成

 #/etc/default/tftpd-hpa

   TFTP_USERNAME="tftp"

   TFTP_DIRECTORY="/tftpboot"                         

  #这是你tftp服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为777,命令sudo chmod 777 /tftpboot

   TFTP_ADDRESS="0.0.0.0:69"

   TFTP_OPTIONS="-l -c -s"

 

(4).然后进入xinetd.d文件夹(cd xinetd.d),查看是否有一个tftp文件,如果没有就新建一个,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:

service tftp

   {

      socket_type = dgram

      wait = yes

      disable = no

      user = root

      protocol = udp

      server = /usr/sbin/in.tftpd

      server_args = -s /tftpboot

      #log_on_success += PID HOST DURATION

      #log_on_failure += HOST

      per_source = 11

      cps =100 2

      flags =IPv4

   }

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的

 

(5).修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹,以我的配置文件为例,创建一个文件夹(sudo mkdir /tftpboot),然后把它可以设置成访问权限最宽松的(sudo chmod 777 /tftpboot),也可以设置成合适的权限。

 

(6).重新启动服务。sudo service tftpd-hpa restart,这也是我经常疏忽的一步,当配置好tftp的配置文件后,需要重新启动一下xinetd,在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入 sudo /etc/init.d/xinetd restart,重启服务。记住,每次修改完配置文件后,都需要重新启动一下服务。

执行次序:

sudo service tftpd-hpa restart

sudo /etc/init.d/xinetd reload

sudo /etc/init.d/xinetd restart

 

 

4步:搭建NFS网络文件系统

(1)安装 nfs
apt-get install nfs-kernel-server
apt-get install portmap nfs-common

 

(2)编辑/etc/exports
/nfsroot *(rw,sync,no_root_squash)

 

     *表示任意IP地址,sync表示同步,no_root_squash表示无论是什么用户都可以以root用户的权限操作该目录

 

(3)修改挂载点的属性
chmod 777 /nfsroot

 

(4)重启nfs
sudo /etc/init.d/nfs-kernel-server restart
sudo /etc/init.d/portmap restart   (redhat5portmap, Redhat6 改名为 rpcbind)

                                                ( sudo /etc/init.d/rpcbind restart )

(5)在本机上测试
showmount -e
mount 172.20.149.190:/nfsroot
    
/mnt/
ls -l 
/mnt
注:可以通过一个符号链接来export NFS目录,但在/etc/exports下所添加的挂载点应为真正的目录。比如建一符号链接

 

二、嵌入式环境简单配置

     

     u-boot-sd启动模式  0111 1100

     u-boot-nand启动模式:0110 0100

 

 

     (1).启动minicom后,在SD卡启动模式下,

     

     Hitany key to stop autoboot: 0                                               

     [u-boot-sd]#

   

     输入pri后,查看开发板的环境参数后设置开发的参数

     

     修改开发板的环境变量

     [u-boot-sd]#Setserverip 192.168.1.32

     [u-boot-sd]#Save

     在用开发板 ping主机(和开发板链接的 PC)

     [u-boot-sd]#Ping192.168.1.253

          ......isalive表示通

          [u-boot-sd]# tftp 50008000 zImage

     [u-boot-sd]#bootm 50008000如果启动成功 LCD上会出现小企鹅,过一会后 LCD 上出现图形界面,minicom中出现控制终端(shell)

 

         [u-boot-sd]# set bootargs "root=/dev/nfsnfsroot=192.168.1.32:/nfsroot ip=192.168.1.20 console=ttySAC0,115200" //告诉板子其根文件系统在网络的哪里。root=/dev/nfs表示根文件系统的位置,nfsroot=192.168.1.32:/nfsroot ip=192.168.1.20主机ip和板子ip,console表示控制端,ttySAC0指设备控制终端

     [u-boot-sd]#sav

 

 

(2).uboot zImage rootfs都写到开发板

在内核启动过程中会输出:

0x00000000-0x00040000 :"Bootloader"

/dev/mtdblock0

0x00040000-0x00400000 : "Kernel"

/dev/mtdblock1

0x00400000-0x05400000 : "Rootfs"

/dev/mtdblock2

0x05400000-0x10000000 : "FileSystem"

/dev/mtdblock3

 

uboot写到nand

 

[u-boot-sd]# nand erase

[u-boot-sd]# nand scrub

y enter

[u-boot-sd]# tftp 50000000 u-boot-nand.bin

[u-boot-sd]# nand write 50000000 0 40000

 

关掉电源,切换为 nand启动,上电,如果成功出现:

 

****************************************

**   UT-S3C6410NAND boot v0.18     **

**   ShenZhen Urbetter Technology   **

**   Http://www.urbetter.com        **

****************************************

CPU:    S3C6410@532MHz

        Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mod

Board:  SMDK6410

DRAM:   128 MB

Flash:  0 kB                                                                  

NAND:   256 MB                                                                

In:     serial                                                                

Out:    serial                                                                

Err:    serial                                                                

Hit any key to stop autoboot: 0                                               

[u-boot-nand]#

 

重新修改开发板的环境参数

 

[u-boot-nand]# set serverip 192.168.1.32

[u-boot-nand]# sav

 

[u-boot-nand]# tftp 50000000 zImage

[u-boot-nand]# nand erase 40000 300000

[u-boot-nand]# nand write 50000000 40000300000

测试:

[u-boot-nand]# nand read 50008000 40000300000

[u-boot-nand]# bootm 50008000

启动成功会出现小企鹅

把跟文件系统写到 nand

[u-boot-nand]# set bootargs root=/dev/nfs

nfsroot=192.168.,1.32:/nfsrootip=192.168.1.20

console=ttySAC0,115200

[u-boot-nand]# sav

[u-boot-nand]# nand read 50008000 40000300000

[u-boot-nand]# bootm 50008000

 

     制作开发板的网络文件系统

      toshiba@ubuntu:~$tar -xvf nfsroot20130805.tar.bz2 -C /nfsroot

      toshiba@ubuntu:~$/nfsroot

     告诉开发板根文件系统在网络上

      在开发板上,bootargs环境变量用来指定根文件系统的位置

      [u-boot-nand]#set bootargs root=/dev/nfs nfsroot=192.168.1.32:/nfsroot ip=192.168.1.20 console=ttySAC0 115200

      

      [u-boot-nand]#sav

      [u-boot-nand]#tftp 50008000 zImage3.4.24

      [u-boot-nand]#bootm 50008000

     如果启动成功,在开发板的LCD上会出现图形界面,在minicom会出现shell     [XXX@XX]#(可以自己修改[ILoveYou@Linux]#请参考内核编译)

 

 

 

     把根文件系统写到nand

      [u-boot-nand]#set bootargs root=/dev/nfs nfsroot=192.168.1.32:/nfsroot ip=192.168.1.20console=ttySAC0

      [u-boot-nand]#sav

      [u-boot-nand]#nand read 50008000 40000 300000

      [u-boot-nand]#bootm 50008000

      如果启动成功在开发板的LCD上出现图形界面,在minicom中出现shell [XXX@XX]#

      主机上操作下一句:

      toshiba@ubuntu:~$tar -xvf nfsroot20130805.tar.bz2 -C /nfsroot

      以下在开发板操作:

      [XXX@XX]# ls /dev/mtdblock*

      [XXX@XX]# mkdir mnt2

      [XXX@XX]# mount/dev/mtdblock2 /mnt2/

      [XXX@XX]# tar -xvf/nfsroot20130805.tar.bz2 -C /mnt2

      [XXX@XX]# sync

      [XXX@XX]# reboot

 

      [u-boot-nand]#set bootargs root=/dev/mtdblock2

console=ttySAC0

      [u-boot-nand]#sav

      [u-boot-nand]#nand read 50008000 40000 300000

      [u-boot-nand]#bootm 50008000

     设置为自动启动

     [u-boot-nand]# set bootcmd "nand read50008000 40000 300000;bootm 50008000"

      [u-boot-nand]#set bootdelay 1

      [u-boot-nand]#sav

      [u-boot-nand]#reset

      校正触摸屏

 

安装交叉编译器 ***"安装arm-linux-gcc"***

 

方法1设置全局arm编译工具   

   PC:

      (1)toshiba@ubuntu:~# .cd /nfsroot;

        toshiba@ubuntu:~#mkdir test;

      (2)toshiba@ubuntu:~#.mkdir /usr/local/arm;

         toshiba@ubuntu:~# cd ~/smdk6410_lzy/src;

         toshiba@ubuntu:~# tar -jxvf arm-linux-gcc.tar.bz2  -C  /usr/local/arm

      (3).toshiba@ubuntu:~#vim/etc/profile     //添加下面一行

          PATH=/usr/local/arm/4.3.2/bin:$PATH    //:$PATH表示追加,不修改之前的内容

      (4)toshiba@ubuntu:~#.source/etc/profile   //每个使用终端都需要执行本命令,或者重启机器

                    可执行程序可以通过

 

方法2设置当前登录用户arm编译工具

   PC:

     toshiba@ubuntu:~$ sudo  mkdir /usr/local/arm

      toshiba@ubuntu:~$sudo tar -xvf arm-linux-gcc.tar.bz2 -C /usr/local/arm/ 

      toshiba@ubuntu:~$sudo vim ~/.bashrc

          export PATH=/usr/local/arm/4.3.2/bin:$PATH

      .bashrc生效的方法:

     1.toshiba@ubuntu:~$source  .bashrc

      2.toshiba@ubuntu:~$sudo source ~/.bashrc

     3.toshiba@ubuntu:~$sudo . ~/.bashrc


      

      测试:

          toshiba@ubuntu:~$ touch hello.c

          toshiba@ubuntu:~$ arm-linux-gcc hello.c -o hello

          toshiba@ubuntu:~$sudo cp hello /nfsroot

          1.如果挂载的是网络文件系统

          [XXX@XX]# ./hello

          2.如果挂载的是本地文件系统

          [XXX@XX /]#  ifconfig eth0 192.168.1.20

          [XXX@XX /]# mount -tnfs -o nolock,rw 192.168.1.32:/nfsroot /mnt (PC防火墙,root用户)

 

          用户太程序移植过程:

          ./configure--help

          ./configure--host=arm-linux --prefix=/home/install CC=arm-linux-gcc ....

          make&& make install

 

 

以下仅供参考

 

编译uboot (uboot的安装包经过一定的修改后按照下面方法操作即可,修改地方可以使用对比工具Beyond Compare3 查看官方版与修改版,很方便的)

       我的分享uboot地址:http://yunpan.cn/cgk5kJRtbZL36  访问密码 659b 

      SD卡启动:

      [root]#tar -xvf u-boot-1.1.6.tar.bz2

      [root]#cd u-boot-1.1.6_smdk6410/

      [root]#vim Makefile161 CROSS_COMPILE =arm-linux-

      [root]#make smdk6410_config   

      [root]#vim include/configs/smdk6410.h

       205 #define CFG_PROMPT "[XXX@SD]# "

       188 #define CONFIG_SERVERIP 192.168.1.32      

       183 #define CONFIG_BOOTARGS "root=/dev/nfsnfsroot=192.168.1.32:/nfsroot ip=192.168.1.20 console=ttySAC0"

          

       445 /* Boot configuration (define only one ofnext) *   /

       446 //#define CONFIG_BOOT_NOR

       447 //#define CONFIG_BOOT_NAND

       448 #defineCONFIG_BOOT_MOVINAND

       449 //#define CONFIG_BOOT_ONENAND

       450 //#define CONFIG_BOOT_ONENAND_IROM

      [root]#make -j2

          u-boot= [ELF][u-boot.bin]

      [root]#./mkmovi

      [root]#mkdir/uboot

      [root]#cp u-boot-movi.bin ~/uboot/  

             (生成u-boot-movi.bin改名u-boot-sd.bin)

      [root]#cp System.map ~/uboot/System_movi.map

 

      NAND启动:

      SD卡启动的基础上修改

      [root@localhostu-boot-1.1.6_smdk6410]# vim include/configs/smdk6410.h

       205 #define CFG_PROMPT             "[XXX@NAND]# "

       445 /* Boot configuration (define only one ofnext) *   /

       446 //#define CONFIG_BOOT_NOR

        447 #define CONFIG_BOOT_NAND

       448 //#define CONFIG_BOOT_MOVINAND

       449 //#define CONFIG_BOOT_ONENAND

       450 //#define CONFIG_BOOT_ONENAND_IROM

      [root]#make -j2

      [root]#./mknand

      [root]#cp u-boot-nand.bin ~/uboot/

      [root]#cp System.map ~/uboot/System_nand.map

 

    

编译内核

      2.6内核编译

      [root@localhostsrc]# tar -xvf linux-2.6.28.tar.bz2

      [root@localhostsrc]# cd linux-2.6.28_smdk6410/

      [root@localhostsrc]# vim .cross_compile

          arm-linux-

      [root@localhostlinux-2.6.28_smdk6410]# cp smdk6410_config .config

      [root@localhostlinux-2.6.28_smdk6410]# make menuconfig

       Device Drivers --->

       Graphics support --->

        <*> Support for frame bufferdevices --->

          Select LCD Type (UT_LCD43C_D 480*272) --->

      [root@localhostlinux-2.6.28_smdk6410]# make -j2

      [root@localhostlinux-2.6.28_smdk6410]# cd drivers/video/samsung/

      [root@localhostsamsung]# mv s3cfb_UT_LCD43C_D\ .c s3cfb_UT_LCD43C_D.c

      [root@localhostsamsung]# cd ../../../

      [root@localhostlinux-2.6.28_smdk6410]# make

      [root@localhostlinux-2.6.28_smdk6410]# cp arch/arm/boot/zImage /tftpboot/

      

      

    

制作根文件系统

      [root@localhostsrc]# tar -xvf busybox-1.20.1.tar.bz2

      [root@localhostsrc]# cd busybox-1.20.1

      [root@localhostsrc]# vim Makefile

          164CROSS_COMPILE =arm-linux-

      [root@localhostbusybox-1.20.1]# make defconfig

      [root@localhostbusybox-1.20.1]# make menuconfig

          BusyboxSettings --->

           Build Options --->

           [*] Build BusyBox as a static binary (noshared libs)

          LinuxModule Utilities --->

           [ ] Simplified modutils

           [*]  insmod

           [*]  rmmod

           [*]  lsmod

           [ ]    Pretty output (NEW)

           [*]  modprobe

           [ ]    Blacklist support (NEW)

           [*]  depmod                     

      [root@localhostbusybox-1.20.1]# make -j2

      [root@localhostbusybox-1.20.1]# make install

      [root@localhostbusybox-1.20.1]# cd _install/

      [root@localhost_install]# mkdir /myrootfs

      [root@localhost_install]# cp * /myrootfs/ -rf

      [root@localhost_install]# cd .

      [root@localhostbusybox-1.20.1]# cp examples/bootfloppy/etc/ /myrootfs/ -rf

      [root@localhostbusybox-1.20.1]# cd /myrootfs

      [root@localhostmyrootfs]# mkdir dev sys proc root mnt tmp opt

      [root@localhostmyrootfs]# cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/ . -rf

      挂在procsysfs的两种方式:  

      1.[root@localhostmyrootfs]# vim etc/init.d/rcS

          mount-t proc none /proc

          mount-t sysfs none /sys

          mount-t tmpfs none /tmp

      2.[root@localhostmyrootfs]# vim etc/fstab

          proc /proc proc defaults 0 0

          sysfs/sys sysfs defaults 0 0

          tmpfs/tmp tmpfs defaults 0 0

      udev/mdev用来监视设备的注册和注销以创建设备结点

      [root@localhostmyrootfs]# vim etc/profile

          echo"Hello, it is my file system"

          #mdev实现udev的功能

          1.echo'/sbin/mdev -s' > /proc/sys/kernel/hotplug

          2.mdev-s

          HOME=/root

          PS1="[root@uplooking\W]# "

     

      [root@localhostmyrootfs]# mknod dev/console c 5 1

      [root@localhostmyrootfs]# mknod dev/tty2 c 4 2

 

0 0
原创粉丝点击