1、hi3518c根文件系统的制作与移植

来源:互联网 发布:atom windows 编辑:程序博客网 时间:2024/06/04 22:12
根文件系统的制作与移植
1、 Busybox介绍与移植
1) 配置busybox
cdbusybox-1.17.2
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig
<1>选择编译为共享库
->Busybox Settings
-> Build Options
->Build shared libbusybox选中
<2>选择编译器
->Busybox Settings
-> Build Options
->CROSS_COMPILER_PREFIX [arm-linux-]填写
<3>配置根文件系统安装位置
->Busybox Settings
-> Installation Options
->PREFIX [/tiny4412/rootfs/]
<4>配置用户名补全
->Busybox Settings
->Busybox Library Tuning
->Username completion选中
<5>配置命令提示符功能
->Busybox Settings
->Busybox Library Tuning
->Fancy shell prompts
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- 
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- install
2) 复制命令的动态库
[root@localhostrootfs]#cp /opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/lib ./ -rap
(注意保持文件的链接属性)
 [root@localhostrootfs]# rmlib/*.a -f(删除静态库文件)(这一步可不做)


3) 创建其他文件
[root@localhostrootfs]#mkdir dev etc/init.d home proc sys root opt tmp var -p
(-p的意思是一次性创建多层次的目录)
4) 创建控制台设备文件
[root@localhostrootfs]# mknod dev/console c 5 1
5) 创建etc目录下文件
1)fstab文件:(存放开机系统自动挂载的文件系统)
[root@localhostrootfs]# geditetc/fstab
tmpfs /dev/shmtmpfs defaults 0 0
devpts /dev/pts devpts defaults 0 0
sysfs /sys sysfs defaults 0 0
proc /procproc defaults 0 0
2)创建inittab文件:
(init进程根据该文件来创建其他子进程,比如调用启动脚本文件、启动shell)
[root@bogonrootfs]# cd /xsh/hi3518/Hi3518_SDK_V1.0.8.0/osdrv/busybox/busybox-1.16.1
[root@localhost busybox-1.17.2]# cp examples/inittab /hi3518c/rootfs/etc/
[root@bogon busybox-1.17.2]# cd–
[root@bogonrootfs]# gedit etc/inittab
修改里面的内容,只保留以4 行:
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
(按照以上的顺序注册,当某个动作发生则执行相应的命令)
3)创建etc/init.d/rcS文件
[root@localhostrootfs]# geditetc/init.d/rcS
#!/bin/sh   #代表这是一个脚本
mount -a #挂载所有的文件系统:(/etc/fstab文件中的列表)
#热插拔支持
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
#设置终端显示名。
/bin/hostname XSH
(这里注意,一定要把所有注释去掉,否则会出错)
保存并退出
[root@localhost rootfs]# chmod +x etc/init.d/rcS(更改文件权限)方式1
[root@localhost rootfs]# chmod 777 etc/init.d/rcS(更改文件权限)方式2
这个文件中的命令,在系统启动后,挂接上文件系统会全部执行。也就是说需要开机自动执行的程序都可以写在这里,以上的内容除最后一行,其他的都是必须的。
4)创建创建etc/profile文件
[root@bogon rootfs]# gedit etc/profile
添加一下内容
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH


HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH


这个文件就是添加环境变量,以上的内容是实现控制台终端命令提示符号模板功能。以上命令提示模板中含有用户名\u , 用户名配置需要使用etc/ group 和etc/passwd两个文件,所以从虚拟机的Linux 系统的/etc目录中复制这两个文件到自己开发板根文件系统etc目录。
[root@localhostrootfs]# cp /etc/group /etc/passwd etc/
(以上就移植好了根文件系统)
2、 NFS文件系统的挂接
1) 配置Linux 系统NFS 服务
<1>添加共享目录
[root@localhostrootfs]# gedit /etc/exports 
添加一下内容
/hi3518c/rootfs/ *(rw,sync,no_root_squash)  ///hi3518c/rootfs/ 要共享NFS 目录
<2>启动NFS服务
 [root@localhostrootfs]# servicenfs restart
(如果中间有失败就多执行几次,直到全部成功)
<3>设置开机自动启动
[root@localhostrootfs]# chkconfig nfs
3、 配置Linux系统的IP地址
<1>选择桥接模式
<2>设置Linux的IP地址
root@localhostrootfs]#ifconfig eth0 192.168.0.106 up
上面的设置是本次运行有效,如果重启又会变化。
如果想固定不变,可以使用静态IP 配置方式。
[root@localhostrootfs]# setup
选择网络配置->设备配置->eth0
设置成如下
 


重启网络:[root@localhostrootfs]# service network restart
<3>关防火墙:
[root@localhostrootfs]# setup
4、 配置windows系统的IP地址
打开网络和共享中心->更改适配器设置->本地连接->属性->ipv4
配置成如下:
 
同时不让虚拟机连接无线网
 
5、 配置开发板的IP地址
TINY4412 # setenvipaddr 192.168.0.123
TINY4412 # setenvgatewayip 192.168.0.1
TINY4412 # setenvnetmask 255.255.255.0
TINY4412 # setenvserverip 192.168.0.30
以下行是同一行,不要换行:这一个非常重要。
TINY4412# setenvbootargs 。。。(具体情况具体分析)
TINY4412 # save
Saving Environment to SMDK bootable device...
done
TINY4412 #
6、 挂载NFS文件系统
上电
TINY4412 # boot
Please press Enter to activate this console. -此时,输入回车键,就可以进入控制台。

0 0