版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北水利水电大学 从零开始构建自己的U盘Linux课程名称:嵌入式系统的原理与设计姓 名: 学 号: 班 级: 2011150 专 业: 电子信息科学与技术 日 期: 2014年6月19日 摘要: 论文基于Linux内核的编译,U盘上的Linux的分区和ext2文件格式,安装grub到U盘中,使用initrd内核作为根文件系统,从而实现构建自己的U盘的Linux。关键字:Linux内核 ext2文件 grub initrd内核 根文件系统AbstractThe paper is based on the compilation of the Linux kernel, Linux partit
2、ion on the usb flash drive and ext2 file, install grub to usb drive, use the initrd kernel as the root file system, so as to realize build your own Linux usb flash drive.Keyword:Linux partition ext2 file grub initrd kernel root file system目录一 引言3二 前期准备 3 1前期准备32生成bosybox3三 编译Linux内核6四 在U盘上建立根文件系统71在
3、U盘上建Linux分区和ext2文件72建立必需的目录83建立必须的设备节点文件84生成一些常见的命令和工具95建立一些必须的配置文件96复制Linux内核文件等到自己的U盘中10五 安装grub到U盘10六 总结与展望11七 参考文献12一 引言 随着上网本的普及和台式电脑主板性能的提升,U盘上安装Linux系统越来越流行。U盘的体积小,携带方便,如果计算机上没有Linux自己只需带一个U盘就行。如今Linux系统也越来越普及,Linux 系统体系的模型结构非常便于定制,选择U盘安装的系统构建方式,将便于系统个性的定制,而不需要依赖于发布商依据各自文化理念提供易用化系统集合。二 前期准备 1
4、准备开主发机 准备一台计算机,在虚拟机上安装Linux操作系统 每个命令最好前面加sudo来实现root权限操作,或者使用sudo su 进入root权限。 2准备测试用的计算机 3准备Linux的内核源代码 Linux的源代码可以从下载。另外,如果开发机的安装Linux系统时是全部安装,在开发 机的系统文件的usb下的src目录下也会有Linux的源代码。我的在开发有Linux的源代码。 4 准备busybox工具的源代码从busybox 的官网: (这个压缩包能用)建议放在home下,因为放在tmp下,容易丢。1) 解压缩busybox-1.21-0.
5、tar.bz2cd /tmp /进入 /tmp目录下2) sudo tar-xvjf busybox-1.21-0.tar.bz2 / 解压缩3) 进入busybox-1.21-0目录下,修改busybox中的init.c源代码具体的操作如下 cd busybox-1.21-0sudo gedit init/init.c /建议用gedit编译器找到 define INIT-SRCIPT “/etc/init.d/rcs”把其修改为define INIT-SRCIPT “/etc/rc.d /rc.sysinit” 4)make defconfig /使用默认配置,让bosybox包含常用的工
6、具和命令 make menuconfig /进入人工配置(如果出现错误,或许可以将里面的内容更新) Busybox settings -Build Options *Build Busybox as a static binary (no share libs)(y表示选上) 然后进入shell选项,选用ash作为默认的shell(ash) Shells-choose your default shell(ash) * ash hush lash 这个不存在 mash(5)编译busybox,命令如下 make (6) make install 等待的时间好像有点长 在make install
7、 完成后,会在/tmp/ busybox-1.21-0/目录下生成-install 目录中,里面会建立bin和sbin子目录三 编译Linux内核 从网上 下载Linux内核压缩之后就可以配置的,编译内核了,具体操作如下 我下载的是linux-3.15.1.tar.xz 文件解压如下tar J linux-3.15.1.tar.xz 1) cd /home/ sudo tar J linux-3.15.1.tar.xz 2) make menuconfig /进行内核编译需要注意是由于支持U盘启动,配置内核时必须选择以下内容:(1) 选择Device D
8、evices(设备驱动) -Block devices 下的loopback device support, RAMblock device support(2) 选择Device Devices-SCSI Support, SCSI disk Support, SCSI low-drivers-Buslogic SCSI support 等支持;(3) 选择Device Devices-USB Support 下的Support for Host-side USB,Preliminary USB device filesystem ,USB Mass Storage support 支持;另
9、外,还需要选UHCI HCD support 或OHCI HCD support 选择好后选择保存使用“make dep”命令寻找依赖关系,由系统决定需要编译那些内容 使用“make clean”命令清除以前编译内核时生成中间文件等。使用“make bzImage”命令生成压缩的Linux文件四 在U盘上建立根文件系统 1 首先使用fdisk -l 查看,你U盘挂上去之后是sda还是sdb,sdcsudo su fdisk -l进行分区fdisk /dev/sdb 来给U盘分区,具体分为两个区sda1为使用d 删除分区 使用n新建分区然后确认主分区号,第一个选1 ,然后输入初始扇区编号,默认为
10、1,直接回车就可以,然后输入+512M然后是p,查看分区,然后是w 保存并退出分区,2)格式化完成之后,U盘上就会建立一个Linux分区,下面就可以在U盘上建立ext2文件,具体操作如下sudo mkfs.ext2 /dev/sdb12 建立必须的目录1) sudo mkdir /mnt/usb /建立/mnt/usb目录,用于挂载U盘 sudo su mount /dev/sdb1 /mnt/usb cd /mnt/usb /进入/mnt/usb目录下mkdir boot etc etc/rc.d proc tmp var dev mnt lib initrd /建立需要的目录chmod 7
11、55 boot etc etc/rc.d proc tmp var dev mnt lib initrd /该属性为可读写 3)建立必须的设备节点文件sudo su cd /mnt/usb/dev建立一般终端机设备 mknod tty c 5 0mknod console c 5 1chmod 666 tty console建立VGA Display 虚拟终端设备mknod tty0 c 4 0chmod 666 tty0建立RAM disk设备mknod ram0 b 1 0chmod 600 ram0建立null设备mknod null c 1 3chmod 666 null4) 生成一些
12、常见的命令和工具cp -a -R -f /home/luck/busybox/busybox-1.21.0/_install/* /mnt/usb/ 使用a选项保持文件的正确性,使用-R 选项保持文件复制的正确性cp /bin/bash /mnt/usb/bincp /lib/i386-linux-gnu/libtinfo.so.5 /mnt/usb/libcp /lib/i386-linux-gnu/libdl.so.2 /mnt/usb/libcp /lib/i386-linux-gnu/libc.so.6 /mnt/usb/libcp /lib/ld-linux.so.2 /mnt/us
13、b/libcd /mnt/usb/binln -s bash sh/通过连接命令建立sh命令5) 建立一些必须的配置文件Linux在启动的过程中还需要建立一些配置文件建立/ mnt/usb/etc/rc.d/inittab配置文件gedit /mnt/usb/etc/inittab建立/ mnt/usb/etc/rc.d/ rc.sysinit配置文件gedit /mnt/usb/etc/rc.d/rc.sysinit建立/ mnt/usb/etc/rc.d/ fstab配置文件 gedit /mnt/usb/etc/fstab 修改inittab,rc.sysinit,fstab这3个文件的
14、权限chmod 644 /mnt/usb/etc/inittab chmod 755 /mnt/usb/etc/rc.d/rc.sysinit chmod 644 /mnt/usb/etc/fstab6)复制Linux内核文件等到U盘中cp /home/luck/linux/linux-3.15.1/arch/x86/boot/bzImage /mnt/usb/bootcp /home/initrd.gz /mnt/boot/initre.img五 安装grub到U盘#mount -t ext2 /dev/sdb1 /mnt# grub-install -root-directory=/mnt
15、 /dev/sdb#grub-mkconfig -o /mnt/boot/grub/grub.cfg # umount /mnt总之这上面的都无关紧要主要是grub.cfg 的修改将grub里面的内容该删的删去该换的换的,如下图所示cp /etc/grub.d/00-header mnt/usb/etc/grub.d/00-header cp /etc/grub.d/05-debian mnt/usb/etc/grub.d/00-debiancp /etc/grub.d/10-linux mnt/usb/etc/grub.d/10-linux关机把自己的插到电脑上开机,可以用USB-HDD方式
16、启动的计算机上六 总结与展望通过构建自己的U盘Linux,刚开始的时候感觉自己什么也不会,什么也不懂,更可怕的是不知道自己什么地方不会,不知道该怎么解决;虽然自己有时候作对的,但是自己重新做的时候,就出问题的,就做不对,然后自己又重新做,但是还不对,上网查资料,按照网上的要求做,有时候还是不对,最后只能问同学,让同学帮我解决这个问题。接下来问题不是逐渐的减少,而是接踵而至,虽然有一部分作对的,但是自己总是感觉自己做的一塌糊涂,在自己做这个课程设计的时候,自己的进步赶不上别人。自己做的那么差也不是没有原因的主要是前期自己没有打算做U盘,感觉做实验就行。但是通过与做U盘的同学接触感觉他们对嵌入式的了解的很深入,我深深的感到汗颜,于是我感觉只做实验是不行的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淘宝找建筑课程设计
- 专题03 阅读理解之推理判断题(练习)(解析版)
- 炼钢厂部门岗位职责说明书
- 机电工程施工组织设计
- (一)高标准农田施工方案
- 算法课程设计总结
- 招投标文件编制课程设计
- 放射科护士全年工作总结
- 收获与成长银行工作总结
- 教育行业教学方法改进总结
- 织金县实兴乡白龙重晶石矿5.0万t-a(新建)项目环评报告
- 妊娠期肝内胆汁淤积症教学课件
- 【航空个性化服务浅析4700字(论文)】
- 保障农民工工资支付条例全文及解读课件
- 中国移动全面预算管理
- 【部编】小高考:2021年江苏普通高中学业水平测试历史试卷
- 公路隧道建设施工技术规范学习考试题库(400道)
- 新人教版七至九年级英语单词表 汉译英(含音标)
- 浅谈事业单位固定资产的折旧本科学位论文
- 食堂管理制度大全
- 爱普生机器人中级培训资料
评论
0/150
提交评论