构建自己的Linux 之三 初步完善(提供网络功能)
1 添加profile文件
#Ash profile #vim:syntax=sh #No core files by default #ulimit -S -c 0>/dev/null 2>&1 #USER="`id -un`" //还不支持用户登陆功能,将在以后的试验中增加 USER="root" LOGNAME=$USER PS1='[$USER@$HOSTNAME$PWD]#'//提示符 PATH=$PATH HOSTNAME=`/bin/hostname` //主机名 export USER LOGNAME PS1 PATH //导出环境变量
2 丰富rcS文件
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/lib:/usr/local/Trolltech/QtEmbedded-x86/lib:/usr/lib runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel # # Trap CTRL-C &c only in this shell so we can interrupt subprocesse. mount -a mkdir /dev/pts mount -t devpts devpts /dev/pts //这部分代码的含义可以参考前面写的文章(mdev原理)。 echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s mkdir -p /var/lock /bin/hostname -F /etc/sysconfig/HOSTNAME insmod /lib/mii.ko //插入网卡所需的两个内核模块 insmod /lib/pcnet32.ko ifconfig eth0 up //启用网卡 udhcpc //BusyBox的DHCP功能,获取IP地址 echo -e "\t\tWelcome to \033[31mEmbeddedCE123\033[0m Linux"
效果如下图:
3 补充知识
modinfo 查看模块中对应的详细信息和“依赖信息”,“路径”等
/etc/modprobe.conf系统开机时加载的所有模块,向模块中传递参数信息,如何想开机的时候给模块传递信息,可以编辑它
alias 别名
options 传递参数
modprobe -r //卸载某个模块,只需要指定模块名字,不加r,加载某个移除模块
modprobe -r floppy //移除软盘
ls /lib/modules/`uname -r` // modproce在这里找模块
insmod 插入模块
insmod /PATH/TO/MODULE_FILE 它必须指定模块全路径
lsmod 显示所有模块
rmmod 移除模块,不需要指定路径
depmod 用于自动生成所有模块的依赖关系文件和映射关系文件
modules.dep map.dep