定制最简linux和根文件系统(平台龙芯1B开发板)共13页word资料
更新时间:2023-05-03 03:28:01 阅读量: 实用文档 文档下载
- linux根文件系统推荐度:
- 相关推荐
版本历史
版本时间备注
V1.0 2013-08-28 创建
1. 前言 (2)
1.1. 开发板版本号 (2)
1.2. 工具链版本号 (2)
1.3. 参考文档及其版本号 (3)
1.4. 目标 (3)
2. 搭建开发环境 (3)
3. 制作根文件系统 (3)
3.1. 配置 (3)
3.1.1. 拷贝源码,并解压 (3)
3.1.2. 配置选项简述 (4)
3.2. 编译 (4)
3.3. 构建根文件系统 (5)
3.3.1. 建立系统根目录 (5)
3.3.2. 建立设备文件 (5)
3.3.3. 建立系统配置文件 (5)
4. 编译linux (7)
4.1. 配置 (8)
4.1.1. 首先拷贝源码,并解压 (8)
4.1.2. 不安装Ncurses (8)
4.1.3. 没有拷贝.config (8)
4.1.4. 不用修改Makefile (8)
4.1.5. 配置选项简述 (9)
4.2. 编译 (10)
5. 启动运行linux (11)
5.1. 拷贝vmlinux到tftp服务器目录下 (11)
5.2. 设置PMON的ip地址 (11)
5.3. 下载内核 (12)
5.4. 启动linux (12)
第 1 页
1.前言
很高心拿到了龙芯1B开发板。然后仔细的看了开发板光盘里的《1B开发板用户手册.pdf》。里面写得非常详细,并且都附有截图,很明了。从最开始装虚拟机到编译linux,制作根文件系统等等,连虚拟机软件和Ubuntu系统镜像都有。可以说这套开发板考虑得非常周到。
然后我就参照《1B开发板用户手册.pdf》编译了linux,制作了根文件系统,最后终于跑起来,进入了shell。
这里谈谈我的感想
●用户手册更像一个工具书
就拿根文件系统来说吧。Cramfs,Jffs2,Yaffs2的制作步骤都有,这表示该手册很全面,但是如果是一个初学者的话,给的选择太多不一定是好事。这也是我想写这篇文档的原因。我想linux的配置尽量简单(除了串口驱动以外,其它的比如,网卡,声卡,触屏等都暂时不需要),根文件系统也尽量简单(手册中的已经很简单了,后面我们就参照手册),另外为了再简单一点我把根文件系统也选择内存文件系统,内核只下载到内存而不烧写到flash,同时PMON参数也不修改。这样做有个好处——任何时候我可以复位进入开发板预装的linux 和文件系统。这便于在我们遇到问题时参考。
●制作根文件系统的章节还有点小小的问题需要改进
?手册中的笔误Busybox配置过程中ionice错写为inoice
?没有新建目录/root和/var/log
?没有新建console和串口设备节点ttyS2
另外,说点题外话,回想以前读大学时,非常想学习嵌入式,但是感觉非常困难。现在看来,当时感觉困难的原因是入门太难了。为什么入门难,弄了很久连环境都没打起来,更别说编译linux,制作根文件系统了。
在这里我想说“朋友们,搭建环境只需要把开发板的工具链解压到指定目录就可以了。就相当于windows上的绿色软件一样,仅此而已,这比安装vs2019快多了,方便多了”。
既然开发环境搭建起来了,后面就是配置编译linux,制作根文件系统了(先不要管PMON 了,就像电脑一样,很少有人换bios,最多重装系统)。这也就是本篇文章的任务。
1.1. 开发板版本号
LS1B DEMO BOARD Schematic Revision 2.0即版本为2.0
1.2. 工具链版本号
版本为gcc-3.4.6-2f.tar.gz
第 2 页
1.3. 参考文档及其版本号
《1B开发板用户手册》V1.2
1.4. 目标
参考《1B开发板用户手册》创建一个最简化的linux和根文件系统。同时不破坏开发板预装的linux等,并将这个过程记录下来,仅供参考。
这里在明确一下本次任务的详细内容
?PMON不变(不要动PMON,包括PMON环境变量,除了ip地址外)
?LINUX内核配置尽量简单(驱动方面,除了串口外,其它的网口,声卡,触屏都不要
选上),linux内核也仅仅下载到内存,不要写到flash
?根文件系统尽量简单(根文件系统就直接从busybox编译后得到,暂时不移植什么应
用),同时这里也选择RAMDISK文件系统,不要写到flash
2.搭建开发环境
安装虚拟机和Ubuntu网上有很多,当然手册中也讲得很详细,这个就自己解决。假设您已经装好了。
另外我用的是red hat 企业版5(手册中用的是Ubuntu),并且直接登录root账户,避免了什么权限的麻烦。
安装工具链手册中已经讲得非常好了,这里直接截图。
3.制作根文件系统
3.1. 配置
3.1.1.拷贝源码,并解压
[root@localhost test]# cp ../LS1B/busybox-1.19.2-default.tar.gz ./
l[root@localhost test]# ls
1b-linux-3.0-d8b47bb 1b-linux-3.0-d8b47bb.tar.gz busybox-1.19.2-default.tar.gz
[root@localhost test]# tar -zxf busybox-1.19.2-default.tar.gz
[root@localhost test]# ls
1b-linux-3.0-d8b47bb busybox-1.19.2-default
1b-linux-3.0-d8b47bb.tar.gz busybox-1.19.2-default.tar.gz
第 3 页
[root@localhost test]# cd busybox-1.19.2-default
[root@localhost busybox-1.19.2-default]#
和linux内核一样,通过执行make menuconfig来配置,输入后回车如下图所示
3.1.2.配置选项简述
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
(/opt/GCC/gcc-3.4.6-2f/bin/mipsel-linux-) Cross Compiler prefix (交叉编译器的绝对路径前缀,根据自己情况修改)
Busybox Library Tuning --->
[*] vi-style line editing commands
[*] Fancy shell prompts
Init Utilities --->
[*] init
[*] Support reading an inittab file
[*] Run commands with leading dash with controlling tty
[*] Support running init from within an initrd (not initramfs)
Miscellaneous Utilities --->
[ ] ionice
[ ] ubiattach
[ ] ubidetach
[ ] ubimkvol
[ ] ubirmvol
[ ] ubirsvol
[ ] ubiupdatevol
3.2. 编译
执行make
[root@localhost busybox-1.19.2-default]# make
执行完后,如下
然后执行make install
[root@localhost busybox-1.19.2-default]# make install
已经把需要的东西放到当前目录的_install下
然后在这基础上制作根文件系统
第 4 页
3.3. 构建根文件系统
3.3.1.建立系统根目录
[root@localhost nfsramdisk]# mkdir LS1B
[root@localhost nfsramdisk]# cd LS1B
[root@localhost LS1B]# ls
[root@localhost LS1B]# mkdir dev home proc tmp var etc lib mnt sys usr etc/rc.d root var/log [root@localhost LS1B]# ls
dev etc home lib mnt proc root sys tmp usr var
[root@localhost LS1B]#
3.3.2.建立设备文件
建立console和串口设备文件
[root@localhost LS1B]# mknod -m 600 dev/console c 5 1
[root@localhost LS1B]# mknod -m 600 dev/ttyS2 c 4 66
[root@localhost LS1B]#
3.3.3.建立系统配置文件
注意:以下的配置文件不是在开发主机的根目录下创建的。
3.3.3.1. 添加etc/inittab文件
[root@localhost LS1B]# vim etc/inittab
::sysinit:/etc/rc.d/rc.sysinit // 指定系统启动后首先执行的文件
#Example of how to put a getty on a serial line(rot a terminal)
ttyS2::respawn:~/bin/sh #no login(启动后进入shell)
#::respawn:/sbin/getty -L ttyS2 115200 vt100 #use login
#tty::respawn:~/bin/sh
#Stuff to do when restarting the init process
::restart:/sbin/init
#Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot // 捕捉ctrl+alt+del键,重启文件系统
::shutdown:/bin/umount -a -r // 当关机时卸载所有文件系统
::shutdown:/sbin/swapoff -a
"etc/inittab" [新] 14L, 553C 已写入
[root@localhost LS1B]#
第 5 页
3.3.3.2. 新建etc/rc.d/rc.sysinit文件
[root@localhost LS1B]# vim etc/rc.d/rc.sysinit
#!/bin/sh
#Set binary path
export PA TH=/bin:/sbin:/usr/bin:/usr/sbin
#Config dev environment
mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
#mknod -m 600 /dev/console c 5 1
#mknod -m 600 /dev/ttyS2 c 4 66
#mount all filesystem defined in /etc/fstab
echo "#mount all......"
/bin/mount -a
echo "#Starting mdev......"
echo /sbin/mdev>/proc/sys/kernel/hotplug
/sbin/mdev -s
#Set hostname
/bin/hostname "Loongson-gz"
export LOGNAME=root
"etc/rc.d/rc.sysinit" [新] 24L, 489C 已写入
[root@localhost LS1B]#
3.3.3.3. 新建etc/fstab文件
[root@localhost LS1B]# vim etc/fstab
sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 tmpfs /mnt tmpfs defaults 0 0 tmpfs /root tmpfs defaults 0 0 tmpfs /var/log tmpfs defaults 0 0 "etc/fstab" [新] 7L, 213C 已写入
[root@localhost LS1B]#
3.3.3.
4. 新建etc/profile文件
[root@localhost LS1B]# vim etc/profile
#!/bin/sh
#/etc/profile:system-wide .profile file for the Bourne shells echo "Processing /etc/profile..."
第 6 页
#Set search library path
export LD_LIBRARY_PA TH=/lib:/usr/lib
#Set user path
export PA TH=/bin:/sbin:/usr/bin:/usr/sbin
#Set PS1
USER="'id -un'"
LOGNAME=$USER
PS1='[\u@\h:\w]\$'
PATH=$PATH
alias ll="ls -l"
echo "Done!"
"etc/profile" 20L, 330C 已写入
[root@localhost LS1B]#
3.3.3.5. 修改系统配置文件权限
[root@localhost LS1B]# chmod 755 etc/*
[root@localhost LS1B]# chmod 755 etc/rc.d/rc.sysinit
[root@localhost LS1B]#
3.3.3.6. 拷贝Busybox文件
[root@localhost ~]# cd /home/dev/test/busybox-1.19.2-default
[root@localhost busybox-1.19.2-default]# ls /nfsramdisk/LS1B
dev etc home lib mnt proc root sys tmp usr var
[root@localhost busybox-1.19.2-default]# cp -rf _install/* /nfsramdisk/LS1B
[root@localhost busybox-1.19.2-default]# ls /nfsramdisk/LS1B
bin dev etc home lib linuxrc mnt proc root sbin sys tmp usr var
至此根文件系统制作完成!
4.编译linux
在强调一下,我使用的是red hat,直接root登录,手册《1B开发板用户手册》使用的是Ubuntu。您可能又不一样,这个自己随机应变。
还有手册《1B开发板用户手册》用的是linux-2.6.21,而我用的是开发板光盘中的linux 3.0。这个同样根据自己情况随机应变。
第 7 页






