嵌入式Linux系统移植
海思35xx系统移植
制作根文件系统
-
编译和安装 busybox
下载busybox源码,依次运行
make
和make install
默认会在 _install 目录下生成系统基本的文件。 -
制作根文件系统的相关文件
在
/home/luoyang/nfsroot/myrootfs
目录下建立rootfs_glibc
目录,然后将上一步_install
目录下所有文件复制进去,再建立一些基本的目录:cd /home/luoyang/nfsroot mkdir rootfs_glibc cp -R packet/busybox-1.20.2/_install/* . # -R 就是复制所有 mkdir etc dev lib tmp var mnt home proc
配置 etc、lib、dev 目录的必需文件。
a)
etc
目录可参考系统/etc
下的文件。其中最主要的文件包括inittab
、fstab
、init.d/rcS
文件等,这些文件最好从 busybox 的 examples 目录下拷贝过来,根据需要自行修改。
b) dev 目录下的设备文件,可以直接从系统中拷贝过来或者使用 mknod 命令生成需
要的设备文件。拷贝文件时请使用 cp –R file。(注:海思提供了udev的源码,可以使用udev自动检测设备)
c) lib 目录是存放应用程序所需要的库文件,请根据应用程序需要拷贝相应的库文
件。(关于海思的一些库直接从长沙3531D开发板复制出来的) -
修改
/etc/fstab
文件如下:
proc /proc proc defaults,nodev,nosuid 0 0
sysfs /sys sysfs defaults,nodev,nosuid 0 0
tmpfs /dev tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
-
修改
/etc/inittab
文件# Boot-time system configuration/initialization script. # This is run first except when booting in single-user mode. # ::sysinit:/etc/init.d/rcS # Example of how to put a getty on a serial line (for a terminal) ::respawn:/sbin/getty -L ttyS000 115200 vt100 -n root -I "Auto login as root ..." #::respawn:/sbin/getty -L ttyS1 9600 vt100 # # Example how to put a getty on a modem line. #::respawn:/sbin/getty 57600 ttyS2 # Stuff to do when restarting the init process ::restart:/sbin/init # Stuff to do before rebooting ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff -a
-
关于海思设备节点自动添加的问题
在海思
/etc/init.d/S01udev
这个文件中有如下命令:#!/bin/sh mkdir /dev/pts mount -t devpts devpts /dev/pts mkdir -p /dev/.udev udevd --daemon udevadm trigger
这个就是用于设备热拔插设置hotplug(即,设备自动检测)。
编译内核指令
make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- uImage
boot from yaffs2
setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rw rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),128M(rootfs)'
boot from nfs:
setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.1.119:/home/luoyang/nfsroot/myrootfs/rootfs_glibc ip=192.168.1.98:192.168.1.119:192.168.1.1:255.255.255.0 console=ttyAMA0,115200 mem=128M'