正在阅读:
定制最简linux和根文件系统(平台龙芯1B开发板)共13页word资料05-03
比赛小学优秀作文06-15
三桩桩基承台计算01-19
关爱生命的小学作文06-15
2017最新流行个性签名02-09
2013考研政治大纲08-13
高中地理必修一复习总结考点-练习03-04
江苏太仓500kW光伏示范电站 - 图文02-02
3琵琶行04-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 定制
- 文件
- 开发
- 系统
- 资料
- linux
- 平台
- 龙芯
- word
- 译林版新版五年级上学期英语 Unit5 Story time名师教案
- 库存管理中英文对照外文翻译文献
- 2004年高考天津卷理科数学试题及答案
- 2018采购战略合作协议
- (初中优秀作文)最温馨的回忆
- 发生窒息的应急预案
- 这就是爱作文1000字完美版
- 关于英语应用文写作的25个加分句型(最新)
- 剑桥英语雅思考官大作文+小作文
- 中小学信息技术应用能力提升工程个人研修计划
- 2020中考语文新冠肺炎疫情阅读与写作组合练(解析版)
- 概率论与数理统计第一章课后习题详解
- 2017年黑龙江省哈尔滨市中考化学试卷及答案
- 最新Differences Between Chinese and Western Dragon Culture名师资料合集
- 初中物理 北京市门头沟区初三物理一模考试考试卷 考试题及答案.docx
- 2020年新编TS16949标准培训考试题答案校对名师精品资料
- 材料研究方法与测试技术
- 服务贸易等项目对外支付税务备案操作手册 (纳税人端)
- (精品)中小企业内部控制_外文参考文献(整理)
- 中医执业医师考试课后练习题及答案解析